
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "<anon>": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: void relocate_special_relocatable(Target_arm<false> * this,
   Relocate_info<32,_false> * relinfo, uint sh_type, uchar * preloc_in, size_t relnum,
   Output_section * output_section, Elf_Off offset_in_output_section, uchar * view, Elf_Addr
   view_address, section_size_type param_9, uchar * preloc_out) */

void __thiscall
anon_unknown.dwarf_91258a::Target_arm<false>::relocate_special_relocatable
          (Target_arm<false> *this,Relocate_info<32,_false> *relinfo,uint sh_type,uchar *preloc_in,
          size_t relnum,Output_section *output_section,Elf_Off offset_in_output_section,uchar *view,
          Elf_Addr view_address,section_size_type param_9,uchar *preloc_out)

{
  byte bVar1;
  byte bVar2;
  ushort uVar3;
  ushort uVar4;
  _func_int_varargs **pp_Var5;
  _func_int_varargs *p_Var6;
  Arm_reloc_property *pAVar7;
  pointer pSVar8;
  pointer ppOVar9;
  Arm_address offset;
  pointer pSVar10;
  Merged_symbol_value<32> *pMVar11;
  _Hash_node_base *p_Var12;
  uint uVar13;
  Arm_relobj<false> *pAVar14;
  int iVar15;
  int iVar16;
  Value VVar17;
  Status SVar18;
  char *pcVar19;
  Output_section *pOVar20;
  Elf_Addr EVar21;
  uint uVar22;
  _Hash_node_base *p_Var23;
  uint uVar24;
  __bucket_type p_Var25;
  Arm_relobj<false> *object;
  __bucket_type p_Var26;
  uint uVar27;
  uint *puVar28;
  Arm_relobj<false> *in_stack_ffffff88;
  Symbol_value<32> *in_stack_ffffff8c;
  Arm_address in_stack_ffffff90;
  Arm_address in_stack_ffffff94;
  undefined1 in_stack_ffffff98;
  uint local_4c;
  Arm_relobj<false> *local_48;
  Symbol_value<32> *local_40;
  Sized_symbol<32> *local_38;
  _Hash_node_base *local_34;
  Symbol_value<32> symval;
  
  if (sh_type != 9) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/arm.cc",0x28db,"relocate_special_relocatable");
  }
  object = (Arm_relobj<false> *)relinfo->object;
  pp_Var5 = (((Sized_relobj<32,_false> *)&object->invalid_address)->super_Relobj).super_Object.
            _vptr_Object;
  p_Var6 = pp_Var5[0x23];
  if (p_Var6 == gold::Relobj::local_symbol_count) {
    uVar13 = (*pp_Var5[0x2f])(object);
  }
  else {
    uVar13 = (*p_Var6)(object);
  }
  uVar22 = *(uint *)(preloc_in + 4);
  uVar24 = uVar22 & 0xff;
  pAVar7 = arm_reloc_property_table->table_[uVar24];
  uVar27 = uVar22 >> 8;
  if (((pAVar7 == (Arm_reloc_property *)0x0) || (pAVar7->reloc_type_ != RT_STATIC)) ||
     ((pAVar7->field_0x34 & 2) == 0)) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/arm.cc",0x28ef,"relocate_special_relocatable");
  }
  if (uVar13 <= uVar27) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/arm.cc",0x28f3,"relocate_special_relocatable");
  }
  pSVar8 = (((Local_values *)&object->field_0xdc)->
           super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>).
           _M_impl._M_start;
  if ((uint)((int)*(pointer *)&object->field_0xe0 - (int)pSVar8 >> 4) <= uVar27) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/object.h",0x8db,"local_symbol_input_shndx");
  }
  pAVar14 = (Arm_relobj<false> *)(*(uint *)&pSVar8[uVar27].field_0x8 & 0x7ffffff);
  if ((pSVar8[uVar27].field_0xb & 8) == 0) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/arm.cc",0x28fb,"relocate_special_relocatable");
  }
  p_Var6 = (((Sized_relobj<32,_false> *)&object->invalid_address)->super_Relobj).super_Object.
           _vptr_Object[0x18];
  if (p_Var6 == gold::Relobj::do_output_section) {
    ppOVar9 = (((Output_sections *)&object->field_0x38)->
              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).
              _M_impl._M_start;
    if ((Arm_relobj<false> *)((int)*(pointer *)&object->field_0x3c - (int)ppOVar9 >> 2) <= pAVar14)
    {
                    /* WARNING: Subroutine does not return */
      gold::do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");
    }
    pOVar20 = ppOVar9[(int)pAVar14];
    pAVar14 = in_stack_ffffff88;
  }
  else {
    pOVar20 = (Output_section *)(*p_Var6)(object);
  }
  if (pOVar20 == (Output_section *)0x0) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/arm.cc",0x28fd,"relocate_special_relocatable");
  }
  if ((pOVar20->field_0x90 & 1) == 0) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/arm.cc",0x28fe,"relocate_special_relocatable");
  }
  uVar13 = pOVar20->symtab_index_;
  if (uVar13 == 0) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/output.h",0xd81,"symtab_index");
  }
  offset = *(Arm_address *)preloc_in;
  if (offset_in_output_section == 0xffffffff) {
    in_stack_ffffff8c = (Symbol_value<32> *)relinfo->data_shndx;
    pAVar14 = object;
    in_stack_ffffff90 = offset;
    iVar15 = gold::Output_section::output_offset
                       (output_section,(Relobj *)object,(uint)in_stack_ffffff8c,offset);
    if (iVar15 == -1) {
                    /* WARNING: Subroutine does not return */
      gold::do_gold_unreachable("../../gold/arm.cc",0x290f,"relocate_special_relocatable");
    }
  }
  else {
    iVar15 = offset + offset_in_output_section;
  }
  if (gold::parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  iVar16 = iVar15;
  if ((gold::parameters->options_->relocatable_).value == false) {
    iVar16 = iVar15 + view_address;
    if (offset_in_output_section != 0xffffffff) {
      iVar16 = (iVar15 + view_address) - offset_in_output_section;
    }
  }
  *(int *)preloc_out = iVar16;
  pSVar8 = *(pointer *)&object->field_0xe0;
  *(uint *)(preloc_out + 4) = uVar13 * 0x100 + uVar24;
  pSVar10 = (((Local_values *)&object->field_0xdc)->
            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>).
            _M_impl._M_start;
  if ((uint)((int)pSVar8 - (int)pSVar10 >> 4) <= uVar27) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/object.h",0x8c1,"local_symbol");
  }
  local_38 = (Sized_symbol<32> *)(pSVar10 + uVar27);
  iVar15 = (int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>
                ._M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p;
  symval.output_symtab_index_ = 0;
  symval.output_dynsym_index_ = 0xffffffff;
  symval._8_4_ = 0x80000000;
  symval.u_.value = 0;
  if (((object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.
       super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_offset -
      (object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.
      super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_offset) +
      ((int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>.
            _M_impl.super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p - iVar15) * 8
      <= uVar27) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00122c8d to 00122c91 has its CatchHandler @ 00122d02 */
    gold::do_gold_unreachable("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function");
  }
  local_48 = (Arm_relobj<false> *)
             (1 << ((byte)(uVar22 >> 8) & 0x1f) & *(uint *)(iVar15 + (uVar22 >> 0xd) * 4));
  if ((local_48 != (Arm_relobj<false> *)0x0) &&
     (local_48 = (Arm_relobj<false> *)0x1, (pAVar7->field_0x34 & 0x40) != 0)) {
    in_stack_ffffff8c = (Symbol_value<32> *)0x0;
    pAVar14 = object;
                    /* try { // try from 00122161 to 00122165 has its CatchHandler @ 00122d02 */
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,0);
    local_48 = (Arm_relobj<false> *)(VVar17 & 1);
    if (local_48 == (Arm_relobj<false> *)0x0) {
      local_48 = (Arm_relobj<false> *)0x1;
    }
    else {
      in_stack_ffffff8c = (Symbol_value<32> *)0x0;
      pAVar14 = object;
                    /* try { // try from 00122967 to 0012296b has its CatchHandler @ 00122d02 */
      VVar17 = gold::Symbol_value<32>::value<false>
                         ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,0);
      symval.u_.value = VVar17 & 0xfffffffe;
      local_38 = (Sized_symbol<32> *)&symval;
    }
  }
  local_40 = &symval;
  puVar28 = (uint *)(view + offset);
  switch(uVar24) {
  case 4:
  case 0x2c:
  case 0x2e:
  case 0x30:
  case 0x32:
  case 0x39:
  case 0x3a:
  case 0x3b:
  case 0x3c:
  case 0x3d:
  case 0x3e:
  case 0x3f:
  case 0x40:
  case 0x41:
  case 0x42:
  case 0x43:
  case 0x44:
  case 0x45:
  case 0x46:
  case 0x47:
  case 0x48:
  case 0x49:
  case 0x4a:
  case 0x4b:
  case 0x4c:
  case 0x4d:
  case 0x4e:
  case 0x4f:
  case 0x50:
  case 0x51:
  case 0x52:
  case 0x53:
  case 0x55:
  case 0x58:
    object = (Arm_relobj<false> *)(pAVar7->name_)._M_dataplus._M_p;
    pcVar19 = (char *)gettext("cannot handle %s in a relocatable link");
    gold::gold_error(pcVar19);
    goto LAB_0012238d;
  case 5:
    uVar13 = (uint)(ushort)*puVar28;
    if ((short)(ushort)*puVar28 < 0) {
      uVar13 = (ushort)*puVar28 - 0x10000;
    }
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,uVar13);
    *(ushort *)puVar28 = (ushort)VVar17;
    if (VVar17 + 0x8000 < 0x18000) goto LAB_0012238d;
    break;
  case 6:
    uVar13 = *puVar28;
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,
                        uVar13 & 0xfff);
    *puVar28 = uVar13 ^ (uVar13 ^ VVar17) & 0xfff;
    goto joined_r0x00122297;
  case 7:
    uVar3 = (ushort)*puVar28;
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,
                        uVar3 >> 6 & 0x1f);
    *(ushort *)puVar28 = uVar3 ^ ((ushort)(VVar17 << 6) ^ uVar3) & 0x7e0;
    if (VVar17 + 0x10 < 0x20) goto LAB_0012238d;
    break;
  case 8:
    bVar1 = (byte)*puVar28;
    VVar17 = bVar1 - 0x100;
    if (-1 < (char)bVar1) {
      VVar17 = (uint)bVar1;
    }
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);
    *(byte *)puVar28 = (byte)VVar17;
    if (VVar17 + 0x80 < 0x180) goto LAB_0012238d;
    break;
  default:
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00122ac8 to 00122b77 has its CatchHandler @ 00122d02 */
    gold::do_gold_unreachable("../../gold/arm.cc",0x29cf,"relocate_special_relocatable");
  case 10:
  case 0x10:
  case 0x1e:
    SVar18 = Arm_relocate_functions<false>::thumb_branch_common
                       (0,(Relocate_info<32,_false> *)object,(uchar *)0x0,local_38,
                        (Arm_relobj<false> *)0x0,(uint)local_48,(Symbol_value<32> *)0x0,
                        in_stack_ffffff90,in_stack_ffffff94,(bool)in_stack_ffffff98);
    object = local_48;
    goto LAB_00122342;
  case 0xb:
    uVar13 = *puVar28;
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,
                        (uint)(ushort)uVar13 * 4 & 0x3fc);
    iVar15 = (VVar17 ^ (int)VVar17 >> 0x1f) - ((int)VVar17 >> 0x1f);
    *(ushort *)puVar28 = (ushort)uVar13 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;
    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;
    break;
  case 0xf:
  case 0x1b:
  case 0x1c:
  case 0x1d:
    SVar18 = Arm_relocate_functions<false>::arm_branch_common
                       (0,(Relocate_info<32,_false> *)object,(uchar *)0x0,local_38,
                        (Arm_relobj<false> *)0x0,(uint)local_48,(Symbol_value<32> *)0x0,
                        in_stack_ffffff90,in_stack_ffffff94,(bool)in_stack_ffffff98);
    object = local_48;
    goto LAB_00122342;
  case 0x2a:
    uVar13 = *puVar28;
    VVar17 = uVar13 & 0x7fffffff;
    if ((uVar13 & 0x40000000) != 0) {
      VVar17 = 0x7fffffff;
    }
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);
    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;
    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;
    break;
  case 0x2b:
  case 0x2d:
  case 0x54:
  case 0x56:
    uVar13 = *puVar28;
    bVar1 = pAVar7->field_0x34;
    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;
    local_4c = uVar22 - 0x10000;
    if ((uVar13 >> 4 & 0x8000) == 0) {
      local_4c = uVar22;
    }
    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);
    if ((char)bVar2 < '\0') {
      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;
    }
    else {
      if ((bVar2 & 8) == 0) {
                    /* WARNING: Subroutine does not return */
        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");
      }
      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;
      local_34 = (_Hash_node_base *)pMVar11->input_value_;
      if (local_4c < 0xffffff00) {
        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);
        local_4c = 0;
      }
      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;
      uVar24 = (uint)local_34 % uVar22;
      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];
      if (p_Var26 != (__bucket_type)0x0) {
        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;
        p_Var12 = p_Var26->_M_nxt;
        while (p_Var25 = p_Var12, p_Var23 != local_34) {
          p_Var12 = p_Var25->_M_nxt;
          if ((p_Var12 == (_Hash_node_base *)0x0) ||
             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))
          goto LAB_00122b36;
        }
        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {
          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;
          goto LAB_001229a9;
        }
      }
LAB_00122b36:
      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section
                         (pMVar11,(Relobj *)object,
                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);
      local_4c = EVar21 + local_4c;
      pAVar14 = object;
    }
LAB_001229a9:
    local_4c = local_4c | (uint)local_48;
    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;
    object = pAVar14;
    goto joined_r0x00122aa6;
  case 0x2f:
  case 0x31:
  case 0x57:
  case 0x59:
    uVar3 = *(ushort *)((int)puVar28 + 2);
    bVar1 = pAVar7->field_0x34;
    uVar4 = (ushort)*puVar28;
    uVar22 = ((uVar4 & 0xf) << 0x10) >> 4;
    uVar13 = ((uVar4 & 0x400) << 0x10) >> 0xf | uVar22 | uVar3 & 0xff | (uVar3 & 0x7000) >> 4;
    local_4c = uVar13 - 0x10000;
    if ((uVar22 & 0x8000) == 0) {
      local_4c = uVar13;
    }
    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);
    if ((char)bVar2 < '\0') {
      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;
    }
    else {
      if ((bVar2 & 8) == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00122cc5 to 00122d01 has its CatchHandler @ 00122d02 */
        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");
      }
      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;
      local_34 = (_Hash_node_base *)pMVar11->input_value_;
      if (local_4c < 0xffffff00) {
        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);
        local_4c = 0;
      }
      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;
      uVar22 = (uint)local_34 % uVar13;
      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];
      if (p_Var26 != (__bucket_type)0x0) {
        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;
        p_Var12 = p_Var26->_M_nxt;
        while (p_Var25 = p_Var12, p_Var23 != local_34) {
          p_Var12 = p_Var25->_M_nxt;
          if ((p_Var12 == (_Hash_node_base *)0x0) ||
             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))
          goto LAB_00122b06;
        }
        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {
          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;
          goto LAB_00122a61;
        }
      }
LAB_00122b06:
      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section
                         (pMVar11,(Relobj *)object,
                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);
      local_4c = EVar21 + local_4c;
      pAVar14 = object;
    }
LAB_00122a61:
    local_4c = local_4c | (uint)local_48;
    uVar13 = CONCAT22(uVar4,uVar3) & 0xfbf08f00;
    *(ushort *)((int)puVar28 + 2) =
         (ushort)(local_4c << 4) & 0x7000 | (ushort)uVar13 | (ushort)local_4c & 0xff;
    *(ushort *)puVar28 =
         (ushort)(uVar13 >> 0x10) | (ushort)((local_4c << 4) >> 0x10) & 0xf |
         (ushort)(((local_4c & 0x800) << 0xf) >> 0x10);
    object = pAVar14;
joined_r0x00122aa6:
    if (((bVar1 >> 2 & 1) == 0) || (local_4c + 0x8000 < 0x10000)) goto LAB_0012238d;
    break;
  case 0x33:
    SVar18 = Arm_relocate_functions<false>::thm_jump19
                       ((uchar *)0x0,local_48,in_stack_ffffff8c,in_stack_ffffff90,in_stack_ffffff94)
    ;
    object = local_48;
LAB_00122342:
    if (SVar18 == STATUS_OVERFLOW) break;
    if (SVar18 == STATUS_OKAY) goto LAB_0012238d;
    if (SVar18 != STATUS_BAD_RELOC) {
                    /* WARNING: Subroutine does not return */
      gold::do_gold_unreachable("../../gold/arm.cc",0x29e2,"relocate_special_relocatable");
    }
    object = (Arm_relobj<false> *)(pAVar7->name_)._M_dataplus._M_p;
    pcVar19 = "unexpected opcode while processing relocation %s";
    goto LAB_0012236a;
  case 0x34:
    uVar3 = (ushort)*puVar28;
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,
                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |
                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e));
    *(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;
    if ((ushort)VVar17 < 0x7f) goto LAB_0012238d;
    break;
  case 0x35:
    uVar3 = (ushort)*puVar28;
    uVar4 = *(ushort *)((int)puVar28 + 2);
    local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *
               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1);
    bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);
    if ((char)bVar1 < '\0') {
      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;
    }
    else {
      if ((bVar1 & 8) == 0) {
                    /* WARNING: Subroutine does not return */
        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");
      }
      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;
      local_34 = (_Hash_node_base *)pMVar11->input_value_;
      if (local_4c < 0xffffff00) {
        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);
        local_4c = 0;
      }
      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;
      uVar22 = (uint)local_34 % uVar13;
      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];
      if (p_Var26 != (__bucket_type)0x0) {
        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;
        p_Var12 = p_Var26->_M_nxt;
        while (p_Var25 = p_Var12, p_Var23 != local_34) {
          p_Var12 = p_Var25->_M_nxt;
          if ((p_Var12 == (_Hash_node_base *)0x0) ||
             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))
          goto LAB_00122ad6;
        }
        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {
          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;
          goto LAB_001229f9;
        }
      }
LAB_00122ad6:
      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section
                         (pMVar11,(Relobj *)object,
                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);
      local_4c = EVar21 + local_4c;
      pAVar14 = object;
    }
LAB_001229f9:
    local_4c = local_4c | (uint)local_48;
    uVar13 = ((int)local_4c >> 0x1f ^ local_4c) - ((int)local_4c >> 0x1f);
    uVar22 = (uVar13 & 0x800) << 0xf |
             (uVar13 & 0x700) << 4 | uVar13 & 0xff | CONCAT22(uVar3,uVar4) & 0xfb0f8f00;
    if ((int)local_4c < 0) {
      uVar22 = uVar22 | 0xa00000;
    }
    *(ushort *)((int)puVar28 + 2) = (ushort)uVar22;
    *(ushort *)puVar28 = (ushort)(uVar22 >> 0x10);
    object = pAVar14;
    goto joined_r0x0012230f;
  case 0x36:
    uVar22 = *puVar28;
    uVar3 = *(ushort *)((int)puVar28 + 2);
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,
                        (uVar3 & 0xfff) * (-(uint)(((ushort)uVar22 & 0x80) == 0) | 1));
    uVar13 = ((int)VVar17 >> 0x1f ^ VVar17) - ((int)VVar17 >> 0x1f);
    uVar22 = CONCAT22((ushort)uVar22,uVar3) & 0xff7ff000 | uVar13 & 0xfff;
    if (-1 < (int)VVar17) {
      uVar22 = uVar22 | 0x800000;
    }
    *(ushort *)((int)puVar28 + 2) = (ushort)uVar22;
    *(ushort *)puVar28 = (ushort)(uVar22 >> 0x10);
joined_r0x0012230f:
    if ((int)uVar13 < 0x1000) goto LAB_0012238d;
    break;
  case 0x66:
    uVar22 = *puVar28;
    uVar13 = (uint)(ushort)uVar22 * 2;
    uVar24 = uVar13 & 0x7fe;
    if ((uVar13 & 0x400) != 0) {
      uVar24 = uVar24 - 0x800;
    }
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,uVar24);
    *(ushort *)puVar28 = (ushort)uVar22 & 0xf800 | (ushort)((int)VVar17 >> 1) & 0x7ff;
joined_r0x00122297:
    if (VVar17 + 0x800 < 0x1000) goto LAB_0012238d;
    break;
  case 0x67:
    uVar22 = *puVar28;
    uVar13 = (uint)(ushort)uVar22 * 2;
    uVar24 = uVar13 & 0xff;
    if ((uVar13 & 0x80) != 0) {
      uVar24 = uVar24 - 0x100;
    }
                    /* try { // try from 00122201 to 001228fb has its CatchHandler @ 00122d02 */
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,uVar24);
    *(ushort *)puVar28 = (ushort)uVar22 & 0xff00 | (ushort)((int)VVar17 >> 1) & 0xff;
    if (VVar17 + 0x100 < 0x200) goto LAB_0012238d;
  }
  object = (Arm_relobj<false> *)(pAVar7->name_)._M_dataplus._M_p;
  pcVar19 = "relocation overflow in %s";
LAB_0012236a:
  uVar13 = gettext(pcVar19);
  gold::gold_error_at_location<32,_false>
            ((gold *)relinfo,(Relocate_info<32,_false> *)relnum,*(size_t *)preloc_in,
             (ulonglong)uVar13 << 0x20,(char *)object);
LAB_0012238d:
  gold::Symbol_value<32>::~Symbol_value(local_40,(int)object);
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void __regparm2
FUN_00121f40(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,
            int *param_6,undefined4 param_7,undefined4 param_8,int param_9,int param_10,int param_11
            ,undefined4 param_12,int *param_13)

{
  byte bVar1;
  ushort uVar2;
  int *piVar3;
  code *pcVar4;
  int iVar5;
  uint *puVar6;
  int *piVar7;
  ushort uVar8;
  uint uVar9;
  int iVar10;
  int iVar11;
  char *pcVar12;
  undefined4 uVar13;
  uint uVar14;
  int iVar15;
  uint uVar16;
  uint uVar17;
  int iVar18;
  int *piVar19;
  undefined4 uVar20;
  int *piVar21;
  uint uVar22;
  uint *puVar23;
  uint uStack_4c;
  uint local_48;
  undefined4 *local_40;
  undefined4 *local_38;
  uint local_34;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  uint local_20;
  
  if (param_5 != 9) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2);
  }
  piVar3 = *(int **)(param_4 + 8);
  pcVar4 = *(code **)(*piVar3 + 0x8c);
  if (pcVar4 == FUN_00070d40) {
    uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3);
  }
  else {
    uVar9 = (*pcVar4)(piVar3);
  }
  uVar14 = param_6[1];
  uVar17 = uVar14 & 0xff;
  iVar5 = *(int *)(DAT_005eb1c8 + uVar17 * 4);
  uVar22 = uVar14 >> 8;
  if (((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)) || ((*(byte *)(iVar5 + 0x34) & 2) == 0)) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22);
  }
  if (uVar9 <= uVar22) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3);
  }
  if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar22) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5);
  }
  iVar15 = piVar3[0x37] + uVar22 * 0x10;
  uVar9 = *(uint *)(iVar15 + 8) & 0x7ffffff;
  if ((*(byte *)(iVar15 + 0xb) & 8) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14);
  }
  if (*(code **)(*piVar3 + 0x60) == FUN_00071550) {
    uVar16 = piVar3[0xf] - piVar3[0xe] >> 2;
    if (uVar16 <= uVar9) {
                    /* WARNING: Subroutine does not return */
      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);
    }
    iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4);
  }
  else {
    iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);
  }
  if (iVar15 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0);
  }
  if ((*(byte *)(iVar15 + 0x90) & 1) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15);
  }
  iVar18 = *(int *)(iVar15 + 100);
  if (iVar18 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15);
  }
  iVar15 = *param_6;
  if (param_9 == -1) {
    iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15);
    if (iVar10 == -1) {
                    /* WARNING: Subroutine does not return */
      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);
    }
  }
  else {
    iVar10 = iVar15 + param_9;
  }
  if (*(int *)(DAT_005ea7c8 + 8) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10);
  }
  iVar11 = iVar10;
  if (*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d) == '\0') {
    iVar11 = iVar10 + param_11;
    if (param_9 != -1) {
      iVar11 = (iVar10 + param_11) - param_9;
    }
  }
  *param_13 = iVar11;
  iVar10 = piVar3[0x38];
  param_13[1] = iVar18 * 0x100 + uVar17;
  uVar9 = iVar10 - piVar3[0x37] >> 4;
  if (uVar9 <= uVar22) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9);
  }
  local_38 = (undefined4 *)(piVar3[0x37] + uVar22 * 0x10);
  iVar18 = piVar3[0x52];
  local_2c = 0;
  local_28 = 0xffffffff;
  local_24 = 0x80000000;
  local_20 = 0;
  if ((uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8) <= uVar22) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00122c8d to 00122c91 has its CatchHandler @ 00122d02 */
    FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22);
  }
  local_48 = 1 << ((byte)(uVar14 >> 8) & 0x1f) & *(uint *)(iVar18 + (uVar14 >> 0xd) * 4);
  if ((local_48 != 0) && (local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0)) {
                    /* try { // try from 00122161 to 00122165 has its CatchHandler @ 00122d02 */
    local_48 = FUN_00072130(local_38,piVar3,0);
    local_48 = local_48 & 1;
    if (local_48 == 0) {
      local_48 = 1;
    }
    else {
                    /* try { // try from 00122967 to 0012296b has its CatchHandler @ 00122d02 */
      local_20 = FUN_00072130(local_38,piVar3,0);
      local_20 = local_20 & 0xfffffffe;
      local_38 = &local_2c;
    }
  }
  local_40 = &local_2c;
  puVar23 = (uint *)(iVar15 + param_10);
  if (99 < uVar17 - 4) {
LAB_00122ab1:
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00122ac8 to 00122b77 has its CatchHandler @ 00122d02 */
    FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);
  }
  iVar18 = (int)&__DT_PLTGOT + *(int *)(&DAT_00467d20 + (uVar17 - 4) * 4);
  switch(uVar17) {
  case 4:
  case 0x2c:
  case 0x2e:
  case 0x30:
  case 0x32:
  case 0x39:
  case 0x3a:
  case 0x3b:
  case 0x3c:
  case 0x3d:
  case 0x3e:
  case 0x3f:
  case 0x40:
  case 0x41:
  case 0x42:
  case 0x43:
  case 0x44:
  case 0x45:
  case 0x46:
  case 0x47:
  case 0x48:
  case 0x49:
  case 0x4a:
  case 0x4b:
  case 0x4c:
  case 0x4d:
  case 0x4e:
  case 0x4f:
  case 0x50:
  case 0x51:
  case 0x52:
  case 0x53:
  case 0x55:
  case 0x58:
    uVar20 = *(undefined4 *)(iVar5 + 4);
    uVar13 = gettext("cannot handle %s in a relocatable link");
    FUN_0023b810(uVar13,uVar20);
    goto LAB_0012238d;
  case 5:
    uVar9 = (uint)(ushort)*puVar23;
    if ((short)(ushort)*puVar23 < 0) {
      uVar9 = (ushort)*puVar23 - 0x10000;
    }
    iVar15 = FUN_00072130(local_38,piVar3,uVar9);
    *(ushort *)puVar23 = (ushort)iVar15;
    if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;
    break;
  case 6:
    uVar14 = *puVar23;
    uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);
    *puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;
    goto joined_r0x00122297;
  case 7:
    uVar2 = (ushort)*puVar23;
    iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);
    *(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;
    if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;
    break;
  case 8:
    bVar1 = (byte)*puVar23;
    uVar9 = bVar1 - 0x100;
    if (-1 < (char)bVar1) {
      uVar9 = (uint)bVar1;
    }
    iVar15 = FUN_00072130(local_38,piVar3,uVar9);
    *(byte *)puVar23 = (byte)iVar15;
    if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;
    break;
  default:
    goto LAB_00122ab1;
  case 10:
  case 0x10:
  case 0x1e:
    iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);
    goto code_r0x00122342;
  case 0xb:
    uVar9 = *puVar23;
    uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);
    iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);
    *(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;
    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;
    break;
  case 0xf:
  case 0x1b:
  case 0x1c:
  case 0x1d:
    iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);
    goto code_r0x00122342;
  case 0x2a:
    uVar9 = *puVar23;
    uVar14 = uVar9 & 0x7fffffff;
    if ((uVar9 & 0x40000000) != 0) {
      uVar14 = 0x7fffffff;
    }
    uVar14 = FUN_00072130(local_38,piVar3,uVar14);
    *puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;
    if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;
    break;
  case 0x2b:
  case 0x2d:
  case 0x54:
  case 0x56:
    uVar9 = *puVar23;
    bVar1 = *(byte *)(iVar5 + 0x34);
    uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;
    uStack_4c = uVar14 - 0x10000;
    if ((uVar9 >> 4 & 0x8000) == 0) {
      uStack_4c = uVar14;
    }
    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {
      uStack_4c = uStack_4c + local_38[3];
    }
    else {
      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);
      }
      puVar6 = (uint *)local_38[3];
      local_34 = *puVar6;
      if (uStack_4c < 0xffffff00) {
        local_34 = local_34 + uStack_4c;
        uStack_4c = 0;
      }
      uVar14 = local_34 % puVar6[3];
      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);
      if (piVar21 != (int *)0x0) {
        uVar17 = ((int *)*piVar21)[1];
        piVar7 = (int *)*piVar21;
        while (piVar19 = piVar7, uVar17 != local_34) {
          piVar7 = (int *)*piVar19;
          if ((piVar7 == (int *)0x0) ||
             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))
          goto code_r0x00122b36;
        }
        if (*piVar21 != 0) {
          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);
          goto code_r0x001229a9;
        }
      }
code_r0x00122b36:
      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);
      uStack_4c = iVar15 + uStack_4c;
    }
code_r0x001229a9:
    uStack_4c = uStack_4c | local_48;
    *puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;
    goto joined_r0x00122aa6;
  case 0x2f:
  case 0x31:
  case 0x57:
  case 0x59:
    uVar2 = *(ushort *)((int)puVar23 + 2);
    bVar1 = *(byte *)(iVar5 + 0x34);
    uVar8 = (ushort)*puVar23;
    uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;
    uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;
    uStack_4c = uVar9 - 0x10000;
    if ((uVar14 & 0x8000) == 0) {
      uStack_4c = uVar9;
    }
    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {
      uStack_4c = uStack_4c + local_38[3];
    }
    else {
      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));
      }
      puVar6 = (uint *)local_38[3];
      local_34 = *puVar6;
      if (uStack_4c < 0xffffff00) {
        local_34 = local_34 + uStack_4c;
        uStack_4c = 0;
      }
      uVar9 = local_34 % puVar6[3];
      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);
      if (piVar21 != (int *)0x0) {
        uVar14 = ((int *)*piVar21)[1];
        piVar7 = (int *)*piVar21;
        while (piVar19 = piVar7, uVar14 != local_34) {
          piVar7 = (int *)*piVar19;
          if ((piVar7 == (int *)0x0) ||
             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))
          goto code_r0x00122b06;
        }
        if (*piVar21 != 0) {
          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);
          goto code_r0x00122a61;
        }
      }
code_r0x00122b06:
      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);
      uStack_4c = iVar15 + uStack_4c;
    }
code_r0x00122a61:
    uStack_4c = uStack_4c | local_48;
    uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;
    *(ushort *)((int)puVar23 + 2) =
         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;
    *(ushort *)puVar23 =
         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |
         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);
joined_r0x00122aa6:
    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;
    break;
  case 0x33:
    iVar15 = FUN_00112810(0,local_48);
code_r0x00122342:
    if (iVar15 == 1) break;
    if (iVar15 == 0) goto LAB_0012238d;
    if (iVar15 != 2) {
                    /* WARNING: Subroutine does not return */
      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);
    }
    uVar20 = *(undefined4 *)(iVar5 + 4);
    pcVar12 = "unexpected opcode while processing relocation %s";
    goto LAB_0012236a;
  case 0x34:
    uVar2 = (ushort)*puVar23;
    uVar8 = FUN_00072130(local_38,piVar3,
                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |
                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);
    *(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;
    if (uVar8 < 0x7f) goto LAB_0012238d;
    break;
  case 0x35:
    uVar2 = (ushort)*puVar23;
    uVar8 = *(ushort *)((int)puVar23 + 2);
    uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *
                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);
    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {
      uStack_4c = uStack_4c + local_38[3];
    }
    else {
      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);
      }
      puVar6 = (uint *)local_38[3];
      local_34 = *puVar6;
      if (uStack_4c < 0xffffff00) {
        local_34 = local_34 + uStack_4c;
        uStack_4c = 0;
      }
      uVar9 = local_34 % puVar6[3];
      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);
      if (piVar21 != (int *)0x0) {
        uVar14 = ((int *)*piVar21)[1];
        piVar7 = (int *)*piVar21;
        while (piVar19 = piVar7, uVar14 != local_34) {
          piVar7 = (int *)*piVar19;
          if ((piVar7 == (int *)0x0) ||
             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))
          goto code_r0x00122ad6;
        }
        if (*piVar21 != 0) {
          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);
          goto code_r0x001229f9;
        }
      }
code_r0x00122ad6:
      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);
      uStack_4c = iVar15 + uStack_4c;
    }
code_r0x001229f9:
    uStack_4c = uStack_4c | local_48;
    uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);
    uVar14 = (uVar9 & 0x800) << 0xf |
             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;
    if ((int)uStack_4c < 0) {
      uVar14 = uVar14 | 0xa00000;
    }
    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;
    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);
    goto joined_r0x0012230f;
  case 0x36:
    uVar14 = *puVar23;
    uVar2 = *(ushort *)((int)puVar23 + 2);
    uVar17 = FUN_00072130(local_38,piVar3,
                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));
    uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);
    uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;
    if (-1 < (int)uVar17) {
      uVar14 = uVar14 | 0x800000;
    }
    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;
    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);
joined_r0x0012230f:
    if ((int)uVar9 < 0x1000) goto LAB_0012238d;
    break;
  case 0x66:
    uVar14 = *puVar23;
    uVar9 = (uint)(ushort)uVar14 * 2;
    uVar17 = uVar9 & 0x7fe;
    if ((uVar9 & 0x400) != 0) {
      uVar17 = uVar17 - 0x800;
    }
    uVar9 = FUN_00072130(local_38,piVar3,uVar17);
    *(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;
joined_r0x00122297:
    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;
    break;
  case 0x67:
    uVar14 = *puVar23;
    uVar9 = (uint)(ushort)uVar14 * 2;
    uVar17 = uVar9 & 0xff;
    if ((uVar9 & 0x80) != 0) {
      uVar17 = uVar17 - 0x100;
    }
    iVar15 = FUN_00072130(local_38,piVar3,uVar17);
    *(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;
    if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;
  }
  uVar20 = *(undefined4 *)(iVar5 + 4);
  pcVar12 = "relocation overflow in %s";
LAB_0012236a:
  uVar13 = gettext(pcVar12);
  FUN_0023bd50(param_4,param_7,*param_6,0,uVar13,uVar20);
LAB_0012238d:
  FUN_00072240(local_40);
  return;
}


CALL 0x00074f02
ADD EAX,0x4c80bb
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x5c
CMP dword ptr [EBP + 0x10],0x9
MOV dword ptr [EBP + -0x2c],EAX
JNZ 0x00122c1d
MOV EAX,dword ptr [EBP + 0xc]
MOV EDI,dword ptr [EBP + -0x2c]
MOV ESI,dword ptr [EAX + 0x8]
LEA ECX,[EDI + 0xffa86d40]
MOV EAX,dword ptr [ESI]
MOV EDX,dword ptr [EAX + 0x8c]
CMP EDX,ECX
JNZ 0x00122928
SUB ESP,0xc
PUSH ESI
CALL dword ptr [EAX + 0xbc]
ADD ESP,0x10
MOV EDI,dword ptr [EBP + 0x14]
MOV EDX,dword ptr [EBP + -0x2c]
MOV ECX,dword ptr [EDI + 0x4]
MOV EDX,dword ptr [EDX + 0x11c8]
MOVZX EBX,CL
MOV EDI,ECX
MOV dword ptr [EBP + -0x30],EBX
MOV EBX,dword ptr [EDX + EBX*0x4]
SHR EDI,0x8
MOV dword ptr [EBP + -0x38],EBX
TEST EBX,EBX
JZ 0x00122983
CMP dword ptr [EBX + 0x1c],0x1
JNZ 0x00122983
TEST byte ptr [EBX + 0x34],0x2
JZ 0x00122983
CMP EAX,EDI
JBE 0x00122c38
MOV EDX,dword ptr [ESI + 0xdc]
MOV EAX,dword ptr [ESI + 0xe0]
SUB EAX,EDX
SAR EAX,0x4
CMP EDI,EAX
JNC 0x00122b78
MOV EAX,EDI
SHL EAX,0x4
ADD EDX,EAX
MOV dword ptr [EBP + -0x34],EAX
MOV EAX,dword ptr [EDX + 0x8]
AND EAX,0x7ffffff
TEST byte ptr [EDX + 0xb],0x8
JZ 0x00122b94
MOV EDX,dword ptr [ESI]
MOV EBX,dword ptr [EBP + -0x2c]
MOV EDX,dword ptr [EDX + 0x60]
LEA EBX,[EBX + 0xffa87550]
CMP EDX,EBX
JNZ 0x00122940
MOV EBX,dword ptr [ESI + 0x38]
MOV EDX,dword ptr [ESI + 0x3c]
SUB EDX,EBX
SAR EDX,0x2
CMP EAX,EDX
JNC 0x00122c92
MOV EAX,dword ptr [EBX + EAX*0x4]
TEST EAX,EAX
JZ 0x00122bb0
TEST byte ptr [EAX + 0x90],0x1
JZ 0x00122bcc
MOV EDX,dword ptr [EAX + 0x64]
TEST EDX,EDX
JZ 0x00122be8
MOV EAX,dword ptr [EBP + 0x14]
CMP dword ptr [EBP + 0x20],-0x1
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + -0x40],EAX
JZ 0x00122190
ADD EAX,dword ptr [EBP + 0x20]
MOV EBX,dword ptr [EBP + -0x2c]
LEA EBX,[EBX + 0x7c8]
MOV EBX,dword ptr [EBX]
MOV EBX,dword ptr [EBX + 0x8]
TEST EBX,EBX
JZ 0x00122c04
CMP byte ptr [EBX + 0x318d],0x0
JNZ 0x00122094
ADD EAX,dword ptr [EBP + 0x28]
MOV EBX,EAX
SUB EBX,dword ptr [EBP + 0x20]
CMP dword ptr [EBP + 0x20],-0x1
CMOVNZ EAX,EBX
MOV EBX,dword ptr [EBP + 0x30]
SHL EDX,0x8
ADD EDX,dword ptr [EBP + -0x30]
MOV dword ptr [EBX],EAX
MOV EAX,dword ptr [ESI + 0xe0]
MOV dword ptr [EBX + 0x4],EDX
MOV EDX,dword ptr [ESI + 0xdc]
SUB EAX,EDX
SAR EAX,0x4
CMP EAX,EDI
JBE 0x00122c54
ADD EDX,dword ptr [EBP + -0x34]
MOV EBX,dword ptr [ESI + 0x148]
MOV dword ptr [EBP + -0x28],0x0
MOV dword ptr [EBP + -0x34],EDX
MOV EDX,dword ptr [ESI + 0x150]
MOV EAX,dword ptr [ESI + 0x154]
SUB EAX,dword ptr [ESI + 0x14c]
MOV dword ptr [EBP + -0x24],0xffffffff
SUB EDX,EBX
MOV dword ptr [EBP + -0x20],0x80000000
LEA EAX,[EAX + EDX*0x8]
MOV dword ptr [EBP + -0x1c],0x0
CMP EDI,EAX
JNC 0x00122c70
SHR ECX,0xd
MOV EAX,0x1
MOV EDX,ECX
MOV ECX,EDI
SHL EAX,CL
AND EAX,dword ptr [EBX + EDX*0x4]
MOV dword ptr [EBP + -0x44],EAX
JZ 0x00122180
LEA EAX,[EBP + -0x28]
MOV dword ptr [EBP + -0x44],0x1
MOV dword ptr [EBP + -0x3c],EAX
MOV EAX,dword ptr [EBP + -0x38]
TEST byte ptr [EAX + 0x34],0x40
JNZ 0x00122158
MOV EAX,dword ptr [EBP + -0x30]
MOV EDI,dword ptr [EBP + -0x40]
ADD EDI,dword ptr [EBP + 0x24]
SUB EAX,0x4
CMP EAX,0x63
JA 0x00122ab1
MOV ECX,dword ptr [EBP + -0x2c]
MOV EBX,dword ptr [ECX + EAX*0x4 + 0xffe7dd20]
ADD EBX,ECX
JMP EBX
SUB ESP,0x4
PUSH 0x0
PUSH ESI
PUSH dword ptr [EBP + -0x34]
CALL 0x00072130
ADD ESP,0x10
AND EAX,0x1
MOV dword ptr [EBP + -0x44],EAX
JNZ 0x00122958
MOV dword ptr [EBP + -0x44],0x1
LEA ESI,[ESI]
LEA EAX,[EBP + -0x28]
MOV dword ptr [EBP + -0x3c],EAX
JMP 0x0012212e
MOV EAX,dword ptr [EBP + 0xc]
MOV EBX,dword ptr [EBP + -0x2c]
PUSH dword ptr [EBP + -0x40]
MOV dword ptr [EBP + -0x44],EDX
PUSH dword ptr [EAX + 0x18]
PUSH ESI
PUSH dword ptr [EBP + 0x1c]
MOV dword ptr [EBP + -0x3c],ECX
CALL 0x002cda80
ADD ESP,0x10
MOV ECX,dword ptr [EBP + -0x3c]
MOV EDX,dword ptr [EBP + -0x44]
CMP EAX,-0x1
JNZ 0x00122066
MOV EBX,dword ptr [EBP + -0x2c]
PUSH EAX
LEA EAX,[EBX + 0xffe7f4b4]
PUSH EAX
LEA EAX,[EBX + 0xffe7d346]
PUSH 0x290f
PUSH EAX
CALL 0x002446e0
SUB ESP,0xc
PUSH ESI
CALL EDX
ADD ESP,0x10
JMP 0x00121f8c
SUB ESP,0x8
MOV dword ptr [EBP + -0x3c],ECX
PUSH EAX
PUSH ESI
CALL EDX
MOV ECX,dword ptr [EBP + -0x3c]
ADD ESP,0x10
JMP 0x00122031
SUB ESP,0x4
LEA EAX,[EBP + -0x28]
PUSH 0x0
PUSH ESI
PUSH dword ptr [EBP + -0x34]
MOV dword ptr [EBP + -0x3c],EAX
CALL 0x00072130
AND EAX,0xfffffffe
ADD ESP,0x10
MOV dword ptr [EBP + -0x1c],EAX
LEA EAX,[EBP + -0x28]
MOV dword ptr [EBP + -0x3c],EAX
MOV dword ptr [EBP + -0x34],EAX
JMP 0x0012212e
MOV EBX,dword ptr [EBP + -0x2c]
PUSH EDI
LEA EAX,[EBX + 0xffe7f4b4]
PUSH EAX
LEA EAX,[EBX + 0xffe7d346]
PUSH 0x28ef
PUSH EAX
CALL 0x002446e0
PUSH EBX
MOV EBX,dword ptr [EBP + -0x2c]
LEA EAX,[EBX + 0xffe7f4b4]
PUSH EAX
LEA EAX,[EBX + 0xffe7d346]
PUSH 0x29cf
PUSH EAX
CALL 0x002446e0
PUSH EBX
MOV EBX,dword ptr [EBP + -0x2c]
LEA EAX,[EBX + 0xffe7f498]
PUSH EAX
LEA EAX,[EBX + 0xffe63385]
PUSH 0x8db
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x2c]
PUSH ECX
LEA EAX,[EBX + 0xffe7f4b4]
PUSH EAX
LEA EAX,[EBX + 0xffe7d346]
PUSH 0x28fb
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x2c]
PUSH EAX
LEA EAX,[EBX + 0xffe7f4b4]
PUSH EAX
LEA EAX,[EBX + 0xffe7d346]
PUSH 0x28fd
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x2c]
PUSH EAX
LEA EAX,[EBX + 0xffe7f4b4]
PUSH EAX
LEA EAX,[EBX + 0xffe7d346]
PUSH 0x28fe
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x2c]
PUSH EAX
LEA EAX,[EBX + 0xffe80480]
PUSH EAX
LEA EAX,[EBX + 0xffe6335d]
PUSH 0xd81
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x2c]
PUSH EAX
LEA EAX,[EBX + 0xffe80478]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
MOV EBX,EAX
LEA EAX,[EAX + 0xffe7f4b4]
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xffe7d346]
PUSH 0x28db
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x2c]
PUSH ESI
LEA EAX,[EBX + 0xffe7f4b4]
PUSH EAX
LEA EAX,[EBX + 0xffe7d346]
PUSH 0x28f3
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x2c]
PUSH EAX
LEA EAX,[EBX + 0xffe806ac]
PUSH EAX
LEA EAX,[EBX + 0xffe63385]
PUSH 0x8c1
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x2c]
PUSH EDI
LEA EAX,[EBX + 0xffe7f478]
PUSH EAX
LEA EAX,[EBX + 0xffe7d346]
PUSH 0x5f8
PUSH EAX
LEA EAX,[EBP + -0x28]
MOV dword ptr [EBP + -0x3c],EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x2c]
PUSH EDX
LEA EAX,[EBX + 0xffe804a4]
PUSH EAX
LEA EAX,[EBX + 0xffe63385]
PUSH 0x5c8
PUSH EAX
CALL 0x002446e0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid __regparm2\nFUN_00121f40(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n            int *param_6,undefined4 param_7,undefined4 param_8,int param_9,int param_10,int param_11\n            ,undefined4 param_12,int *param_13)\n\n{\n  byte bVar1;\n  ushort uVar2;\n  int *piVar3;\n  code *pcVar4;\n  int iVar5;\n  uint *puVar6;\n  int *piVar7;\n  ushort uVar8;\n  uint uVar9;\n  int iVar10;\n  int iVar11;\n  char *pcVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  int iVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  int *piVar21;\n  uint uVar22;\n  uint *puVar23;\n  uint uStack_4c;\n  uint local_48;\n  undefined4 *local_40;\n  undefined4 *local_38;\n  uint local_34;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  uint local_20;\n  \n  if (param_5 != 9) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2);\n  }\n  piVar3 = *(int **)(param_4 + 8);\n  pcVar4 = *(code **)(*piVar3 + 0x8c);\n  if (pcVar4 == FUN_00070d40) {\n    uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    uVar9 = (*pcVar4)(piVar3);\n  }\n  uVar14 = param_6[1];\n  uVar17 = uVar14 & 0xff;\n  iVar5 = *(int *)(DAT_005eb1c8 + uVar17 * 4);\n  uVar22 = uVar14 >> 8;\n  if (((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)) || ((*(byte *)(iVar5 + 0x34) & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22);\n  }\n  if (uVar9 <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3);\n  }\n  if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5);\n  }\n  iVar15 = piVar3[0x37] + uVar22 * 0x10;\n  uVar9 = *(uint *)(iVar15 + 8) & 0x7ffffff;\n  if ((*(byte *)(iVar15 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14);\n  }\n  if (*(code **)(*piVar3 + 0x60) == FUN_00071550) {\n    uVar16 = piVar3[0xf] - piVar3[0xe] >> 2;\n    if (uVar16 <= uVar9) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);\n    }\n    iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4);\n  }\n  else {\n    iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);\n  }\n  if (iVar15 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0);\n  }\n  if ((*(byte *)(iVar15 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15);\n  }\n  iVar18 = *(int *)(iVar15 + 100);\n  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15);\n  }\n  iVar15 = *param_6;\n  if (param_9 == -1) {\n    iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15);\n    if (iVar10 == -1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);\n    }\n  }\n  else {\n    iVar10 = iVar15 + param_9;\n  }\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10);\n  }\n  iVar11 = iVar10;\n  if (*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d) == '\0') {\n    iVar11 = iVar10 + param_11;\n    if (param_9 != -1) {\n      iVar11 = (iVar10 + param_11) - param_9;\n    }\n  }\n  *param_13 = iVar11;\n  iVar10 = piVar3[0x38];\n  param_13[1] = iVar18 * 0x100 + uVar17;\n  uVar9 = iVar10 - piVar3[0x37] >> 4;\n  if (uVar9 <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9);\n  }\n  local_38 = (undefined4 *)(piVar3[0x37] + uVar22 * 0x10);\n  iVar18 = piVar3[0x52];\n  local_2c = 0;\n  local_28 = 0xffffffff;\n  local_24 = 0x80000000;\n  local_20 = 0;\n  if ((uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00122c8d to 00122c91 has its CatchHandler @ 00122d02 */\n    FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22);\n  }\n  local_48 = 1 << ((byte)(uVar14 >> 8) & 0x1f) & *(uint *)(iVar18 + (uVar14 >> 0xd) * 4);\n  if ((local_48 != 0) && (local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0)) {\n                    /* try { // try from 00122161 to 00122165 has its CatchHandler @ 00122d02 */\n    local_48 = FUN_00072130(local_38,piVar3,0);\n    local_48 = local_48 & 1;\n    if (local_48 == 0) {\n      local_48 = 1;\n    }\n    else {\n                    /* try { // try from 00122967 to 0012296b has its CatchHandler @ 00122d02 */\n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }\n  }\n  local_40 = &local_2c;\n  puVar23 = (uint *)(iVar15 + param_10);\n  if (99 < uVar17 - 4) {\nLAB_00122ab1:\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00122ac8 to 00122b77 has its CatchHandler @ 00122d02 */\n    FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);\n  }\n  iVar18 = (int)&__DT_PLTGOT + *(int *)(&DAT_00467d20 + (uVar17 - 4) * 4);\n  switch(uVar17) {\n  case 4:\n  case 0x2c:\n  case 0x2e:\n  case 0x30:\n  case 0x32:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x4c:\n  case 0x4d:\n  case 0x4e:\n  case 0x4f:\n  case 0x50:\n  case 0x51:\n  case 0x52:\n  case 0x53:\n  case 0x55:\n  case 0x58:\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    uVar13 = gettext("cannot handle %s in a relocatable link");\n    FUN_0023b810(uVar13,uVar20);\n    goto LAB_0012238d;\n  case 5:\n    uVar9 = (uint)(ushort)*puVar23;\n    if ((short)(ushort)*puVar23 < 0) {\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(ushort *)puVar23 = (ushort)iVar15;\n    if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;\n    break;\n  case 6:\n    uVar14 = *puVar23;\n    uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);\n    *puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;\n    goto joined_r0x00122297;\n  case 7:\n    uVar2 = (ushort)*puVar23;\n    iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);\n    *(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;\n    if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;\n    break;\n  case 8:\n    bVar1 = (byte)*puVar23;\n    uVar9 = bVar1 - 0x100;\n    if (-1 < (char)bVar1) {\n      uVar9 = (uint)bVar1;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(byte *)puVar23 = (byte)iVar15;\n    if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;\n    break;\n  default:\n    goto LAB_00122ab1;\n  case 10:\n  case 0x10:\n  case 0x1e:\n    iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0xb:\n    uVar9 = *puVar23;\n    uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);\n    iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);\n    *(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;\n    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;\n    break;\n  case 0xf:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n    iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0x2a:\n    uVar9 = *puVar23;\n    uVar14 = uVar9 & 0x7fffffff;\n    if ((uVar9 & 0x40000000) != 0) {\n      uVar14 = 0x7fffffff;\n    }\n    uVar14 = FUN_00072130(local_38,piVar3,uVar14);\n    *puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;\n    if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar9 = *puVar23;\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;\n    uStack_4c = uVar14 - 0x10000;\n    if ((uVar9 >> 4 & 0x8000) == 0) {\n      uStack_4c = uVar14;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229a9:\n    uStack_4c = uStack_4c | local_48;\n    *puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar8 = (ushort)*puVar23;\n    uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;\n    uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;\n    uStack_4c = uVar9 - 0x10000;\n    if ((uVar14 & 0x8000) == 0) {\n      uStack_4c = uVar9;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x00122a61:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;\n    *(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;\n    *(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);\njoined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;\n    break;\n  case 0x33:\n    iVar15 = FUN_00112810(0,local_48);\ncode_r0x00122342:\n    if (iVar15 == 1) break;\n    if (iVar15 == 0) goto LAB_0012238d;\n    if (iVar15 != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    pcVar12 = "unexpected opcode while processing relocation %s";\n    goto LAB_0012236a;\n  case 0x34:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);\n    *(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;\n    if (uVar8 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = *(ushort *)((int)puVar23 + 2);\n    uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229f9:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);\n    uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;\n    if ((int)uStack_4c < 0) {\n      uVar14 = uVar14 | 0xa00000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar14 = *puVar23;\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));\n    uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);\n    uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;\n    if (-1 < (int)uVar17) {\n      uVar14 = uVar14 | 0x800000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\njoined_r0x0012230f:\n    if ((int)uVar9 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x66:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0x7fe;\n    if ((uVar9 & 0x400) != 0) {\n      uVar17 = uVar17 - 0x800;\n    }\n    uVar9 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;\njoined_r0x00122297:\n    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x67:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0xff;\n    if ((uVar9 & 0x80) != 0) {\n      uVar17 = uVar17 - 0x100;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;\n    if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;\n  }\n  uVar20 = *(undefined4 *)(iVar5 + 4);\n  pcVar12 = "relocation overflow in %s";\nLAB_0012236a:\n  uVar13 = gettext(pcVar12);\n  FUN_0023bd50(param_4,param_7,*param_6,0,uVar13,uVar20);\nLAB_0012238d:\n  FUN_00072240(local_40);\n  return;\n}\n\n" comment (function_definition "void __regparm2\nFUN_00121f40(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n            int *param_6,undefined4 param_7,undefined4 param_8,int param_9,int param_10,int param_11\n            ,undefined4 param_12,int *param_13)\n\n{\n  byte bVar1;\n  ushort uVar2;\n  int *piVar3;\n  code *pcVar4;\n  int iVar5;\n  uint *puVar6;\n  int *piVar7;\n  ushort uVar8;\n  uint uVar9;\n  int iVar10;\n  int iVar11;\n  char *pcVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  int iVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  int *piVar21;\n  uint uVar22;\n  uint *puVar23;\n  uint uStack_4c;\n  uint local_48;\n  undefined4 *local_40;\n  undefined4 *local_38;\n  uint local_34;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  uint local_20;\n  \n  if (param_5 != 9) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2);\n  }\n  piVar3 = *(int **)(param_4 + 8);\n  pcVar4 = *(code **)(*piVar3 + 0x8c);\n  if (pcVar4 == FUN_00070d40) {\n    uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    uVar9 = (*pcVar4)(piVar3);\n  }\n  uVar14 = param_6[1];\n  uVar17 = uVar14 & 0xff;\n  iVar5 = *(int *)(DAT_005eb1c8 + uVar17 * 4);\n  uVar22 = uVar14 >> 8;\n  if (((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)) || ((*(byte *)(iVar5 + 0x34) & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22);\n  }\n  if (uVar9 <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3);\n  }\n  if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5);\n  }\n  iVar15 = piVar3[0x37] + uVar22 * 0x10;\n  uVar9 = *(uint *)(iVar15 + 8) & 0x7ffffff;\n  if ((*(byte *)(iVar15 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14);\n  }\n  if (*(code **)(*piVar3 + 0x60) == FUN_00071550) {\n    uVar16 = piVar3[0xf] - piVar3[0xe] >> 2;\n    if (uVar16 <= uVar9) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);\n    }\n    iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4);\n  }\n  else {\n    iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);\n  }\n  if (iVar15 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0);\n  }\n  if ((*(byte *)(iVar15 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15);\n  }\n  iVar18 = *(int *)(iVar15 + 100);\n  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15);\n  }\n  iVar15 = *param_6;\n  if (param_9 == -1) {\n    iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15);\n    if (iVar10 == -1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);\n    }\n  }\n  else {\n    iVar10 = iVar15 + param_9;\n  }\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10);\n  }\n  iVar11 = iVar10;\n  if (*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d) == '\0') {\n    iVar11 = iVar10 + param_11;\n    if (param_9 != -1) {\n      iVar11 = (iVar10 + param_11) - param_9;\n    }\n  }\n  *param_13 = iVar11;\n  iVar10 = piVar3[0x38];\n  param_13[1] = iVar18 * 0x100 + uVar17;\n  uVar9 = iVar10 - piVar3[0x37] >> 4;\n  if (uVar9 <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9);\n  }\n  local_38 = (undefined4 *)(piVar3[0x37] + uVar22 * 0x10);\n  iVar18 = piVar3[0x52];\n  local_2c = 0;\n  local_28 = 0xffffffff;\n  local_24 = 0x80000000;\n  local_20 = 0;\n  if ((uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00122c8d to 00122c91 has its CatchHandler @ 00122d02 */\n    FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22);\n  }\n  local_48 = 1 << ((byte)(uVar14 >> 8) & 0x1f) & *(uint *)(iVar18 + (uVar14 >> 0xd) * 4);\n  if ((local_48 != 0) && (local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0)) {\n                    /* try { // try from 00122161 to 00122165 has its CatchHandler @ 00122d02 */\n    local_48 = FUN_00072130(local_38,piVar3,0);\n    local_48 = local_48 & 1;\n    if (local_48 == 0) {\n      local_48 = 1;\n    }\n    else {\n                    /* try { // try from 00122967 to 0012296b has its CatchHandler @ 00122d02 */\n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }\n  }\n  local_40 = &local_2c;\n  puVar23 = (uint *)(iVar15 + param_10);\n  if (99 < uVar17 - 4) {\nLAB_00122ab1:\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00122ac8 to 00122b77 has its CatchHandler @ 00122d02 */\n    FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);\n  }\n  iVar18 = (int)&__DT_PLTGOT + *(int *)(&DAT_00467d20 + (uVar17 - 4) * 4);\n  switch(uVar17) {\n  case 4:\n  case 0x2c:\n  case 0x2e:\n  case 0x30:\n  case 0x32:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x4c:\n  case 0x4d:\n  case 0x4e:\n  case 0x4f:\n  case 0x50:\n  case 0x51:\n  case 0x52:\n  case 0x53:\n  case 0x55:\n  case 0x58:\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    uVar13 = gettext("cannot handle %s in a relocatable link");\n    FUN_0023b810(uVar13,uVar20);\n    goto LAB_0012238d;\n  case 5:\n    uVar9 = (uint)(ushort)*puVar23;\n    if ((short)(ushort)*puVar23 < 0) {\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(ushort *)puVar23 = (ushort)iVar15;\n    if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;\n    break;\n  case 6:\n    uVar14 = *puVar23;\n    uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);\n    *puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;\n    goto joined_r0x00122297;\n  case 7:\n    uVar2 = (ushort)*puVar23;\n    iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);\n    *(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;\n    if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;\n    break;\n  case 8:\n    bVar1 = (byte)*puVar23;\n    uVar9 = bVar1 - 0x100;\n    if (-1 < (char)bVar1) {\n      uVar9 = (uint)bVar1;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(byte *)puVar23 = (byte)iVar15;\n    if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;\n    break;\n  default:\n    goto LAB_00122ab1;\n  case 10:\n  case 0x10:\n  case 0x1e:\n    iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0xb:\n    uVar9 = *puVar23;\n    uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);\n    iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);\n    *(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;\n    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;\n    break;\n  case 0xf:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n    iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0x2a:\n    uVar9 = *puVar23;\n    uVar14 = uVar9 & 0x7fffffff;\n    if ((uVar9 & 0x40000000) != 0) {\n      uVar14 = 0x7fffffff;\n    }\n    uVar14 = FUN_00072130(local_38,piVar3,uVar14);\n    *puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;\n    if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar9 = *puVar23;\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;\n    uStack_4c = uVar14 - 0x10000;\n    if ((uVar9 >> 4 & 0x8000) == 0) {\n      uStack_4c = uVar14;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229a9:\n    uStack_4c = uStack_4c | local_48;\n    *puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar8 = (ushort)*puVar23;\n    uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;\n    uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;\n    uStack_4c = uVar9 - 0x10000;\n    if ((uVar14 & 0x8000) == 0) {\n      uStack_4c = uVar9;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x00122a61:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;\n    *(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;\n    *(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);\njoined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;\n    break;\n  case 0x33:\n    iVar15 = FUN_00112810(0,local_48);\ncode_r0x00122342:\n    if (iVar15 == 1) break;\n    if (iVar15 == 0) goto LAB_0012238d;\n    if (iVar15 != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    pcVar12 = "unexpected opcode while processing relocation %s";\n    goto LAB_0012236a;\n  case 0x34:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);\n    *(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;\n    if (uVar8 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = *(ushort *)((int)puVar23 + 2);\n    uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229f9:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);\n    uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;\n    if ((int)uStack_4c < 0) {\n      uVar14 = uVar14 | 0xa00000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar14 = *puVar23;\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));\n    uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);\n    uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;\n    if (-1 < (int)uVar17) {\n      uVar14 = uVar14 | 0x800000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\njoined_r0x0012230f:\n    if ((int)uVar9 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x66:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0x7fe;\n    if ((uVar9 & 0x400) != 0) {\n      uVar17 = uVar17 - 0x800;\n    }\n    uVar9 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;\njoined_r0x00122297:\n    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x67:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0xff;\n    if ((uVar9 & 0x80) != 0) {\n      uVar17 = uVar17 - 0x100;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;\n    if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;\n  }\n  uVar20 = *(undefined4 *)(iVar5 + 4);\n  pcVar12 = "relocation overflow in %s";\nLAB_0012236a:\n  uVar13 = gettext(pcVar12);\n  FUN_0023bd50(param_4,param_7,*param_6,0,uVar13,uVar20);\nLAB_0012238d:\n  FUN_00072240(local_40);\n  return;\n}" primitive_type (ERROR "__regparm2" identifier) (function_declarator "FUN_00121f40(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n            int *param_6,undefined4 param_7,undefined4 param_8,int param_9,int param_10,int param_11\n            ,undefined4 param_12,int *param_13)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n            int *param_6,undefined4 param_7,undefined4 param_8,int param_9,int param_10,int param_11\n            ,undefined4 param_12,int *param_13)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "int param_9" primitive_type identifier) , (parameter_declaration "int param_10" primitive_type identifier) , (parameter_declaration "int param_11" primitive_type identifier) , (parameter_declaration "undefined4 param_12" type_identifier identifier) , (parameter_declaration "int *param_13" primitive_type (pointer_declarator "*param_13" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  ushort uVar2;\n  int *piVar3;\n  code *pcVar4;\n  int iVar5;\n  uint *puVar6;\n  int *piVar7;\n  ushort uVar8;\n  uint uVar9;\n  int iVar10;\n  int iVar11;\n  char *pcVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  int iVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  int *piVar21;\n  uint uVar22;\n  uint *puVar23;\n  uint uStack_4c;\n  uint local_48;\n  undefined4 *local_40;\n  undefined4 *local_38;\n  uint local_34;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  uint local_20;\n  \n  if (param_5 != 9) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2);\n  }\n  piVar3 = *(int **)(param_4 + 8);\n  pcVar4 = *(code **)(*piVar3 + 0x8c);\n  if (pcVar4 == FUN_00070d40) {\n    uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    uVar9 = (*pcVar4)(piVar3);\n  }\n  uVar14 = param_6[1];\n  uVar17 = uVar14 & 0xff;\n  iVar5 = *(int *)(DAT_005eb1c8 + uVar17 * 4);\n  uVar22 = uVar14 >> 8;\n  if (((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)) || ((*(byte *)(iVar5 + 0x34) & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22);\n  }\n  if (uVar9 <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3);\n  }\n  if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5);\n  }\n  iVar15 = piVar3[0x37] + uVar22 * 0x10;\n  uVar9 = *(uint *)(iVar15 + 8) & 0x7ffffff;\n  if ((*(byte *)(iVar15 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14);\n  }\n  if (*(code **)(*piVar3 + 0x60) == FUN_00071550) {\n    uVar16 = piVar3[0xf] - piVar3[0xe] >> 2;\n    if (uVar16 <= uVar9) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);\n    }\n    iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4);\n  }\n  else {\n    iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);\n  }\n  if (iVar15 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0);\n  }\n  if ((*(byte *)(iVar15 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15);\n  }\n  iVar18 = *(int *)(iVar15 + 100);\n  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15);\n  }\n  iVar15 = *param_6;\n  if (param_9 == -1) {\n    iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15);\n    if (iVar10 == -1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);\n    }\n  }\n  else {\n    iVar10 = iVar15 + param_9;\n  }\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10);\n  }\n  iVar11 = iVar10;\n  if (*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d) == '\0') {\n    iVar11 = iVar10 + param_11;\n    if (param_9 != -1) {\n      iVar11 = (iVar10 + param_11) - param_9;\n    }\n  }\n  *param_13 = iVar11;\n  iVar10 = piVar3[0x38];\n  param_13[1] = iVar18 * 0x100 + uVar17;\n  uVar9 = iVar10 - piVar3[0x37] >> 4;\n  if (uVar9 <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9);\n  }\n  local_38 = (undefined4 *)(piVar3[0x37] + uVar22 * 0x10);\n  iVar18 = piVar3[0x52];\n  local_2c = 0;\n  local_28 = 0xffffffff;\n  local_24 = 0x80000000;\n  local_20 = 0;\n  if ((uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00122c8d to 00122c91 has its CatchHandler @ 00122d02 */\n    FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22);\n  }\n  local_48 = 1 << ((byte)(uVar14 >> 8) & 0x1f) & *(uint *)(iVar18 + (uVar14 >> 0xd) * 4);\n  if ((local_48 != 0) && (local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0)) {\n                    /* try { // try from 00122161 to 00122165 has its CatchHandler @ 00122d02 */\n    local_48 = FUN_00072130(local_38,piVar3,0);\n    local_48 = local_48 & 1;\n    if (local_48 == 0) {\n      local_48 = 1;\n    }\n    else {\n                    /* try { // try from 00122967 to 0012296b has its CatchHandler @ 00122d02 */\n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }\n  }\n  local_40 = &local_2c;\n  puVar23 = (uint *)(iVar15 + param_10);\n  if (99 < uVar17 - 4) {\nLAB_00122ab1:\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00122ac8 to 00122b77 has its CatchHandler @ 00122d02 */\n    FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);\n  }\n  iVar18 = (int)&__DT_PLTGOT + *(int *)(&DAT_00467d20 + (uVar17 - 4) * 4);\n  switch(uVar17) {\n  case 4:\n  case 0x2c:\n  case 0x2e:\n  case 0x30:\n  case 0x32:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x4c:\n  case 0x4d:\n  case 0x4e:\n  case 0x4f:\n  case 0x50:\n  case 0x51:\n  case 0x52:\n  case 0x53:\n  case 0x55:\n  case 0x58:\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    uVar13 = gettext("cannot handle %s in a relocatable link");\n    FUN_0023b810(uVar13,uVar20);\n    goto LAB_0012238d;\n  case 5:\n    uVar9 = (uint)(ushort)*puVar23;\n    if ((short)(ushort)*puVar23 < 0) {\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(ushort *)puVar23 = (ushort)iVar15;\n    if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;\n    break;\n  case 6:\n    uVar14 = *puVar23;\n    uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);\n    *puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;\n    goto joined_r0x00122297;\n  case 7:\n    uVar2 = (ushort)*puVar23;\n    iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);\n    *(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;\n    if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;\n    break;\n  case 8:\n    bVar1 = (byte)*puVar23;\n    uVar9 = bVar1 - 0x100;\n    if (-1 < (char)bVar1) {\n      uVar9 = (uint)bVar1;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(byte *)puVar23 = (byte)iVar15;\n    if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;\n    break;\n  default:\n    goto LAB_00122ab1;\n  case 10:\n  case 0x10:\n  case 0x1e:\n    iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0xb:\n    uVar9 = *puVar23;\n    uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);\n    iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);\n    *(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;\n    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;\n    break;\n  case 0xf:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n    iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0x2a:\n    uVar9 = *puVar23;\n    uVar14 = uVar9 & 0x7fffffff;\n    if ((uVar9 & 0x40000000) != 0) {\n      uVar14 = 0x7fffffff;\n    }\n    uVar14 = FUN_00072130(local_38,piVar3,uVar14);\n    *puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;\n    if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar9 = *puVar23;\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;\n    uStack_4c = uVar14 - 0x10000;\n    if ((uVar9 >> 4 & 0x8000) == 0) {\n      uStack_4c = uVar14;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229a9:\n    uStack_4c = uStack_4c | local_48;\n    *puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar8 = (ushort)*puVar23;\n    uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;\n    uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;\n    uStack_4c = uVar9 - 0x10000;\n    if ((uVar14 & 0x8000) == 0) {\n      uStack_4c = uVar9;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x00122a61:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;\n    *(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;\n    *(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);\njoined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;\n    break;\n  case 0x33:\n    iVar15 = FUN_00112810(0,local_48);\ncode_r0x00122342:\n    if (iVar15 == 1) break;\n    if (iVar15 == 0) goto LAB_0012238d;\n    if (iVar15 != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    pcVar12 = "unexpected opcode while processing relocation %s";\n    goto LAB_0012236a;\n  case 0x34:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);\n    *(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;\n    if (uVar8 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = *(ushort *)((int)puVar23 + 2);\n    uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229f9:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);\n    uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;\n    if ((int)uStack_4c < 0) {\n      uVar14 = uVar14 | 0xa00000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar14 = *puVar23;\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));\n    uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);\n    uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;\n    if (-1 < (int)uVar17) {\n      uVar14 = uVar14 | 0x800000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\njoined_r0x0012230f:\n    if ((int)uVar9 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x66:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0x7fe;\n    if ((uVar9 & 0x400) != 0) {\n      uVar17 = uVar17 - 0x800;\n    }\n    uVar9 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;\njoined_r0x00122297:\n    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x67:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0xff;\n    if ((uVar9 & 0x80) != 0) {\n      uVar17 = uVar17 - 0x100;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;\n    if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;\n  }\n  uVar20 = *(undefined4 *)(iVar5 + 4);\n  pcVar12 = "relocation overflow in %s";\nLAB_0012236a:\n  uVar13 = gettext(pcVar12);\n  FUN_0023bd50(param_4,param_7,*param_6,0,uVar13,uVar20);\nLAB_0012238d:\n  FUN_00072240(local_40);\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "ushort uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "uint *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "uint uStack_4c;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "undefined4 *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "undefined4 *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "uint local_20;" type_identifier identifier ;) (if_statement "if (param_5 != 9) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2);\n  }" if (parenthesized_expression "(param_5 != 9)" ( (binary_expression "param_5 != 9" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2);\n  }" { comment (expression_statement "FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2)" identifier (argument_list "("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") , identifier ))) ;) })) (expression_statement "piVar3 = *(int **)(param_4 + 8);" (assignment_expression "piVar3 = *(int **)(param_4 + 8)" identifier = (pointer_expression "*(int **)(param_4 + 8)" * (cast_expression "(int **)(param_4 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0x8c);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0x8c)" identifier = (pointer_expression "*(code **)(*piVar3 + 0x8c)" * (cast_expression "(code **)(*piVar3 + 0x8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0x8c)" ( (binary_expression "*piVar3 + 0x8c" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_00070d40) {\n    uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    uVar9 = (*pcVar4)(piVar3);\n  }" if (parenthesized_expression "(pcVar4 == FUN_00070d40)" ( (binary_expression "pcVar4 == FUN_00070d40" identifier == identifier) )) (compound_statement "{\n    uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }" { (expression_statement "uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3);" (assignment_expression "uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xbc))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xbc))" ( (pointer_expression "**(code **)(*piVar3 + 0xbc)" * (pointer_expression "*(code **)(*piVar3 + 0xbc)" * (cast_expression "(code **)(*piVar3 + 0xbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xbc)" ( (binary_expression "*piVar3 + 0xbc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n    uVar9 = (*pcVar4)(piVar3);\n  }" else (compound_statement "{\n    uVar9 = (*pcVar4)(piVar3);\n  }" { (expression_statement "uVar9 = (*pcVar4)(piVar3);" (assignment_expression "uVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "uVar14 = param_6[1];" (assignment_expression "uVar14 = param_6[1]" identifier = (subscript_expression "param_6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = uVar14 & 0xff;" (assignment_expression "uVar17 = uVar14 & 0xff" identifier = (binary_expression "uVar14 & 0xff" identifier & number_literal)) ;) (expression_statement "iVar5 = *(int *)(DAT_005eb1c8 + uVar17 * 4);" (assignment_expression "iVar5 = *(int *)(DAT_005eb1c8 + uVar17 * 4)" identifier = (pointer_expression "*(int *)(DAT_005eb1c8 + uVar17 * 4)" * (cast_expression "(int *)(DAT_005eb1c8 + uVar17 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005eb1c8 + uVar17 * 4)" ( (binary_expression "DAT_005eb1c8 + uVar17 * 4" identifier + (binary_expression "uVar17 * 4" identifier * number_literal)) ))))) ;) (expression_statement "uVar22 = uVar14 >> 8;" (assignment_expression "uVar22 = uVar14 >> 8" identifier = (binary_expression "uVar14 >> 8" identifier >> number_literal)) ;) (if_statement "if (((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)) || ((*(byte *)(iVar5 + 0x34) & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22);\n  }" if (parenthesized_expression "(((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)) || ((*(byte *)(iVar5 + 0x34) & 2) == 0))" ( (binary_expression "((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)) || ((*(byte *)(iVar5 + 0x34) & 2) == 0)" (parenthesized_expression "((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1))" ( (binary_expression "(iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(int *)(iVar5 + 0x1c) != 1)" ( (binary_expression "*(int *)(iVar5 + 0x1c) != 1" (pointer_expression "*(int *)(iVar5 + 0x1c)" * (cast_expression "(int *)(iVar5 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) )))) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(iVar5 + 0x34) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar5 + 0x34) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x34) & 2)" ( (binary_expression "*(byte *)(iVar5 + 0x34) & 2" (pointer_expression "*(byte *)(iVar5 + 0x34)" * (cast_expression "(byte *)(iVar5 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22);\n  }" { comment (expression_statement "FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22)" identifier (argument_list "("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") , identifier ))) ;) })) (if_statement "if (uVar9 <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3);\n  }" if (parenthesized_expression "(uVar9 <= uVar22)" ( (binary_expression "uVar9 <= uVar22" identifier <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3);\n  }" { comment (expression_statement "FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3)" identifier (argument_list "("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") , identifier ))) ;) })) (if_statement "if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5);\n  }" if (parenthesized_expression "((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar22)" ( (binary_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar22" (call_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar3[0x38] - piVar3[0x37] >> 4)" ( (binary_expression "piVar3[0x38] - piVar3[0x37] >> 4" (binary_expression "piVar3[0x38] - piVar3[0x37]" (subscript_expression "piVar3[0x38]" identifier [ number_literal ]) - (subscript_expression "piVar3[0x37]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5);\n  }" { comment (expression_statement "FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5);" (call_expression "FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5)" identifier (argument_list "("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5)" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""local_symbol_input_shndx"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar15 = piVar3[0x37] + uVar22 * 0x10;" (assignment_expression "iVar15 = piVar3[0x37] + uVar22 * 0x10" identifier = (binary_expression "piVar3[0x37] + uVar22 * 0x10" (subscript_expression "piVar3[0x37]" identifier [ number_literal ]) + (binary_expression "uVar22 * 0x10" identifier * number_literal))) ;) (expression_statement "uVar9 = *(uint *)(iVar15 + 8) & 0x7ffffff;" (assignment_expression "uVar9 = *(uint *)(iVar15 + 8) & 0x7ffffff" identifier = (binary_expression "*(uint *)(iVar15 + 8) & 0x7ffffff" (pointer_expression "*(uint *)(iVar15 + 8)" * (cast_expression "(uint *)(iVar15 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 8)" ( (binary_expression "iVar15 + 8" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if ((*(byte *)(iVar15 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14);\n  }" if (parenthesized_expression "((*(byte *)(iVar15 + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)(iVar15 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar15 + 0xb) & 8)" ( (binary_expression "*(byte *)(iVar15 + 0xb) & 8" (pointer_expression "*(byte *)(iVar15 + 0xb)" * (cast_expression "(byte *)(iVar15 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xb)" ( (binary_expression "iVar15 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14);\n  }" { comment (expression_statement "FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14)" identifier (argument_list "("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") , identifier ))) ;) })) (if_statement "if (*(code **)(*piVar3 + 0x60) == FUN_00071550) {\n    uVar16 = piVar3[0xf] - piVar3[0xe] >> 2;\n    if (uVar16 <= uVar9) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);\n    }\n    iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4);\n  }\n  else {\n    iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);\n  }" if (parenthesized_expression "(*(code **)(*piVar3 + 0x60) == FUN_00071550)" ( (binary_expression "*(code **)(*piVar3 + 0x60) == FUN_00071550" (pointer_expression "*(code **)(*piVar3 + 0x60)" * (cast_expression "(code **)(*piVar3 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0x60)" ( (binary_expression "*piVar3 + 0x60" (pointer_expression "*piVar3" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n    uVar16 = piVar3[0xf] - piVar3[0xe] >> 2;\n    if (uVar16 <= uVar9) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);\n    }\n    iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4);\n  }" { (expression_statement "uVar16 = piVar3[0xf] - piVar3[0xe] >> 2;" (assignment_expression "uVar16 = piVar3[0xf] - piVar3[0xe] >> 2" identifier = (binary_expression "piVar3[0xf] - piVar3[0xe] >> 2" (binary_expression "piVar3[0xf] - piVar3[0xe]" (subscript_expression "piVar3[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar3[0xe]" identifier [ number_literal ])) >> number_literal)) ;) (if_statement "if (uVar16 <= uVar9) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);\n    }" if (parenthesized_expression "(uVar16 <= uVar9)" ( (binary_expression "uVar16 <= uVar9" identifier <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);\n    }" { comment (expression_statement "FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);" (call_expression "FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16)" identifier (argument_list "("../../gold/object.h",0x5c8,"do_output_section",uVar16)" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""do_output_section"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4);" (assignment_expression "iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4)" identifier = (pointer_expression "*(int *)(piVar3[0xe] + uVar9 * 4)" * (cast_expression "(int *)(piVar3[0xe] + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[0xe] + uVar9 * 4)" ( (binary_expression "piVar3[0xe] + uVar9 * 4" (subscript_expression "piVar3[0xe]" identifier [ number_literal ]) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n    iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);\n  }" else (compound_statement "{\n    iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);\n  }" { (expression_statement "iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);" (assignment_expression "iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9)" identifier = (call_expression "(**(code **)(*piVar3 + 0x60))(piVar3,uVar9)" (parenthesized_expression "(**(code **)(*piVar3 + 0x60))" ( (pointer_expression "**(code **)(*piVar3 + 0x60)" * (pointer_expression "*(code **)(*piVar3 + 0x60)" * (cast_expression "(code **)(*piVar3 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0x60)" ( (binary_expression "*piVar3 + 0x60" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3,uVar9)" ( identifier , identifier )))) ;) }))) (if_statement "if (iVar15 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0);\n  }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0);\n  }" { comment (expression_statement "FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0)" identifier (argument_list "("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") , number_literal ))) ;) })) (if_statement "if ((*(byte *)(iVar15 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15);\n  }" if (parenthesized_expression "((*(byte *)(iVar15 + 0x90) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar15 + 0x90) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar15 + 0x90) & 1)" ( (binary_expression "*(byte *)(iVar15 + 0x90) & 1" (pointer_expression "*(byte *)(iVar15 + 0x90)" * (cast_expression "(byte *)(iVar15 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x90)" ( (binary_expression "iVar15 + 0x90" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15);\n  }" { comment (expression_statement "FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15)" identifier (argument_list "("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar18 = *(int *)(iVar15 + 100);" (assignment_expression "iVar18 = *(int *)(iVar15 + 100)" identifier = (pointer_expression "*(int *)(iVar15 + 100)" * (cast_expression "(int *)(iVar15 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 100)" ( (binary_expression "iVar15 + 100" identifier + number_literal) ))))) ;) (if_statement "if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15);\n  }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15);\n  }" { comment (expression_statement "FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15);" (call_expression "FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15)" identifier (argument_list "("../../gold/output.h",0xd81,"symtab_index",iVar15)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""symtab_index"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar15 = *param_6;" (assignment_expression "iVar15 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) (if_statement "if (param_9 == -1) {\n    iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15);\n    if (iVar10 == -1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);\n    }\n  }\n  else {\n    iVar10 = iVar15 + param_9;\n  }" if (parenthesized_expression "(param_9 == -1)" ( (binary_expression "param_9 == -1" identifier == number_literal) )) (compound_statement "{\n    iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15);\n    if (iVar10 == -1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);\n    }\n  }" { (expression_statement "iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15);" (assignment_expression "iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15)" identifier = (call_expression "FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15)" identifier (argument_list "(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15)" ( identifier , identifier , (pointer_expression "*(undefined4 *)(param_4 + 0x18)" * (cast_expression "(undefined4 *)(param_4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar10 == -1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);\n    }" if (parenthesized_expression "(iVar10 == -1)" ( (binary_expression "iVar10 == -1" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);\n    }" { comment (expression_statement "FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff)" identifier (argument_list "("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") , number_literal ))) ;) })) }) (else_clause "else {\n    iVar10 = iVar15 + param_9;\n  }" else (compound_statement "{\n    iVar10 = iVar15 + param_9;\n  }" { (expression_statement "iVar10 = iVar15 + param_9;" (assignment_expression "iVar10 = iVar15 + param_9" identifier = (binary_expression "iVar15 + param_9" identifier + identifier)) ;) }))) (if_statement "if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10);\n  }" if (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 8) == 0)" ( (binary_expression "*(int *)(DAT_005ea7c8 + 8) == 0" (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" * (cast_expression "(int *)(DAT_005ea7c8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 8)" ( (binary_expression "DAT_005ea7c8 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10);\n  }" { comment (expression_statement "FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10);" (call_expression "FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",iVar10)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar11 = iVar10;" (assignment_expression "iVar11 = iVar10" identifier = identifier) ;) (if_statement "if (*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d) == '\0') {\n    iVar11 = iVar10 + param_11;\n    if (param_9 != -1) {\n      iVar11 = (iVar10 + param_11) - param_9;\n    }\n  }" if (parenthesized_expression "(*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d) == '\0')" ( (binary_expression "*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d) == '\0'" (pointer_expression "*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d)" * (cast_expression "(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 8) + 0x318d)" ( (binary_expression "*(int *)(DAT_005ea7c8 + 8) + 0x318d" (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" * (cast_expression "(int *)(DAT_005ea7c8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 8)" ( (binary_expression "DAT_005ea7c8 + 8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar11 = iVar10 + param_11;\n    if (param_9 != -1) {\n      iVar11 = (iVar10 + param_11) - param_9;\n    }\n  }" { (expression_statement "iVar11 = iVar10 + param_11;" (assignment_expression "iVar11 = iVar10 + param_11" identifier = (binary_expression "iVar10 + param_11" identifier + identifier)) ;) (if_statement "if (param_9 != -1) {\n      iVar11 = (iVar10 + param_11) - param_9;\n    }" if (parenthesized_expression "(param_9 != -1)" ( (binary_expression "param_9 != -1" identifier != number_literal) )) (compound_statement "{\n      iVar11 = (iVar10 + param_11) - param_9;\n    }" { (expression_statement "iVar11 = (iVar10 + param_11) - param_9;" (assignment_expression "iVar11 = (iVar10 + param_11) - param_9" identifier = (binary_expression "(iVar10 + param_11) - param_9" (parenthesized_expression "(iVar10 + param_11)" ( (binary_expression "iVar10 + param_11" identifier + identifier) )) - identifier)) ;) })) })) (expression_statement "*param_13 = iVar11;" (assignment_expression "*param_13 = iVar11" (pointer_expression "*param_13" * identifier) = identifier) ;) (expression_statement "iVar10 = piVar3[0x38];" (assignment_expression "iVar10 = piVar3[0x38]" identifier = (subscript_expression "piVar3[0x38]" identifier [ number_literal ])) ;) (expression_statement "param_13[1] = iVar18 * 0x100 + uVar17;" (assignment_expression "param_13[1] = iVar18 * 0x100 + uVar17" (subscript_expression "param_13[1]" identifier [ number_literal ]) = (binary_expression "iVar18 * 0x100 + uVar17" (binary_expression "iVar18 * 0x100" identifier * number_literal) + identifier)) ;) (expression_statement "uVar9 = iVar10 - piVar3[0x37] >> 4;" (assignment_expression "uVar9 = iVar10 - piVar3[0x37] >> 4" identifier = (binary_expression "iVar10 - piVar3[0x37] >> 4" (binary_expression "iVar10 - piVar3[0x37]" identifier - (subscript_expression "piVar3[0x37]" identifier [ number_literal ])) >> number_literal)) ;) (if_statement "if (uVar9 <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9);\n  }" if (parenthesized_expression "(uVar9 <= uVar22)" ( (binary_expression "uVar9 <= uVar22" identifier <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9);\n  }" { comment (expression_statement "FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9);" (call_expression "FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9)" identifier (argument_list "("../../gold/object.h",0x8c1,"local_symbol",uVar9)" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""local_symbol"" " string_content ") , identifier ))) ;) })) (expression_statement "local_38 = (undefined4 *)(piVar3[0x37] + uVar22 * 0x10);" (assignment_expression "local_38 = (undefined4 *)(piVar3[0x37] + uVar22 * 0x10)" identifier = (cast_expression "(undefined4 *)(piVar3[0x37] + uVar22 * 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[0x37] + uVar22 * 0x10)" ( (binary_expression "piVar3[0x37] + uVar22 * 0x10" (subscript_expression "piVar3[0x37]" identifier [ number_literal ]) + (binary_expression "uVar22 * 0x10" identifier * number_literal)) )))) ;) (expression_statement "iVar18 = piVar3[0x52];" (assignment_expression "iVar18 = piVar3[0x52]" identifier = (subscript_expression "piVar3[0x52]" identifier [ number_literal ])) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0xffffffff;" (assignment_expression "local_28 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_24 = 0x80000000;" (assignment_expression "local_24 = 0x80000000" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (if_statement "if ((uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00122c8d to 00122c91 has its CatchHandler @ 00122d02 */\n    FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22);\n  }" if (parenthesized_expression "((uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8) <= uVar22)" ( (binary_expression "(uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8) <= uVar22" (call_expression "(uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8)" ( (binary_expression "(piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8" (parenthesized_expression "(piVar3[0x55] - piVar3[0x53])" ( (binary_expression "piVar3[0x55] - piVar3[0x53]" (subscript_expression "piVar3[0x55]" identifier [ number_literal ]) - (subscript_expression "piVar3[0x53]" identifier [ number_literal ])) )) + (binary_expression "(piVar3[0x54] - iVar18) * 8" (parenthesized_expression "(piVar3[0x54] - iVar18)" ( (binary_expression "piVar3[0x54] - iVar18" (subscript_expression "piVar3[0x54]" identifier [ number_literal ]) - identifier) )) * number_literal)) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00122c8d to 00122c91 has its CatchHandler @ 00122d02 */\n    FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22);\n  }" { comment comment (expression_statement "FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22)" identifier (argument_list "("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""local_symbol_is_thumb_function"" " string_content ") , identifier ))) ;) })) (expression_statement "local_48 = 1 << ((byte)(uVar14 >> 8) & 0x1f) & *(uint *)(iVar18 + (uVar14 >> 0xd) * 4);" (assignment_expression "local_48 = 1 << ((byte)(uVar14 >> 8) & 0x1f) & *(uint *)(iVar18 + (uVar14 >> 0xd) * 4)" identifier = (binary_expression "1 << ((byte)(uVar14 >> 8) & 0x1f) & *(uint *)(iVar18 + (uVar14 >> 0xd) * 4)" (binary_expression "1 << ((byte)(uVar14 >> 8) & 0x1f)" number_literal << (parenthesized_expression "((byte)(uVar14 >> 8) & 0x1f)" ( (binary_expression "(byte)(uVar14 >> 8) & 0x1f" (call_expression "(byte)(uVar14 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar14 >> 8)" ( (binary_expression "uVar14 >> 8" identifier >> number_literal) ))) & number_literal) ))) & (pointer_expression "*(uint *)(iVar18 + (uVar14 >> 0xd) * 4)" * (cast_expression "(uint *)(iVar18 + (uVar14 >> 0xd) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + (uVar14 >> 0xd) * 4)" ( (binary_expression "iVar18 + (uVar14 >> 0xd) * 4" identifier + (binary_expression "(uVar14 >> 0xd) * 4" (parenthesized_expression "(uVar14 >> 0xd)" ( (binary_expression "uVar14 >> 0xd" identifier >> number_literal) )) * number_literal)) )))))) ;) (if_statement "if ((local_48 != 0) && (local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0)) {\n                    /* try { // try from 00122161 to 00122165 has its CatchHandler @ 00122d02 */\n    local_48 = FUN_00072130(local_38,piVar3,0);\n    local_48 = local_48 & 1;\n    if (local_48 == 0) {\n      local_48 = 1;\n    }\n    else {\n                    /* try { // try from 00122967 to 0012296b has its CatchHandler @ 00122d02 */\n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }\n  }" if (parenthesized_expression "((local_48 != 0) && (local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0))" ( (binary_expression "(local_48 != 0) && (local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0)" (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0)" ( (comma_expression "local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0" (assignment_expression "local_48 = 1" identifier = number_literal) , (binary_expression "(*(byte *)(iVar5 + 0x34) & 0x40) != 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x34) & 0x40)" ( (binary_expression "*(byte *)(iVar5 + 0x34) & 0x40" (pointer_expression "*(byte *)(iVar5 + 0x34)" * (cast_expression "(byte *)(iVar5 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n                    /* try { // try from 00122161 to 00122165 has its CatchHandler @ 00122d02 */\n    local_48 = FUN_00072130(local_38,piVar3,0);\n    local_48 = local_48 & 1;\n    if (local_48 == 0) {\n      local_48 = 1;\n    }\n    else {\n                    /* try { // try from 00122967 to 0012296b has its CatchHandler @ 00122d02 */\n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }\n  }" { comment (expression_statement "local_48 = FUN_00072130(local_38,piVar3,0);" (assignment_expression "local_48 = FUN_00072130(local_38,piVar3,0)" identifier = (call_expression "FUN_00072130(local_38,piVar3,0)" identifier (argument_list "(local_38,piVar3,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "local_48 = local_48 & 1;" (assignment_expression "local_48 = local_48 & 1" identifier = (binary_expression "local_48 & 1" identifier & number_literal)) ;) (if_statement "if (local_48 == 0) {\n      local_48 = 1;\n    }\n    else {\n                    /* try { // try from 00122967 to 0012296b has its CatchHandler @ 00122d02 */\n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (compound_statement "{\n      local_48 = 1;\n    }" { (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) }) (else_clause "else {\n                    /* try { // try from 00122967 to 0012296b has its CatchHandler @ 00122d02 */\n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }" else (compound_statement "{\n                    /* try { // try from 00122967 to 0012296b has its CatchHandler @ 00122d02 */\n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }" { comment (expression_statement "local_20 = FUN_00072130(local_38,piVar3,0);" (assignment_expression "local_20 = FUN_00072130(local_38,piVar3,0)" identifier = (call_expression "FUN_00072130(local_38,piVar3,0)" identifier (argument_list "(local_38,piVar3,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "local_20 = local_20 & 0xfffffffe;" (assignment_expression "local_20 = local_20 & 0xfffffffe" identifier = (binary_expression "local_20 & 0xfffffffe" identifier & number_literal)) ;) (expression_statement "local_38 = &local_2c;" (assignment_expression "local_38 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) }))) })) (expression_statement "local_40 = &local_2c;" (assignment_expression "local_40 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) (expression_statement "puVar23 = (uint *)(iVar15 + param_10);" (assignment_expression "puVar23 = (uint *)(iVar15 + param_10)" identifier = (cast_expression "(uint *)(iVar15 + param_10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + param_10)" ( (binary_expression "iVar15 + param_10" identifier + identifier) )))) ;) (if_statement "if (99 < uVar17 - 4) {\nLAB_00122ab1:\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00122ac8 to 00122b77 has its CatchHandler @ 00122d02 */\n    FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);\n  }" if (parenthesized_expression "(99 < uVar17 - 4)" ( (binary_expression "99 < uVar17 - 4" number_literal < (binary_expression "uVar17 - 4" identifier - number_literal)) )) (compound_statement "{\nLAB_00122ab1:\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00122ac8 to 00122b77 has its CatchHandler @ 00122d02 */\n    FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);\n  }" { (labeled_statement "LAB_00122ab1:\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00122ac8 to 00122b77 has its CatchHandler @ 00122d02 */\n    FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);" statement_identifier : comment comment (expression_statement "FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18)" identifier (argument_list "("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") , identifier ))) ;)) })) (expression_statement "iVar18 = (int)&__DT_PLTGOT + *(int *)(&DAT_00467d20 + (uVar17 - 4) * 4);" (assignment_expression "iVar18 = (int)&__DT_PLTGOT + *(int *)(&DAT_00467d20 + (uVar17 - 4) * 4)" identifier = (binary_expression "(int)&__DT_PLTGOT + *(int *)(&DAT_00467d20 + (uVar17 - 4) * 4)" (cast_expression "(int)&__DT_PLTGOT" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_PLTGOT" & identifier)) + (pointer_expression "*(int *)(&DAT_00467d20 + (uVar17 - 4) * 4)" * (cast_expression "(int *)(&DAT_00467d20 + (uVar17 - 4) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00467d20 + (uVar17 - 4) * 4)" ( (binary_expression "&DAT_00467d20 + (uVar17 - 4) * 4" (pointer_expression "&DAT_00467d20" & identifier) + (binary_expression "(uVar17 - 4) * 4" (parenthesized_expression "(uVar17 - 4)" ( (binary_expression "uVar17 - 4" identifier - number_literal) )) * number_literal)) )))))) ;) (switch_statement "switch(uVar17) {\n  case 4:\n  case 0x2c:\n  case 0x2e:\n  case 0x30:\n  case 0x32:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x4c:\n  case 0x4d:\n  case 0x4e:\n  case 0x4f:\n  case 0x50:\n  case 0x51:\n  case 0x52:\n  case 0x53:\n  case 0x55:\n  case 0x58:\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    uVar13 = gettext("cannot handle %s in a relocatable link");\n    FUN_0023b810(uVar13,uVar20);\n    goto LAB_0012238d;\n  case 5:\n    uVar9 = (uint)(ushort)*puVar23;\n    if ((short)(ushort)*puVar23 < 0) {\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(ushort *)puVar23 = (ushort)iVar15;\n    if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;\n    break;\n  case 6:\n    uVar14 = *puVar23;\n    uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);\n    *puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;\n    goto joined_r0x00122297;\n  case 7:\n    uVar2 = (ushort)*puVar23;\n    iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);\n    *(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;\n    if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;\n    break;\n  case 8:\n    bVar1 = (byte)*puVar23;\n    uVar9 = bVar1 - 0x100;\n    if (-1 < (char)bVar1) {\n      uVar9 = (uint)bVar1;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(byte *)puVar23 = (byte)iVar15;\n    if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;\n    break;\n  default:\n    goto LAB_00122ab1;\n  case 10:\n  case 0x10:\n  case 0x1e:\n    iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0xb:\n    uVar9 = *puVar23;\n    uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);\n    iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);\n    *(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;\n    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;\n    break;\n  case 0xf:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n    iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0x2a:\n    uVar9 = *puVar23;\n    uVar14 = uVar9 & 0x7fffffff;\n    if ((uVar9 & 0x40000000) != 0) {\n      uVar14 = 0x7fffffff;\n    }\n    uVar14 = FUN_00072130(local_38,piVar3,uVar14);\n    *puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;\n    if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar9 = *puVar23;\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;\n    uStack_4c = uVar14 - 0x10000;\n    if ((uVar9 >> 4 & 0x8000) == 0) {\n      uStack_4c = uVar14;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229a9:\n    uStack_4c = uStack_4c | local_48;\n    *puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar8 = (ushort)*puVar23;\n    uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;\n    uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;\n    uStack_4c = uVar9 - 0x10000;\n    if ((uVar14 & 0x8000) == 0) {\n      uStack_4c = uVar9;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x00122a61:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;\n    *(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;\n    *(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);\njoined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;\n    break;\n  case 0x33:\n    iVar15 = FUN_00112810(0,local_48);\ncode_r0x00122342:\n    if (iVar15 == 1) break;\n    if (iVar15 == 0) goto LAB_0012238d;\n    if (iVar15 != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    pcVar12 = "unexpected opcode while processing relocation %s";\n    goto LAB_0012236a;\n  case 0x34:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);\n    *(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;\n    if (uVar8 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = *(ushort *)((int)puVar23 + 2);\n    uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229f9:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);\n    uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;\n    if ((int)uStack_4c < 0) {\n      uVar14 = uVar14 | 0xa00000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar14 = *puVar23;\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));\n    uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);\n    uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;\n    if (-1 < (int)uVar17) {\n      uVar14 = uVar14 | 0x800000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\njoined_r0x0012230f:\n    if ((int)uVar9 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x66:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0x7fe;\n    if ((uVar9 & 0x400) != 0) {\n      uVar17 = uVar17 - 0x800;\n    }\n    uVar9 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;\njoined_r0x00122297:\n    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x67:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0xff;\n    if ((uVar9 & 0x80) != 0) {\n      uVar17 = uVar17 - 0x100;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;\n    if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;\n  }" switch (parenthesized_expression "(uVar17)" ( identifier )) (compound_statement "{\n  case 4:\n  case 0x2c:\n  case 0x2e:\n  case 0x30:\n  case 0x32:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x4c:\n  case 0x4d:\n  case 0x4e:\n  case 0x4f:\n  case 0x50:\n  case 0x51:\n  case 0x52:\n  case 0x53:\n  case 0x55:\n  case 0x58:\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    uVar13 = gettext("cannot handle %s in a relocatable link");\n    FUN_0023b810(uVar13,uVar20);\n    goto LAB_0012238d;\n  case 5:\n    uVar9 = (uint)(ushort)*puVar23;\n    if ((short)(ushort)*puVar23 < 0) {\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(ushort *)puVar23 = (ushort)iVar15;\n    if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;\n    break;\n  case 6:\n    uVar14 = *puVar23;\n    uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);\n    *puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;\n    goto joined_r0x00122297;\n  case 7:\n    uVar2 = (ushort)*puVar23;\n    iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);\n    *(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;\n    if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;\n    break;\n  case 8:\n    bVar1 = (byte)*puVar23;\n    uVar9 = bVar1 - 0x100;\n    if (-1 < (char)bVar1) {\n      uVar9 = (uint)bVar1;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(byte *)puVar23 = (byte)iVar15;\n    if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;\n    break;\n  default:\n    goto LAB_00122ab1;\n  case 10:\n  case 0x10:\n  case 0x1e:\n    iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0xb:\n    uVar9 = *puVar23;\n    uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);\n    iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);\n    *(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;\n    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;\n    break;\n  case 0xf:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n    iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0x2a:\n    uVar9 = *puVar23;\n    uVar14 = uVar9 & 0x7fffffff;\n    if ((uVar9 & 0x40000000) != 0) {\n      uVar14 = 0x7fffffff;\n    }\n    uVar14 = FUN_00072130(local_38,piVar3,uVar14);\n    *puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;\n    if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar9 = *puVar23;\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;\n    uStack_4c = uVar14 - 0x10000;\n    if ((uVar9 >> 4 & 0x8000) == 0) {\n      uStack_4c = uVar14;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229a9:\n    uStack_4c = uStack_4c | local_48;\n    *puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar8 = (ushort)*puVar23;\n    uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;\n    uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;\n    uStack_4c = uVar9 - 0x10000;\n    if ((uVar14 & 0x8000) == 0) {\n      uStack_4c = uVar9;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x00122a61:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;\n    *(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;\n    *(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);\njoined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;\n    break;\n  case 0x33:\n    iVar15 = FUN_00112810(0,local_48);\ncode_r0x00122342:\n    if (iVar15 == 1) break;\n    if (iVar15 == 0) goto LAB_0012238d;\n    if (iVar15 != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    pcVar12 = "unexpected opcode while processing relocation %s";\n    goto LAB_0012236a;\n  case 0x34:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);\n    *(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;\n    if (uVar8 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = *(ushort *)((int)puVar23 + 2);\n    uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229f9:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);\n    uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;\n    if ((int)uStack_4c < 0) {\n      uVar14 = uVar14 | 0xa00000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar14 = *puVar23;\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));\n    uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);\n    uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;\n    if (-1 < (int)uVar17) {\n      uVar14 = uVar14 | 0x800000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\njoined_r0x0012230f:\n    if ((int)uVar9 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x66:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0x7fe;\n    if ((uVar9 & 0x400) != 0) {\n      uVar17 = uVar17 - 0x800;\n    }\n    uVar9 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;\njoined_r0x00122297:\n    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x67:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0xff;\n    if ((uVar9 & 0x80) != 0) {\n      uVar17 = uVar17 - 0x100;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;\n    if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;\n  }" { (case_statement "case 4:" case number_literal :) (case_statement "case 0x2c:" case number_literal :) (case_statement "case 0x2e:" case number_literal :) (case_statement "case 0x30:" case number_literal :) (case_statement "case 0x32:" case number_literal :) (case_statement "case 0x39:" case number_literal :) (case_statement "case 0x3a:" case number_literal :) (case_statement "case 0x3b:" case number_literal :) (case_statement "case 0x3c:" case number_literal :) (case_statement "case 0x3d:" case number_literal :) (case_statement "case 0x3e:" case number_literal :) (case_statement "case 0x3f:" case number_literal :) (case_statement "case 0x40:" case number_literal :) (case_statement "case 0x41:" case number_literal :) (case_statement "case 0x42:" case number_literal :) (case_statement "case 0x43:" case number_literal :) (case_statement "case 0x44:" case number_literal :) (case_statement "case 0x45:" case number_literal :) (case_statement "case 0x46:" case number_literal :) (case_statement "case 0x47:" case number_literal :) (case_statement "case 0x48:" case number_literal :) (case_statement "case 0x49:" case number_literal :) (case_statement "case 0x4a:" case number_literal :) (case_statement "case 0x4b:" case number_literal :) (case_statement "case 0x4c:" case number_literal :) (case_statement "case 0x4d:" case number_literal :) (case_statement "case 0x4e:" case number_literal :) (case_statement "case 0x4f:" case number_literal :) (case_statement "case 0x50:" case number_literal :) (case_statement "case 0x51:" case number_literal :) (case_statement "case 0x52:" case number_literal :) (case_statement "case 0x53:" case number_literal :) (case_statement "case 0x55:" case number_literal :) (case_statement "case 0x58:\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    uVar13 = gettext("cannot handle %s in a relocatable link");\n    FUN_0023b810(uVar13,uVar20);\n    goto LAB_0012238d;" case number_literal : (expression_statement "uVar20 = *(undefined4 *)(iVar5 + 4);" (assignment_expression "uVar20 = *(undefined4 *)(iVar5 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 4)" * (cast_expression "(undefined4 *)(iVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = gettext("cannot handle %s in a relocatable link");" (assignment_expression "uVar13 = gettext("cannot handle %s in a relocatable link")" identifier = (call_expression "gettext("cannot handle %s in a relocatable link")" identifier (argument_list "("cannot handle %s in a relocatable link")" ( (string_literal ""cannot handle %s in a relocatable link"" " string_content ") )))) ;) (expression_statement "FUN_0023b810(uVar13,uVar20);" (call_expression "FUN_0023b810(uVar13,uVar20)" identifier (argument_list "(uVar13,uVar20)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;)) (case_statement "case 5:\n    uVar9 = (uint)(ushort)*puVar23;\n    if ((short)(ushort)*puVar23 < 0) {\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(ushort *)puVar23 = (ushort)iVar15;\n    if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;\n    break;" case number_literal : (expression_statement "uVar9 = (uint)(ushort)*puVar23;" (assignment_expression "uVar9 = (uint)(ushort)*puVar23" identifier = (binary_expression "(uint)(ushort)*puVar23" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ushort)" ( identifier ))) * identifier)) ;) (if_statement "if ((short)(ushort)*puVar23 < 0) {\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }" if (parenthesized_expression "((short)(ushort)*puVar23 < 0)" ( (binary_expression "(short)(ushort)*puVar23 < 0" (binary_expression "(short)(ushort)*puVar23" (cast_expression "(short)(ushort)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(ushort)" ( identifier ))) * identifier) < number_literal) )) (compound_statement "{\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }" { (expression_statement "uVar9 = (ushort)*puVar23 - 0x10000;" (assignment_expression "uVar9 = (ushort)*puVar23 - 0x10000" identifier = (binary_expression "(ushort)*puVar23 - 0x10000" (binary_expression "(ushort)*puVar23" (parenthesized_expression "(ushort)" ( identifier )) * identifier) - number_literal)) ;) })) (expression_statement "iVar15 = FUN_00072130(local_38,piVar3,uVar9);" (assignment_expression "iVar15 = FUN_00072130(local_38,piVar3,uVar9)" identifier = (call_expression "FUN_00072130(local_38,piVar3,uVar9)" identifier (argument_list "(local_38,piVar3,uVar9)" ( identifier , identifier , identifier )))) ;) (expression_statement "*(ushort *)puVar23 = (ushort)iVar15;" (assignment_expression "*(ushort *)puVar23 = (ushort)iVar15" (pointer_expression "*(ushort *)puVar23" * (cast_expression "(ushort *)puVar23" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(ushort)iVar15" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (if_statement "if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;" if (parenthesized_expression "(iVar15 + 0x8000U < 0x18000)" ( (binary_expression "iVar15 + 0x8000U < 0x18000" (binary_expression "iVar15 + 0x8000U" identifier + number_literal) < number_literal) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 6:\n    uVar14 = *puVar23;\n    uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);\n    *puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;\n    goto joined_r0x00122297;" case number_literal : (expression_statement "uVar14 = *puVar23;" (assignment_expression "uVar14 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);" (assignment_expression "uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff)" identifier = (call_expression "FUN_00072130(local_38,piVar3,uVar14 & 0xfff)" identifier (argument_list "(local_38,piVar3,uVar14 & 0xfff)" ( identifier , identifier , (binary_expression "uVar14 & 0xfff" identifier & number_literal) )))) ;) (expression_statement "*puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;" (assignment_expression "*puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff" (pointer_expression "*puVar23" * identifier) = (binary_expression "uVar14 ^ (uVar14 ^ uVar9) & 0xfff" identifier ^ (binary_expression "(uVar14 ^ uVar9) & 0xfff" (parenthesized_expression "(uVar14 ^ uVar9)" ( (binary_expression "uVar14 ^ uVar9" identifier ^ identifier) )) & number_literal))) ;) (goto_statement "goto joined_r0x00122297;" goto statement_identifier ;)) (case_statement "case 7:\n    uVar2 = (ushort)*puVar23;\n    iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);\n    *(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;\n    if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;\n    break;" case number_literal : (expression_statement "uVar2 = (ushort)*puVar23;" (assignment_expression "uVar2 = (ushort)*puVar23" identifier = (binary_expression "(ushort)*puVar23" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ;) (expression_statement "iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);" (assignment_expression "iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f)" identifier = (call_expression "FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f)" identifier (argument_list "(local_38,piVar3,uVar2 >> 6 & 0x1f)" ( identifier , identifier , (binary_expression "uVar2 >> 6 & 0x1f" (binary_expression "uVar2 >> 6" identifier >> number_literal) & number_literal) )))) ;) (expression_statement "*(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;" (assignment_expression "*(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0" (pointer_expression "*(ushort *)puVar23" * (cast_expression "(ushort *)puVar23" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0" identifier ^ (binary_expression "((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0" (parenthesized_expression "((ushort)(iVar15 << 6) ^ uVar2)" ( (binary_expression "(ushort)(iVar15 << 6) ^ uVar2" (call_expression "(ushort)(iVar15 << 6)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(iVar15 << 6)" ( (binary_expression "iVar15 << 6" identifier << number_literal) ))) ^ identifier) )) & number_literal))) ;) (if_statement "if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;" if (parenthesized_expression "(iVar15 + 0x10U < 0x20)" ( (binary_expression "iVar15 + 0x10U < 0x20" (binary_expression "iVar15 + 0x10U" identifier + number_literal) < number_literal) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 8:\n    bVar1 = (byte)*puVar23;\n    uVar9 = bVar1 - 0x100;\n    if (-1 < (char)bVar1) {\n      uVar9 = (uint)bVar1;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(byte *)puVar23 = (byte)iVar15;\n    if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;\n    break;" case number_literal : (expression_statement "bVar1 = (byte)*puVar23;" (assignment_expression "bVar1 = (byte)*puVar23" identifier = (binary_expression "(byte)*puVar23" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ;) (expression_statement "uVar9 = bVar1 - 0x100;" (assignment_expression "uVar9 = bVar1 - 0x100" identifier = (binary_expression "bVar1 - 0x100" identifier - number_literal)) ;) (if_statement "if (-1 < (char)bVar1) {\n      uVar9 = (uint)bVar1;\n    }" if (parenthesized_expression "(-1 < (char)bVar1)" ( (binary_expression "-1 < (char)bVar1" number_literal < (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\n      uVar9 = (uint)bVar1;\n    }" { (expression_statement "uVar9 = (uint)bVar1;" (assignment_expression "uVar9 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) })) (expression_statement "iVar15 = FUN_00072130(local_38,piVar3,uVar9);" (assignment_expression "iVar15 = FUN_00072130(local_38,piVar3,uVar9)" identifier = (call_expression "FUN_00072130(local_38,piVar3,uVar9)" identifier (argument_list "(local_38,piVar3,uVar9)" ( identifier , identifier , identifier )))) ;) (expression_statement "*(byte *)puVar23 = (byte)iVar15;" (assignment_expression "*(byte *)puVar23 = (byte)iVar15" (pointer_expression "*(byte *)puVar23" * (cast_expression "(byte *)puVar23" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(byte)iVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;" if (parenthesized_expression "(iVar15 + 0x80U < 0x180)" ( (binary_expression "iVar15 + 0x80U < 0x180" (binary_expression "iVar15 + 0x80U" identifier + number_literal) < number_literal) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "default:\n    goto LAB_00122ab1;" default : (goto_statement "goto LAB_00122ab1;" goto statement_identifier ;)) (case_statement "case 10:" case number_literal :) (case_statement "case 0x10:" case number_literal :) (case_statement "case 0x1e:\n    iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;" case number_literal : (expression_statement "iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);" (assignment_expression "iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0)" identifier = (call_expression "FUN_001206e0(0,piVar3,0,local_38,0,local_48,0)" identifier (argument_list "(0,piVar3,0,local_38,0,local_48,0)" ( number_literal , identifier , number_literal , identifier , number_literal , identifier , number_literal )))) ;) (goto_statement "goto code_r0x00122342;" goto statement_identifier ;)) (case_statement "case 0xb:\n    uVar9 = *puVar23;\n    uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);\n    iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);\n    *(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;\n    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;\n    break;" case number_literal : (expression_statement "uVar9 = *puVar23;" (assignment_expression "uVar9 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);" (assignment_expression "uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc)" identifier = (call_expression "FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc)" identifier (argument_list "(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc)" ( identifier , identifier , (binary_expression "(ushort)uVar9 * 4 & 0x3fc" (binary_expression "(ushort)uVar9 * 4" (cast_expression "(ushort)uVar9" ( (type_descriptor "ushort" type_identifier) ) identifier) * number_literal) & number_literal) )))) ;) (expression_statement "iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);" (assignment_expression "iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f)" identifier = (binary_expression "(uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f)" (parenthesized_expression "(uVar14 ^ (int)uVar14 >> 0x1f)" ( (binary_expression "uVar14 ^ (int)uVar14 >> 0x1f" identifier ^ (binary_expression "(int)uVar14 >> 0x1f" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) )) - (parenthesized_expression "((int)uVar14 >> 0x1f)" ( (binary_expression "(int)uVar14 >> 0x1f" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "*(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;" (assignment_expression "*(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff" (pointer_expression "*(ushort *)puVar23" * (cast_expression "(ushort *)puVar23" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff" (binary_expression "(ushort)uVar9 & 0xff00" (cast_expression "(ushort)uVar9" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal) | (binary_expression "(ushort)(iVar15 >> 2) & 0xff" (call_expression "(ushort)(iVar15 >> 2)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(iVar15 >> 2)" ( (binary_expression "iVar15 >> 2" identifier >> number_literal) ))) & number_literal))) ;) (if_statement "if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;" if (parenthesized_expression "((ushort)iVar15 < 0x3fd)" ( (binary_expression "(ushort)iVar15 < 0x3fd" (cast_expression "(ushort)iVar15" ( (type_descriptor "ushort" type_identifier) ) identifier) < number_literal) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 0xf:" case number_literal :) (case_statement "case 0x1b:" case number_literal :) (case_statement "case 0x1c:" case number_literal :) (case_statement "case 0x1d:\n    iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;" case number_literal : (expression_statement "iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);" (assignment_expression "iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0)" identifier = (call_expression "FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0)" identifier (argument_list "(0,piVar3,0,local_38,0,local_48,0)" ( number_literal , identifier , number_literal , identifier , number_literal , identifier , number_literal )))) ;) (goto_statement "goto code_r0x00122342;" goto statement_identifier ;)) (case_statement "case 0x2a:\n    uVar9 = *puVar23;\n    uVar14 = uVar9 & 0x7fffffff;\n    if ((uVar9 & 0x40000000) != 0) {\n      uVar14 = 0x7fffffff;\n    }\n    uVar14 = FUN_00072130(local_38,piVar3,uVar14);\n    *puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;\n    if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;\n    break;" case number_literal : (expression_statement "uVar9 = *puVar23;" (assignment_expression "uVar9 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "uVar14 = uVar9 & 0x7fffffff;" (assignment_expression "uVar14 = uVar9 & 0x7fffffff" identifier = (binary_expression "uVar9 & 0x7fffffff" identifier & number_literal)) ;) (if_statement "if ((uVar9 & 0x40000000) != 0) {\n      uVar14 = 0x7fffffff;\n    }" if (parenthesized_expression "((uVar9 & 0x40000000) != 0)" ( (binary_expression "(uVar9 & 0x40000000) != 0" (parenthesized_expression "(uVar9 & 0x40000000)" ( (binary_expression "uVar9 & 0x40000000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar14 = 0x7fffffff;\n    }" { (expression_statement "uVar14 = 0x7fffffff;" (assignment_expression "uVar14 = 0x7fffffff" identifier = number_literal) ;) })) (expression_statement "uVar14 = FUN_00072130(local_38,piVar3,uVar14);" (assignment_expression "uVar14 = FUN_00072130(local_38,piVar3,uVar14)" identifier = (call_expression "FUN_00072130(local_38,piVar3,uVar14)" identifier (argument_list "(local_38,piVar3,uVar14)" ( identifier , identifier , identifier )))) ;) (expression_statement "*puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;" (assignment_expression "*puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff" (pointer_expression "*puVar23" * identifier) = (binary_expression "uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff" identifier ^ (binary_expression "((uVar14 | local_48) ^ uVar9) & 0x7fffffff" (parenthesized_expression "((uVar14 | local_48) ^ uVar9)" ( (binary_expression "(uVar14 | local_48) ^ uVar9" (parenthesized_expression "(uVar14 | local_48)" ( (binary_expression "uVar14 | local_48" identifier | identifier) )) ^ identifier) )) & number_literal))) ;) (if_statement "if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;" if (parenthesized_expression "(-1 < (int)((uVar14 | local_48) + 0x40000000))" ( (binary_expression "-1 < (int)((uVar14 | local_48) + 0x40000000)" number_literal < (cast_expression "(int)((uVar14 | local_48) + 0x40000000)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uVar14 | local_48) + 0x40000000)" ( (binary_expression "(uVar14 | local_48) + 0x40000000" (parenthesized_expression "(uVar14 | local_48)" ( (binary_expression "uVar14 | local_48" identifier | identifier) )) + number_literal) )))) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 0x2b:" case number_literal :) (case_statement "case 0x2d:" case number_literal :) (case_statement "case 0x54:" case number_literal :) (case_statement "case 0x56:\n    uVar9 = *puVar23;\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;\n    uStack_4c = uVar14 - 0x10000;\n    if ((uVar9 >> 4 & 0x8000) == 0) {\n      uStack_4c = uVar14;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229a9:\n    uStack_4c = uStack_4c | local_48;\n    *puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;\n    goto joined_r0x00122aa6;" case number_literal : (expression_statement "uVar9 = *puVar23;" (assignment_expression "uVar9 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "bVar1 = *(byte *)(iVar5 + 0x34);" (assignment_expression "bVar1 = *(byte *)(iVar5 + 0x34)" identifier = (pointer_expression "*(byte *)(iVar5 + 0x34)" * (cast_expression "(byte *)(iVar5 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;" (assignment_expression "uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff" identifier = (binary_expression "uVar9 >> 4 & 0xf000 | uVar9 & 0xfff" (binary_expression "uVar9 >> 4 & 0xf000" (binary_expression "uVar9 >> 4" identifier >> number_literal) & number_literal) | (binary_expression "uVar9 & 0xfff" identifier & number_literal))) ;) (expression_statement "uStack_4c = uVar14 - 0x10000;" (assignment_expression "uStack_4c = uVar14 - 0x10000" identifier = (binary_expression "uVar14 - 0x10000" identifier - number_literal)) ;) (if_statement "if ((uVar9 >> 4 & 0x8000) == 0) {\n      uStack_4c = uVar14;\n    }" if (parenthesized_expression "((uVar9 >> 4 & 0x8000) == 0)" ( (binary_expression "(uVar9 >> 4 & 0x8000) == 0" (parenthesized_expression "(uVar9 >> 4 & 0x8000)" ( (binary_expression "uVar9 >> 4 & 0x8000" (binary_expression "uVar9 >> 4" identifier >> number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n      uStack_4c = uVar14;\n    }" { (expression_statement "uStack_4c = uVar14;" (assignment_expression "uStack_4c = uVar14" identifier = identifier) ;) })) (if_statement "if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" if (parenthesized_expression "((char)*(byte *)((int)local_38 + 0xb) < '\0')" ( (binary_expression "(char)*(byte *)((int)local_38 + 0xb) < '\0'" (cast_expression "(char)*(byte *)((int)local_38 + 0xb)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)local_38 + 0xb)" * (cast_expression "(byte *)((int)local_38 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0xb)" ( (binary_expression "(int)local_38 + 0xb" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uStack_4c = uStack_4c + local_38[3];\n    }" { (expression_statement "uStack_4c = uStack_4c + local_38[3];" (assignment_expression "uStack_4c = uStack_4c + local_38[3]" identifier = (binary_expression "uStack_4c + local_38[3]" identifier + (subscript_expression "local_38[3]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" else (compound_statement "{\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" { (if_statement "if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }" if (parenthesized_expression "((*(byte *)((int)local_38 + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)((int)local_38 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)((int)local_38 + 0xb) & 8)" ( (binary_expression "*(byte *)((int)local_38 + 0xb) & 8" (pointer_expression "*(byte *)((int)local_38 + 0xb)" * (cast_expression "(byte *)((int)local_38 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0xb)" ( (binary_expression "(int)local_38 + 0xb" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }" { comment (expression_statement "FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);" (call_expression "FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3)" identifier (argument_list "("../../gold/object.h",0x6ab,"value",piVar3)" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""value"" " string_content ") , identifier ))) ;) })) (expression_statement "puVar6 = (uint *)local_38[3];" (assignment_expression "puVar6 = (uint *)local_38[3]" identifier = (cast_expression "(uint *)local_38[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_38[3]" identifier [ number_literal ]))) ;) (expression_statement "local_34 = *puVar6;" (assignment_expression "local_34 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (if_statement "if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }" if (parenthesized_expression "(uStack_4c < 0xffffff00)" ( (binary_expression "uStack_4c < 0xffffff00" identifier < number_literal) )) (compound_statement "{\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }" { (expression_statement "local_34 = local_34 + uStack_4c;" (assignment_expression "local_34 = local_34 + uStack_4c" identifier = (binary_expression "local_34 + uStack_4c" identifier + identifier)) ;) (expression_statement "uStack_4c = 0;" (assignment_expression "uStack_4c = 0" identifier = number_literal) ;) })) (expression_statement "uVar14 = local_34 % puVar6[3];" (assignment_expression "uVar14 = local_34 % puVar6[3]" identifier = (binary_expression "local_34 % puVar6[3]" identifier % (subscript_expression "puVar6[3]" identifier [ number_literal ]))) ;) (expression_statement "piVar21 = *(int **)(puVar6[2] + uVar14 * 4);" (assignment_expression "piVar21 = *(int **)(puVar6[2] + uVar14 * 4)" identifier = (pointer_expression "*(int **)(puVar6[2] + uVar14 * 4)" * (cast_expression "(int **)(puVar6[2] + uVar14 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6[2] + uVar14 * 4)" ( (binary_expression "puVar6[2] + uVar14 * 4" (subscript_expression "puVar6[2]" identifier [ number_literal ]) + (binary_expression "uVar14 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }" if (parenthesized_expression "(piVar21 != (int *)0x0)" ( (binary_expression "piVar21 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }" { (expression_statement "uVar17 = ((int *)*piVar21)[1];" (assignment_expression "uVar17 = ((int *)*piVar21)[1]" identifier = (subscript_expression "((int *)*piVar21)[1]" (parenthesized_expression "((int *)*piVar21)" ( (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar7 = (int *)*piVar21;" (assignment_expression "piVar7 = (int *)*piVar21" identifier = (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (while_statement "while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }" while (parenthesized_expression "(piVar19 = piVar7, uVar17 != local_34)" ( (comma_expression "piVar19 = piVar7, uVar17 != local_34" (assignment_expression "piVar19 = piVar7" identifier = identifier) , (binary_expression "uVar17 != local_34" identifier != identifier)) )) (compound_statement "{\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }" { (expression_statement "piVar7 = (int *)*piVar19;" (assignment_expression "piVar7 = (int *)*piVar19" identifier = (cast_expression "(int *)*piVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar19" * identifier))) ;) (if_statement "if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;" if (parenthesized_expression "((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))" ( (binary_expression "(piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14)" (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14)" ( (comma_expression "uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14" (assignment_expression "uVar17 = piVar7[1]" identifier = (subscript_expression "piVar7[1]" identifier [ number_literal ])) , (comma_expression "piVar21 = piVar19, uVar17 % puVar6[3] != uVar14" (assignment_expression "piVar21 = piVar19" identifier = identifier) , (binary_expression "uVar17 % puVar6[3] != uVar14" (binary_expression "uVar17 % puVar6[3]" identifier % (subscript_expression "puVar6[3]" identifier [ number_literal ])) != identifier))) ))) )) (goto_statement "goto code_r0x00122b36;" goto statement_identifier ;)) })) (if_statement "if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }" if (parenthesized_expression "(*piVar21 != 0)" ( (binary_expression "*piVar21 != 0" (pointer_expression "*piVar21" * identifier) != number_literal) )) (compound_statement "{\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }" { (expression_statement "uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);" (assignment_expression "uStack_4c = uStack_4c + *(int *)(*piVar21 + 8)" identifier = (binary_expression "uStack_4c + *(int *)(*piVar21 + 8)" identifier + (pointer_expression "*(int *)(*piVar21 + 8)" * (cast_expression "(int *)(*piVar21 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar21 + 8)" ( (binary_expression "*piVar21 + 8" (pointer_expression "*piVar21" * identifier) + number_literal) )))))) ;) (goto_statement "goto code_r0x001229a9;" goto statement_identifier ;) })) })) (labeled_statement "code_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);" statement_identifier : (expression_statement "iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);" (assignment_expression "iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" identifier = (call_expression "FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" identifier (argument_list "(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" ( identifier , identifier , (binary_expression "local_38[2] & 0x7ffffff" (subscript_expression "local_38[2]" identifier [ number_literal ]) & number_literal) , identifier )))) ;)) (expression_statement "uStack_4c = iVar15 + uStack_4c;" (assignment_expression "uStack_4c = iVar15 + uStack_4c" identifier = (binary_expression "iVar15 + uStack_4c" identifier + identifier)) ;) }))) (labeled_statement "code_r0x001229a9:\n    uStack_4c = uStack_4c | local_48;" statement_identifier : (expression_statement "uStack_4c = uStack_4c | local_48;" (assignment_expression "uStack_4c = uStack_4c | local_48" identifier = (binary_expression "uStack_4c | local_48" identifier | identifier)) ;)) (expression_statement "*puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;" (assignment_expression "*puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff" (pointer_expression "*puVar23" * identifier) = (binary_expression "(uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff" (binary_expression "(uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000" (binary_expression "(uStack_4c & 0xf000) << 4" (parenthesized_expression "(uStack_4c & 0xf000)" ( (binary_expression "uStack_4c & 0xf000" identifier & number_literal) )) << number_literal) | (binary_expression "uVar9 & 0xfff0f000" identifier & number_literal)) | (binary_expression "uStack_4c & 0xfff" identifier & number_literal))) ;) (goto_statement "goto joined_r0x00122aa6;" goto statement_identifier ;)) (case_statement "case 0x2f:" case number_literal :) (case_statement "case 0x31:" case number_literal :) (case_statement "case 0x57:" case number_literal :) (case_statement "case 0x59:\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar8 = (ushort)*puVar23;\n    uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;\n    uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;\n    uStack_4c = uVar9 - 0x10000;\n    if ((uVar14 & 0x8000) == 0) {\n      uStack_4c = uVar9;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x00122a61:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;\n    *(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;\n    *(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);\njoined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;\n    break;" case number_literal : (expression_statement "uVar2 = *(ushort *)((int)puVar23 + 2);" (assignment_expression "uVar2 = *(ushort *)((int)puVar23 + 2)" identifier = (pointer_expression "*(ushort *)((int)puVar23 + 2)" * (cast_expression "(ushort *)((int)puVar23 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + 2)" ( (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar1 = *(byte *)(iVar5 + 0x34);" (assignment_expression "bVar1 = *(byte *)(iVar5 + 0x34)" identifier = (pointer_expression "*(byte *)(iVar5 + 0x34)" * (cast_expression "(byte *)(iVar5 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = (ushort)*puVar23;" (assignment_expression "uVar8 = (ushort)*puVar23" identifier = (binary_expression "(ushort)*puVar23" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ;) (expression_statement "uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;" (assignment_expression "uVar14 = ((uVar8 & 0xf) << 0x10) >> 4" identifier = (binary_expression "((uVar8 & 0xf) << 0x10) >> 4" (parenthesized_expression "((uVar8 & 0xf) << 0x10)" ( (binary_expression "(uVar8 & 0xf) << 0x10" (parenthesized_expression "(uVar8 & 0xf)" ( (binary_expression "uVar8 & 0xf" identifier & number_literal) )) << number_literal) )) >> number_literal)) ;) (expression_statement "uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;" (assignment_expression "uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4" identifier = (binary_expression "((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4" (binary_expression "((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff" (binary_expression "((uVar8 & 0x400) << 0x10) >> 0xf | uVar14" (binary_expression "((uVar8 & 0x400) << 0x10) >> 0xf" (parenthesized_expression "((uVar8 & 0x400) << 0x10)" ( (binary_expression "(uVar8 & 0x400) << 0x10" (parenthesized_expression "(uVar8 & 0x400)" ( (binary_expression "uVar8 & 0x400" identifier & number_literal) )) << number_literal) )) >> number_literal) | identifier) | (binary_expression "uVar2 & 0xff" identifier & number_literal)) | (binary_expression "(uVar2 & 0x7000) >> 4" (parenthesized_expression "(uVar2 & 0x7000)" ( (binary_expression "uVar2 & 0x7000" identifier & number_literal) )) >> number_literal))) ;) (expression_statement "uStack_4c = uVar9 - 0x10000;" (assignment_expression "uStack_4c = uVar9 - 0x10000" identifier = (binary_expression "uVar9 - 0x10000" identifier - number_literal)) ;) (if_statement "if ((uVar14 & 0x8000) == 0) {\n      uStack_4c = uVar9;\n    }" if (parenthesized_expression "((uVar14 & 0x8000) == 0)" ( (binary_expression "(uVar14 & 0x8000) == 0" (parenthesized_expression "(uVar14 & 0x8000)" ( (binary_expression "uVar14 & 0x8000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      uStack_4c = uVar9;\n    }" { (expression_statement "uStack_4c = uVar9;" (assignment_expression "uStack_4c = uVar9" identifier = identifier) ;) })) (if_statement "if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" if (parenthesized_expression "((char)*(byte *)((int)local_38 + 0xb) < '\0')" ( (binary_expression "(char)*(byte *)((int)local_38 + 0xb) < '\0'" (cast_expression "(char)*(byte *)((int)local_38 + 0xb)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)local_38 + 0xb)" * (cast_expression "(byte *)((int)local_38 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0xb)" ( (binary_expression "(int)local_38 + 0xb" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uStack_4c = uStack_4c + local_38[3];\n    }" { (expression_statement "uStack_4c = uStack_4c + local_38[3];" (assignment_expression "uStack_4c = uStack_4c + local_38[3]" identifier = (binary_expression "uStack_4c + local_38[3]" identifier + (subscript_expression "local_38[3]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" else (compound_statement "{\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" { (if_statement "if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }" if (parenthesized_expression "((*(byte *)((int)local_38 + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)((int)local_38 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)((int)local_38 + 0xb) & 8)" ( (binary_expression "*(byte *)((int)local_38 + 0xb) & 8" (pointer_expression "*(byte *)((int)local_38 + 0xb)" * (cast_expression "(byte *)((int)local_38 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0xb)" ( (binary_expression "(int)local_38 + 0xb" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }" { comment (expression_statement "FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));" (call_expression "FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2))" identifier (argument_list "("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2))" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""value"" " string_content ") , (call_expression "CONCAT22(uVar8,uVar2)" identifier (argument_list "(uVar8,uVar2)" ( identifier , identifier ))) ))) ;) })) (expression_statement "puVar6 = (uint *)local_38[3];" (assignment_expression "puVar6 = (uint *)local_38[3]" identifier = (cast_expression "(uint *)local_38[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_38[3]" identifier [ number_literal ]))) ;) (expression_statement "local_34 = *puVar6;" (assignment_expression "local_34 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (if_statement "if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }" if (parenthesized_expression "(uStack_4c < 0xffffff00)" ( (binary_expression "uStack_4c < 0xffffff00" identifier < number_literal) )) (compound_statement "{\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }" { (expression_statement "local_34 = local_34 + uStack_4c;" (assignment_expression "local_34 = local_34 + uStack_4c" identifier = (binary_expression "local_34 + uStack_4c" identifier + identifier)) ;) (expression_statement "uStack_4c = 0;" (assignment_expression "uStack_4c = 0" identifier = number_literal) ;) })) (expression_statement "uVar9 = local_34 % puVar6[3];" (assignment_expression "uVar9 = local_34 % puVar6[3]" identifier = (binary_expression "local_34 % puVar6[3]" identifier % (subscript_expression "puVar6[3]" identifier [ number_literal ]))) ;) (expression_statement "piVar21 = *(int **)(puVar6[2] + uVar9 * 4);" (assignment_expression "piVar21 = *(int **)(puVar6[2] + uVar9 * 4)" identifier = (pointer_expression "*(int **)(puVar6[2] + uVar9 * 4)" * (cast_expression "(int **)(puVar6[2] + uVar9 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6[2] + uVar9 * 4)" ( (binary_expression "puVar6[2] + uVar9 * 4" (subscript_expression "puVar6[2]" identifier [ number_literal ]) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }" if (parenthesized_expression "(piVar21 != (int *)0x0)" ( (binary_expression "piVar21 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }" { (expression_statement "uVar14 = ((int *)*piVar21)[1];" (assignment_expression "uVar14 = ((int *)*piVar21)[1]" identifier = (subscript_expression "((int *)*piVar21)[1]" (parenthesized_expression "((int *)*piVar21)" ( (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar7 = (int *)*piVar21;" (assignment_expression "piVar7 = (int *)*piVar21" identifier = (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (while_statement "while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }" while (parenthesized_expression "(piVar19 = piVar7, uVar14 != local_34)" ( (comma_expression "piVar19 = piVar7, uVar14 != local_34" (assignment_expression "piVar19 = piVar7" identifier = identifier) , (binary_expression "uVar14 != local_34" identifier != identifier)) )) (compound_statement "{\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }" { (expression_statement "piVar7 = (int *)*piVar19;" (assignment_expression "piVar7 = (int *)*piVar19" identifier = (cast_expression "(int *)*piVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar19" * identifier))) ;) (if_statement "if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;" if (parenthesized_expression "((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))" ( (binary_expression "(piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9)" (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9)" ( (comma_expression "uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9" (assignment_expression "uVar14 = piVar7[1]" identifier = (subscript_expression "piVar7[1]" identifier [ number_literal ])) , (comma_expression "piVar21 = piVar19, uVar14 % puVar6[3] != uVar9" (assignment_expression "piVar21 = piVar19" identifier = identifier) , (binary_expression "uVar14 % puVar6[3] != uVar9" (binary_expression "uVar14 % puVar6[3]" identifier % (subscript_expression "puVar6[3]" identifier [ number_literal ])) != identifier))) ))) )) (goto_statement "goto code_r0x00122b06;" goto statement_identifier ;)) })) (if_statement "if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }" if (parenthesized_expression "(*piVar21 != 0)" ( (binary_expression "*piVar21 != 0" (pointer_expression "*piVar21" * identifier) != number_literal) )) (compound_statement "{\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }" { (expression_statement "uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);" (assignment_expression "uStack_4c = uStack_4c + *(int *)(*piVar21 + 8)" identifier = (binary_expression "uStack_4c + *(int *)(*piVar21 + 8)" identifier + (pointer_expression "*(int *)(*piVar21 + 8)" * (cast_expression "(int *)(*piVar21 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar21 + 8)" ( (binary_expression "*piVar21 + 8" (pointer_expression "*piVar21" * identifier) + number_literal) )))))) ;) (goto_statement "goto code_r0x00122a61;" goto statement_identifier ;) })) })) (labeled_statement "code_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);" statement_identifier : (expression_statement "iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);" (assignment_expression "iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" identifier = (call_expression "FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" identifier (argument_list "(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" ( identifier , identifier , (binary_expression "local_38[2] & 0x7ffffff" (subscript_expression "local_38[2]" identifier [ number_literal ]) & number_literal) , identifier )))) ;)) (expression_statement "uStack_4c = iVar15 + uStack_4c;" (assignment_expression "uStack_4c = iVar15 + uStack_4c" identifier = (binary_expression "iVar15 + uStack_4c" identifier + identifier)) ;) }))) (labeled_statement "code_r0x00122a61:\n    uStack_4c = uStack_4c | local_48;" statement_identifier : (expression_statement "uStack_4c = uStack_4c | local_48;" (assignment_expression "uStack_4c = uStack_4c | local_48" identifier = (binary_expression "uStack_4c | local_48" identifier | identifier)) ;)) (expression_statement "uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;" (assignment_expression "uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00" identifier = (binary_expression "CONCAT22(uVar8,uVar2) & 0xfbf08f00" (call_expression "CONCAT22(uVar8,uVar2)" identifier (argument_list "(uVar8,uVar2)" ( identifier , identifier ))) & number_literal)) ;) (expression_statement "*(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;" (assignment_expression "*(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff" (pointer_expression "*(ushort *)((int)puVar23 + 2)" * (cast_expression "(ushort *)((int)puVar23 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + 2)" ( (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff" (binary_expression "(ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9" (binary_expression "(ushort)(uStack_4c << 4) & 0x7000" (call_expression "(ushort)(uStack_4c << 4)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uStack_4c << 4)" ( (binary_expression "uStack_4c << 4" identifier << number_literal) ))) & number_literal) | (cast_expression "(ushort)uVar9" ( (type_descriptor "ushort" type_identifier) ) identifier)) | (binary_expression "(ushort)uStack_4c & 0xff" (cast_expression "(ushort)uStack_4c" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal))) ;) (expression_statement "*(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);" (assignment_expression "*(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10)" (pointer_expression "*(ushort *)puVar23" * (cast_expression "(ushort *)puVar23" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10)" (binary_expression "(ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf" (call_expression "(ushort)(uVar9 >> 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar9 >> 0x10)" ( (binary_expression "uVar9 >> 0x10" identifier >> number_literal) ))) | (binary_expression "(ushort)((uStack_4c << 4) >> 0x10) & 0xf" (call_expression "(ushort)((uStack_4c << 4) >> 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((uStack_4c << 4) >> 0x10)" ( (binary_expression "(uStack_4c << 4) >> 0x10" (parenthesized_expression "(uStack_4c << 4)" ( (binary_expression "uStack_4c << 4" identifier << number_literal) )) >> number_literal) ))) & number_literal)) | (call_expression "(ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(((uStack_4c & 0x800) << 0xf) >> 0x10)" ( (binary_expression "((uStack_4c & 0x800) << 0xf) >> 0x10" (parenthesized_expression "((uStack_4c & 0x800) << 0xf)" ( (binary_expression "(uStack_4c & 0x800) << 0xf" (parenthesized_expression "(uStack_4c & 0x800)" ( (binary_expression "uStack_4c & 0x800" identifier & number_literal) )) << number_literal) )) >> number_literal) ))))) ;) (labeled_statement "joined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;" statement_identifier : (if_statement "if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;" if (parenthesized_expression "(((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000))" ( (binary_expression "((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)" (parenthesized_expression "((bVar1 >> 2 & 1) == 0)" ( (binary_expression "(bVar1 >> 2 & 1) == 0" (parenthesized_expression "(bVar1 >> 2 & 1)" ( (binary_expression "bVar1 >> 2 & 1" (binary_expression "bVar1 >> 2" identifier >> number_literal) & number_literal) )) == number_literal) )) || (parenthesized_expression "(uStack_4c + 0x8000 < 0x10000)" ( (binary_expression "uStack_4c + 0x8000 < 0x10000" (binary_expression "uStack_4c + 0x8000" identifier + number_literal) < number_literal) ))) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;))) (break_statement "break;" break ;)) (case_statement "case 0x33:\n    iVar15 = FUN_00112810(0,local_48);\ncode_r0x00122342:\n    if (iVar15 == 1) break;\n    if (iVar15 == 0) goto LAB_0012238d;\n    if (iVar15 != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    pcVar12 = "unexpected opcode while processing relocation %s";\n    goto LAB_0012236a;" case number_literal : (expression_statement "iVar15 = FUN_00112810(0,local_48);" (assignment_expression "iVar15 = FUN_00112810(0,local_48)" identifier = (call_expression "FUN_00112810(0,local_48)" identifier (argument_list "(0,local_48)" ( number_literal , identifier )))) ;) (labeled_statement "code_r0x00122342:\n    if (iVar15 == 1) break;" statement_identifier : (if_statement "if (iVar15 == 1) break;" if (parenthesized_expression "(iVar15 == 1)" ( (binary_expression "iVar15 == 1" identifier == number_literal) )) (break_statement "break;" break ;))) (if_statement "if (iVar15 == 0) goto LAB_0012238d;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;)) (if_statement "if (iVar15 != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }" if (parenthesized_expression "(iVar15 != 2)" ( (binary_expression "iVar15 != 2" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }" { comment (expression_statement "FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15)" identifier (argument_list "("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") , identifier ))) ;) })) (expression_statement "uVar20 = *(undefined4 *)(iVar5 + 4);" (assignment_expression "uVar20 = *(undefined4 *)(iVar5 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 4)" * (cast_expression "(undefined4 *)(iVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar12 = "unexpected opcode while processing relocation %s";" (assignment_expression "pcVar12 = "unexpected opcode while processing relocation %s"" identifier = (string_literal ""unexpected opcode while processing relocation %s"" " string_content ")) ;) (goto_statement "goto LAB_0012236a;" goto statement_identifier ;)) (case_statement "case 0x34:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);\n    *(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;\n    if (uVar8 < 0x7f) goto LAB_0012238d;\n    break;" case number_literal : (expression_statement "uVar2 = (ushort)*puVar23;" (assignment_expression "uVar2 = (ushort)*puVar23" identifier = (binary_expression "(ushort)*puVar23" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ;) (expression_statement "uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);" (assignment_expression "uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e)" identifier = (call_expression "FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e)" identifier (argument_list "(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e)" ( identifier , identifier , (binary_expression "(ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e" (binary_expression "(ushort)((int)(uint)uVar2 >> 3) & 0x40" (call_expression "(ushort)((int)(uint)uVar2 >> 3)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((int)(uint)uVar2 >> 3)" ( (binary_expression "(int)(uint)uVar2 >> 3" (cast_expression "(int)(uint)uVar2" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) >> number_literal) ))) & number_literal) | (binary_expression "(ushort)((int)(uint)uVar2 >> 2) & 0x3e" (call_expression "(ushort)((int)(uint)uVar2 >> 2)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((int)(uint)uVar2 >> 2)" ( (binary_expression "(int)(uint)uVar2 >> 2" (cast_expression "(int)(uint)uVar2" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) >> number_literal) ))) & number_literal)) )))) ;) (expression_statement "*(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;" (assignment_expression "*(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200" (pointer_expression "*(ushort *)puVar23" * (cast_expression "(ushort *)puVar23" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200" (binary_expression "uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2" (binary_expression "uVar2 & 0xfd07" identifier & number_literal) | (binary_expression "(uVar2 & 0x3e) << 2" (parenthesized_expression "(uVar2 & 0x3e)" ( (binary_expression "uVar2 & 0x3e" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 * 8 & 0x200" (binary_expression "uVar8 * 8" identifier * number_literal) & number_literal))) ;) (if_statement "if (uVar8 < 0x7f) goto LAB_0012238d;" if (parenthesized_expression "(uVar8 < 0x7f)" ( (binary_expression "uVar8 < 0x7f" identifier < number_literal) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 0x35:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = *(ushort *)((int)puVar23 + 2);\n    uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229f9:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);\n    uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;\n    if ((int)uStack_4c < 0) {\n      uVar14 = uVar14 | 0xa00000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\n    goto joined_r0x0012230f;" case number_literal : (expression_statement "uVar2 = (ushort)*puVar23;" (assignment_expression "uVar2 = (ushort)*puVar23" identifier = (binary_expression "(ushort)*puVar23" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ;) (expression_statement "uVar8 = *(ushort *)((int)puVar23 + 2);" (assignment_expression "uVar8 = *(ushort *)((int)puVar23 + 2)" identifier = (pointer_expression "*(ushort *)((int)puVar23 + 2)" * (cast_expression "(ushort *)((int)puVar23 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + 2)" ( (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);" (assignment_expression "uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1)" identifier = (binary_expression "((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1)" (parenthesized_expression "((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff)" ( (binary_expression "(uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff" (binary_expression "(uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf" (binary_expression "(uVar8 & 0x7000) >> 4" (parenthesized_expression "(uVar8 & 0x7000)" ( (binary_expression "uVar8 & 0x7000" identifier & number_literal) )) >> number_literal) | (binary_expression "((uVar2 & 0x400) << 0x10) >> 0xf" (parenthesized_expression "((uVar2 & 0x400) << 0x10)" ( (binary_expression "(uVar2 & 0x400) << 0x10" (parenthesized_expression "(uVar2 & 0x400)" ( (binary_expression "uVar2 & 0x400" identifier & number_literal) )) << number_literal) )) >> number_literal)) | (binary_expression "uVar8 & 0xff" identifier & number_literal)) )) * (parenthesized_expression "((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1)" ( (binary_expression "(uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1" (binary_expression "(uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2" (call_expression "(uint)((uVar2 & 0xf8ed) != 0xf0ad)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar2 & 0xf8ed) != 0xf0ad)" ( (binary_expression "(uVar2 & 0xf8ed) != 0xf0ad" (parenthesized_expression "(uVar2 & 0xf8ed)" ( (binary_expression "uVar2 & 0xf8ed" identifier & number_literal) )) != number_literal) ))) * number_literal) + number_literal) )))) ;) (if_statement "if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" if (parenthesized_expression "((char)*(byte *)((int)local_38 + 0xb) < '\0')" ( (binary_expression "(char)*(byte *)((int)local_38 + 0xb) < '\0'" (cast_expression "(char)*(byte *)((int)local_38 + 0xb)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)local_38 + 0xb)" * (cast_expression "(byte *)((int)local_38 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0xb)" ( (binary_expression "(int)local_38 + 0xb" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uStack_4c = uStack_4c + local_38[3];\n    }" { (expression_statement "uStack_4c = uStack_4c + local_38[3];" (assignment_expression "uStack_4c = uStack_4c + local_38[3]" identifier = (binary_expression "uStack_4c + local_38[3]" identifier + (subscript_expression "local_38[3]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" else (compound_statement "{\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" { (if_statement "if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }" if (parenthesized_expression "((*(byte *)((int)local_38 + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)((int)local_38 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)((int)local_38 + 0xb) & 8)" ( (binary_expression "*(byte *)((int)local_38 + 0xb) & 8" (pointer_expression "*(byte *)((int)local_38 + 0xb)" * (cast_expression "(byte *)((int)local_38 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0xb)" ( (binary_expression "(int)local_38 + 0xb" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }" { comment (expression_statement "FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);" (call_expression "FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff)" identifier (argument_list "("../../gold/object.h",0x6ab,"value",uVar8 & 0xff)" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""value"" " string_content ") , (binary_expression "uVar8 & 0xff" identifier & number_literal) ))) ;) })) (expression_statement "puVar6 = (uint *)local_38[3];" (assignment_expression "puVar6 = (uint *)local_38[3]" identifier = (cast_expression "(uint *)local_38[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_38[3]" identifier [ number_literal ]))) ;) (expression_statement "local_34 = *puVar6;" (assignment_expression "local_34 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (if_statement "if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }" if (parenthesized_expression "(uStack_4c < 0xffffff00)" ( (binary_expression "uStack_4c < 0xffffff00" identifier < number_literal) )) (compound_statement "{\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }" { (expression_statement "local_34 = local_34 + uStack_4c;" (assignment_expression "local_34 = local_34 + uStack_4c" identifier = (binary_expression "local_34 + uStack_4c" identifier + identifier)) ;) (expression_statement "uStack_4c = 0;" (assignment_expression "uStack_4c = 0" identifier = number_literal) ;) })) (expression_statement "uVar9 = local_34 % puVar6[3];" (assignment_expression "uVar9 = local_34 % puVar6[3]" identifier = (binary_expression "local_34 % puVar6[3]" identifier % (subscript_expression "puVar6[3]" identifier [ number_literal ]))) ;) (expression_statement "piVar21 = *(int **)(puVar6[2] + uVar9 * 4);" (assignment_expression "piVar21 = *(int **)(puVar6[2] + uVar9 * 4)" identifier = (pointer_expression "*(int **)(puVar6[2] + uVar9 * 4)" * (cast_expression "(int **)(puVar6[2] + uVar9 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6[2] + uVar9 * 4)" ( (binary_expression "puVar6[2] + uVar9 * 4" (subscript_expression "puVar6[2]" identifier [ number_literal ]) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }" if (parenthesized_expression "(piVar21 != (int *)0x0)" ( (binary_expression "piVar21 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }" { (expression_statement "uVar14 = ((int *)*piVar21)[1];" (assignment_expression "uVar14 = ((int *)*piVar21)[1]" identifier = (subscript_expression "((int *)*piVar21)[1]" (parenthesized_expression "((int *)*piVar21)" ( (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar7 = (int *)*piVar21;" (assignment_expression "piVar7 = (int *)*piVar21" identifier = (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (while_statement "while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }" while (parenthesized_expression "(piVar19 = piVar7, uVar14 != local_34)" ( (comma_expression "piVar19 = piVar7, uVar14 != local_34" (assignment_expression "piVar19 = piVar7" identifier = identifier) , (binary_expression "uVar14 != local_34" identifier != identifier)) )) (compound_statement "{\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }" { (expression_statement "piVar7 = (int *)*piVar19;" (assignment_expression "piVar7 = (int *)*piVar19" identifier = (cast_expression "(int *)*piVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar19" * identifier))) ;) (if_statement "if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;" if (parenthesized_expression "((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))" ( (binary_expression "(piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9)" (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9)" ( (comma_expression "uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9" (assignment_expression "uVar14 = piVar7[1]" identifier = (subscript_expression "piVar7[1]" identifier [ number_literal ])) , (comma_expression "piVar21 = piVar19, uVar14 % puVar6[3] != uVar9" (assignment_expression "piVar21 = piVar19" identifier = identifier) , (binary_expression "uVar14 % puVar6[3] != uVar9" (binary_expression "uVar14 % puVar6[3]" identifier % (subscript_expression "puVar6[3]" identifier [ number_literal ])) != identifier))) ))) )) (goto_statement "goto code_r0x00122ad6;" goto statement_identifier ;)) })) (if_statement "if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }" if (parenthesized_expression "(*piVar21 != 0)" ( (binary_expression "*piVar21 != 0" (pointer_expression "*piVar21" * identifier) != number_literal) )) (compound_statement "{\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }" { (expression_statement "uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);" (assignment_expression "uStack_4c = uStack_4c + *(int *)(*piVar21 + 8)" identifier = (binary_expression "uStack_4c + *(int *)(*piVar21 + 8)" identifier + (pointer_expression "*(int *)(*piVar21 + 8)" * (cast_expression "(int *)(*piVar21 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar21 + 8)" ( (binary_expression "*piVar21 + 8" (pointer_expression "*piVar21" * identifier) + number_literal) )))))) ;) (goto_statement "goto code_r0x001229f9;" goto statement_identifier ;) })) })) (labeled_statement "code_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);" statement_identifier : (expression_statement "iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);" (assignment_expression "iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" identifier = (call_expression "FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" identifier (argument_list "(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" ( identifier , identifier , (binary_expression "local_38[2] & 0x7ffffff" (subscript_expression "local_38[2]" identifier [ number_literal ]) & number_literal) , identifier )))) ;)) (expression_statement "uStack_4c = iVar15 + uStack_4c;" (assignment_expression "uStack_4c = iVar15 + uStack_4c" identifier = (binary_expression "iVar15 + uStack_4c" identifier + identifier)) ;) }))) (labeled_statement "code_r0x001229f9:\n    uStack_4c = uStack_4c | local_48;" statement_identifier : (expression_statement "uStack_4c = uStack_4c | local_48;" (assignment_expression "uStack_4c = uStack_4c | local_48" identifier = (binary_expression "uStack_4c | local_48" identifier | identifier)) ;)) (expression_statement "uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);" (assignment_expression "uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f)" identifier = (binary_expression "((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f)" (parenthesized_expression "((int)uStack_4c >> 0x1f ^ uStack_4c)" ( (binary_expression "(int)uStack_4c >> 0x1f ^ uStack_4c" (binary_expression "(int)uStack_4c >> 0x1f" (cast_expression "(int)uStack_4c" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ^ identifier) )) - (parenthesized_expression "((int)uStack_4c >> 0x1f)" ( (binary_expression "(int)uStack_4c >> 0x1f" (cast_expression "(int)uStack_4c" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;" (assignment_expression "uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00" identifier = (binary_expression "(uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00" (binary_expression "(uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff" (binary_expression "(uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4" (binary_expression "(uVar9 & 0x800) << 0xf" (parenthesized_expression "(uVar9 & 0x800)" ( (binary_expression "uVar9 & 0x800" identifier & number_literal) )) << number_literal) | (binary_expression "(uVar9 & 0x700) << 4" (parenthesized_expression "(uVar9 & 0x700)" ( (binary_expression "uVar9 & 0x700" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 & 0xff" identifier & number_literal)) | (binary_expression "CONCAT22(uVar2,uVar8) & 0xfb0f8f00" (call_expression "CONCAT22(uVar2,uVar8)" identifier (argument_list "(uVar2,uVar8)" ( identifier , identifier ))) & number_literal))) ;) (if_statement "if ((int)uStack_4c < 0) {\n      uVar14 = uVar14 | 0xa00000;\n    }" if (parenthesized_expression "((int)uStack_4c < 0)" ( (binary_expression "(int)uStack_4c < 0" (cast_expression "(int)uStack_4c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar14 = uVar14 | 0xa00000;\n    }" { (expression_statement "uVar14 = uVar14 | 0xa00000;" (assignment_expression "uVar14 = uVar14 | 0xa00000" identifier = (binary_expression "uVar14 | 0xa00000" identifier | number_literal)) ;) })) (expression_statement "*(ushort *)((int)puVar23 + 2) = (ushort)uVar14;" (assignment_expression "*(ushort *)((int)puVar23 + 2) = (ushort)uVar14" (pointer_expression "*(ushort *)((int)puVar23 + 2)" * (cast_expression "(ushort *)((int)puVar23 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + 2)" ( (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(ushort)uVar14" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "*(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);" (assignment_expression "*(ushort *)puVar23 = (ushort)(uVar14 >> 0x10)" (pointer_expression "*(ushort *)puVar23" * (cast_expression "(ushort *)puVar23" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (call_expression "(ushort)(uVar14 >> 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar14 >> 0x10)" ( (binary_expression "uVar14 >> 0x10" identifier >> number_literal) )))) ;) (goto_statement "goto joined_r0x0012230f;" goto statement_identifier ;)) (case_statement "case 0x36:\n    uVar14 = *puVar23;\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));\n    uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);\n    uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;\n    if (-1 < (int)uVar17) {\n      uVar14 = uVar14 | 0x800000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\njoined_r0x0012230f:\n    if ((int)uVar9 < 0x1000) goto LAB_0012238d;\n    break;" case number_literal : (expression_statement "uVar14 = *puVar23;" (assignment_expression "uVar14 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "uVar2 = *(ushort *)((int)puVar23 + 2);" (assignment_expression "uVar2 = *(ushort *)((int)puVar23 + 2)" identifier = (pointer_expression "*(ushort *)((int)puVar23 + 2)" * (cast_expression "(ushort *)((int)puVar23 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + 2)" ( (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));" (assignment_expression "uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1))" identifier = (call_expression "FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1))" identifier (argument_list "(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1))" ( identifier , identifier , (binary_expression "(uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1)" (parenthesized_expression "(uVar2 & 0xfff)" ( (binary_expression "uVar2 & 0xfff" identifier & number_literal) )) * (parenthesized_expression "(-(uint)(((ushort)uVar14 & 0x80) == 0) | 1)" ( (binary_expression "-(uint)(((ushort)uVar14 & 0x80) == 0) | 1" (unary_expression "-(uint)(((ushort)uVar14 & 0x80) == 0)" - (call_expression "(uint)(((ushort)uVar14 & 0x80) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((ushort)uVar14 & 0x80) == 0)" ( (binary_expression "((ushort)uVar14 & 0x80) == 0" (parenthesized_expression "((ushort)uVar14 & 0x80)" ( (binary_expression "(ushort)uVar14 & 0x80" (cast_expression "(ushort)uVar14" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal) )) == number_literal) )))) | number_literal) ))) )))) ;) (expression_statement "uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);" (assignment_expression "uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f)" identifier = (binary_expression "((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f)" (parenthesized_expression "((int)uVar17 >> 0x1f ^ uVar17)" ( (binary_expression "(int)uVar17 >> 0x1f ^ uVar17" (binary_expression "(int)uVar17 >> 0x1f" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ^ identifier) )) - (parenthesized_expression "((int)uVar17 >> 0x1f)" ( (binary_expression "(int)uVar17 >> 0x1f" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;" (assignment_expression "uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff" identifier = (binary_expression "CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff" (binary_expression "CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000" (call_expression "CONCAT22((ushort)uVar14,uVar2)" identifier (argument_list "((ushort)uVar14,uVar2)" ( (cast_expression "(ushort)uVar14" ( (type_descriptor "ushort" type_identifier) ) identifier) , identifier ))) & number_literal) | (binary_expression "uVar9 & 0xfff" identifier & number_literal))) ;) (if_statement "if (-1 < (int)uVar17) {\n      uVar14 = uVar14 | 0x800000;\n    }" if (parenthesized_expression "(-1 < (int)uVar17)" ( (binary_expression "-1 < (int)uVar17" number_literal < (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      uVar14 = uVar14 | 0x800000;\n    }" { (expression_statement "uVar14 = uVar14 | 0x800000;" (assignment_expression "uVar14 = uVar14 | 0x800000" identifier = (binary_expression "uVar14 | 0x800000" identifier | number_literal)) ;) })) (expression_statement "*(ushort *)((int)puVar23 + 2) = (ushort)uVar14;" (assignment_expression "*(ushort *)((int)puVar23 + 2) = (ushort)uVar14" (pointer_expression "*(ushort *)((int)puVar23 + 2)" * (cast_expression "(ushort *)((int)puVar23 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + 2)" ( (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(ushort)uVar14" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "*(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);" (assignment_expression "*(ushort *)puVar23 = (ushort)(uVar14 >> 0x10)" (pointer_expression "*(ushort *)puVar23" * (cast_expression "(ushort *)puVar23" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (call_expression "(ushort)(uVar14 >> 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar14 >> 0x10)" ( (binary_expression "uVar14 >> 0x10" identifier >> number_literal) )))) ;) (labeled_statement "joined_r0x0012230f:\n    if ((int)uVar9 < 0x1000) goto LAB_0012238d;" statement_identifier : (if_statement "if ((int)uVar9 < 0x1000) goto LAB_0012238d;" if (parenthesized_expression "((int)uVar9 < 0x1000)" ( (binary_expression "(int)uVar9 < 0x1000" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;))) (break_statement "break;" break ;)) (case_statement "case 0x66:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0x7fe;\n    if ((uVar9 & 0x400) != 0) {\n      uVar17 = uVar17 - 0x800;\n    }\n    uVar9 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;\njoined_r0x00122297:\n    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;\n    break;" case number_literal : (expression_statement "uVar14 = *puVar23;" (assignment_expression "uVar14 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "uVar9 = (uint)(ushort)uVar14 * 2;" (assignment_expression "uVar9 = (uint)(ushort)uVar14 * 2" identifier = (binary_expression "(uint)(ushort)uVar14 * 2" (cast_expression "(uint)(ushort)uVar14" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(ushort)uVar14" ( (type_descriptor "ushort" type_identifier) ) identifier)) * number_literal)) ;) (expression_statement "uVar17 = uVar9 & 0x7fe;" (assignment_expression "uVar17 = uVar9 & 0x7fe" identifier = (binary_expression "uVar9 & 0x7fe" identifier & number_literal)) ;) (if_statement "if ((uVar9 & 0x400) != 0) {\n      uVar17 = uVar17 - 0x800;\n    }" if (parenthesized_expression "((uVar9 & 0x400) != 0)" ( (binary_expression "(uVar9 & 0x400) != 0" (parenthesized_expression "(uVar9 & 0x400)" ( (binary_expression "uVar9 & 0x400" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar17 = uVar17 - 0x800;\n    }" { (expression_statement "uVar17 = uVar17 - 0x800;" (assignment_expression "uVar17 = uVar17 - 0x800" identifier = (binary_expression "uVar17 - 0x800" identifier - number_literal)) ;) })) (expression_statement "uVar9 = FUN_00072130(local_38,piVar3,uVar17);" (assignment_expression "uVar9 = FUN_00072130(local_38,piVar3,uVar17)" identifier = (call_expression "FUN_00072130(local_38,piVar3,uVar17)" identifier (argument_list "(local_38,piVar3,uVar17)" ( identifier , identifier , identifier )))) ;) (expression_statement "*(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;" (assignment_expression "*(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff" (pointer_expression "*(ushort *)puVar23" * (cast_expression "(ushort *)puVar23" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff" (binary_expression "(ushort)uVar14 & 0xf800" (cast_expression "(ushort)uVar14" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal) | (binary_expression "(ushort)((int)uVar9 >> 1) & 0x7ff" (call_expression "(ushort)((int)uVar9 >> 1)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((int)uVar9 >> 1)" ( (binary_expression "(int)uVar9 >> 1" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) & number_literal))) ;) (labeled_statement "joined_r0x00122297:\n    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;" statement_identifier : (if_statement "if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;" if (parenthesized_expression "(uVar9 + 0x800 < 0x1000)" ( (binary_expression "uVar9 + 0x800 < 0x1000" (binary_expression "uVar9 + 0x800" identifier + number_literal) < number_literal) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;))) (break_statement "break;" break ;)) (case_statement "case 0x67:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0xff;\n    if ((uVar9 & 0x80) != 0) {\n      uVar17 = uVar17 - 0x100;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;\n    if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;" case number_literal : (expression_statement "uVar14 = *puVar23;" (assignment_expression "uVar14 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "uVar9 = (uint)(ushort)uVar14 * 2;" (assignment_expression "uVar9 = (uint)(ushort)uVar14 * 2" identifier = (binary_expression "(uint)(ushort)uVar14 * 2" (cast_expression "(uint)(ushort)uVar14" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(ushort)uVar14" ( (type_descriptor "ushort" type_identifier) ) identifier)) * number_literal)) ;) (expression_statement "uVar17 = uVar9 & 0xff;" (assignment_expression "uVar17 = uVar9 & 0xff" identifier = (binary_expression "uVar9 & 0xff" identifier & number_literal)) ;) (if_statement "if ((uVar9 & 0x80) != 0) {\n      uVar17 = uVar17 - 0x100;\n    }" if (parenthesized_expression "((uVar9 & 0x80) != 0)" ( (binary_expression "(uVar9 & 0x80) != 0" (parenthesized_expression "(uVar9 & 0x80)" ( (binary_expression "uVar9 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar17 = uVar17 - 0x100;\n    }" { (expression_statement "uVar17 = uVar17 - 0x100;" (assignment_expression "uVar17 = uVar17 - 0x100" identifier = (binary_expression "uVar17 - 0x100" identifier - number_literal)) ;) })) (expression_statement "iVar15 = FUN_00072130(local_38,piVar3,uVar17);" (assignment_expression "iVar15 = FUN_00072130(local_38,piVar3,uVar17)" identifier = (call_expression "FUN_00072130(local_38,piVar3,uVar17)" identifier (argument_list "(local_38,piVar3,uVar17)" ( identifier , identifier , identifier )))) ;) (expression_statement "*(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;" (assignment_expression "*(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff" (pointer_expression "*(ushort *)puVar23" * (cast_expression "(ushort *)puVar23" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff" (binary_expression "(ushort)uVar14 & 0xff00" (cast_expression "(ushort)uVar14" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal) | (binary_expression "(ushort)(iVar15 >> 1) & 0xff" (call_expression "(ushort)(iVar15 >> 1)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(iVar15 >> 1)" ( (binary_expression "iVar15 >> 1" identifier >> number_literal) ))) & number_literal))) ;) (if_statement "if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;" if (parenthesized_expression "(iVar15 + 0x100U < 0x200)" ( (binary_expression "iVar15 + 0x100U < 0x200" (binary_expression "iVar15 + 0x100U" identifier + number_literal) < number_literal) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;))) })) (expression_statement "uVar20 = *(undefined4 *)(iVar5 + 4);" (assignment_expression "uVar20 = *(undefined4 *)(iVar5 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 4)" * (cast_expression "(undefined4 *)(iVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar12 = "relocation overflow in %s";" (assignment_expression "pcVar12 = "relocation overflow in %s"" identifier = (string_literal ""relocation overflow in %s"" " string_content ")) ;) (labeled_statement "LAB_0012236a:\n  uVar13 = gettext(pcVar12);" statement_identifier : (expression_statement "uVar13 = gettext(pcVar12);" (assignment_expression "uVar13 = gettext(pcVar12)" identifier = (call_expression "gettext(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier )))) ;)) (expression_statement "FUN_0023bd50(param_4,param_7,*param_6,0,uVar13,uVar20);" (call_expression "FUN_0023bd50(param_4,param_7,*param_6,0,uVar13,uVar20)" identifier (argument_list "(param_4,param_7,*param_6,0,uVar13,uVar20)" ( identifier , identifier , (pointer_expression "*param_6" * identifier) , number_literal , identifier , identifier ))) ;) (labeled_statement "LAB_0012238d:\n  FUN_00072240(local_40);" statement_identifier : (expression_statement "FUN_00072240(local_40);" (call_expression "FUN_00072240(local_40)" identifier (argument_list "(local_40)" ( identifier ))) ;)) (return_statement "return;" return ;) })))
(ERROR "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "<anon>": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original prototype: void relocate_special_relocatable(Target_arm<false> * this,\n   Relocate_info<32,_false> * relinfo, uint sh_type, uchar * preloc_in, size_t relnum,\n   Output_section * output_section, Elf_Off offset_in_output_section, uchar * view, Elf_Addr\n   view_address, section_size_type param_9, uchar * preloc_out) */\n\nvoid __thiscall\nanon_unknown.dwarf_91258a::Target_arm<false>::relocate_special_relocatable\n          (Target_arm<false> *this,Relocate_info<32,_false> *relinfo,uint sh_type,uchar *preloc_in,\n          size_t relnum,Output_section *output_section,Elf_Off offset_in_output_section,uchar *view,\n          Elf_Addr view_address,section_size_type param_9,uchar *preloc_out)\n\n{\n  byte bVar1;\n  byte bVar2;\n  ushort uVar3;\n  ushort uVar4;\n  _func_int_varargs **pp_Var5;\n  _func_int_varargs *p_Var6;\n  Arm_reloc_property *pAVar7;\n  pointer pSVar8;\n  pointer ppOVar9;\n  Arm_address offset;\n  pointer pSVar10;\n  Merged_symbol_value<32> *pMVar11;\n  _Hash_node_base *p_Var12;\n  uint uVar13;\n  Arm_relobj<false> *pAVar14;\n  int iVar15;\n  int iVar16;\n  Value VVar17;\n  Status SVar18;\n  char *pcVar19;\n  Output_section *pOVar20;\n  Elf_Addr EVar21;\n  uint uVar22;\n  _Hash_node_base *p_Var23;\n  uint uVar24;\n  __bucket_type p_Var25;\n  Arm_relobj<false> *object;\n  __bucket_type p_Var26;\n  uint uVar27;\n  uint *puVar28;\n  Arm_relobj<false> *in_stack_ffffff88;\n  Symbol_value<32> *in_stack_ffffff8c;\n  Arm_address in_stack_ffffff90;\n  Arm_address in_stack_ffffff94;\n  undefined1 in_stack_ffffff98;\n  uint local_4c;\n  Arm_relobj<false> *local_48;\n  Symbol_value<32> *local_40;\n  Sized_symbol<32> *local_38;\n  _Hash_node_base *local_34;\n  Symbol_value<32> symval;\n  \n  if (sh_type != 9) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x28db,"relocate_special_relocatable");\n  }\n  object = (Arm_relobj<false> *)relinfo->object;\n  pp_Var5 = (((Sized_relobj<32,_false> *)&object->invalid_address)->super_Relobj).super_Object.\n            _vptr_Object;\n  p_Var6 = pp_Var5[0x23];\n  if (p_Var6 == gold::Relobj::local_symbol_count) {\n    uVar13 = (*pp_Var5[0x2f])(object);\n  }\n  else {\n    uVar13 = (*p_Var6)(object);\n  }\n  uVar22 = *(uint *)(preloc_in + 4);\n  uVar24 = uVar22 & 0xff;\n  pAVar7 = arm_reloc_property_table->table_[uVar24];\n  uVar27 = uVar22 >> 8;\n  if (((pAVar7 == (Arm_reloc_property *)0x0) || (pAVar7->reloc_type_ != RT_STATIC)) ||\n     ((pAVar7->field_0x34 & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x28ef,"relocate_special_relocatable");\n  }\n  if (uVar13 <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x28f3,"relocate_special_relocatable");\n  }\n  pSVar8 = (((Local_values *)&object->field_0xdc)->\n           super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>).\n           _M_impl._M_start;\n  if ((uint)((int)*(pointer *)&object->field_0xe0 - (int)pSVar8 >> 4) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/object.h",0x8db,"local_symbol_input_shndx");\n  }\n  pAVar14 = (Arm_relobj<false> *)(*(uint *)&pSVar8[uVar27].field_0x8 & 0x7ffffff);\n  if ((pSVar8[uVar27].field_0xb & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x28fb,"relocate_special_relocatable");\n  }\n  p_Var6 = (((Sized_relobj<32,_false> *)&object->invalid_address)->super_Relobj).super_Object.\n           _vptr_Object[0x18];\n  if (p_Var6 == gold::Relobj::do_output_section) {\n    ppOVar9 = (((Output_sections *)&object->field_0x38)->\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n              _M_impl._M_start;\n    if ((Arm_relobj<false> *)((int)*(pointer *)&object->field_0x3c - (int)ppOVar9 >> 2) <= pAVar14)\n    {\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n    }\n    pOVar20 = ppOVar9[(int)pAVar14];\n    pAVar14 = in_stack_ffffff88;\n  }\n  else {\n    pOVar20 = (Output_section *)(*p_Var6)(object);\n  }\n  if (pOVar20 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x28fd,"relocate_special_relocatable");\n  }\n  if ((pOVar20->field_0x90 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x28fe,"relocate_special_relocatable");\n  }\n  uVar13 = pOVar20->symtab_index_;\n  if (uVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0xd81,"symtab_index");\n  }\n  offset = *(Arm_address *)preloc_in;\n  if (offset_in_output_section == 0xffffffff) {\n    in_stack_ffffff8c = (Symbol_value<32> *)relinfo->data_shndx;\n    pAVar14 = object;\n    in_stack_ffffff90 = offset;\n    iVar15 = gold::Output_section::output_offset\n                       (output_section,(Relobj *)object,(uint)in_stack_ffffff8c,offset);\n    if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/arm.cc",0x290f,"relocate_special_relocatable");\n    }\n  }\n  else {\n    iVar15 = offset + offset_in_output_section;\n  }\n  if (gold::parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  iVar16 = iVar15;\n  if ((gold::parameters->options_->relocatable_).value == false) {\n    iVar16 = iVar15 + view_address;\n    if (offset_in_output_section != 0xffffffff) {\n      iVar16 = (iVar15 + view_address) - offset_in_output_section;\n    }\n  }\n  *(int *)preloc_out = iVar16;\n  pSVar8 = *(pointer *)&object->field_0xe0;\n  *(uint *)(preloc_out + 4) = uVar13 * 0x100 + uVar24;\n  pSVar10 = (((Local_values *)&object->field_0xdc)->\n            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>).\n            _M_impl._M_start;\n  if ((uint)((int)pSVar8 - (int)pSVar10 >> 4) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/object.h",0x8c1,"local_symbol");\n  }\n  local_38 = (Sized_symbol<32> *)(pSVar10 + uVar27);\n  iVar15 = (int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>\n                ._M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p;\n  symval.output_symtab_index_ = 0;\n  symval.output_dynsym_index_ = 0xffffffff;\n  symval._8_4_ = 0x80000000;\n  symval.u_.value = 0;\n  if (((object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n       super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_offset -\n      (object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n      super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_offset) +\n      ((int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>.\n            _M_impl.super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p - iVar15) * 8\n      <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00122c8d to 00122c91 has its CatchHandler @ 00122d02 */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function");\n  }\n  local_48 = (Arm_relobj<false> *)\n             (1 << ((byte)(uVar22 >> 8) & 0x1f) & *(uint *)(iVar15 + (uVar22 >> 0xd) * 4));\n  if ((local_48 != (Arm_relobj<false> *)0x0) &&\n     (local_48 = (Arm_relobj<false> *)0x1, (pAVar7->field_0x34 & 0x40) != 0)) {\n    in_stack_ffffff8c = (Symbol_value<32> *)0x0;\n    pAVar14 = object;\n                    /* try { // try from 00122161 to 00122165 has its CatchHandler @ 00122d02 */\n    VVar17 = gold::Symbol_value<32>::value<false>\n                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,0);\n    local_48 = (Arm_relobj<false> *)(VVar17 & 1);\n    if (local_48 == (Arm_relobj<false> *)0x0) {\n      local_48 = (Arm_relobj<false> *)0x1;\n    }\n    else {\n      in_stack_ffffff8c = (Symbol_value<32> *)0x0;\n      pAVar14 = object;\n                    /* try { // try from 00122967 to 0012296b has its CatchHandler @ 00122d02 */\n      VVar17 = gold::Symbol_value<32>::value<false>\n                         ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,0);\n      symval.u_.value = VVar17 & 0xfffffffe;\n      local_38 = (Sized_symbol<32> *)&symval;\n    }\n  }\n  local_40 = &symval;\n  puVar28 = (uint *)(view + offset);\n  switch(uVar24) {\n  case 4:\n  case 0x2c:\n  case 0x2e:\n  case 0x30:\n  case 0x32:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x4c:\n  case 0x4d:\n  case 0x4e:\n  case 0x4f:\n  case 0x50:\n  case 0x51:\n  case 0x52:\n  case 0x53:\n  case 0x55:\n  case 0x58:\n    object = (Arm_relobj<false> *)(pAVar7->name_)._M_dataplus._M_p;\n    pcVar19 = (char *)gettext("cannot handle %s in a relocatable link");\n    gold::gold_error(pcVar19);\n    goto LAB_0012238d;\n  case 5:\n    uVar13 = (uint)(ushort)*puVar28;\n    if ((short)(ushort)*puVar28 < 0) {\n      uVar13 = (ushort)*puVar28 - 0x10000;\n    }\n    VVar17 = gold::Symbol_value<32>::value<false>\n                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,uVar13);\n    *(ushort *)puVar28 = (ushort)VVar17;\n    if (VVar17 + 0x8000 < 0x18000) goto LAB_0012238d;\n    break;\n  case 6:\n    uVar13 = *puVar28;\n    VVar17 = gold::Symbol_value<32>::value<false>\n                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        uVar13 & 0xfff);\n    *puVar28 = uVar13 ^ (uVar13 ^ VVar17) & 0xfff;\n    goto joined_r0x00122297;\n  case 7:\n    uVar3 = (ushort)*puVar28;\n    VVar17 = gold::Symbol_value<32>::value<false>\n                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        uVar3 >> 6 & 0x1f);\n    *(ushort *)puVar28 = uVar3 ^ ((ushort)(VVar17 << 6) ^ uVar3) & 0x7e0;\n    if (VVar17 + 0x10 < 0x20) goto LAB_0012238d;\n    break;\n  case 8:\n    bVar1 = (byte)*puVar28;\n    VVar17 = bVar1 - 0x100;\n    if (-1 < (char)bVar1) {\n      VVar17 = (uint)bVar1;\n    }\n    VVar17 = gold::Symbol_value<32>::value<false>\n                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *(byte *)puVar28 = (byte)VVar17;\n    if (VVar17 + 0x80 < 0x180) goto LAB_0012238d;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00122ac8 to 00122b77 has its CatchHandler @ 00122d02 */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x29cf,"relocate_special_relocatable");\n  case 10:\n  case 0x10:\n  case 0x1e:\n    SVar18 = Arm_relocate_functions<false>::thumb_branch_common\n                       (0,(Relocate_info<32,_false> *)object,(uchar *)0x0,local_38,\n                        (Arm_relobj<false> *)0x0,(uint)local_48,(Symbol_value<32> *)0x0,\n                        in_stack_ffffff90,in_stack_ffffff94,(bool)in_stack_ffffff98);\n    object = local_48;\n    goto LAB_00122342;\n  case 0xb:\n    uVar13 = *puVar28;\n    VVar17 = gold::Symbol_value<32>::value<false>\n                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (uint)(ushort)uVar13 * 4 & 0x3fc);\n    iVar15 = (VVar17 ^ (int)VVar17 >> 0x1f) - ((int)VVar17 >> 0x1f);\n    *(ushort *)puVar28 = (ushort)uVar13 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;\n    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;\n    break;\n  case 0xf:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n    SVar18 = Arm_relocate_functions<false>::arm_branch_common\n                       (0,(Relocate_info<32,_false> *)object,(uchar *)0x0,local_38,\n                        (Arm_relobj<false> *)0x0,(uint)local_48,(Symbol_value<32> *)0x0,\n                        in_stack_ffffff90,in_stack_ffffff94,(bool)in_stack_ffffff98);\n    object = local_48;\n    goto LAB_00122342;\n  case 0x2a:\n    uVar13 = *puVar28;\n    VVar17 = uVar13 & 0x7fffffff;\n    if ((uVar13 & 0x40000000) != 0) {\n      VVar17 = 0x7fffffff;\n    }\n    VVar17 = gold::Symbol_value<32>::value<false>\n                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    bVar1 = pAVar7->field_0x34;\n    uVar4 = (ushort)*puVar28;\n    uVar22 = ((uVar4 & 0xf) << 0x10) >> 4;\n    uVar13 = ((uVar4 & 0x400) << 0x10) >> 0xf | uVar22 | uVar3 & 0xff | (uVar3 & 0x7000) >> 4;\n    local_4c = uVar13 - 0x10000;\n    if ((uVar22 & 0x8000) == 0) {\n      local_4c = uVar13;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00122cc5 to 00122d01 has its CatchHandler @ 00122d02 */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar22 = (uint)local_34 % uVar13;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122b06;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_00122a61;\n        }\n      }\nLAB_00122b06:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_00122a61:\n    local_4c = local_4c | (uint)local_48;\n    uVar13 = CONCAT22(uVar4,uVar3) & 0xfbf08f00;\n    *(ushort *)((int)puVar28 + 2) =\n         (ushort)(local_4c << 4) & 0x7000 | (ushort)uVar13 | (ushort)local_4c & 0xff;\n    *(ushort *)puVar28 =\n         (ushort)(uVar13 >> 0x10) | (ushort)((local_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((local_4c & 0x800) << 0xf) >> 0x10);\n    object = pAVar14;\njoined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (local_4c + 0x8000 < 0x10000)) goto LAB_0012238d;\n    break;\n  case 0x33:\n    SVar18 = Arm_relocate_functions<false>::thm_jump19\n                       ((uchar *)0x0,local_48,in_stack_ffffff8c,in_stack_ffffff90,in_stack_ffffff94)\n    ;\n    object = local_48;\nLAB_00122342:\n    if (SVar18 == STATUS_OVERFLOW) break;\n    if (SVar18 == STATUS_OKAY) goto LAB_0012238d;\n    if (SVar18 != STATUS_BAD_RELOC) {\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/arm.cc",0x29e2,"relocate_special_relocatable");\n    }\n    object = (Arm_relobj<false> *)(pAVar7->name_)._M_dataplus._M_p;\n    pcVar19 = "unexpected opcode while processing relocation %s";\n    goto LAB_0012236a;\n  case 0x34:\n    uVar3 = (ushort)*puVar28;\n    VVar17 = gold::Symbol_value<32>::value<false>\n                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e));\n    *(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;\n    if ((ushort)VVar17 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar3 = (ushort)*puVar28;\n    uVar4 = *(ushort *)((int)puVar28 + 2);\n    local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *\n               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar1 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar1 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar22 = (uint)local_34 % uVar13;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }\n      }\nLAB_00122ad6:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229f9:\n    local_4c = local_4c | (uint)local_48;\n    uVar13 = ((int)local_4c >> 0x1f ^ local_4c) - ((int)local_4c >> 0x1f);\n    uVar22 = (uVar13 & 0x800) << 0xf |\n             (uVar13 & 0x700) << 4 | uVar13 & 0xff | CONCAT22(uVar3,uVar4) & 0xfb0f8f00;\n    if ((int)local_4c < 0) {\n      uVar22 = uVar22 | 0xa00000;\n    }\n    *(ushort *)((int)puVar28 + 2) = (ushort)uVar22;\n    *(ushort *)puVar28 = (ushort)(uVar22 >> 0x10);\n    object = pAVar14;\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar22 = *puVar28;\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    VVar17 = gold::Symbol_value<32>::value<false>\n                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (uVar3 & 0xfff) * (-(uint)(((ushort)uVar22 & 0x80) == 0) | 1));\n    uVar13 = ((int)VVar17 >> 0x1f ^ VVar17) - ((int)VVar17 >> 0x1f);\n    uVar22 = CONCAT22((ushort)uVar22,uVar3) & 0xff7ff000 | uVar13 & 0xfff;\n    if (-1 < (int)VVar17) {\n      uVar22 = uVar22 | 0x800000;\n    }\n    *(ushort *)((int)puVar28 + 2) = (ushort)uVar22;\n    *(ushort *)puVar28 = (ushort)(uVar22 >> 0x10);\njoined_r0x0012230f:\n    if ((int)uVar13 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x66:\n    uVar22 = *puVar28;\n    uVar13 = (uint)(ushort)uVar22 * 2;\n    uVar24 = uVar13 & 0x7fe;\n    if ((uVar13 & 0x400) != 0) {\n      uVar24 = uVar24 - 0x800;\n    }\n    VVar17 = gold::Symbol_value<32>::value<false>\n                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,uVar24);\n    *(ushort *)puVar28 = (ushort)uVar22 & 0xf800 | (ushort)((int)VVar17 >> 1) & 0x7ff;\njoined_r0x00122297:\n    if (VVar17 + 0x800 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x67:\n    uVar22 = *puVar28;\n    uVar13 = (uint)(ushort)uVar22 * 2;\n    uVar24 = uVar13 & 0xff;\n    if ((uVar13 & 0x80) != 0) {\n      uVar24 = uVar24 - 0x100;\n    }\n                    /* try { // try from 00122201 to 001228fb has its CatchHandler @ 00122d02 */\n    VVar17 = gold::Symbol_value<32>::value<false>\n                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,uVar24);\n    *(ushort *)puVar28 = (ushort)uVar22 & 0xff00 | (ushort)((int)VVar17 >> 1) & 0xff;\n    if (VVar17 + 0x100 < 0x200) goto LAB_0012238d;\n  }\n  object = (Arm_relobj<false> *)(pAVar7->name_)._M_dataplus._M_p;\n  pcVar19 = "relocation overflow in %s";\nLAB_0012236a:\n  uVar13 = gettext(pcVar19);\n  gold::gold_error_at_location<32,_false>\n            ((gold *)relinfo,(Relocate_info<32,_false> *)relnum,*(size_t *)preloc_in,\n             (ulonglong)uVar13 << 0x20,(char *)object);\nLAB_0012238d:\n  gold::Symbol_value<32>::~Symbol_value(local_40,(int)object);\n  return;\n}\n\n" comment comment comment comment comment comment primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_91258a::Target_arm<false>::" identifier . identifier : : identifier < false > : :) (function_declarator "relocate_special_relocatable\n          (Target_arm<false> *this,Relocate_info<32,_false> *relinfo,uint sh_type,uchar *preloc_in,\n          size_t relnum,Output_section *output_section,Elf_Off offset_in_output_section,uchar *view,\n          Elf_Addr view_address,section_size_type param_9,uchar *preloc_out)" identifier (parameter_list "(Target_arm<false> *this,Relocate_info<32,_false> *relinfo,uint sh_type,uchar *preloc_in,\n          size_t relnum,Output_section *output_section,Elf_Off offset_in_output_section,uchar *view,\n          Elf_Addr view_address,section_size_type param_9,uchar *preloc_out)" ( (parameter_declaration "Target_arm<false> *this" type_identifier (ERROR "<false>" < false >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relocate_info" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *relinfo" type_identifier (ERROR ">" >) (pointer_declarator "*relinfo" * identifier)) , (parameter_declaration "uint sh_type" type_identifier identifier) , (parameter_declaration "uchar *preloc_in" type_identifier (pointer_declarator "*preloc_in" * identifier)) , (parameter_declaration "size_t relnum" primitive_type identifier) , (parameter_declaration "Output_section *output_section" type_identifier (pointer_declarator "*output_section" * identifier)) , (parameter_declaration "Elf_Off offset_in_output_section" type_identifier identifier) , (parameter_declaration "uchar *view" type_identifier (pointer_declarator "*view" * identifier)) , (parameter_declaration "Elf_Addr view_address" type_identifier identifier) , (parameter_declaration "section_size_type param_9" type_identifier identifier) , (parameter_declaration "uchar *preloc_out" type_identifier (pointer_declarator "*preloc_out" * identifier)) ))) { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "ushort uVar4;" type_identifier identifier ;) (declaration "_func_int_varargs **pp_Var5;" type_identifier (pointer_declarator "**pp_Var5" * (pointer_declarator "*pp_Var5" * identifier)) ;) (declaration "_func_int_varargs *p_Var6;" type_identifier (pointer_declarator "*p_Var6" * identifier) ;) (declaration "Arm_reloc_property *pAVar7;" type_identifier (pointer_declarator "*pAVar7" * identifier) ;) (declaration "pointer pSVar8;" type_identifier identifier ;) (declaration "pointer ppOVar9;" type_identifier identifier ;) (declaration "Arm_address offset;" type_identifier identifier ;) (declaration "pointer pSVar10;" type_identifier identifier ;) (expression_statement "Merged_symbol_value<32> *pMVar11;" (binary_expression "Merged_symbol_value<32> *pMVar11" (binary_expression "Merged_symbol_value<32" identifier < number_literal) > (pointer_expression "*pMVar11" * identifier)) ;) (declaration "_Hash_node_base *p_Var12;" type_identifier (pointer_declarator "*p_Var12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (expression_statement "Arm_relobj<false> *pAVar14;" (binary_expression "Arm_relobj<false> *pAVar14" (binary_expression "Arm_relobj<false" identifier < false) > (pointer_expression "*pAVar14" * identifier)) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "Value VVar17;" type_identifier identifier ;) (declaration "Status SVar18;" type_identifier identifier ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "Output_section *pOVar20;" type_identifier (pointer_declarator "*pOVar20" * identifier) ;) (declaration "Elf_Addr EVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "_Hash_node_base *p_Var23;" type_identifier (pointer_declarator "*p_Var23" * identifier) ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "__bucket_type p_Var25;" type_identifier identifier ;) (expression_statement "Arm_relobj<false> *object;" (binary_expression "Arm_relobj<false> *object" (binary_expression "Arm_relobj<false" identifier < false) > (pointer_expression "*object" * identifier)) ;) (declaration "__bucket_type p_Var26;" type_identifier identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "uint *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (expression_statement "Arm_relobj<false> *in_stack_ffffff88;" (binary_expression "Arm_relobj<false> *in_stack_ffffff88" (binary_expression "Arm_relobj<false" identifier < false) > (pointer_expression "*in_stack_ffffff88" * identifier)) ;) (expression_statement "Symbol_value<32> *in_stack_ffffff8c;" (binary_expression "Symbol_value<32> *in_stack_ffffff8c" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*in_stack_ffffff8c" * identifier)) ;) (declaration "Arm_address in_stack_ffffff90;" type_identifier identifier ;) (declaration "Arm_address in_stack_ffffff94;" type_identifier identifier ;) (declaration "undefined1 in_stack_ffffff98;" type_identifier identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (expression_statement "Arm_relobj<false> *local_48;" (binary_expression "Arm_relobj<false> *local_48" (binary_expression "Arm_relobj<false" identifier < false) > (pointer_expression "*local_48" * identifier)) ;) (expression_statement "Symbol_value<32> *local_40;" (binary_expression "Symbol_value<32> *local_40" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*local_40" * identifier)) ;) (expression_statement "Sized_symbol<32> *local_38;" (binary_expression "Sized_symbol<32> *local_38" (binary_expression "Sized_symbol<32" identifier < number_literal) > (pointer_expression "*local_38" * identifier)) ;) (declaration "_Hash_node_base *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (expression_statement "Symbol_value<32> symval;" (binary_expression "Symbol_value<32> symval" (binary_expression "Symbol_value<32" identifier < number_literal) > identifier) ;) (if_statement "if (sh_type != 9) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x28db,"relocate_special_relocatable");\n  }" if (parenthesized_expression "(sh_type != 9)" ( (binary_expression "sh_type != 9" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x28db,"relocate_special_relocatable");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/arm.cc",0x28db,"relocate_special_relocatable");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/arm.cc",0x28db,"relocate_special_relocatable");" (call_expression "do_gold_unreachable("../../gold/arm.cc",0x28db,"relocate_special_relocatable")" identifier (argument_list "("../../gold/arm.cc",0x28db,"relocate_special_relocatable")" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") ))) ;)) })) (expression_statement "object = (Arm_relobj<false> *)relinfo->object;" (assignment_expression "object = (Arm_relobj<false> *)relinfo->object" identifier = (parenthesized_expression "(Arm_relobj<false> *)relinfo->object" ( (binary_expression "Arm_relobj<false> *)relinfo->object" (binary_expression "Arm_relobj<false" identifier < false) > (pointer_expression "*)relinfo->object" * (ERROR ")" )) (field_expression "relinfo->object" identifier -> field_identifier))) ))) ;) (expression_statement "pp_Var5 = (((Sized_relobj<32,_false> *)&object->invalid_address)->super_Relobj).super_Object.\n            _vptr_Object;" (assignment_expression "pp_Var5 = (((Sized_relobj<32,_false> *)&object->invalid_address)->super_Relobj).super_Object.\n            _vptr_Object" identifier = (field_expression "(((Sized_relobj<32,_false> *)&object->invalid_address)->super_Relobj).super_Object.\n            _vptr_Object" (field_expression "(((Sized_relobj<32,_false> *)&object->invalid_address)->super_Relobj).super_Object" (parenthesized_expression "(((Sized_relobj<32,_false> *)&object->invalid_address)->super_Relobj)" ( (field_expression "((Sized_relobj<32,_false> *)&object->invalid_address)->super_Relobj" (parenthesized_expression "((Sized_relobj<32,_false> *)&object->invalid_address)" ( (binary_expression "(Sized_relobj<32,_false> *)&object->invalid_address" (parenthesized_expression "(Sized_relobj<32,_false> *)" ( (comma_expression "Sized_relobj<32,_false> *" (binary_expression "Sized_relobj<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) & (field_expression "object->invalid_address" identifier -> field_identifier)) )) -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "p_Var6 = pp_Var5[0x23];" (assignment_expression "p_Var6 = pp_Var5[0x23]" identifier = (subscript_expression "pp_Var5[0x23]" identifier [ number_literal ])) ;) (if_statement "if (p_Var6 == gold::Relobj::local_symbol_count) {\n    uVar13 = (*pp_Var5[0x2f])(object);\n  }\n  else {\n    uVar13 = (*p_Var6)(object);\n  }" if (parenthesized_expression "(p_Var6 == gold::Relobj::local_symbol_count)" ( (ERROR "p_Var6 == gold::Relobj::" (binary_expression "p_Var6 == gold" identifier == identifier) : : identifier : :) identifier )) (compound_statement "{\n    uVar13 = (*pp_Var5[0x2f])(object);\n  }" { (expression_statement "uVar13 = (*pp_Var5[0x2f])(object);" (assignment_expression "uVar13 = (*pp_Var5[0x2f])(object)" identifier = (call_expression "(*pp_Var5[0x2f])(object)" (parenthesized_expression "(*pp_Var5[0x2f])" ( (pointer_expression "*pp_Var5[0x2f]" * (subscript_expression "pp_Var5[0x2f]" identifier [ number_literal ])) )) (argument_list "(object)" ( identifier )))) ;) }) (else_clause "else {\n    uVar13 = (*p_Var6)(object);\n  }" else (compound_statement "{\n    uVar13 = (*p_Var6)(object);\n  }" { (expression_statement "uVar13 = (*p_Var6)(object);" (assignment_expression "uVar13 = (*p_Var6)(object)" identifier = (call_expression "(*p_Var6)(object)" (parenthesized_expression "(*p_Var6)" ( (pointer_expression "*p_Var6" * identifier) )) (argument_list "(object)" ( identifier )))) ;) }))) (expression_statement "uVar22 = *(uint *)(preloc_in + 4);" (assignment_expression "uVar22 = *(uint *)(preloc_in + 4)" identifier = (pointer_expression "*(uint *)(preloc_in + 4)" * (cast_expression "(uint *)(preloc_in + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(preloc_in + 4)" ( (binary_expression "preloc_in + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar24 = uVar22 & 0xff;" (assignment_expression "uVar24 = uVar22 & 0xff" identifier = (binary_expression "uVar22 & 0xff" identifier & number_literal)) ;) (expression_statement "pAVar7 = arm_reloc_property_table->table_[uVar24];" (assignment_expression "pAVar7 = arm_reloc_property_table->table_[uVar24]" identifier = (subscript_expression "arm_reloc_property_table->table_[uVar24]" (field_expression "arm_reloc_property_table->table_" identifier -> field_identifier) [ identifier ])) ;) (expression_statement "uVar27 = uVar22 >> 8;" (assignment_expression "uVar27 = uVar22 >> 8" identifier = (binary_expression "uVar22 >> 8" identifier >> number_literal)) ;) (if_statement "if (((pAVar7 == (Arm_reloc_property *)0x0) || (pAVar7->reloc_type_ != RT_STATIC)) ||\n     ((pAVar7->field_0x34 & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x28ef,"relocate_special_relocatable");\n  }" if (parenthesized_expression "(((pAVar7 == (Arm_reloc_property *)0x0) || (pAVar7->reloc_type_ != RT_STATIC)) ||\n     ((pAVar7->field_0x34 & 2) == 0))" ( (binary_expression "((pAVar7 == (Arm_reloc_property *)0x0) || (pAVar7->reloc_type_ != RT_STATIC)) ||\n     ((pAVar7->field_0x34 & 2) == 0)" (parenthesized_expression "((pAVar7 == (Arm_reloc_property *)0x0) || (pAVar7->reloc_type_ != RT_STATIC))" ( (binary_expression "(pAVar7 == (Arm_reloc_property *)0x0) || (pAVar7->reloc_type_ != RT_STATIC)" (parenthesized_expression "(pAVar7 == (Arm_reloc_property *)0x0)" ( (binary_expression "pAVar7 == (Arm_reloc_property *)0x0" identifier == (cast_expression "(Arm_reloc_property *)0x0" ( (type_descriptor "Arm_reloc_property *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pAVar7->reloc_type_ != RT_STATIC)" ( (binary_expression "pAVar7->reloc_type_ != RT_STATIC" (field_expression "pAVar7->reloc_type_" identifier -> field_identifier) != identifier) ))) )) || (parenthesized_expression "((pAVar7->field_0x34 & 2) == 0)" ( (binary_expression "(pAVar7->field_0x34 & 2) == 0" (parenthesized_expression "(pAVar7->field_0x34 & 2)" ( (binary_expression "pAVar7->field_0x34 & 2" (field_expression "pAVar7->field_0x34" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x28ef,"relocate_special_relocatable");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/arm.cc",0x28ef,"relocate_special_relocatable");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/arm.cc",0x28ef,"relocate_special_relocatable");" (call_expression "do_gold_unreachable("../../gold/arm.cc",0x28ef,"relocate_special_relocatable")" identifier (argument_list "("../../gold/arm.cc",0x28ef,"relocate_special_relocatable")" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") ))) ;)) })) (if_statement "if (uVar13 <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x28f3,"relocate_special_relocatable");\n  }" if (parenthesized_expression "(uVar13 <= uVar27)" ( (binary_expression "uVar13 <= uVar27" identifier <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x28f3,"relocate_special_relocatable");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/arm.cc",0x28f3,"relocate_special_relocatable");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/arm.cc",0x28f3,"relocate_special_relocatable");" (call_expression "do_gold_unreachable("../../gold/arm.cc",0x28f3,"relocate_special_relocatable")" identifier (argument_list "("../../gold/arm.cc",0x28f3,"relocate_special_relocatable")" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") ))) ;)) })) (expression_statement "pSVar8 = (((Local_values *)&object->field_0xdc)->\n           super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>).\n           _M_impl._M_start;" (assignment_expression "pSVar8 = (((Local_values *)&object->field_0xdc)->\n           super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>).\n           _M_impl._M_start" identifier = (field_expression "(((Local_values *)&object->field_0xdc)->\n           super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>).\n           _M_impl._M_start" (field_expression "(((Local_values *)&object->field_0xdc)->\n           super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>).\n           _M_impl" (parenthesized_expression "(((Local_values *)&object->field_0xdc)->\n           super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>)" ( (binary_expression "((Local_values *)&object->field_0xdc)->\n           super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>" (binary_expression "((Local_values *)&object->field_0xdc)->\n           super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_" (binary_expression "((Local_values *)&object->field_0xdc)->\n           super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_" (binary_expression "((Local_values *)&object->field_0xdc)->\n           super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32" (binary_expression "((Local_values *)&object->field_0xdc)->\n           super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold" (binary_expression "((Local_values *)&object->field_0xdc)->\n           super__Vector_base<gold::Symbol_value<32>,_std" (binary_expression "((Local_values *)&object->field_0xdc)->\n           super__Vector_base<gold::Symbol_value<32" (binary_expression "((Local_values *)&object->field_0xdc)->\n           super__Vector_base<gold" (field_expression "((Local_values *)&object->field_0xdc)->\n           super__Vector_base" (parenthesized_expression "((Local_values *)&object->field_0xdc)" ( (cast_expression "(Local_values *)&object->field_0xdc" ( (type_descriptor "Local_values *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&object->field_0xdc" & (field_expression "object->field_0xdc" identifier -> field_identifier))) )) -> field_identifier) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((uint)((int)*(pointer *)&object->field_0xe0 - (int)pSVar8 >> 4) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/object.h",0x8db,"local_symbol_input_shndx");\n  }" if (parenthesized_expression "((uint)((int)*(pointer *)&object->field_0xe0 - (int)pSVar8 >> 4) <= uVar27)" ( (binary_expression "(uint)((int)*(pointer *)&object->field_0xe0 - (int)pSVar8 >> 4) <= uVar27" (call_expression "(uint)((int)*(pointer *)&object->field_0xe0 - (int)pSVar8 >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)*(pointer *)&object->field_0xe0 - (int)pSVar8 >> 4)" ( (binary_expression "(int)*(pointer *)&object->field_0xe0 - (int)pSVar8 >> 4" (binary_expression "(int)*(pointer *)&object->field_0xe0 - (int)pSVar8" (cast_expression "(int)*(pointer *)&object->field_0xe0" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(pointer *)&object->field_0xe0" * (cast_expression "(pointer *)&object->field_0xe0" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&object->field_0xe0" & (field_expression "object->field_0xe0" identifier -> field_identifier))))) - (cast_expression "(int)pSVar8" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/object.h",0x8db,"local_symbol_input_shndx");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/object.h",0x8db,"local_symbol_input_shndx");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/object.h",0x8db,"local_symbol_input_shndx");" (call_expression "do_gold_unreachable("../../gold/object.h",0x8db,"local_symbol_input_shndx")" identifier (argument_list "("../../gold/object.h",0x8db,"local_symbol_input_shndx")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""local_symbol_input_shndx"" " string_content ") ))) ;)) })) (expression_statement "pAVar14 = (Arm_relobj<false> *)(*(uint *)&pSVar8[uVar27].field_0x8 & 0x7ffffff);" (assignment_expression "pAVar14 = (Arm_relobj<false> *)(*(uint *)&pSVar8[uVar27].field_0x8 & 0x7ffffff)" identifier = (call_expression "(Arm_relobj<false> *)(*(uint *)&pSVar8[uVar27].field_0x8 & 0x7ffffff)" (parenthesized_expression "(Arm_relobj<false> *)" ( (binary_expression "Arm_relobj<false> *" (binary_expression "Arm_relobj<false" identifier < false) > (pointer_expression "*" * identifier)) )) (argument_list "(*(uint *)&pSVar8[uVar27].field_0x8 & 0x7ffffff)" ( (binary_expression "*(uint *)&pSVar8[uVar27].field_0x8 & 0x7ffffff" (pointer_expression "*(uint *)&pSVar8[uVar27].field_0x8" * (cast_expression "(uint *)&pSVar8[uVar27].field_0x8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar8[uVar27].field_0x8" & (field_expression "pSVar8[uVar27].field_0x8" (subscript_expression "pSVar8[uVar27]" identifier [ identifier ]) . field_identifier)))) & number_literal) )))) ;) (if_statement "if ((pSVar8[uVar27].field_0xb & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x28fb,"relocate_special_relocatable");\n  }" if (parenthesized_expression "((pSVar8[uVar27].field_0xb & 8) == 0)" ( (binary_expression "(pSVar8[uVar27].field_0xb & 8) == 0" (parenthesized_expression "(pSVar8[uVar27].field_0xb & 8)" ( (binary_expression "pSVar8[uVar27].field_0xb & 8" (field_expression "pSVar8[uVar27].field_0xb" (subscript_expression "pSVar8[uVar27]" identifier [ identifier ]) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x28fb,"relocate_special_relocatable");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/arm.cc",0x28fb,"relocate_special_relocatable");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/arm.cc",0x28fb,"relocate_special_relocatable");" (call_expression "do_gold_unreachable("../../gold/arm.cc",0x28fb,"relocate_special_relocatable")" identifier (argument_list "("../../gold/arm.cc",0x28fb,"relocate_special_relocatable")" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") ))) ;)) })) (expression_statement "p_Var6 = (((Sized_relobj<32,_false> *)&object->invalid_address)->super_Relobj).super_Object.\n           _vptr_Object[0x18];" (assignment_expression "p_Var6 = (((Sized_relobj<32,_false> *)&object->invalid_address)->super_Relobj).super_Object.\n           _vptr_Object[0x18]" identifier = (subscript_expression "(((Sized_relobj<32,_false> *)&object->invalid_address)->super_Relobj).super_Object.\n           _vptr_Object[0x18]" (field_expression "(((Sized_relobj<32,_false> *)&object->invalid_address)->super_Relobj).super_Object.\n           _vptr_Object" (field_expression "(((Sized_relobj<32,_false> *)&object->invalid_address)->super_Relobj).super_Object" (parenthesized_expression "(((Sized_relobj<32,_false> *)&object->invalid_address)->super_Relobj)" ( (field_expression "((Sized_relobj<32,_false> *)&object->invalid_address)->super_Relobj" (parenthesized_expression "((Sized_relobj<32,_false> *)&object->invalid_address)" ( (binary_expression "(Sized_relobj<32,_false> *)&object->invalid_address" (parenthesized_expression "(Sized_relobj<32,_false> *)" ( (comma_expression "Sized_relobj<32,_false> *" (binary_expression "Sized_relobj<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) & (field_expression "object->invalid_address" identifier -> field_identifier)) )) -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var6 == gold::Relobj::do_output_section) {\n    ppOVar9 = (((Output_sections *)&object->field_0x38)->\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n              _M_impl._M_start;\n    if ((Arm_relobj<false> *)((int)*(pointer *)&object->field_0x3c - (int)ppOVar9 >> 2) <= pAVar14)\n    {\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n    }\n    pOVar20 = ppOVar9[(int)pAVar14];\n    pAVar14 = in_stack_ffffff88;\n  }\n  else {\n    pOVar20 = (Output_section *)(*p_Var6)(object);\n  }" if (parenthesized_expression "(p_Var6 == gold::Relobj::do_output_section)" ( (ERROR "p_Var6 == gold::Relobj::" (binary_expression "p_Var6 == gold" identifier == identifier) : : identifier : :) identifier )) (compound_statement "{\n    ppOVar9 = (((Output_sections *)&object->field_0x38)->\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n              _M_impl._M_start;\n    if ((Arm_relobj<false> *)((int)*(pointer *)&object->field_0x3c - (int)ppOVar9 >> 2) <= pAVar14)\n    {\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n    }\n    pOVar20 = ppOVar9[(int)pAVar14];\n    pAVar14 = in_stack_ffffff88;\n  }" { (expression_statement "ppOVar9 = (((Output_sections *)&object->field_0x38)->\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n              _M_impl._M_start;" (assignment_expression "ppOVar9 = (((Output_sections *)&object->field_0x38)->\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n              _M_impl._M_start" identifier = (field_expression "(((Output_sections *)&object->field_0x38)->\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n              _M_impl._M_start" (field_expression "(((Output_sections *)&object->field_0x38)->\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n              _M_impl" (parenthesized_expression "(((Output_sections *)&object->field_0x38)->\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>)" ( (ERROR "((Output_sections *)&object->field_0x38)->\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::" (comma_expression "((Output_sections *)&object->field_0x38)->\n              super__Vector_base<gold::Output_section*,_std" (binary_expression "((Output_sections *)&object->field_0x38)->\n              super__Vector_base<gold::Output_section*" (binary_expression "((Output_sections *)&object->field_0x38)->\n              super__Vector_base<gold" (field_expression "((Output_sections *)&object->field_0x38)->\n              super__Vector_base" (parenthesized_expression "((Output_sections *)&object->field_0x38)" ( (cast_expression "(Output_sections *)&object->field_0x38" ( (type_descriptor "Output_sections *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&object->field_0x38" & (field_expression "object->field_0x38" identifier -> field_identifier))) )) -> field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Output_section*>_>" (binary_expression "Output_section*>_" identifier * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((Arm_relobj<false> *)((int)*(pointer *)&object->field_0x3c - (int)ppOVar9 >> 2) <= pAVar14)\n    {\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n    }" if (parenthesized_expression "((Arm_relobj<false> *)((int)*(pointer *)&object->field_0x3c - (int)ppOVar9 >> 2) <= pAVar14)" ( (binary_expression "(Arm_relobj<false> *)((int)*(pointer *)&object->field_0x3c - (int)ppOVar9 >> 2) <= pAVar14" (call_expression "(Arm_relobj<false> *)((int)*(pointer *)&object->field_0x3c - (int)ppOVar9 >> 2)" (parenthesized_expression "(Arm_relobj<false> *)" ( (binary_expression "Arm_relobj<false> *" (binary_expression "Arm_relobj<false" identifier < false) > (pointer_expression "*" * identifier)) )) (argument_list "((int)*(pointer *)&object->field_0x3c - (int)ppOVar9 >> 2)" ( (binary_expression "(int)*(pointer *)&object->field_0x3c - (int)ppOVar9 >> 2" (binary_expression "(int)*(pointer *)&object->field_0x3c - (int)ppOVar9" (cast_expression "(int)*(pointer *)&object->field_0x3c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(pointer *)&object->field_0x3c" * (cast_expression "(pointer *)&object->field_0x3c" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&object->field_0x3c" & (field_expression "object->field_0x3c" identifier -> field_identifier))))) - (cast_expression "(int)ppOVar9" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n    }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");" statement_identifier : (ERROR ":" :) (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 "pOVar20 = ppOVar9[(int)pAVar14];" (assignment_expression "pOVar20 = ppOVar9[(int)pAVar14]" identifier = (subscript_expression "ppOVar9[(int)pAVar14]" identifier [ (cast_expression "(int)pAVar14" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "pAVar14 = in_stack_ffffff88;" (assignment_expression "pAVar14 = in_stack_ffffff88" identifier = identifier) ;) }) (else_clause "else {\n    pOVar20 = (Output_section *)(*p_Var6)(object);\n  }" else (compound_statement "{\n    pOVar20 = (Output_section *)(*p_Var6)(object);\n  }" { (expression_statement "pOVar20 = (Output_section *)(*p_Var6)(object);" (assignment_expression "pOVar20 = (Output_section *)(*p_Var6)(object)" identifier = (cast_expression "(Output_section *)(*p_Var6)(object)" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*p_Var6)(object)" (parenthesized_expression "(*p_Var6)" ( (pointer_expression "*p_Var6" * identifier) )) (argument_list "(object)" ( identifier ))))) ;) }))) (if_statement "if (pOVar20 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x28fd,"relocate_special_relocatable");\n  }" if (parenthesized_expression "(pOVar20 == (Output_section *)0x0)" ( (binary_expression "pOVar20 == (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    gold::do_gold_unreachable("../../gold/arm.cc",0x28fd,"relocate_special_relocatable");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/arm.cc",0x28fd,"relocate_special_relocatable");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/arm.cc",0x28fd,"relocate_special_relocatable");" (call_expression "do_gold_unreachable("../../gold/arm.cc",0x28fd,"relocate_special_relocatable")" identifier (argument_list "("../../gold/arm.cc",0x28fd,"relocate_special_relocatable")" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") ))) ;)) })) (if_statement "if ((pOVar20->field_0x90 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x28fe,"relocate_special_relocatable");\n  }" if (parenthesized_expression "((pOVar20->field_0x90 & 1) == 0)" ( (binary_expression "(pOVar20->field_0x90 & 1) == 0" (parenthesized_expression "(pOVar20->field_0x90 & 1)" ( (binary_expression "pOVar20->field_0x90 & 1" (field_expression "pOVar20->field_0x90" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x28fe,"relocate_special_relocatable");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/arm.cc",0x28fe,"relocate_special_relocatable");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/arm.cc",0x28fe,"relocate_special_relocatable");" (call_expression "do_gold_unreachable("../../gold/arm.cc",0x28fe,"relocate_special_relocatable")" identifier (argument_list "("../../gold/arm.cc",0x28fe,"relocate_special_relocatable")" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") ))) ;)) })) (expression_statement "uVar13 = pOVar20->symtab_index_;" (assignment_expression "uVar13 = pOVar20->symtab_index_" identifier = (field_expression "pOVar20->symtab_index_" identifier -> field_identifier)) ;) (if_statement "if (uVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0xd81,"symtab_index");\n  }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0xd81,"symtab_index");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/output.h",0xd81,"symtab_index");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/output.h",0xd81,"symtab_index");" (call_expression "do_gold_unreachable("../../gold/output.h",0xd81,"symtab_index")" identifier (argument_list "("../../gold/output.h",0xd81,"symtab_index")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""symtab_index"" " string_content ") ))) ;)) })) (expression_statement "offset = *(Arm_address *)preloc_in;" (assignment_expression "offset = *(Arm_address *)preloc_in" identifier = (pointer_expression "*(Arm_address *)preloc_in" * (cast_expression "(Arm_address *)preloc_in" ( (type_descriptor "Arm_address *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (offset_in_output_section == 0xffffffff) {\n    in_stack_ffffff8c = (Symbol_value<32> *)relinfo->data_shndx;\n    pAVar14 = object;\n    in_stack_ffffff90 = offset;\n    iVar15 = gold::Output_section::output_offset\n                       (output_section,(Relobj *)object,(uint)in_stack_ffffff8c,offset);\n    if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/arm.cc",0x290f,"relocate_special_relocatable");\n    }\n  }\n  else {\n    iVar15 = offset + offset_in_output_section;\n  }" if (parenthesized_expression "(offset_in_output_section == 0xffffffff)" ( (binary_expression "offset_in_output_section == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n    in_stack_ffffff8c = (Symbol_value<32> *)relinfo->data_shndx;\n    pAVar14 = object;\n    in_stack_ffffff90 = offset;\n    iVar15 = gold::Output_section::output_offset\n                       (output_section,(Relobj *)object,(uint)in_stack_ffffff8c,offset);\n    if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/arm.cc",0x290f,"relocate_special_relocatable");\n    }\n  }" { (expression_statement "in_stack_ffffff8c = (Symbol_value<32> *)relinfo->data_shndx;" (assignment_expression "in_stack_ffffff8c = (Symbol_value<32> *)relinfo->data_shndx" identifier = (parenthesized_expression "(Symbol_value<32> *)relinfo->data_shndx" ( (binary_expression "Symbol_value<32> *)relinfo->data_shndx" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)relinfo->data_shndx" * (ERROR ")" )) (field_expression "relinfo->data_shndx" identifier -> field_identifier))) ))) ;) (expression_statement "pAVar14 = object;" (assignment_expression "pAVar14 = object" identifier = identifier) ;) (expression_statement "in_stack_ffffff90 = offset;" (assignment_expression "in_stack_ffffff90 = offset" identifier = identifier) ;) (ERROR "iVar15 = gold::" (assignment_expression "iVar15 = gold" identifier = identifier) : :) (labeled_statement "Output_section::output_offset\n                       (output_section,(Relobj *)object,(uint)in_stack_ffffff8c,offset);" statement_identifier : (ERROR ":" :) (expression_statement "output_offset\n                       (output_section,(Relobj *)object,(uint)in_stack_ffffff8c,offset);" (call_expression "output_offset\n                       (output_section,(Relobj *)object,(uint)in_stack_ffffff8c,offset)" identifier (argument_list "(output_section,(Relobj *)object,(uint)in_stack_ffffff8c,offset)" ( identifier , (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(uint)in_stack_ffffff8c" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier ))) ;)) (if_statement "if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/arm.cc",0x290f,"relocate_special_relocatable");\n    }" if (parenthesized_expression "(iVar15 == -1)" ( (binary_expression "iVar15 == -1" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/arm.cc",0x290f,"relocate_special_relocatable");\n    }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/arm.cc",0x290f,"relocate_special_relocatable");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/arm.cc",0x290f,"relocate_special_relocatable");" (call_expression "do_gold_unreachable("../../gold/arm.cc",0x290f,"relocate_special_relocatable")" identifier (argument_list "("../../gold/arm.cc",0x290f,"relocate_special_relocatable")" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") ))) ;)) })) }) (else_clause "else {\n    iVar15 = offset + offset_in_output_section;\n  }" else (compound_statement "{\n    iVar15 = offset + offset_in_output_section;\n  }" { (expression_statement "iVar15 = offset + offset_in_output_section;" (assignment_expression "iVar15 = offset + offset_in_output_section" identifier = (binary_expression "offset + offset_in_output_section" identifier + identifier)) ;) }))) (if_statement "if (gold::parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(gold::parameters->options_ == (General_options *)0x0)" ( (ERROR "gold::" identifier : :) (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 "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : (ERROR ":" :) (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 ") ))) ;)) })) (expression_statement "iVar16 = iVar15;" (assignment_expression "iVar16 = iVar15" identifier = identifier) ;) (if_statement "if ((gold::parameters->options_->relocatable_).value == false) {\n    iVar16 = iVar15 + view_address;\n    if (offset_in_output_section != 0xffffffff) {\n      iVar16 = (iVar15 + view_address) - offset_in_output_section;\n    }\n  }" if (parenthesized_expression "((gold::parameters->options_->relocatable_).value == false)" ( (binary_expression "(gold::parameters->options_->relocatable_).value == false" (field_expression "(gold::parameters->options_->relocatable_).value" (parenthesized_expression "(gold::parameters->options_->relocatable_)" ( (ERROR "gold::" identifier : :) (field_expression "parameters->options_->relocatable_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n    iVar16 = iVar15 + view_address;\n    if (offset_in_output_section != 0xffffffff) {\n      iVar16 = (iVar15 + view_address) - offset_in_output_section;\n    }\n  }" { (expression_statement "iVar16 = iVar15 + view_address;" (assignment_expression "iVar16 = iVar15 + view_address" identifier = (binary_expression "iVar15 + view_address" identifier + identifier)) ;) (if_statement "if (offset_in_output_section != 0xffffffff) {\n      iVar16 = (iVar15 + view_address) - offset_in_output_section;\n    }" if (parenthesized_expression "(offset_in_output_section != 0xffffffff)" ( (binary_expression "offset_in_output_section != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n      iVar16 = (iVar15 + view_address) - offset_in_output_section;\n    }" { (expression_statement "iVar16 = (iVar15 + view_address) - offset_in_output_section;" (assignment_expression "iVar16 = (iVar15 + view_address) - offset_in_output_section" identifier = (binary_expression "(iVar15 + view_address) - offset_in_output_section" (parenthesized_expression "(iVar15 + view_address)" ( (binary_expression "iVar15 + view_address" identifier + identifier) )) - identifier)) ;) })) })) (expression_statement "*(int *)preloc_out = iVar16;" (assignment_expression "*(int *)preloc_out = iVar16" (pointer_expression "*(int *)preloc_out" * (cast_expression "(int *)preloc_out" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pSVar8 = *(pointer *)&object->field_0xe0;" (assignment_expression "pSVar8 = *(pointer *)&object->field_0xe0" identifier = (pointer_expression "*(pointer *)&object->field_0xe0" * (cast_expression "(pointer *)&object->field_0xe0" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&object->field_0xe0" & (field_expression "object->field_0xe0" identifier -> field_identifier))))) ;) (expression_statement "*(uint *)(preloc_out + 4) = uVar13 * 0x100 + uVar24;" (assignment_expression "*(uint *)(preloc_out + 4) = uVar13 * 0x100 + uVar24" (pointer_expression "*(uint *)(preloc_out + 4)" * (cast_expression "(uint *)(preloc_out + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(preloc_out + 4)" ( (binary_expression "preloc_out + 4" identifier + number_literal) )))) = (binary_expression "uVar13 * 0x100 + uVar24" (binary_expression "uVar13 * 0x100" identifier * number_literal) + identifier)) ;) (expression_statement "pSVar10 = (((Local_values *)&object->field_0xdc)->\n            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>).\n            _M_impl._M_start;" (assignment_expression "pSVar10 = (((Local_values *)&object->field_0xdc)->\n            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>).\n            _M_impl._M_start" identifier = (field_expression "(((Local_values *)&object->field_0xdc)->\n            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>).\n            _M_impl._M_start" (field_expression "(((Local_values *)&object->field_0xdc)->\n            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>).\n            _M_impl" (parenthesized_expression "(((Local_values *)&object->field_0xdc)->\n            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>)" ( (binary_expression "((Local_values *)&object->field_0xdc)->\n            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>" (binary_expression "((Local_values *)&object->field_0xdc)->\n            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_" (binary_expression "((Local_values *)&object->field_0xdc)->\n            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_" (binary_expression "((Local_values *)&object->field_0xdc)->\n            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32" (binary_expression "((Local_values *)&object->field_0xdc)->\n            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold" (binary_expression "((Local_values *)&object->field_0xdc)->\n            super__Vector_base<gold::Symbol_value<32>,_std" (binary_expression "((Local_values *)&object->field_0xdc)->\n            super__Vector_base<gold::Symbol_value<32" (binary_expression "((Local_values *)&object->field_0xdc)->\n            super__Vector_base<gold" (field_expression "((Local_values *)&object->field_0xdc)->\n            super__Vector_base" (parenthesized_expression "((Local_values *)&object->field_0xdc)" ( (cast_expression "(Local_values *)&object->field_0xdc" ( (type_descriptor "Local_values *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&object->field_0xdc" & (field_expression "object->field_0xdc" identifier -> field_identifier))) )) -> field_identifier) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((uint)((int)pSVar8 - (int)pSVar10 >> 4) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/object.h",0x8c1,"local_symbol");\n  }" if (parenthesized_expression "((uint)((int)pSVar8 - (int)pSVar10 >> 4) <= uVar27)" ( (binary_expression "(uint)((int)pSVar8 - (int)pSVar10 >> 4) <= uVar27" (call_expression "(uint)((int)pSVar8 - (int)pSVar10 >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pSVar8 - (int)pSVar10 >> 4)" ( (binary_expression "(int)pSVar8 - (int)pSVar10 >> 4" (binary_expression "(int)pSVar8 - (int)pSVar10" (cast_expression "(int)pSVar8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pSVar10" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/object.h",0x8c1,"local_symbol");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/object.h",0x8c1,"local_symbol");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/object.h",0x8c1,"local_symbol");" (call_expression "do_gold_unreachable("../../gold/object.h",0x8c1,"local_symbol")" identifier (argument_list "("../../gold/object.h",0x8c1,"local_symbol")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""local_symbol"" " string_content ") ))) ;)) })) (expression_statement "local_38 = (Sized_symbol<32> *)(pSVar10 + uVar27);" (assignment_expression "local_38 = (Sized_symbol<32> *)(pSVar10 + uVar27)" identifier = (call_expression "(Sized_symbol<32> *)(pSVar10 + uVar27)" (parenthesized_expression "(Sized_symbol<32> *)" ( (binary_expression "Sized_symbol<32> *" (binary_expression "Sized_symbol<32" identifier < number_literal) > (pointer_expression "*" * identifier)) )) (argument_list "(pSVar10 + uVar27)" ( (binary_expression "pSVar10 + uVar27" identifier + identifier) )))) ;) (expression_statement "iVar15 = (int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>\n                ._M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p;" (field_expression "iVar15 = (int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>\n                ._M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p" (field_expression "iVar15 = (int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>\n                ._M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base" (field_expression "iVar15 = (int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>\n                ._M_impl.super__Bvector_impl_data._M_start" (field_expression "iVar15 = (int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>\n                ._M_impl.super__Bvector_impl_data" (field_expression "iVar15 = (int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>\n                ._M_impl" (binary_expression "iVar15 = (int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_" (binary_expression "iVar15 = (int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool" (assignment_expression "iVar15 = (int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std" identifier = (binary_expression "(int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std" (cast_expression "(int)(object->local_symbol_is_thumb_function_).super__Bvector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base" (parenthesized_expression "(object->local_symbol_is_thumb_function_)" ( (field_expression "object->local_symbol_is_thumb_function_" identifier -> field_identifier) )) . field_identifier)) < identifier)) (ERROR "::allocator" : : identifier) < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) ;) (expression_statement "symval.output_symtab_index_ = 0;" (assignment_expression "symval.output_symtab_index_ = 0" (field_expression "symval.output_symtab_index_" identifier . field_identifier) = number_literal) ;) (expression_statement "symval.output_dynsym_index_ = 0xffffffff;" (assignment_expression "symval.output_dynsym_index_ = 0xffffffff" (field_expression "symval.output_dynsym_index_" identifier . field_identifier) = number_literal) ;) (expression_statement "symval._8_4_ = 0x80000000;" (assignment_expression "symval._8_4_ = 0x80000000" (field_expression "symval._8_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "symval.u_.value = 0;" (assignment_expression "symval.u_.value = 0" (field_expression "symval.u_.value" (field_expression "symval.u_" identifier . field_identifier) . field_identifier) = number_literal) ;) (if_statement "if (((object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n       super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_offset -\n      (object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n      super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_offset) +\n      ((int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>.\n            _M_impl.super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p - iVar15) * 8\n      <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00122c8d to 00122c91 has its CatchHandler @ 00122d02 */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function");\n  }" if (parenthesized_expression "(((object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n       super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_offset -\n      (object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n      super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_offset) +\n      ((int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>.\n            _M_impl.super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p - iVar15) * 8\n      <= uVar27)" ( (binary_expression "((object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n       super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_offset -\n      (object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n      super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_offset) +\n      ((int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>.\n            _M_impl.super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p - iVar15) * 8\n      <= uVar27" (binary_expression "((object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n       super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_offset -\n      (object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n      super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_offset) +\n      ((int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>.\n            _M_impl.super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p - iVar15) * 8" (parenthesized_expression "((object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n       super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_offset -\n      (object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n      super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_offset)" ( (field_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n       super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_offset -\n      (object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n      super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_offset" (field_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n       super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_offset -\n      (object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n      super__Bvector_impl_data._M_start.super__Bit_iterator_base" (field_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n       super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_offset -\n      (object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n      super__Bvector_impl_data._M_start" (field_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n       super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_offset -\n      (object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n      super__Bvector_impl_data" (field_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n       super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_offset -\n      (object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl" (binary_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n       super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_offset -\n      (object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_" (binary_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n       super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_offset -\n      (object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool" (binary_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n       super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_offset -\n      (object->local_symbol_is_thumb_function_).super__Bvector_base<std" (binary_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n       super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_offset -\n      (object->local_symbol_is_thumb_function_).super__Bvector_base" (field_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n       super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_offset" (field_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n       super__Bvector_impl_data._M_finish.super__Bit_iterator_base" (field_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n       super__Bvector_impl_data._M_finish" (field_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.\n       super__Bvector_impl_data" (field_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl" (binary_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_" (binary_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool" (binary_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base<std" (field_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base" (parenthesized_expression "(object->local_symbol_is_thumb_function_)" ( (field_expression "object->local_symbol_is_thumb_function_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) - (field_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base" (parenthesized_expression "(object->local_symbol_is_thumb_function_)" ( (field_expression "object->local_symbol_is_thumb_function_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) )) + (binary_expression "((int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>.\n            _M_impl.super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p - iVar15) * 8" (parenthesized_expression "((int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>.\n            _M_impl.super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p - iVar15)" ( (binary_expression "(int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>.\n            _M_impl.super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p - iVar15" (field_expression "(int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>.\n            _M_impl.super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p" (field_expression "(int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>.\n            _M_impl.super__Bvector_impl_data._M_finish.super__Bit_iterator_base" (field_expression "(int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>.\n            _M_impl.super__Bvector_impl_data._M_finish" (field_expression "(int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>.\n            _M_impl.super__Bvector_impl_data" (field_expression "(int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>.\n            _M_impl" (binary_expression "(int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_" (binary_expression "(int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool" (binary_expression "(int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std" (cast_expression "(int)(object->local_symbol_is_thumb_function_).super__Bvector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(object->local_symbol_is_thumb_function_).super__Bvector_base" (parenthesized_expression "(object->local_symbol_is_thumb_function_)" ( (field_expression "object->local_symbol_is_thumb_function_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) - identifier) )) * number_literal)) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00122c8d to 00122c91 has its CatchHandler @ 00122d02 */\n    gold::do_gold_unreachable("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function");\n  }" { comment comment (labeled_statement "gold::do_gold_unreachable("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function");" (call_expression "do_gold_unreachable("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function")" identifier (argument_list "("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function")" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""local_symbol_is_thumb_function"" " string_content ") ))) ;)) })) (expression_statement "local_48 = (Arm_relobj<false> *)\n             (1 << ((byte)(uVar22 >> 8) & 0x1f) & *(uint *)(iVar15 + (uVar22 >> 0xd) * 4));" (assignment_expression "local_48 = (Arm_relobj<false> *)\n             (1 << ((byte)(uVar22 >> 8) & 0x1f) & *(uint *)(iVar15 + (uVar22 >> 0xd) * 4))" identifier = (call_expression "(Arm_relobj<false> *)\n             (1 << ((byte)(uVar22 >> 8) & 0x1f) & *(uint *)(iVar15 + (uVar22 >> 0xd) * 4))" (parenthesized_expression "(Arm_relobj<false> *)" ( (binary_expression "Arm_relobj<false> *" (binary_expression "Arm_relobj<false" identifier < false) > (pointer_expression "*" * identifier)) )) (argument_list "(1 << ((byte)(uVar22 >> 8) & 0x1f) & *(uint *)(iVar15 + (uVar22 >> 0xd) * 4))" ( (binary_expression "1 << ((byte)(uVar22 >> 8) & 0x1f) & *(uint *)(iVar15 + (uVar22 >> 0xd) * 4)" (binary_expression "1 << ((byte)(uVar22 >> 8) & 0x1f)" number_literal << (parenthesized_expression "((byte)(uVar22 >> 8) & 0x1f)" ( (binary_expression "(byte)(uVar22 >> 8) & 0x1f" (call_expression "(byte)(uVar22 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar22 >> 8)" ( (binary_expression "uVar22 >> 8" identifier >> number_literal) ))) & number_literal) ))) & (pointer_expression "*(uint *)(iVar15 + (uVar22 >> 0xd) * 4)" * (cast_expression "(uint *)(iVar15 + (uVar22 >> 0xd) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + (uVar22 >> 0xd) * 4)" ( (binary_expression "iVar15 + (uVar22 >> 0xd) * 4" identifier + (binary_expression "(uVar22 >> 0xd) * 4" (parenthesized_expression "(uVar22 >> 0xd)" ( (binary_expression "uVar22 >> 0xd" identifier >> number_literal) )) * number_literal)) ))))) )))) ;) if ( ( (ERROR "local_48 != (Arm_relobj<false> *)0x0) &&\n     (local_48 = (Arm_relobj<false> *)0x1, (pAVar7->field_0x34 & 0x40) != 0))" (binary_expression "local_48 != (Arm_relobj<false> *)0x0) &&\n     (local_48 = (Arm_relobj<false> *)0x1, (pAVar7->field_0x34 & 0x40) != 0))" (binary_expression "local_48 != (Arm_relobj<false> *)0x0)" identifier != (parenthesized_expression "(Arm_relobj<false> *)0x0)" ( (binary_expression "Arm_relobj<false> *)0x0" (binary_expression "Arm_relobj<false" identifier < false) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) ))) && (parenthesized_expression "(local_48 = (Arm_relobj<false> *)0x1, (pAVar7->field_0x34 & 0x40) != 0))" ( (assignment_expression "local_48 = (Arm_relobj<false> *)0x1, (pAVar7->field_0x34 & 0x40) != 0)" identifier = (parenthesized_expression "(Arm_relobj<false> *)0x1, (pAVar7->field_0x34 & 0x40) != 0)" ( (comma_expression "Arm_relobj<false> *)0x1, (pAVar7->field_0x34 & 0x40) != 0" (binary_expression "Arm_relobj<false> *)0x1" (binary_expression "Arm_relobj<false" identifier < false) > (pointer_expression "*)0x1" * (ERROR ")" )) number_literal)) , (binary_expression "(pAVar7->field_0x34 & 0x40) != 0" (parenthesized_expression "(pAVar7->field_0x34 & 0x40)" ( (binary_expression "pAVar7->field_0x34 & 0x40" (field_expression "pAVar7->field_0x34" identifier -> field_identifier) & number_literal) )) != number_literal)) ))) )))) { (expression_statement "in_stack_ffffff8c = (Symbol_value<32> *)0x0;" (assignment_expression "in_stack_ffffff8c = (Symbol_value<32> *)0x0" identifier = (parenthesized_expression "(Symbol_value<32> *)0x0" ( (binary_expression "Symbol_value<32> *)0x0" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) ))) ;) (expression_statement "pAVar14 = object;" (assignment_expression "pAVar14 = object" identifier = identifier) ;) comment (binary_expression "VVar17 = gold::Symbol_value<32>::value<false" (binary_expression "VVar17 = gold::Symbol_value<32>::value" (binary_expression "VVar17 = gold::Symbol_value<32" (assignment_expression "VVar17 = gold" identifier = identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > (ERROR "::" : :) identifier) < false) > ( ( (ERROR "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,0);" (comma_expression "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,0)" (binary_expression "Symbol_value<32> *)local_38" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)local_38" * (ERROR ")" )) identifier)) , (parenthesized_expression "(Sized_relobj_file<32,_false> *)object,0)" ( (comma_expression "Sized_relobj_file<32,_false> *)object,0" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (comma_expression "_false> *)object,0" (binary_expression "_false> *)object" identifier > (pointer_expression "*)object" * (ERROR ")" )) identifier)) , number_literal)) ))) ;) (assignment_expression "local_48 = (Arm_relobj<false> *)(VVar17 & 1)" identifier = (call_expression "(Arm_relobj<false> *)(VVar17 & 1)" (parenthesized_expression "(Arm_relobj<false> *)" ( (binary_expression "Arm_relobj<false> *" (binary_expression "Arm_relobj<false" identifier < false) > (pointer_expression "*" * identifier)) )) (argument_list "(VVar17 & 1)" ( (binary_expression "VVar17 & 1" identifier & number_literal) )))) (ERROR ";\n    if" ; if) ( (ERROR "local_48 == (Arm_relobj<false> *)0x0) {\n      local_48 = (Arm_relobj<false> *)0x1;\n    }\n    else" (binary_expression "local_48 == (Arm_relobj<false> *)0x0)" identifier == (parenthesized_expression "(Arm_relobj<false> *)0x0)" ( (binary_expression "Arm_relobj<false> *)0x0" (binary_expression "Arm_relobj<false" identifier < false) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) ))) (compound_statement "{\n      local_48 = (Arm_relobj<false> *)0x1;\n    }" { (expression_statement "local_48 = (Arm_relobj<false> *)0x1;" (assignment_expression "local_48 = (Arm_relobj<false> *)0x1" identifier = (parenthesized_expression "(Arm_relobj<false> *)0x1" ( (binary_expression "Arm_relobj<false> *)0x1" (binary_expression "Arm_relobj<false" identifier < false) > (pointer_expression "*)0x1" * (ERROR ")" )) number_literal)) ))) ;) }) else) { (expression_statement "in_stack_ffffff8c = (Symbol_value<32> *)0x0;" (assignment_expression "in_stack_ffffff8c = (Symbol_value<32> *)0x0" identifier = (parenthesized_expression "(Symbol_value<32> *)0x0" ( (binary_expression "Symbol_value<32> *)0x0" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) ))) ;) (expression_statement "pAVar14 = object;" (assignment_expression "pAVar14 = object" identifier = identifier) ;) comment (binary_expression "VVar17 = gold::Symbol_value<32>::value<false" (binary_expression "VVar17 = gold::Symbol_value<32>::value" (binary_expression "VVar17 = gold::Symbol_value<32" (assignment_expression "VVar17 = gold" identifier = identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > (ERROR "::" : :) identifier) < false) > ( ( (ERROR "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,0);\n      symval.u_.value = VVar17 & 0xfffffffe;" (comma_expression "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,0)" (binary_expression "Symbol_value<32> *)local_38" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)local_38" * (ERROR ")" )) identifier)) , (parenthesized_expression "(Sized_relobj_file<32,_false> *)object,0)" ( (comma_expression "Sized_relobj_file<32,_false> *)object,0" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (comma_expression "_false> *)object,0" (binary_expression "_false> *)object" identifier > (pointer_expression "*)object" * (ERROR ")" )) identifier)) , number_literal)) ))) ; (assignment_expression "symval.u_.value = VVar17 & 0xfffffffe" (field_expression "symval.u_.value" (field_expression "symval.u_" identifier . field_identifier) . field_identifier) = (binary_expression "VVar17 & 0xfffffffe" identifier & number_literal)) ;) identifier = ( (ERROR "Sized_symbol<32> *)&symval;\n    }\n  }\n  local_40 = &symval;\n  puVar28 = (uint *)(view + offset);\n  switch(" (binary_expression "Sized_symbol<32> *)&symval" (binary_expression "Sized_symbol<32" identifier < number_literal) > (pointer_expression "*)&symval" * (ERROR ")" )) (pointer_expression "&symval" & identifier))) ; } } (assignment_expression "local_40 = &symval" identifier = (pointer_expression "&symval" & identifier)) ; (assignment_expression "puVar28 = (uint *)(view + offset)" identifier = (cast_expression "(uint *)(view + offset)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(view + offset)" ( (binary_expression "view + offset" identifier + identifier) )))) ; switch () (type_descriptor "uVar24" type_identifier) ) { (initializer_pair "case 4:\n  case 0x2c:\n  case 0x2e:\n  case 0x30:\n  case 0x32:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x4c:\n  case 0x4d:\n  case 0x4e:\n  case 0x4f:\n  case 0x50:\n  case 0x51:\n  case 0x52:\n  case 0x53:\n  case 0x55:\n  case 0x58:\n    object = (Arm_relobj<false> *)(pAVar7->name_)._M_dataplus._M_p;\n    pcVar19 = (char *)gettext("cannot handle %s in a relocatable link");\n    gold::gold_error(pcVar19);\n    goto LAB_0012238d;\n  case 5:\n    uVar13 = (uint)(ushort)*puVar28;\n    if ((short)(ushort)*puVar28 < 0) {\n      uVar13 = (ushort)*puVar28 - 0x10000;\n    }" field_identifier (ERROR "4:\n  case 0x2c:\n  case 0x2e:\n  case 0x30:\n  case 0x32:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x4c:\n  case 0x4d:\n  case 0x4e:\n  case 0x4f:\n  case 0x50:\n  case 0x51:\n  case 0x52:\n  case 0x53:\n  case 0x55:\n  case 0x58:\n    object = (Arm_relobj<false> *)(pAVar7->name_)._M_dataplus._M_p;\n    pcVar19 = (char *)gettext("cannot handle %s in a relocatable link");\n    gold::gold_error(pcVar19);\n    goto LAB_0012238d;\n  case 5" number_literal : (ERROR "case 0x2c:\n  case 0x2e:\n  case 0x30:\n  case 0x32:\n  case 0x39:\n  case" identifier number_literal : case number_literal : case number_literal : case number_literal : case number_literal : case) number_literal : (ERROR "case 0x3b:\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case" identifier number_literal : case number_literal : case number_literal : case number_literal : case number_literal : case) number_literal : (ERROR "case 0x41:\n  case 0x42:\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case" identifier number_literal : case number_literal : case number_literal : case number_literal : case number_literal : case) number_literal : (ERROR "case 0x47:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case" identifier number_literal : case number_literal : case number_literal : case number_literal : case number_literal : case) number_literal : (ERROR "case 0x4d:\n  case 0x4e:\n  case 0x4f:\n  case 0x50:\n  case 0x51:\n  case" identifier number_literal : case number_literal : case number_literal : case number_literal : case number_literal : case) number_literal : (ERROR "case 0x53:\n  case 0x55:\n  case 0x58:\n    object = (Arm_relobj<false> *)(pAVar7->name_)._M_dataplus._M_p;\n    pcVar19 = (char *)gettext("cannot handle %s in a relocatable link");" identifier number_literal : case number_literal : case number_literal : (assignment_expression "object = (Arm_relobj<false> *)(pAVar7->name_)._M_dataplus._M_p" identifier = (field_expression "(Arm_relobj<false> *)(pAVar7->name_)._M_dataplus._M_p" (field_expression "(Arm_relobj<false> *)(pAVar7->name_)._M_dataplus" (call_expression "(Arm_relobj<false> *)(pAVar7->name_)" (parenthesized_expression "(Arm_relobj<false> *)" ( (binary_expression "Arm_relobj<false> *" (binary_expression "Arm_relobj<false" identifier < false) > (pointer_expression "*" * identifier)) )) (argument_list "(pAVar7->name_)" ( (field_expression "pAVar7->name_" identifier -> field_identifier) ))) . field_identifier) . field_identifier)) ; (assignment_expression "pcVar19 = (char *)gettext("cannot handle %s in a relocatable link")" identifier = (cast_expression "(char *)gettext("cannot handle %s in a relocatable link")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("cannot handle %s in a relocatable link")" identifier (argument_list "("cannot handle %s in a relocatable link")" ( (string_literal ""cannot handle %s in a relocatable link"" " string_content ") ))))) ;) identifier : : (call_expression "gold_error(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier ))) ; goto identifier ; case number_literal) : (ERROR "uVar13 = (uint)(ushort)*puVar28;\n    if ((short)(ushort)*puVar28 < 0)" (call_expression "uVar13 = (uint)(ushort)*puVar28;\n    if ((short)(ushort)*puVar28 < 0)" (assignment_expression "uVar13 = (uint)(ushort)*puVar28" identifier = (binary_expression "(uint)(ushort)*puVar28" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ushort)" ( identifier ))) * identifier)) (ERROR ";\n    if" ; if) (argument_list "((short)(ushort)*puVar28 < 0)" ( (binary_expression "(short)(ushort)*puVar28 < 0" (binary_expression "(short)(ushort)*puVar28" (cast_expression "(short)(ushort)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(ushort)" ( identifier ))) * identifier) < number_literal) )))) (initializer_list "{\n      uVar13 = (ushort)*puVar28 - 0x10000;\n    }" { (assignment_expression "uVar13 = (ushort)*puVar28 - 0x10000" identifier = (binary_expression "(ushort)*puVar28 - 0x10000" (binary_expression "(ushort)*puVar28" (parenthesized_expression "(ushort)" ( identifier )) * identifier) - number_literal)) (ERROR ";" ;) })) (ERROR "VVar17 = gold::Symbol_value<32>::value<false>\n                       ((Symbol_value<32> *)local_38" identifier = identifier : : identifier < number_literal > : : identifier < false > ( ( identifier < number_literal > * ) identifier) , (binary_expression "(Sized_relobj_file<32,_false> *)object,uVar13);\n    *(ushort *)puVar28 = (ushort)VVar17;\n    if (VVar17 + 0x8000 < 0x18000) goto LAB_0012238d;\n    break;\n  case 6:\n    uVar13 = *puVar28;\n    VVar17 = gold::Symbol_value<32>::value<false" (binary_expression "(Sized_relobj_file<32,_false> *)object,uVar13);\n    *(ushort *)puVar28 = (ushort)VVar17;\n    if (VVar17 + 0x8000 < 0x18000) goto LAB_0012238d;\n    break;\n  case 6:\n    uVar13 = *puVar28;\n    VVar17 = gold::Symbol_value<32>::value" (binary_expression "(Sized_relobj_file<32,_false> *)object,uVar13);\n    *(ushort *)puVar28 = (ushort)VVar17;\n    if (VVar17 + 0x8000 < 0x18000) goto LAB_0012238d;\n    break;\n  case 6:\n    uVar13 = *puVar28;\n    VVar17 = gold::Symbol_value<32" (assignment_expression "(Sized_relobj_file<32,_false> *)object,uVar13);\n    *(ushort *)puVar28 = (ushort)VVar17;\n    if (VVar17 + 0x8000 < 0x18000) goto LAB_0012238d;\n    break;\n  case 6:\n    uVar13 = *puVar28" (call_expression "(Sized_relobj_file<32,_false> *)object,uVar13);\n    *(ushort *)puVar28 = (ushort)VVar17;\n    if (VVar17 + 0x8000 < 0x18000)" (binary_expression "(Sized_relobj_file<32,_false> *)object,uVar13);\n    *(ushort *)puVar28 = (ushort)VVar17" (parenthesized_expression "(Sized_relobj_file<32,_false> *)object,uVar13)" ( (comma_expression "Sized_relobj_file<32,_false> *)object,uVar13" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (comma_expression "_false> *)object,uVar13" (binary_expression "_false> *)object" identifier > (pointer_expression "*)object" * (ERROR ")" )) identifier)) , identifier)) )) (ERROR ";" ;) * (cast_expression "(ushort *)puVar28 = (ushort)VVar17" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "puVar28 = (ushort)VVar17" identifier = (cast_expression "(ushort)VVar17" ( (type_descriptor "ushort" type_identifier) ) identifier)))) (ERROR ";\n    if" ; if) (argument_list "(VVar17 + 0x8000 < 0x18000)" ( (binary_expression "VVar17 + 0x8000 < 0x18000" (binary_expression "VVar17 + 0x8000" identifier + number_literal) < number_literal) ))) (ERROR "goto LAB_0012238d;\n    break;\n  case 6:\n    uVar13" identifier identifier ; break ; case number_literal : identifier) = (pointer_expression "*puVar28" * identifier)) (ERROR ";\n    VVar17 = gold::Symbol_value" ; identifier = identifier : : identifier) < number_literal) > (ERROR "::" : :) identifier) < false) > ( ( (ERROR "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        uVar13 & 0xfff);\n    *puVar28 = uVar13 ^ (uVar13 ^ VVar17) & 0xfff;\n    goto joined_r0x00122297;\n  case 7:\n    uVar3 = (ushort)*puVar28;\n    VVar17 = gold::" (comma_expression "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        uVar13 & 0xfff)" (binary_expression "Symbol_value<32> *)local_38" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)local_38" * (ERROR ")" )) identifier)) , (parenthesized_expression "(Sized_relobj_file<32,_false> *)object,\n                        uVar13 & 0xfff)" ( (comma_expression "Sized_relobj_file<32,_false> *)object,\n                        uVar13 & 0xfff" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (comma_expression "_false> *)object,\n                        uVar13 & 0xfff" (binary_expression "_false> *)object" identifier > (pointer_expression "*)object" * (ERROR ")" )) identifier)) , (binary_expression "uVar13 & 0xfff" identifier & number_literal))) ))) ; (assignment_expression "*puVar28 = uVar13 ^ (uVar13 ^ VVar17) & 0xfff" (pointer_expression "*puVar28" * identifier) = (binary_expression "uVar13 ^ (uVar13 ^ VVar17) & 0xfff" identifier ^ (binary_expression "(uVar13 ^ VVar17) & 0xfff" (parenthesized_expression "(uVar13 ^ VVar17)" ( (binary_expression "uVar13 ^ VVar17" identifier ^ identifier) )) & number_literal))) ; goto identifier ; case number_literal : (assignment_expression "uVar3 = (ushort)*puVar28" identifier = (binary_expression "(ushort)*puVar28" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ; (assignment_expression "VVar17 = gold" identifier = identifier) : :) (binary_expression "Symbol_value<32>::value<false" (binary_expression "Symbol_value<32>::value" (binary_expression "Symbol_value<32" identifier < number_literal) > (ERROR "::" : :) identifier) < false) > ( ( (ERROR "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        uVar3 >> 6 & 0x1f);\n    *(ushort *)puVar28 = uVar3 ^ ((ushort)(VVar17 << 6) ^ uVar3) & 0x7e0;\n    if (VVar17 + 0x10 < 0x20) goto LAB_0012238d;\n    break;\n  case 8:\n    bVar1 = (byte)*puVar28;\n    VVar17 = bVar1 - 0x100;\n    if (-1 < (char)bVar1) {\n      VVar17 = (uint)bVar1;\n    }\n    VVar17 = gold::" (comma_expression "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        uVar3 >> 6 & 0x1f)" (binary_expression "Symbol_value<32> *)local_38" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)local_38" * (ERROR ")" )) identifier)) , (parenthesized_expression "(Sized_relobj_file<32,_false> *)object,\n                        uVar3 >> 6 & 0x1f)" ( (comma_expression "Sized_relobj_file<32,_false> *)object,\n                        uVar3 >> 6 & 0x1f" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (comma_expression "_false> *)object,\n                        uVar3 >> 6 & 0x1f" (binary_expression "_false> *)object" identifier > (pointer_expression "*)object" * (ERROR ")" )) identifier)) , (binary_expression "uVar3 >> 6 & 0x1f" (binary_expression "uVar3 >> 6" identifier >> number_literal) & number_literal))) ))) ; (call_expression "*(ushort *)puVar28 = uVar3 ^ ((ushort)(VVar17 << 6) ^ uVar3) & 0x7e0;\n    if (VVar17 + 0x10 < 0x20)" (assignment_expression "*(ushort *)puVar28 = uVar3 ^ ((ushort)(VVar17 << 6) ^ uVar3) & 0x7e0" (pointer_expression "*(ushort *)puVar28" * (cast_expression "(ushort *)puVar28" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar3 ^ ((ushort)(VVar17 << 6) ^ uVar3) & 0x7e0" identifier ^ (binary_expression "((ushort)(VVar17 << 6) ^ uVar3) & 0x7e0" (parenthesized_expression "((ushort)(VVar17 << 6) ^ uVar3)" ( (binary_expression "(ushort)(VVar17 << 6) ^ uVar3" (call_expression "(ushort)(VVar17 << 6)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(VVar17 << 6)" ( (binary_expression "VVar17 << 6" identifier << number_literal) ))) ^ identifier) )) & number_literal))) (ERROR ";\n    if" ; if) (argument_list "(VVar17 + 0x10 < 0x20)" ( (binary_expression "VVar17 + 0x10 < 0x20" (binary_expression "VVar17 + 0x10" identifier + number_literal) < number_literal) ))) identifier identifier ; break ; case number_literal : (assignment_expression "bVar1 = (byte)*puVar28" identifier = (binary_expression "(byte)*puVar28" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ; (call_expression "VVar17 = bVar1 - 0x100;\n    if (-1 < (char)bVar1)" (assignment_expression "VVar17 = bVar1 - 0x100" identifier = (binary_expression "bVar1 - 0x100" identifier - number_literal)) (ERROR ";\n    if" ; if) (argument_list "(-1 < (char)bVar1)" ( (binary_expression "-1 < (char)bVar1" number_literal < (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ))) (compound_statement "{\n      VVar17 = (uint)bVar1;\n    }" { (expression_statement "VVar17 = (uint)bVar1;" (assignment_expression "VVar17 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (assignment_expression "VVar17 = gold" identifier = identifier) : :) (binary_expression "Symbol_value<32>::value<false" (binary_expression "Symbol_value<32>::value" (binary_expression "Symbol_value<32" identifier < number_literal) > (ERROR "::" : :) identifier) < false) > ( ( (ERROR "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *(byte *)puVar28 = (byte)VVar17;\n    if (VVar17 + 0x80 < 0x180) goto LAB_0012238d;\n    break;\n  default:" (comma_expression "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17)" (binary_expression "Symbol_value<32> *)local_38" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)local_38" * (ERROR ")" )) identifier)) , (parenthesized_expression "(Sized_relobj_file<32,_false> *)object,VVar17)" ( (comma_expression "Sized_relobj_file<32,_false> *)object,VVar17" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (comma_expression "_false> *)object,VVar17" (binary_expression "_false> *)object" identifier > (pointer_expression "*)object" * (ERROR ")" )) identifier)) , identifier)) ))) ; (call_expression "*(byte *)puVar28 = (byte)VVar17;\n    if (VVar17 + 0x80 < 0x180)" (assignment_expression "*(byte *)puVar28 = (byte)VVar17" (pointer_expression "*(byte *)puVar28" * (cast_expression "(byte *)puVar28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(byte)VVar17" ( (type_descriptor "byte" type_identifier) ) identifier)) (ERROR ";\n    if" ; if) (argument_list "(VVar17 + 0x80 < 0x180)" ( (binary_expression "VVar17 + 0x80 < 0x180" (binary_expression "VVar17 + 0x80" identifier + number_literal) < number_literal) ))) identifier identifier ; break ; default :) comment comment (ERROR "gold::do_gold_unreachable("../../gold/arm.cc",0x29cf,"relocate_special_relocatable");\n  case 10:\n  case 0x10:\n  case 0x1e:" identifier : : (call_expression "do_gold_unreachable("../../gold/arm.cc",0x29cf,"relocate_special_relocatable")" identifier (argument_list "("../../gold/arm.cc",0x29cf,"relocate_special_relocatable")" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") ))) ; case number_literal : case number_literal : case number_literal :) identifier = (binary_expression "Arm_relocate_functions<false" identifier < false) > (ERROR "::" : :) identifier ( number_literal , ( (binary_expression "Relocate_info<32" identifier < number_literal) , (binary_expression "_false> *)object" identifier > (pointer_expression "*)object" * (ERROR ")" )) identifier)) , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , ( (ERROR "Arm_relobj<false> *)0x0,(uint)local_48,(Symbol_value<32> *)0x0,\n                        in_stack_ffffff90,in_stack_ffffff94,(bool)in_stack_ffffff98);\n    object = local_48;\n    goto LAB_00122342;\n  case 0xb:\n    uVar13 = *puVar28;\n    VVar17 = gold::" (comma_expression "Arm_relobj<false> *)0x0,(uint)local_48,(Symbol_value<32> *)0x0,\n                        in_stack_ffffff90,in_stack_ffffff94,(bool)in_stack_ffffff98)" (binary_expression "Arm_relobj<false> *)0x0" (binary_expression "Arm_relobj<false" identifier < false) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) , (comma_expression "(uint)local_48,(Symbol_value<32> *)0x0,\n                        in_stack_ffffff90,in_stack_ffffff94,(bool)in_stack_ffffff98)" (cast_expression "(uint)local_48" ( (type_descriptor "uint" type_identifier) ) identifier) , (parenthesized_expression "(Symbol_value<32> *)0x0,\n                        in_stack_ffffff90,in_stack_ffffff94,(bool)in_stack_ffffff98)" ( (comma_expression "Symbol_value<32> *)0x0,\n                        in_stack_ffffff90,in_stack_ffffff94,(bool)in_stack_ffffff98" (binary_expression "Symbol_value<32> *)0x0" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) , (comma_expression "in_stack_ffffff90,in_stack_ffffff94,(bool)in_stack_ffffff98" identifier , (comma_expression "in_stack_ffffff94,(bool)in_stack_ffffff98" identifier , (cast_expression "(bool)in_stack_ffffff98" ( (type_descriptor "bool" primitive_type) ) identifier)))) )))) ; (assignment_expression "object = local_48" identifier = identifier) ; goto identifier ; case number_literal : (assignment_expression "uVar13 = *puVar28" identifier = (pointer_expression "*puVar28" * identifier)) ; (assignment_expression "VVar17 = gold" identifier = identifier) : :) (binary_expression "Symbol_value<32>::value<false" (binary_expression "Symbol_value<32>::value" (binary_expression "Symbol_value<32" identifier < number_literal) > (ERROR "::" : :) identifier) < false) > ( ( (ERROR "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (uint)(ushort)uVar13 * 4 & 0x3fc);\n    iVar15 = (VVar17 ^ (int)VVar17 >> 0x1f) - ((int)VVar17 >> 0x1f);\n    *(ushort *)puVar28 = (ushort)uVar13 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;\n    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;\n    break;\n  case 0xf:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:" (comma_expression "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (uint)(ushort)uVar13 * 4 & 0x3fc)" (binary_expression "Symbol_value<32> *)local_38" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)local_38" * (ERROR ")" )) identifier)) , (parenthesized_expression "(Sized_relobj_file<32,_false> *)object,\n                        (uint)(ushort)uVar13 * 4 & 0x3fc)" ( (comma_expression "Sized_relobj_file<32,_false> *)object,\n                        (uint)(ushort)uVar13 * 4 & 0x3fc" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (comma_expression "_false> *)object,\n                        (uint)(ushort)uVar13 * 4 & 0x3fc" (binary_expression "_false> *)object" identifier > (pointer_expression "*)object" * (ERROR ")" )) identifier)) , (binary_expression "(uint)(ushort)uVar13 * 4 & 0x3fc" (binary_expression "(uint)(ushort)uVar13 * 4" (cast_expression "(uint)(ushort)uVar13" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(ushort)uVar13" ( (type_descriptor "ushort" type_identifier) ) identifier)) * number_literal) & number_literal))) ))) ; (call_expression "iVar15 = (VVar17 ^ (int)VVar17 >> 0x1f) - ((int)VVar17 >> 0x1f);\n    *(ushort *)puVar28 = (ushort)uVar13 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;\n    if ((ushort)iVar15 < 0x3fd)" (binary_expression "iVar15 = (VVar17 ^ (int)VVar17 >> 0x1f) - ((int)VVar17 >> 0x1f);\n    *(ushort *)puVar28 = (ushort)uVar13 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff" (assignment_expression "iVar15 = (VVar17 ^ (int)VVar17 >> 0x1f) - ((int)VVar17 >> 0x1f)" identifier = (binary_expression "(VVar17 ^ (int)VVar17 >> 0x1f) - ((int)VVar17 >> 0x1f)" (parenthesized_expression "(VVar17 ^ (int)VVar17 >> 0x1f)" ( (binary_expression "VVar17 ^ (int)VVar17 >> 0x1f" identifier ^ (binary_expression "(int)VVar17 >> 0x1f" (cast_expression "(int)VVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) )) - (parenthesized_expression "((int)VVar17 >> 0x1f)" ( (binary_expression "(int)VVar17 >> 0x1f" (cast_expression "(int)VVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) (ERROR ";" ;) * (cast_expression "(ushort *)puVar28 = (ushort)uVar13 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "puVar28 = (ushort)uVar13 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff" identifier = (binary_expression "(ushort)uVar13 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff" (binary_expression "(ushort)uVar13 & 0xff00" (cast_expression "(ushort)uVar13" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal) | (binary_expression "(ushort)(iVar15 >> 2) & 0xff" (call_expression "(ushort)(iVar15 >> 2)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(iVar15 >> 2)" ( (binary_expression "iVar15 >> 2" identifier >> number_literal) ))) & number_literal))))) (ERROR ";\n    if" ; if) (argument_list "((ushort)iVar15 < 0x3fd)" ( (binary_expression "(ushort)iVar15 < 0x3fd" (cast_expression "(ushort)iVar15" ( (type_descriptor "ushort" type_identifier) ) identifier) < number_literal) ))) identifier identifier ; break ; case number_literal : case number_literal : case number_literal : case number_literal :) identifier = (binary_expression "Arm_relocate_functions<false" identifier < false) > (ERROR "::" : :) identifier ( number_literal , ( (binary_expression "Relocate_info<32" identifier < number_literal) , (binary_expression "_false> *)object" identifier > (pointer_expression "*)object" * (ERROR ")" )) identifier)) , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , ( (ERROR "Arm_relobj<false> *)0x0,(uint)local_48,(Symbol_value<32> *)0x0,\n                        in_stack_ffffff90,in_stack_ffffff94,(bool)in_stack_ffffff98);\n    object = local_48;\n    goto LAB_00122342;\n  case 0x2a:\n    uVar13 = *puVar28;\n    VVar17 = uVar13 & 0x7fffffff;\n    if ((uVar13 & 0x40000000) != 0) {\n      VVar17 = 0x7fffffff;\n    }\n    VVar17 = gold::" (comma_expression "Arm_relobj<false> *)0x0,(uint)local_48,(Symbol_value<32> *)0x0,\n                        in_stack_ffffff90,in_stack_ffffff94,(bool)in_stack_ffffff98)" (binary_expression "Arm_relobj<false> *)0x0" (binary_expression "Arm_relobj<false" identifier < false) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) , (comma_expression "(uint)local_48,(Symbol_value<32> *)0x0,\n                        in_stack_ffffff90,in_stack_ffffff94,(bool)in_stack_ffffff98)" (cast_expression "(uint)local_48" ( (type_descriptor "uint" type_identifier) ) identifier) , (parenthesized_expression "(Symbol_value<32> *)0x0,\n                        in_stack_ffffff90,in_stack_ffffff94,(bool)in_stack_ffffff98)" ( (comma_expression "Symbol_value<32> *)0x0,\n                        in_stack_ffffff90,in_stack_ffffff94,(bool)in_stack_ffffff98" (binary_expression "Symbol_value<32> *)0x0" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) , (comma_expression "in_stack_ffffff90,in_stack_ffffff94,(bool)in_stack_ffffff98" identifier , (comma_expression "in_stack_ffffff94,(bool)in_stack_ffffff98" identifier , (cast_expression "(bool)in_stack_ffffff98" ( (type_descriptor "bool" primitive_type) ) identifier)))) )))) ; (assignment_expression "object = local_48" identifier = identifier) ; goto identifier ; case number_literal : (assignment_expression "uVar13 = *puVar28" identifier = (pointer_expression "*puVar28" * identifier)) ; (call_expression "VVar17 = uVar13 & 0x7fffffff;\n    if ((uVar13 & 0x40000000) != 0)" (assignment_expression "VVar17 = uVar13 & 0x7fffffff" identifier = (binary_expression "uVar13 & 0x7fffffff" identifier & number_literal)) (ERROR ";\n    if" ; if) (argument_list "((uVar13 & 0x40000000) != 0)" ( (binary_expression "(uVar13 & 0x40000000) != 0" (parenthesized_expression "(uVar13 & 0x40000000)" ( (binary_expression "uVar13 & 0x40000000" identifier & number_literal) )) != number_literal) ))) (compound_statement "{\n      VVar17 = 0x7fffffff;\n    }" { (expression_statement "VVar17 = 0x7fffffff;" (assignment_expression "VVar17 = 0x7fffffff" identifier = number_literal) ;) }) (assignment_expression "VVar17 = gold" identifier = identifier) : :) (binary_expression "Symbol_value<32>::value<false" (binary_expression "Symbol_value<32>::value" (binary_expression "Symbol_value<32" identifier < number_literal) > (ERROR "::" : :) identifier) < false) > ( (ERROR "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    bVar1 = pAVar7->field_0x34;\n    uVar4 = (ushort)*puVar28;\n    uVar22 = ((uVar4 & 0xf) << 0x10) >> 4;\n    uVar13 = ((uVar4 & 0x400) << 0x10) >> 0xf | uVar22 | uVar3 & 0xff | (uVar3 & 0x7000) >> 4;\n    local_4c = uVar13 - 0x10000;\n    if ((uVar22 & 0x8000) == 0) {\n      local_4c = uVar13;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00122cc5 to 00122d01 has its CatchHandler @ 00122d02 */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }" (call_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    bVar1 = pAVar7->field_0x34;\n    uVar4 = (ushort)*puVar28;\n    uVar22 = ((uVar4 & 0xf) << 0x10) >> 4;\n    uVar13 = ((uVar4 & 0x400) << 0x10) >> 0xf | uVar22 | uVar3 & 0xff | (uVar3 & 0x7000) >> 4;\n    local_4c = uVar13 - 0x10000;\n    if ((uVar22 & 0x8000) == 0) {\n      local_4c = uVar13;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0)" (assignment_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    bVar1 = pAVar7->field_0x34;\n    uVar4 = (ushort)*puVar28;\n    uVar22 = ((uVar4 & 0xf) << 0x10) >> 4;\n    uVar13 = ((uVar4 & 0x400) << 0x10) >> 0xf | uVar22 | uVar3 & 0xff | (uVar3 & 0x7000) >> 4;\n    local_4c = uVar13 - 0x10000;\n    if ((uVar22 & 0x8000) == 0) {\n      local_4c = uVar13;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx" (call_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    bVar1 = pAVar7->field_0x34;\n    uVar4 = (ushort)*puVar28;\n    uVar22 = ((uVar4 & 0xf) << 0x10) >> 4;\n    uVar13 = ((uVar4 & 0x400) << 0x10) >> 0xf | uVar22 | uVar3 & 0xff | (uVar3 & 0x7000) >> 4;\n    local_4c = uVar13 - 0x10000;\n    if ((uVar22 & 0x8000) == 0) {\n      local_4c = uVar13;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0')" (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    bVar1 = pAVar7->field_0x34;\n    uVar4 = (ushort)*puVar28;\n    uVar22 = ((uVar4 & 0xf) << 0x10) >> 4;\n    uVar13 = ((uVar4 & 0x400) << 0x10) >> 0xf | uVar22 | uVar3 & 0xff | (uVar3 & 0x7000) >> 4;\n    local_4c = uVar13 - 0x10000;\n    if ((uVar22 & 0x8000) == 0) {\n      local_4c = uVar13;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3)" (assignment_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    bVar1 = pAVar7->field_0x34;\n    uVar4 = (ushort)*puVar28;\n    uVar22 = ((uVar4 & 0xf) << 0x10) >> 4;\n    uVar13 = ((uVar4 & 0x400) << 0x10) >> 0xf | uVar22 | uVar3 & 0xff | (uVar3 & 0x7000) >> 4;\n    local_4c = uVar13 - 0x10000;\n    if ((uVar22 & 0x8000) == 0) {\n      local_4c = uVar13" (call_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    bVar1 = pAVar7->field_0x34;\n    uVar4 = (ushort)*puVar28;\n    uVar22 = ((uVar4 & 0xf) << 0x10) >> 4;\n    uVar13 = ((uVar4 & 0x400) << 0x10) >> 0xf | uVar22 | uVar3 & 0xff | (uVar3 & 0x7000) >> 4;\n    local_4c = uVar13 - 0x10000;\n    if ((uVar22 & 0x8000) == 0)" (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    bVar1 = pAVar7->field_0x34;\n    uVar4 = (ushort)*puVar28;\n    uVar22 = ((uVar4 & 0xf) << 0x10) >> 4;\n    uVar13 = ((uVar4 & 0x400) << 0x10) >> 0xf | uVar22 | uVar3 & 0xff | (uVar3 & 0x7000) >> 4;\n    local_4c = uVar13 - 0x10000" (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    bVar1 = pAVar7->field_0x34;\n    uVar4 = (ushort)*puVar28;\n    uVar22 = ((uVar4 & 0xf) << 0x10) >> 4;\n    uVar13 = ((uVar4 & 0x400) << 0x10) >> 0xf | uVar22 | uVar3 & 0xff | (uVar3 & 0x7000) >> 4" (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    bVar1 = pAVar7->field_0x34;\n    uVar4 = (ushort)*puVar28;\n    uVar22 = ((uVar4 & 0xf) << 0x10) >> 4;\n    uVar13 = ((uVar4 & 0x400) << 0x10) >> 0xf | uVar22 | uVar3 & 0xff" (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    bVar1 = pAVar7->field_0x34;\n    uVar4 = (ushort)*puVar28;\n    uVar22 = ((uVar4 & 0xf) << 0x10) >> 4;\n    uVar13 = ((uVar4 & 0x400) << 0x10) >> 0xf | uVar22" (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    bVar1 = pAVar7->field_0x34;\n    uVar4 = (ushort)*puVar28;\n    uVar22 = ((uVar4 & 0xf) << 0x10) >> 4;\n    uVar13 = ((uVar4 & 0x400) << 0x10) >> 0xf" (call_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    bVar1 = pAVar7->field_0x34;\n    uVar4 = (ushort)*puVar28;\n    uVar22 = ((uVar4 & 0xf) << 0x10) >> 4;\n    uVar13 = ((uVar4 & 0x400) << 0x10)" (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    bVar1 = pAVar7->field_0x34;\n    uVar4 = (ushort)*puVar28;\n    uVar22 = ((uVar4 & 0xf) << 0x10) >> 4" (call_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    bVar1 = pAVar7->field_0x34;\n    uVar4 = (ushort)*puVar28;\n    uVar22 = ((uVar4 & 0xf) << 0x10)" (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    bVar1 = pAVar7->field_0x34;\n    uVar4 = (ushort)*puVar28" (call_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    bVar1 = pAVar7->field_0x34;\n    uVar4 = (ushort)" (field_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    bVar1 = pAVar7->field_0x34" (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 = *(ushort *)((int)puVar28 + 2)" (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)local_48;\n    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff" (parenthesized_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229a9:\n    local_4c = local_4c | (uint)" ( (ERROR "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);\n    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar13 = *puVar28;\n    bVar1 = pAVar7->field_0x34;\n    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;\n    local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0) {\n      local_4c = uVar22;\n    }\n    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else" (comma_expression "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17)" (binary_expression "Symbol_value<32> *)local_38" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)local_38" * (ERROR ")" )) identifier)) , (parenthesized_expression "(Sized_relobj_file<32,_false> *)object,VVar17)" ( (comma_expression "Sized_relobj_file<32,_false> *)object,VVar17" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (comma_expression "_false> *)object,VVar17" (binary_expression "_false> *)object" identifier > (pointer_expression "*)object" * (ERROR ")" )) identifier)) , identifier)) ))) ; (call_expression "*puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;\n    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000))" (assignment_expression "*puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff" (pointer_expression "*puVar28" * identifier) = (binary_expression "uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff" identifier ^ (binary_expression "((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff" (parenthesized_expression "((VVar17 | (uint)local_48) ^ uVar13)" ( (binary_expression "(VVar17 | (uint)local_48) ^ uVar13" (parenthesized_expression "(VVar17 | (uint)local_48)" ( (binary_expression "VVar17 | (uint)local_48" identifier | (cast_expression "(uint)local_48" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ^ identifier) )) & number_literal))) (ERROR ";\n    if" ; if) (argument_list "(-1 < (int)((VVar17 | (uint)local_48) + 0x40000000))" ( (binary_expression "-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)" number_literal < (cast_expression "(int)((VVar17 | (uint)local_48) + 0x40000000)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((VVar17 | (uint)local_48) + 0x40000000)" ( (binary_expression "(VVar17 | (uint)local_48) + 0x40000000" (parenthesized_expression "(VVar17 | (uint)local_48)" ( (binary_expression "VVar17 | (uint)local_48" identifier | (cast_expression "(uint)local_48" ( (type_descriptor "uint" type_identifier) ) identifier)) )) + number_literal) )))) ))) identifier identifier ; break ; case number_literal : case number_literal : case number_literal : case number_literal : (assignment_expression "uVar13 = *puVar28" identifier = (pointer_expression "*puVar28" * identifier)) ; (assignment_expression "bVar1 = pAVar7->field_0x34" identifier = (field_expression "pAVar7->field_0x34" identifier -> field_identifier)) ; (assignment_expression "uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff" identifier = (binary_expression "uVar13 >> 4 & 0xf000 | uVar13 & 0xfff" (binary_expression "uVar13 >> 4 & 0xf000" (binary_expression "uVar13 >> 4" identifier >> number_literal) & number_literal) | (binary_expression "uVar13 & 0xfff" identifier & number_literal))) ; (call_expression "local_4c = uVar22 - 0x10000;\n    if ((uVar13 >> 4 & 0x8000) == 0)" (assignment_expression "local_4c = uVar22 - 0x10000" identifier = (binary_expression "uVar22 - 0x10000" identifier - number_literal)) (ERROR ";\n    if" ; if) (argument_list "((uVar13 >> 4 & 0x8000) == 0)" ( (binary_expression "(uVar13 >> 4 & 0x8000) == 0" (parenthesized_expression "(uVar13 >> 4 & 0x8000)" ( (binary_expression "uVar13 >> 4 & 0x8000" (binary_expression "uVar13 >> 4" identifier >> number_literal) & number_literal) )) == number_literal) ))) (compound_statement "{\n      local_4c = uVar22;\n    }" { (expression_statement "local_4c = uVar22;" (assignment_expression "local_4c = uVar22" identifier = identifier) ;) }) (call_expression "bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar2 < '\0')" (assignment_expression "bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3)" identifier = (pointer_expression "*(byte *)((int)&(local_38->super_Symbol).u1_ + 3)" * (cast_expression "(byte *)((int)&(local_38->super_Symbol).u1_ + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_38->super_Symbol).u1_ + 3)" ( (binary_expression "(int)&(local_38->super_Symbol).u1_ + 3" (cast_expression "(int)&(local_38->super_Symbol).u1_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_38->super_Symbol).u1_" & (field_expression "(local_38->super_Symbol).u1_" (parenthesized_expression "(local_38->super_Symbol)" ( (field_expression "local_38->super_Symbol" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) (ERROR ";\n    if" ; if) (argument_list "((char)bVar2 < '\0')" ( (binary_expression "(char)bVar2 < '\0'" (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) ))) (compound_statement "{\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }" { (expression_statement "local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;" (assignment_expression "local_4c = local_4c + (local_38->super_Symbol).u2_.shndx" identifier = (binary_expression "local_4c + (local_38->super_Symbol).u2_.shndx" identifier + (field_expression "(local_38->super_Symbol).u2_.shndx" (field_expression "(local_38->super_Symbol).u2_" (parenthesized_expression "(local_38->super_Symbol)" ( (field_expression "local_38->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) }) else) (compound_statement "{\n      if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar24 = (uint)local_34 % uVar22;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }\nLAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }" { (if_statement "if ((bVar2 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }" if (parenthesized_expression "((bVar2 & 8) == 0)" ( (binary_expression "(bVar2 & 8) == 0" (parenthesized_expression "(bVar2 & 8)" ( (binary_expression "bVar2 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/object.h",0x6ab,"value");" (call_expression "do_gold_unreachable("../../gold/object.h",0x6ab,"value")" identifier (argument_list "("../../gold/object.h",0x6ab,"value")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""value"" " string_content ") ))) ;)) })) (expression_statement "pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;" (assignment_expression "pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end" identifier = (binary_expression "*(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end" (pointer_expression "*(Merged_symbol_value<32> **)" * (parenthesized_expression "(Merged_symbol_value<32> **)" ( (binary_expression "Merged_symbol_value<32> **" (binary_expression "Merged_symbol_value<32" identifier < number_literal) > (pointer_expression "**" * (pointer_expression "*" * identifier))) ))) & (field_expression "(local_38->super_Symbol).u2_.offset_is_from_end" (field_expression "(local_38->super_Symbol).u2_" (parenthesized_expression "(local_38->super_Symbol)" ( (field_expression "local_38->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "local_34 = (_Hash_node_base *)pMVar11->input_value_;" (assignment_expression "local_34 = (_Hash_node_base *)pMVar11->input_value_" identifier = (cast_expression "(_Hash_node_base *)pMVar11->input_value_" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pMVar11->input_value_" identifier -> field_identifier))) ;) (if_statement "if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }" if (parenthesized_expression "(local_4c < 0xffffff00)" ( (binary_expression "local_4c < 0xffffff00" identifier < number_literal) )) (compound_statement "{\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }" { (expression_statement "local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);" (assignment_expression "local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c)" identifier = (cast_expression "(_Hash_node_base *)((int)&local_34->_M_nxt + local_4c)" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_34->_M_nxt + local_4c)" ( (binary_expression "(int)&local_34->_M_nxt + local_4c" (cast_expression "(int)&local_34->_M_nxt" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_34->_M_nxt" & (field_expression "local_34->_M_nxt" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) })) (expression_statement "uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;" (assignment_expression "uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count" identifier = (field_expression "(pMVar11->output_addresses_)._M_h._M_bucket_count" (field_expression "(pMVar11->output_addresses_)._M_h" (parenthesized_expression "(pMVar11->output_addresses_)" ( (field_expression "pMVar11->output_addresses_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "uVar24 = (uint)local_34 % uVar22;" (assignment_expression "uVar24 = (uint)local_34 % uVar22" identifier = (binary_expression "(uint)local_34 % uVar22" (cast_expression "(uint)local_34" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier)) ;) (expression_statement "p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];" (assignment_expression "p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24]" identifier = (subscript_expression "(pMVar11->output_addresses_)._M_h._M_buckets[uVar24]" (field_expression "(pMVar11->output_addresses_)._M_h._M_buckets" (field_expression "(pMVar11->output_addresses_)._M_h" (parenthesized_expression "(pMVar11->output_addresses_)" ( (field_expression "pMVar11->output_addresses_" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ identifier ])) ;) (if_statement "if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }" if (parenthesized_expression "(p_Var26 != (__bucket_type)0x0)" ( (binary_expression "p_Var26 != (__bucket_type)0x0" identifier != (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) )) (compound_statement "{\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }\n      }" { (expression_statement "p_Var23 = p_Var26->_M_nxt[1]._M_nxt;" (assignment_expression "p_Var23 = p_Var26->_M_nxt[1]._M_nxt" identifier = (field_expression "p_Var26->_M_nxt[1]._M_nxt" (subscript_expression "p_Var26->_M_nxt[1]" (field_expression "p_Var26->_M_nxt" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var12 = p_Var26->_M_nxt;" (assignment_expression "p_Var12 = p_Var26->_M_nxt" identifier = (field_expression "p_Var26->_M_nxt" identifier -> field_identifier)) ;) (while_statement "while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }" while (parenthesized_expression "(p_Var25 = p_Var12, p_Var23 != local_34)" ( (comma_expression "p_Var25 = p_Var12, p_Var23 != local_34" (assignment_expression "p_Var25 = p_Var12" identifier = identifier) , (binary_expression "p_Var23 != local_34" identifier != identifier)) )) (compound_statement "{\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;\n        }" { (expression_statement "p_Var12 = p_Var25->_M_nxt;" (assignment_expression "p_Var12 = p_Var25->_M_nxt" identifier = (field_expression "p_Var25->_M_nxt" identifier -> field_identifier)) ;) (if_statement "if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))\n          goto LAB_00122b36;" if (parenthesized_expression "((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))" ( (binary_expression "(p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24)" (parenthesized_expression "(p_Var12 == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var12 == (_Hash_node_base *)0x0" identifier == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24)" ( (comma_expression "p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24" (assignment_expression "p_Var23 = p_Var12[1]._M_nxt" identifier = (field_expression "p_Var12[1]._M_nxt" (subscript_expression "p_Var12[1]" identifier [ number_literal ]) . field_identifier)) , (comma_expression "p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24" (assignment_expression "p_Var26 = p_Var25" identifier = identifier) , (binary_expression "(uint)p_Var23 % uVar22 != uVar24" (binary_expression "(uint)p_Var23 % uVar22" (cast_expression "(uint)p_Var23" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier) != identifier))) ))) )) (goto_statement "goto LAB_00122b36;" goto statement_identifier ;)) })) (if_statement "if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }" if (parenthesized_expression "(p_Var26->_M_nxt != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var26->_M_nxt != (_Hash_node_base *)0x0" (field_expression "p_Var26->_M_nxt" identifier -> field_identifier) != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229a9;\n        }" { (expression_statement "local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;" (assignment_expression "local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c" identifier = (binary_expression "(int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c" (cast_expression "(int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt" & (field_expression "(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt" (parenthesized_expression "(p_Var26->_M_nxt[2]._M_nxt)" ( (field_expression "p_Var26->_M_nxt[2]._M_nxt" (subscript_expression "p_Var26->_M_nxt[2]" (field_expression "p_Var26->_M_nxt" identifier -> field_identifier) [ number_literal ]) . field_identifier) )) -> field_identifier))) + identifier)) ;) (goto_statement "goto LAB_001229a9;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00122b36:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);" statement_identifier : (ERROR "EVar21 = gold::" (assignment_expression "EVar21 = gold" identifier = identifier) : :) (expression_statement "Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);" (binary_expression "Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34)" (binary_expression "Merged_symbol_value<32" identifier < number_literal) > (ERROR "::" : :) (call_expression "value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34)" identifier (argument_list "(pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34)" ( identifier , (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "(uint)(local_38->super_Symbol).u1_.object & 0x7ffffff" (field_expression "(uint)(local_38->super_Symbol).u1_.object" (field_expression "(uint)(local_38->super_Symbol).u1_" (call_expression "(uint)(local_38->super_Symbol)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_38->super_Symbol)" ( (field_expression "local_38->super_Symbol" identifier -> field_identifier) ))) . field_identifier) . field_identifier) & number_literal) , (cast_expression "(Elf_Addr)local_34" ( (type_descriptor "Elf_Addr" type_identifier) ) identifier) )))) ;)) (expression_statement "local_4c = EVar21 + local_4c;" (assignment_expression "local_4c = EVar21 + local_4c" identifier = (binary_expression "EVar21 + local_4c" identifier + identifier)) ;) (expression_statement "pAVar14 = object;" (assignment_expression "pAVar14 = object" identifier = identifier) ;) }) (ERROR "LAB_001229a9:\n    local_4c = local_4c | (uint" identifier : identifier = identifier | ( identifier) )) (ERROR "local_48;" identifier ;) * (assignment_expression "puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff" identifier = (binary_expression "(local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff" (binary_expression "(local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000" (binary_expression "(local_4c & 0xf000) << 4" (parenthesized_expression "(local_4c & 0xf000)" ( (binary_expression "local_4c & 0xf000" identifier & number_literal) )) << number_literal) | (binary_expression "uVar13 & 0xfff0f000" identifier & number_literal)) | (binary_expression "local_4c & 0xfff" identifier & number_literal)))) (ERROR ";\n    object = pAVar14;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar3 =" ; identifier = identifier ; goto identifier ; case number_literal : case number_literal : case number_literal : case number_literal : identifier =) * (cast_expression "(ushort *)((int)puVar28 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar28 + 2)" ( (binary_expression "(int)puVar28 + 2" (cast_expression "(int)puVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) (ERROR ";\n    bVar1 = pAVar7" ; identifier = identifier) -> field_identifier) (ERROR ";\n    uVar4 =" ; identifier =) (argument_list "(ushort)" ( identifier ))) * identifier) (ERROR ";\n    uVar22 =" ; identifier =) (argument_list "((uVar4 & 0xf) << 0x10)" ( (binary_expression "(uVar4 & 0xf) << 0x10" (parenthesized_expression "(uVar4 & 0xf)" ( (binary_expression "uVar4 & 0xf" identifier & number_literal) )) << number_literal) ))) >> number_literal) (ERROR ";\n    uVar13 =" ; identifier =) (argument_list "((uVar4 & 0x400) << 0x10)" ( (binary_expression "(uVar4 & 0x400) << 0x10" (parenthesized_expression "(uVar4 & 0x400)" ( (binary_expression "uVar4 & 0x400" identifier & number_literal) )) << number_literal) ))) >> number_literal) | identifier) | (binary_expression "uVar3 & 0xff" identifier & number_literal)) | (binary_expression "(uVar3 & 0x7000) >> 4" (parenthesized_expression "(uVar3 & 0x7000)" ( (binary_expression "uVar3 & 0x7000" identifier & number_literal) )) >> number_literal)) (ERROR ";\n    local_4c = uVar13" ; identifier = identifier) - number_literal) (ERROR ";\n    if" ; if) (argument_list "((uVar22 & 0x8000) == 0)" ( (binary_expression "(uVar22 & 0x8000) == 0" (parenthesized_expression "(uVar22 & 0x8000)" ( (binary_expression "uVar22 & 0x8000" identifier & number_literal) )) == number_literal) ))) (ERROR "{\n      local_4c" { identifier) = identifier) (ERROR ";\n    }\n    bVar2 =" ; } identifier =) * (cast_expression "(byte *)((int)&(local_38->super_Symbol).u1_ + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_38->super_Symbol).u1_ + 3)" ( (binary_expression "(int)&(local_38->super_Symbol).u1_ + 3" (cast_expression "(int)&(local_38->super_Symbol).u1_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_38->super_Symbol).u1_" & (field_expression "(local_38->super_Symbol).u1_" (parenthesized_expression "(local_38->super_Symbol)" ( (field_expression "local_38->super_Symbol" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) (ERROR ";\n    if" ; if) (argument_list "((char)bVar2 < '\0')" ( (binary_expression "(char)bVar2 < '\0'" (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) ))) (ERROR "{\n      local_4c" { identifier) = (binary_expression "local_4c + (local_38->super_Symbol).u2_.shndx" identifier + (field_expression "(local_38->super_Symbol).u2_.shndx" (field_expression "(local_38->super_Symbol).u2_" (parenthesized_expression "(local_38->super_Symbol)" ( (field_expression "local_38->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier))) (ERROR ";\n    }\n    else {\n      if" ; } else { if) (argument_list "((bVar2 & 8) == 0)" ( (binary_expression "(bVar2 & 8) == 0" (parenthesized_expression "(bVar2 & 8)" ( (binary_expression "bVar2 & 8" identifier & number_literal) )) == number_literal) ))) { comment comment identifier : : (call_expression "do_gold_unreachable("../../gold/object.h",0x6ab,"value")" identifier (argument_list "("../../gold/object.h",0x6ab,"value")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""value"" " string_content ") ))) ; }) identifier = * ( (ERROR "Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar22 = (uint)local_34 % uVar13;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122b06;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_00122a61;\n        }\n      }\nLAB_00122b06:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_00122a61:\n    local_4c = local_4c | (uint)local_48;\n    uVar13 = CONCAT22(uVar4,uVar3) & 0xfbf08f00;\n    *(ushort *)((int)puVar28 + 2) =\n         (ushort)(local_4c << 4) & 0x7000 | (ushort)uVar13 | (ushort)local_4c & 0xff;\n    *(ushort *)puVar28 =\n         (ushort)(uVar13 >> 0x10) | (ushort)((local_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((local_4c & 0x800) << 0xf) >> 0x10);\n    object = pAVar14;\njoined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (local_4c + 0x8000 < 0x10000)) goto LAB_0012238d;\n    break;\n  case 0x33:\n    SVar18 = Arm_relocate_functions<false>::thm_jump19\n                       ((uchar *)0x0,local_48,in_stack_ffffff8c,in_stack_ffffff90,in_stack_ffffff94)\n    ;\n    object = local_48;\nLAB_00122342:\n    if (SVar18 == STATUS_OVERFLOW) break;\n    if (SVar18 == STATUS_OKAY) goto LAB_0012238d;\n    if (SVar18 != STATUS_BAD_RELOC) {\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/arm.cc",0x29e2,"relocate_special_relocatable");\n    }\n    object = (Arm_relobj<false> *)(pAVar7->name_)._M_dataplus._M_p;\n    pcVar19 = "unexpected opcode while processing relocation %s";\n    goto LAB_0012236a;\n  case 0x34:\n    uVar3 = (ushort)*puVar28;\n    VVar17 = gold::" (binary_expression "Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end" (binary_expression "Merged_symbol_value<32" identifier < number_literal) > (pointer_expression "**)&(local_38->super_Symbol).u2_.offset_is_from_end" * (pointer_expression "*)&(local_38->super_Symbol).u2_.offset_is_from_end" * (ERROR ")" )) (pointer_expression "&(local_38->super_Symbol).u2_.offset_is_from_end" & (field_expression "(local_38->super_Symbol).u2_.offset_is_from_end" (field_expression "(local_38->super_Symbol).u2_" (parenthesized_expression "(local_38->super_Symbol)" ( (field_expression "local_38->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier))))) ; (call_expression "local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00)" (assignment_expression "local_34 = (_Hash_node_base *)pMVar11->input_value_" identifier = (cast_expression "(_Hash_node_base *)pMVar11->input_value_" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pMVar11->input_value_" identifier -> field_identifier))) (ERROR ";\n      if" ; if) (argument_list "(local_4c < 0xffffff00)" ( (binary_expression "local_4c < 0xffffff00" identifier < number_literal) ))) (compound_statement "{\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }" { (expression_statement "local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);" (assignment_expression "local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c)" identifier = (cast_expression "(_Hash_node_base *)((int)&local_34->_M_nxt + local_4c)" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_34->_M_nxt + local_4c)" ( (binary_expression "(int)&local_34->_M_nxt + local_4c" (cast_expression "(int)&local_34->_M_nxt" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_34->_M_nxt" & (field_expression "local_34->_M_nxt" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }) (assignment_expression "uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count" identifier = (field_expression "(pMVar11->output_addresses_)._M_h._M_bucket_count" (field_expression "(pMVar11->output_addresses_)._M_h" (parenthesized_expression "(pMVar11->output_addresses_)" ( (field_expression "pMVar11->output_addresses_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ; (assignment_expression "uVar22 = (uint)local_34 % uVar13" identifier = (binary_expression "(uint)local_34 % uVar13" (cast_expression "(uint)local_34" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier)) ; (call_expression "p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0)" (assignment_expression "p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22]" identifier = (subscript_expression "(pMVar11->output_addresses_)._M_h._M_buckets[uVar22]" (field_expression "(pMVar11->output_addresses_)._M_h._M_buckets" (field_expression "(pMVar11->output_addresses_)._M_h" (parenthesized_expression "(pMVar11->output_addresses_)" ( (field_expression "pMVar11->output_addresses_" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ identifier ])) (ERROR ";\n      if" ; if) (argument_list "(p_Var26 != (__bucket_type)0x0)" ( (binary_expression "p_Var26 != (__bucket_type)0x0" identifier != (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) ))) (compound_statement "{\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122b06;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_00122a61;\n        }\n      }" { (expression_statement "p_Var23 = p_Var26->_M_nxt[1]._M_nxt;" (assignment_expression "p_Var23 = p_Var26->_M_nxt[1]._M_nxt" identifier = (field_expression "p_Var26->_M_nxt[1]._M_nxt" (subscript_expression "p_Var26->_M_nxt[1]" (field_expression "p_Var26->_M_nxt" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var12 = p_Var26->_M_nxt;" (assignment_expression "p_Var12 = p_Var26->_M_nxt" identifier = (field_expression "p_Var26->_M_nxt" identifier -> field_identifier)) ;) (while_statement "while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122b06;\n        }" while (parenthesized_expression "(p_Var25 = p_Var12, p_Var23 != local_34)" ( (comma_expression "p_Var25 = p_Var12, p_Var23 != local_34" (assignment_expression "p_Var25 = p_Var12" identifier = identifier) , (binary_expression "p_Var23 != local_34" identifier != identifier)) )) (compound_statement "{\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122b06;\n        }" { (expression_statement "p_Var12 = p_Var25->_M_nxt;" (assignment_expression "p_Var12 = p_Var25->_M_nxt" identifier = (field_expression "p_Var25->_M_nxt" identifier -> field_identifier)) ;) (if_statement "if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122b06;" if (parenthesized_expression "((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))" ( (binary_expression "(p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22)" (parenthesized_expression "(p_Var12 == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var12 == (_Hash_node_base *)0x0" identifier == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22)" ( (comma_expression "p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22" (assignment_expression "p_Var23 = p_Var12[1]._M_nxt" identifier = (field_expression "p_Var12[1]._M_nxt" (subscript_expression "p_Var12[1]" identifier [ number_literal ]) . field_identifier)) , (comma_expression "p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22" (assignment_expression "p_Var26 = p_Var25" identifier = identifier) , (binary_expression "(uint)p_Var23 % uVar13 != uVar22" (binary_expression "(uint)p_Var23 % uVar13" (cast_expression "(uint)p_Var23" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier) != identifier))) ))) )) (goto_statement "goto LAB_00122b06;" goto statement_identifier ;)) })) (if_statement "if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_00122a61;\n        }" if (parenthesized_expression "(p_Var26->_M_nxt != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var26->_M_nxt != (_Hash_node_base *)0x0" (field_expression "p_Var26->_M_nxt" identifier -> field_identifier) != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_00122a61;\n        }" { (expression_statement "local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;" (assignment_expression "local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c" identifier = (binary_expression "(int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c" (cast_expression "(int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt" & (field_expression "(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt" (parenthesized_expression "(p_Var26->_M_nxt[2]._M_nxt)" ( (field_expression "p_Var26->_M_nxt[2]._M_nxt" (subscript_expression "p_Var26->_M_nxt[2]" (field_expression "p_Var26->_M_nxt" identifier -> field_identifier) [ number_literal ]) . field_identifier) )) -> field_identifier))) + identifier)) ;) (goto_statement "goto LAB_00122a61;" goto statement_identifier ;) })) }) identifier : identifier = identifier : : identifier < number_literal > : : (call_expression "value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34)" identifier (argument_list "(pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34)" ( identifier , (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "(uint)(local_38->super_Symbol).u1_.object & 0x7ffffff" (field_expression "(uint)(local_38->super_Symbol).u1_.object" (field_expression "(uint)(local_38->super_Symbol).u1_" (call_expression "(uint)(local_38->super_Symbol)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_38->super_Symbol)" ( (field_expression "local_38->super_Symbol" identifier -> field_identifier) ))) . field_identifier) . field_identifier) & number_literal) , (cast_expression "(Elf_Addr)local_34" ( (type_descriptor "Elf_Addr" type_identifier) ) identifier) ))) ; (assignment_expression "local_4c = EVar21 + local_4c" identifier = (binary_expression "EVar21 + local_4c" identifier + identifier)) ; (assignment_expression "pAVar14 = object" identifier = identifier) ; } identifier : (assignment_expression "local_4c = local_4c | (uint)local_48" identifier = (binary_expression "local_4c | (uint)local_48" identifier | (cast_expression "(uint)local_48" ( (type_descriptor "uint" type_identifier) ) identifier))) ; (binary_expression "uVar13 = CONCAT22(uVar4,uVar3) & 0xfbf08f00;\n    *(ushort *)((int)puVar28 + 2) =\n         (ushort)(local_4c << 4) & 0x7000 | (ushort)uVar13 | (ushort)local_4c & 0xff;\n    *(ushort *)puVar28 =\n         (ushort)(uVar13 >> 0x10) | (ushort)((local_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((local_4c & 0x800) << 0xf) >> 0x10)" (binary_expression "uVar13 = CONCAT22(uVar4,uVar3) & 0xfbf08f00;\n    *(ushort *)((int)puVar28 + 2) =\n         (ushort)(local_4c << 4) & 0x7000 | (ushort)uVar13 | (ushort)local_4c & 0xff" (assignment_expression "uVar13 = CONCAT22(uVar4,uVar3) & 0xfbf08f00" identifier = (binary_expression "CONCAT22(uVar4,uVar3) & 0xfbf08f00" (call_expression "CONCAT22(uVar4,uVar3)" identifier (argument_list "(uVar4,uVar3)" ( identifier , identifier ))) & number_literal)) (ERROR ";" ;) * (cast_expression "(ushort *)((int)puVar28 + 2) =\n         (ushort)(local_4c << 4) & 0x7000 | (ushort)uVar13 | (ushort)local_4c & 0xff" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "((int)puVar28 + 2) =\n         (ushort)(local_4c << 4) & 0x7000 | (ushort)uVar13 | (ushort)local_4c & 0xff" (parenthesized_expression "((int)puVar28 + 2)" ( (binary_expression "(int)puVar28 + 2" (cast_expression "(int)puVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = (binary_expression "(ushort)(local_4c << 4) & 0x7000 | (ushort)uVar13 | (ushort)local_4c & 0xff" (binary_expression "(ushort)(local_4c << 4) & 0x7000 | (ushort)uVar13" (binary_expression "(ushort)(local_4c << 4) & 0x7000" (call_expression "(ushort)(local_4c << 4)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(local_4c << 4)" ( (binary_expression "local_4c << 4" identifier << number_literal) ))) & number_literal) | (cast_expression "(ushort)uVar13" ( (type_descriptor "ushort" type_identifier) ) identifier)) | (binary_expression "(ushort)local_4c & 0xff" (cast_expression "(ushort)local_4c" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal))))) (ERROR ";" ;) * (cast_expression "(ushort *)puVar28 =\n         (ushort)(uVar13 >> 0x10) | (ushort)((local_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((local_4c & 0x800) << 0xf) >> 0x10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "puVar28 =\n         (ushort)(uVar13 >> 0x10) | (ushort)((local_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((local_4c & 0x800) << 0xf) >> 0x10)" identifier = (binary_expression "(ushort)(uVar13 >> 0x10) | (ushort)((local_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((local_4c & 0x800) << 0xf) >> 0x10)" (binary_expression "(ushort)(uVar13 >> 0x10) | (ushort)((local_4c << 4) >> 0x10) & 0xf" (call_expression "(ushort)(uVar13 >> 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar13 >> 0x10)" ( (binary_expression "uVar13 >> 0x10" identifier >> number_literal) ))) | (binary_expression "(ushort)((local_4c << 4) >> 0x10) & 0xf" (call_expression "(ushort)((local_4c << 4) >> 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((local_4c << 4) >> 0x10)" ( (binary_expression "(local_4c << 4) >> 0x10" (parenthesized_expression "(local_4c << 4)" ( (binary_expression "local_4c << 4" identifier << number_literal) )) >> number_literal) ))) & number_literal)) | (call_expression "(ushort)(((local_4c & 0x800) << 0xf) >> 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(((local_4c & 0x800) << 0xf) >> 0x10)" ( (binary_expression "((local_4c & 0x800) << 0xf) >> 0x10" (parenthesized_expression "((local_4c & 0x800) << 0xf)" ( (binary_expression "(local_4c & 0x800) << 0xf" (parenthesized_expression "(local_4c & 0x800)" ( (binary_expression "local_4c & 0x800" identifier & number_literal) )) << number_literal) )) >> number_literal) ))))))) ; (assignment_expression "object = pAVar14" identifier = identifier) ; (call_expression "joined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (local_4c + 0x8000 < 0x10000))" identifier (ERROR ":\n    if" : if) (argument_list "(((bVar1 >> 2 & 1) == 0) || (local_4c + 0x8000 < 0x10000))" ( (binary_expression "((bVar1 >> 2 & 1) == 0) || (local_4c + 0x8000 < 0x10000)" (parenthesized_expression "((bVar1 >> 2 & 1) == 0)" ( (binary_expression "(bVar1 >> 2 & 1) == 0" (parenthesized_expression "(bVar1 >> 2 & 1)" ( (binary_expression "bVar1 >> 2 & 1" (binary_expression "bVar1 >> 2" identifier >> number_literal) & number_literal) )) == number_literal) )) || (parenthesized_expression "(local_4c + 0x8000 < 0x10000)" ( (binary_expression "local_4c + 0x8000 < 0x10000" (binary_expression "local_4c + 0x8000" identifier + number_literal) < number_literal) ))) ))) identifier identifier ; break ; case number_literal : (assignment_expression "SVar18 = Arm_relocate_functions<false>::thm_jump19\n                       ((uchar *)0x0,local_48,in_stack_ffffff8c,in_stack_ffffff90,in_stack_ffffff94)" identifier = (binary_expression "Arm_relocate_functions<false>::thm_jump19\n                       ((uchar *)0x0,local_48,in_stack_ffffff8c,in_stack_ffffff90,in_stack_ffffff94)" (binary_expression "Arm_relocate_functions<false" identifier < false) > (ERROR "::" : :) (call_expression "thm_jump19\n                       ((uchar *)0x0,local_48,in_stack_ffffff8c,in_stack_ffffff90,in_stack_ffffff94)" identifier (argument_list "((uchar *)0x0,local_48,in_stack_ffffff8c,in_stack_ffffff90,in_stack_ffffff94)" ( (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , identifier , identifier ))))) ; (assignment_expression "object = local_48" identifier = identifier) ; (call_expression "LAB_00122342:\n    if (SVar18 == STATUS_OVERFLOW) break;\n    if (SVar18 == STATUS_OKAY)" (call_expression "LAB_00122342:\n    if (SVar18 == STATUS_OVERFLOW)" identifier (ERROR ":\n    if" : if) (argument_list "(SVar18 == STATUS_OVERFLOW)" ( (binary_expression "SVar18 == STATUS_OVERFLOW" identifier == identifier) ))) (ERROR "break;\n    if" identifier ; if) (argument_list "(SVar18 == STATUS_OKAY)" ( (binary_expression "SVar18 == STATUS_OKAY" identifier == identifier) ))) identifier (call_expression "LAB_0012238d;\n    if (SVar18 != STATUS_BAD_RELOC)" identifier (ERROR ";\n    if" ; if) (argument_list "(SVar18 != STATUS_BAD_RELOC)" ( (binary_expression "SVar18 != STATUS_BAD_RELOC" identifier != identifier) ))) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/arm.cc",0x29e2,"relocate_special_relocatable");\n    }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/arm.cc",0x29e2,"relocate_special_relocatable");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/arm.cc",0x29e2,"relocate_special_relocatable");" (call_expression "do_gold_unreachable("../../gold/arm.cc",0x29e2,"relocate_special_relocatable")" identifier (argument_list "("../../gold/arm.cc",0x29e2,"relocate_special_relocatable")" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") ))) ;)) }) (assignment_expression "object = (Arm_relobj<false> *)(pAVar7->name_)._M_dataplus._M_p" identifier = (field_expression "(Arm_relobj<false> *)(pAVar7->name_)._M_dataplus._M_p" (field_expression "(Arm_relobj<false> *)(pAVar7->name_)._M_dataplus" (call_expression "(Arm_relobj<false> *)(pAVar7->name_)" (parenthesized_expression "(Arm_relobj<false> *)" ( (binary_expression "Arm_relobj<false> *" (binary_expression "Arm_relobj<false" identifier < false) > (pointer_expression "*" * identifier)) )) (argument_list "(pAVar7->name_)" ( (field_expression "pAVar7->name_" identifier -> field_identifier) ))) . field_identifier) . field_identifier)) ; (assignment_expression "pcVar19 = "unexpected opcode while processing relocation %s"" identifier = (string_literal ""unexpected opcode while processing relocation %s"" " string_content ")) ; goto identifier ; case number_literal : (assignment_expression "uVar3 = (ushort)*puVar28" identifier = (binary_expression "(ushort)*puVar28" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ; (assignment_expression "VVar17 = gold" identifier = identifier) : :) (binary_expression "Symbol_value<32>::value<false" (binary_expression "Symbol_value<32>::value" (binary_expression "Symbol_value<32" identifier < number_literal) > (ERROR "::" : :) identifier) < false) > ( (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e));\n    *(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;\n    if ((ushort)VVar17 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar3 = (ushort)*puVar28;\n    uVar4 = *(ushort *)((int)puVar28 + 2);\n    local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *\n               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar1 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar1 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar22 = (uint)local_34 % uVar13;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }\n      }\nLAB_00122ad6:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229f9:\n    local_4c = local_4c | (uint)local_48;\n    uVar13 = ((int)local_4c >> 0x1f ^ local_4c) - ((int)local_4c >> 0x1f);\n    uVar22 = (uVar13 & 0x800) << 0xf |\n             (uVar13 & 0x700) << 4 | uVar13 & 0xff | CONCAT22(uVar3,uVar4) & 0xfb0f8f00;\n    if ((int)local_4c < 0) {\n      uVar22 = uVar22 | 0xa00000;\n    }\n    *(ushort *)((int)puVar28 + 2) = (ushort)uVar22;\n    *(ushort *)puVar28 = (ushort)(uVar22 >> 0x10);\n    object = pAVar14;\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar22 = *puVar28;\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    VVar17 = gold::Symbol_value<32>::value<false" (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e));\n    *(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;\n    if ((ushort)VVar17 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar3 = (ushort)*puVar28;\n    uVar4 = *(ushort *)((int)puVar28 + 2);\n    local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *\n               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar1 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar1 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar22 = (uint)local_34 % uVar13;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }\n      }\nLAB_00122ad6:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229f9:\n    local_4c = local_4c | (uint)local_48;\n    uVar13 = ((int)local_4c >> 0x1f ^ local_4c) - ((int)local_4c >> 0x1f);\n    uVar22 = (uVar13 & 0x800) << 0xf |\n             (uVar13 & 0x700) << 4 | uVar13 & 0xff | CONCAT22(uVar3,uVar4) & 0xfb0f8f00;\n    if ((int)local_4c < 0) {\n      uVar22 = uVar22 | 0xa00000;\n    }\n    *(ushort *)((int)puVar28 + 2) = (ushort)uVar22;\n    *(ushort *)puVar28 = (ushort)(uVar22 >> 0x10);\n    object = pAVar14;\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar22 = *puVar28;\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    VVar17 = gold::Symbol_value<32>::value" (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e));\n    *(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;\n    if ((ushort)VVar17 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar3 = (ushort)*puVar28;\n    uVar4 = *(ushort *)((int)puVar28 + 2);\n    local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *\n               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar1 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar1 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar22 = (uint)local_34 % uVar13;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }\n      }\nLAB_00122ad6:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229f9:\n    local_4c = local_4c | (uint)local_48;\n    uVar13 = ((int)local_4c >> 0x1f ^ local_4c) - ((int)local_4c >> 0x1f);\n    uVar22 = (uVar13 & 0x800) << 0xf |\n             (uVar13 & 0x700) << 4 | uVar13 & 0xff | CONCAT22(uVar3,uVar4) & 0xfb0f8f00;\n    if ((int)local_4c < 0) {\n      uVar22 = uVar22 | 0xa00000;\n    }\n    *(ushort *)((int)puVar28 + 2) = (ushort)uVar22;\n    *(ushort *)puVar28 = (ushort)(uVar22 >> 0x10);\n    object = pAVar14;\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar22 = *puVar28;\n    uVar3 = *(ushort *)((int)puVar28 + 2);\n    VVar17 = gold::Symbol_value<32" (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e));\n    *(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;\n    if ((ushort)VVar17 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar3 = (ushort)*puVar28;\n    uVar4 = *(ushort *)((int)puVar28 + 2);\n    local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *\n               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar1 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar1 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar22 = (uint)local_34 % uVar13;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }\n      }\nLAB_00122ad6:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229f9:\n    local_4c = local_4c | (uint)local_48;\n    uVar13 = ((int)local_4c >> 0x1f ^ local_4c) - ((int)local_4c >> 0x1f);\n    uVar22 = (uVar13 & 0x800) << 0xf |\n             (uVar13 & 0x700) << 4 | uVar13 & 0xff | CONCAT22(uVar3,uVar4) & 0xfb0f8f00;\n    if ((int)local_4c < 0) {\n      uVar22 = uVar22 | 0xa00000;\n    }\n    *(ushort *)((int)puVar28 + 2) = (ushort)uVar22;\n    *(ushort *)puVar28 = (ushort)(uVar22 >> 0x10);\n    object = pAVar14;\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar22 = *puVar28;\n    uVar3 = *(ushort *)((int)puVar28 + 2)" (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e));\n    *(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;\n    if ((ushort)VVar17 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar3 = (ushort)*puVar28;\n    uVar4 = *(ushort *)((int)puVar28 + 2);\n    local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *\n               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar1 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar1 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar22 = (uint)local_34 % uVar13;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }\n      }\nLAB_00122ad6:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229f9:\n    local_4c = local_4c | (uint)local_48;\n    uVar13 = ((int)local_4c >> 0x1f ^ local_4c) - ((int)local_4c >> 0x1f);\n    uVar22 = (uVar13 & 0x800) << 0xf |\n             (uVar13 & 0x700) << 4 | uVar13 & 0xff | CONCAT22(uVar3,uVar4) & 0xfb0f8f00;\n    if ((int)local_4c < 0) {\n      uVar22 = uVar22 | 0xa00000;\n    }\n    *(ushort *)((int)puVar28 + 2) = (ushort)uVar22;\n    *(ushort *)puVar28 = (ushort)(uVar22 >> 0x10);\n    object = pAVar14;\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar22 = *puVar28" (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e));\n    *(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;\n    if ((ushort)VVar17 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar3 = (ushort)*puVar28;\n    uVar4 = *(ushort *)((int)puVar28 + 2);\n    local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *\n               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar1 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar1 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar22 = (uint)local_34 % uVar13;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }\n      }\nLAB_00122ad6:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229f9:\n    local_4c = local_4c | (uint)local_48;\n    uVar13 = ((int)local_4c >> 0x1f ^ local_4c) - ((int)local_4c >> 0x1f);\n    uVar22 = (uVar13 & 0x800) << 0xf |\n             (uVar13 & 0x700) << 4 | uVar13 & 0xff | CONCAT22(uVar3,uVar4) & 0xfb0f8f00;\n    if ((int)local_4c < 0) {\n      uVar22 = uVar22 | 0xa00000;\n    }\n    *(ushort *)((int)puVar28 + 2) = (ushort)uVar22;\n    *(ushort *)puVar28 = (ushort)(uVar22 >> 0x10)" (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e));\n    *(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;\n    if ((ushort)VVar17 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar3 = (ushort)*puVar28;\n    uVar4 = *(ushort *)((int)puVar28 + 2);\n    local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *\n               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar1 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar1 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar22 = (uint)local_34 % uVar13;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }\n      }\nLAB_00122ad6:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229f9:\n    local_4c = local_4c | (uint)local_48;\n    uVar13 = ((int)local_4c >> 0x1f ^ local_4c) - ((int)local_4c >> 0x1f);\n    uVar22 = (uVar13 & 0x800) << 0xf |\n             (uVar13 & 0x700) << 4 | uVar13 & 0xff | CONCAT22(uVar3,uVar4) & 0xfb0f8f00;\n    if ((int)local_4c < 0) {\n      uVar22 = uVar22 | 0xa00000;\n    }\n    *(ushort *)((int)puVar28 + 2) = (ushort)uVar22" (assignment_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e));\n    *(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;\n    if ((ushort)VVar17 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar3 = (ushort)*puVar28;\n    uVar4 = *(ushort *)((int)puVar28 + 2);\n    local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *\n               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar1 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar1 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar22 = (uint)local_34 % uVar13;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }\n      }\nLAB_00122ad6:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229f9:\n    local_4c = local_4c | (uint)local_48;\n    uVar13 = ((int)local_4c >> 0x1f ^ local_4c) - ((int)local_4c >> 0x1f);\n    uVar22 = (uVar13 & 0x800) << 0xf |\n             (uVar13 & 0x700) << 4 | uVar13 & 0xff | CONCAT22(uVar3,uVar4) & 0xfb0f8f00;\n    if ((int)local_4c < 0) {\n      uVar22 = uVar22 | 0xa00000" (call_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e));\n    *(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;\n    if ((ushort)VVar17 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar3 = (ushort)*puVar28;\n    uVar4 = *(ushort *)((int)puVar28 + 2);\n    local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *\n               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar1 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar1 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar22 = (uint)local_34 % uVar13;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }\n      }\nLAB_00122ad6:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229f9:\n    local_4c = local_4c | (uint)local_48;\n    uVar13 = ((int)local_4c >> 0x1f ^ local_4c) - ((int)local_4c >> 0x1f);\n    uVar22 = (uVar13 & 0x800) << 0xf |\n             (uVar13 & 0x700) << 4 | uVar13 & 0xff | CONCAT22(uVar3,uVar4) & 0xfb0f8f00;\n    if ((int)local_4c < 0)" (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e));\n    *(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;\n    if ((ushort)VVar17 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar3 = (ushort)*puVar28;\n    uVar4 = *(ushort *)((int)puVar28 + 2);\n    local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *\n               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar1 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar1 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar22 = (uint)local_34 % uVar13;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }\n      }\nLAB_00122ad6:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229f9:\n    local_4c = local_4c | (uint)local_48;\n    uVar13 = ((int)local_4c >> 0x1f ^ local_4c) - ((int)local_4c >> 0x1f);\n    uVar22 = (uVar13 & 0x800) << 0xf |\n             (uVar13 & 0x700) << 4 | uVar13 & 0xff | CONCAT22(uVar3,uVar4) & 0xfb0f8f00" (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e));\n    *(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;\n    if ((ushort)VVar17 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar3 = (ushort)*puVar28;\n    uVar4 = *(ushort *)((int)puVar28 + 2);\n    local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *\n               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar1 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar1 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar22 = (uint)local_34 % uVar13;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }\n      }\nLAB_00122ad6:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229f9:\n    local_4c = local_4c | (uint)local_48;\n    uVar13 = ((int)local_4c >> 0x1f ^ local_4c) - ((int)local_4c >> 0x1f);\n    uVar22 = (uVar13 & 0x800) << 0xf |\n             (uVar13 & 0x700) << 4 | uVar13 & 0xff" (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e));\n    *(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;\n    if ((ushort)VVar17 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar3 = (ushort)*puVar28;\n    uVar4 = *(ushort *)((int)puVar28 + 2);\n    local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *\n               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar1 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar1 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar22 = (uint)local_34 % uVar13;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }\n      }\nLAB_00122ad6:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229f9:\n    local_4c = local_4c | (uint)local_48;\n    uVar13 = ((int)local_4c >> 0x1f ^ local_4c) - ((int)local_4c >> 0x1f);\n    uVar22 = (uVar13 & 0x800) << 0xf |\n             (uVar13 & 0x700) << 4" (binary_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e));\n    *(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;\n    if ((ushort)VVar17 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar3 = (ushort)*puVar28;\n    uVar4 = *(ushort *)((int)puVar28 + 2);\n    local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *\n               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar1 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar1 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar22 = (uint)local_34 % uVar13;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }\n      }\nLAB_00122ad6:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229f9:\n    local_4c = local_4c | (uint)local_48;\n    uVar13 = ((int)local_4c >> 0x1f ^ local_4c) - ((int)local_4c >> 0x1f);\n    uVar22 = (uVar13 & 0x800) << 0xf" (call_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e));\n    *(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;\n    if ((ushort)VVar17 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar3 = (ushort)*puVar28;\n    uVar4 = *(ushort *)((int)puVar28 + 2);\n    local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *\n               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar1 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar1 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar22 = (uint)local_34 % uVar13;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }\n      }\nLAB_00122ad6:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229f9:\n    local_4c = local_4c | (uint)local_48;\n    uVar13 = ((int)local_4c >> 0x1f ^ local_4c) - ((int)local_4c >> 0x1f);\n    uVar22 = (uVar13 & 0x800)" (assignment_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e));\n    *(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;\n    if ((ushort)VVar17 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar3 = (ushort)*puVar28;\n    uVar4 = *(ushort *)((int)puVar28 + 2);\n    local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *\n               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar1 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar1 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar22 = (uint)local_34 % uVar13;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }\n      }\nLAB_00122ad6:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229f9:\n    local_4c = local_4c | (uint)local_48;\n    uVar13 = ((int)local_4c >> 0x1f ^ local_4c) - ((int)local_4c >> 0x1f)" (parenthesized_expression "(Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e));\n    *(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;\n    if ((ushort)VVar17 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar3 = (ushort)*puVar28;\n    uVar4 = *(ushort *)((int)puVar28 + 2);\n    local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *\n               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar1 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else {\n      if ((bVar1 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar22 = (uint)local_34 % uVar13;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }\n      }\nLAB_00122ad6:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }\nLAB_001229f9:\n    local_4c = local_4c | (uint)" ( (ERROR "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e));\n    *(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;\n    if ((ushort)VVar17 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar3 = (ushort)*puVar28;\n    uVar4 = *(ushort *)((int)puVar28 + 2);\n    local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *\n               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar1 < '\0') {\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }\n    else" (comma_expression "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e))" (binary_expression "Symbol_value<32> *)local_38" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)local_38" * (ERROR ")" )) identifier)) , (parenthesized_expression "(Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e))" ( (comma_expression "Sized_relobj_file<32,_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e)" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (comma_expression "_false> *)object,\n                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e)" (binary_expression "_false> *)object" identifier > (pointer_expression "*)object" * (ERROR ")" )) identifier)) , (cast_expression "(int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e)" ( (binary_expression "(ushort)((int)(uint)uVar3 >> 3) & 0x40 |\n                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e" (binary_expression "(ushort)((int)(uint)uVar3 >> 3) & 0x40" (call_expression "(ushort)((int)(uint)uVar3 >> 3)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((int)(uint)uVar3 >> 3)" ( (binary_expression "(int)(uint)uVar3 >> 3" (cast_expression "(int)(uint)uVar3" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) >> number_literal) ))) & number_literal) | (binary_expression "(ushort)((int)(uint)uVar3 >> 2) & 0x3e" (call_expression "(ushort)((int)(uint)uVar3 >> 2)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((int)(uint)uVar3 >> 2)" ( (binary_expression "(int)(uint)uVar3 >> 2" (cast_expression "(int)(uint)uVar3" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) >> number_literal) ))) & number_literal)) )))))) ))) ; (call_expression "*(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;\n    if ((ushort)VVar17 < 0x7f)" (assignment_expression "*(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200" (pointer_expression "*(ushort *)puVar28" * (cast_expression "(ushort *)puVar28" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200" (binary_expression "uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2" (binary_expression "uVar3 & 0xfd07" identifier & number_literal) | (binary_expression "(uVar3 & 0x3e) << 2" (parenthesized_expression "(uVar3 & 0x3e)" ( (binary_expression "uVar3 & 0x3e" identifier & number_literal) )) << number_literal)) | (binary_expression "(ushort)VVar17 * 8 & 0x200" (binary_expression "(ushort)VVar17 * 8" (cast_expression "(ushort)VVar17" ( (type_descriptor "ushort" type_identifier) ) identifier) * number_literal) & number_literal))) (ERROR ";\n    if" ; if) (argument_list "((ushort)VVar17 < 0x7f)" ( (binary_expression "(ushort)VVar17 < 0x7f" (cast_expression "(ushort)VVar17" ( (type_descriptor "ushort" type_identifier) ) identifier) < number_literal) ))) identifier identifier ; break ; case number_literal : (assignment_expression "uVar3 = (ushort)*puVar28" identifier = (binary_expression "(ushort)*puVar28" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ; (assignment_expression "uVar4 = *(ushort *)((int)puVar28 + 2)" identifier = (pointer_expression "*(ushort *)((int)puVar28 + 2)" * (cast_expression "(ushort *)((int)puVar28 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar28 + 2)" ( (binary_expression "(int)puVar28 + 2" (cast_expression "(int)puVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ; (assignment_expression "local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *\n               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1)" identifier = (binary_expression "((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *\n               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1)" (parenthesized_expression "((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff)" ( (binary_expression "(uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff" (binary_expression "(uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf" (binary_expression "(uVar4 & 0x7000) >> 4" (parenthesized_expression "(uVar4 & 0x7000)" ( (binary_expression "uVar4 & 0x7000" identifier & number_literal) )) >> number_literal) | (binary_expression "((uVar3 & 0x400) << 0x10) >> 0xf" (parenthesized_expression "((uVar3 & 0x400) << 0x10)" ( (binary_expression "(uVar3 & 0x400) << 0x10" (parenthesized_expression "(uVar3 & 0x400)" ( (binary_expression "uVar3 & 0x400" identifier & number_literal) )) << number_literal) )) >> number_literal)) | (binary_expression "uVar4 & 0xff" identifier & number_literal)) )) * (parenthesized_expression "((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1)" ( (binary_expression "(uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1" (binary_expression "(uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2" (call_expression "(uint)((uVar3 & 0xf8ed) != 0xf0ad)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar3 & 0xf8ed) != 0xf0ad)" ( (binary_expression "(uVar3 & 0xf8ed) != 0xf0ad" (parenthesized_expression "(uVar3 & 0xf8ed)" ( (binary_expression "uVar3 & 0xf8ed" identifier & number_literal) )) != number_literal) ))) * number_literal) + number_literal) )))) ; (call_expression "bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);\n    if ((char)bVar1 < '\0')" (assignment_expression "bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3)" identifier = (pointer_expression "*(byte *)((int)&(local_38->super_Symbol).u1_ + 3)" * (cast_expression "(byte *)((int)&(local_38->super_Symbol).u1_ + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_38->super_Symbol).u1_ + 3)" ( (binary_expression "(int)&(local_38->super_Symbol).u1_ + 3" (cast_expression "(int)&(local_38->super_Symbol).u1_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_38->super_Symbol).u1_" & (field_expression "(local_38->super_Symbol).u1_" (parenthesized_expression "(local_38->super_Symbol)" ( (field_expression "local_38->super_Symbol" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) (ERROR ";\n    if" ; if) (argument_list "((char)bVar1 < '\0')" ( (binary_expression "(char)bVar1 < '\0'" (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) ))) (compound_statement "{\n      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;\n    }" { (expression_statement "local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;" (assignment_expression "local_4c = local_4c + (local_38->super_Symbol).u2_.shndx" identifier = (binary_expression "local_4c + (local_38->super_Symbol).u2_.shndx" identifier + (field_expression "(local_38->super_Symbol).u2_.shndx" (field_expression "(local_38->super_Symbol).u2_" (parenthesized_expression "(local_38->super_Symbol)" ( (field_expression "local_38->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) }) else) (compound_statement "{\n      if ((bVar1 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }\n      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;\n      local_34 = (_Hash_node_base *)pMVar11->input_value_;\n      if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }\n      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;\n      uVar22 = (uint)local_34 % uVar13;\n      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];\n      if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }\n      }\nLAB_00122ad6:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);\n      local_4c = EVar21 + local_4c;\n      pAVar14 = object;\n    }" { (if_statement "if ((bVar1 & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }" if (parenthesized_expression "((bVar1 & 8) == 0)" ( (binary_expression "(bVar1 & 8) == 0" (parenthesized_expression "(bVar1 & 8)" ( (binary_expression "bVar1 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");\n      }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/object.h",0x6ab,"value");" (call_expression "do_gold_unreachable("../../gold/object.h",0x6ab,"value")" identifier (argument_list "("../../gold/object.h",0x6ab,"value")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""value"" " string_content ") ))) ;)) })) (expression_statement "pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;" (assignment_expression "pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end" identifier = (binary_expression "*(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end" (pointer_expression "*(Merged_symbol_value<32> **)" * (parenthesized_expression "(Merged_symbol_value<32> **)" ( (binary_expression "Merged_symbol_value<32> **" (binary_expression "Merged_symbol_value<32" identifier < number_literal) > (pointer_expression "**" * (pointer_expression "*" * identifier))) ))) & (field_expression "(local_38->super_Symbol).u2_.offset_is_from_end" (field_expression "(local_38->super_Symbol).u2_" (parenthesized_expression "(local_38->super_Symbol)" ( (field_expression "local_38->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "local_34 = (_Hash_node_base *)pMVar11->input_value_;" (assignment_expression "local_34 = (_Hash_node_base *)pMVar11->input_value_" identifier = (cast_expression "(_Hash_node_base *)pMVar11->input_value_" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pMVar11->input_value_" identifier -> field_identifier))) ;) (if_statement "if (local_4c < 0xffffff00) {\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }" if (parenthesized_expression "(local_4c < 0xffffff00)" ( (binary_expression "local_4c < 0xffffff00" identifier < number_literal) )) (compound_statement "{\n        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);\n        local_4c = 0;\n      }" { (expression_statement "local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);" (assignment_expression "local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c)" identifier = (cast_expression "(_Hash_node_base *)((int)&local_34->_M_nxt + local_4c)" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_34->_M_nxt + local_4c)" ( (binary_expression "(int)&local_34->_M_nxt + local_4c" (cast_expression "(int)&local_34->_M_nxt" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_34->_M_nxt" & (field_expression "local_34->_M_nxt" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) })) (expression_statement "uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;" (assignment_expression "uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count" identifier = (field_expression "(pMVar11->output_addresses_)._M_h._M_bucket_count" (field_expression "(pMVar11->output_addresses_)._M_h" (parenthesized_expression "(pMVar11->output_addresses_)" ( (field_expression "pMVar11->output_addresses_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "uVar22 = (uint)local_34 % uVar13;" (assignment_expression "uVar22 = (uint)local_34 % uVar13" identifier = (binary_expression "(uint)local_34 % uVar13" (cast_expression "(uint)local_34" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier)) ;) (expression_statement "p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];" (assignment_expression "p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22]" identifier = (subscript_expression "(pMVar11->output_addresses_)._M_h._M_buckets[uVar22]" (field_expression "(pMVar11->output_addresses_)._M_h._M_buckets" (field_expression "(pMVar11->output_addresses_)._M_h" (parenthesized_expression "(pMVar11->output_addresses_)" ( (field_expression "pMVar11->output_addresses_" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ identifier ])) ;) (if_statement "if (p_Var26 != (__bucket_type)0x0) {\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }\n      }" if (parenthesized_expression "(p_Var26 != (__bucket_type)0x0)" ( (binary_expression "p_Var26 != (__bucket_type)0x0" identifier != (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) )) (compound_statement "{\n        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;\n        p_Var12 = p_Var26->_M_nxt;\n        while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }\n        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }\n      }" { (expression_statement "p_Var23 = p_Var26->_M_nxt[1]._M_nxt;" (assignment_expression "p_Var23 = p_Var26->_M_nxt[1]._M_nxt" identifier = (field_expression "p_Var26->_M_nxt[1]._M_nxt" (subscript_expression "p_Var26->_M_nxt[1]" (field_expression "p_Var26->_M_nxt" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var12 = p_Var26->_M_nxt;" (assignment_expression "p_Var12 = p_Var26->_M_nxt" identifier = (field_expression "p_Var26->_M_nxt" identifier -> field_identifier)) ;) (while_statement "while (p_Var25 = p_Var12, p_Var23 != local_34) {\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }" while (parenthesized_expression "(p_Var25 = p_Var12, p_Var23 != local_34)" ( (comma_expression "p_Var25 = p_Var12, p_Var23 != local_34" (assignment_expression "p_Var25 = p_Var12" identifier = identifier) , (binary_expression "p_Var23 != local_34" identifier != identifier)) )) (compound_statement "{\n          p_Var12 = p_Var25->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;\n        }" { (expression_statement "p_Var12 = p_Var25->_M_nxt;" (assignment_expression "p_Var12 = p_Var25->_M_nxt" identifier = (field_expression "p_Var25->_M_nxt" identifier -> field_identifier)) ;) (if_statement "if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))\n          goto LAB_00122ad6;" if (parenthesized_expression "((p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))" ( (binary_expression "(p_Var12 == (_Hash_node_base *)0x0) ||\n             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22)" (parenthesized_expression "(p_Var12 == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var12 == (_Hash_node_base *)0x0" identifier == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22)" ( (comma_expression "p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22" (assignment_expression "p_Var23 = p_Var12[1]._M_nxt" identifier = (field_expression "p_Var12[1]._M_nxt" (subscript_expression "p_Var12[1]" identifier [ number_literal ]) . field_identifier)) , (comma_expression "p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22" (assignment_expression "p_Var26 = p_Var25" identifier = identifier) , (binary_expression "(uint)p_Var23 % uVar13 != uVar22" (binary_expression "(uint)p_Var23 % uVar13" (cast_expression "(uint)p_Var23" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier) != identifier))) ))) )) (goto_statement "goto LAB_00122ad6;" goto statement_identifier ;)) })) (if_statement "if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }" if (parenthesized_expression "(p_Var26->_M_nxt != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var26->_M_nxt != (_Hash_node_base *)0x0" (field_expression "p_Var26->_M_nxt" identifier -> field_identifier) != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;\n          goto LAB_001229f9;\n        }" { (expression_statement "local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;" (assignment_expression "local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c" identifier = (binary_expression "(int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c" (cast_expression "(int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt" & (field_expression "(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt" (parenthesized_expression "(p_Var26->_M_nxt[2]._M_nxt)" ( (field_expression "p_Var26->_M_nxt[2]._M_nxt" (subscript_expression "p_Var26->_M_nxt[2]" (field_expression "p_Var26->_M_nxt" identifier -> field_identifier) [ number_literal ]) . field_identifier) )) -> field_identifier))) + identifier)) ;) (goto_statement "goto LAB_001229f9;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00122ad6:\n      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);" statement_identifier : (ERROR "EVar21 = gold::" (assignment_expression "EVar21 = gold" identifier = identifier) : :) (expression_statement "Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);" (binary_expression "Merged_symbol_value<32>::value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34)" (binary_expression "Merged_symbol_value<32" identifier < number_literal) > (ERROR "::" : :) (call_expression "value_from_output_section\n                         (pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34)" identifier (argument_list "(pMVar11,(Relobj *)object,\n                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34)" ( identifier , (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "(uint)(local_38->super_Symbol).u1_.object & 0x7ffffff" (field_expression "(uint)(local_38->super_Symbol).u1_.object" (field_expression "(uint)(local_38->super_Symbol).u1_" (call_expression "(uint)(local_38->super_Symbol)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_38->super_Symbol)" ( (field_expression "local_38->super_Symbol" identifier -> field_identifier) ))) . field_identifier) . field_identifier) & number_literal) , (cast_expression "(Elf_Addr)local_34" ( (type_descriptor "Elf_Addr" type_identifier) ) identifier) )))) ;)) (expression_statement "local_4c = EVar21 + local_4c;" (assignment_expression "local_4c = EVar21 + local_4c" identifier = (binary_expression "EVar21 + local_4c" identifier + identifier)) ;) (expression_statement "pAVar14 = object;" (assignment_expression "pAVar14 = object" identifier = identifier) ;) }) (ERROR "LAB_001229f9:\n    local_4c = local_4c | (uint" identifier : identifier = identifier | ( identifier) )) (ERROR "local_48;\n    uVar13" identifier ; identifier) = (binary_expression "((int)local_4c >> 0x1f ^ local_4c) - ((int)local_4c >> 0x1f)" (parenthesized_expression "((int)local_4c >> 0x1f ^ local_4c)" ( (binary_expression "(int)local_4c >> 0x1f ^ local_4c" (binary_expression "(int)local_4c >> 0x1f" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ^ identifier) )) - (parenthesized_expression "((int)local_4c >> 0x1f)" ( (binary_expression "(int)local_4c >> 0x1f" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) (ERROR ";\n    uVar22 =" ; identifier =) (argument_list "(uVar13 & 0x800)" ( (binary_expression "uVar13 & 0x800" identifier & number_literal) ))) << number_literal) | (binary_expression "(uVar13 & 0x700) << 4" (parenthesized_expression "(uVar13 & 0x700)" ( (binary_expression "uVar13 & 0x700" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar13 & 0xff" identifier & number_literal)) | (binary_expression "CONCAT22(uVar3,uVar4) & 0xfb0f8f00" (call_expression "CONCAT22(uVar3,uVar4)" identifier (argument_list "(uVar3,uVar4)" ( identifier , identifier ))) & number_literal)) (ERROR ";\n    if" ; if) (argument_list "((int)local_4c < 0)" ( (binary_expression "(int)local_4c < 0" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) (ERROR "{\n      uVar22" { identifier) = (binary_expression "uVar22 | 0xa00000" identifier | number_literal)) (ERROR ";\n    }" ; }) * (cast_expression "(ushort *)((int)puVar28 + 2) = (ushort)uVar22" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "((int)puVar28 + 2) = (ushort)uVar22" (parenthesized_expression "((int)puVar28 + 2)" ( (binary_expression "(int)puVar28 + 2" (cast_expression "(int)puVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = (cast_expression "(ushort)uVar22" ( (type_descriptor "ushort" type_identifier) ) identifier)))) (ERROR ";" ;) * (cast_expression "(ushort *)puVar28 = (ushort)(uVar22 >> 0x10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "puVar28 = (ushort)(uVar22 >> 0x10)" identifier = (call_expression "(ushort)(uVar22 >> 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar22 >> 0x10)" ( (binary_expression "uVar22 >> 0x10" identifier >> number_literal) )))))) (ERROR ";\n    object = pAVar14;\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar22 =" ; identifier = identifier ; goto identifier ; case number_literal : identifier =) * identifier) (ERROR ";\n    uVar3 =" ; identifier =) * (cast_expression "(ushort *)((int)puVar28 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar28 + 2)" ( (binary_expression "(int)puVar28 + 2" (cast_expression "(int)puVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) (ERROR ";\n    VVar17 = gold::Symbol_value" ; identifier = identifier : : identifier) < number_literal) > (ERROR "::" : :) identifier) < false) > ( ( (ERROR "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (uVar3 & 0xfff) * (-(uint)(((ushort)uVar22 & 0x80) == 0) | 1));\n    uVar13 = ((int)VVar17 >> 0x1f ^ VVar17) - ((int)VVar17 >> 0x1f);\n    uVar22 = CONCAT22((ushort)uVar22,uVar3) & 0xff7ff000 | uVar13 & 0xfff;\n    if (-1 < (int)VVar17) {\n      uVar22 = uVar22 | 0x800000;\n    }\n    *(ushort *)((int)puVar28 + 2) = (ushort)uVar22;\n    *(ushort *)puVar28 = (ushort)(uVar22 >> 0x10);\njoined_r0x0012230f:\n    if ((int)uVar13 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x66:\n    uVar22 = *puVar28;\n    uVar13 = (uint)(ushort)uVar22 * 2;\n    uVar24 = uVar13 & 0x7fe;\n    if ((uVar13 & 0x400) != 0) {\n      uVar24 = uVar24 - 0x800;\n    }\n    VVar17 = gold::" (comma_expression "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,\n                        (uVar3 & 0xfff) * (-(uint)(((ushort)uVar22 & 0x80) == 0) | 1))" (binary_expression "Symbol_value<32> *)local_38" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)local_38" * (ERROR ")" )) identifier)) , (parenthesized_expression "(Sized_relobj_file<32,_false> *)object,\n                        (uVar3 & 0xfff) * (-(uint)(((ushort)uVar22 & 0x80) == 0) | 1))" ( (comma_expression "Sized_relobj_file<32,_false> *)object,\n                        (uVar3 & 0xfff) * (-(uint)(((ushort)uVar22 & 0x80) == 0) | 1)" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (comma_expression "_false> *)object,\n                        (uVar3 & 0xfff) * (-(uint)(((ushort)uVar22 & 0x80) == 0) | 1)" (binary_expression "_false> *)object" identifier > (pointer_expression "*)object" * (ERROR ")" )) identifier)) , (binary_expression "(uVar3 & 0xfff) * (-(uint)(((ushort)uVar22 & 0x80) == 0) | 1)" (parenthesized_expression "(uVar3 & 0xfff)" ( (binary_expression "uVar3 & 0xfff" identifier & number_literal) )) * (parenthesized_expression "(-(uint)(((ushort)uVar22 & 0x80) == 0) | 1)" ( (binary_expression "-(uint)(((ushort)uVar22 & 0x80) == 0) | 1" (unary_expression "-(uint)(((ushort)uVar22 & 0x80) == 0)" - (call_expression "(uint)(((ushort)uVar22 & 0x80) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((ushort)uVar22 & 0x80) == 0)" ( (binary_expression "((ushort)uVar22 & 0x80) == 0" (parenthesized_expression "((ushort)uVar22 & 0x80)" ( (binary_expression "(ushort)uVar22 & 0x80" (cast_expression "(ushort)uVar22" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal) )) == number_literal) )))) | number_literal) ))))) ))) ; (assignment_expression "uVar13 = ((int)VVar17 >> 0x1f ^ VVar17) - ((int)VVar17 >> 0x1f)" identifier = (binary_expression "((int)VVar17 >> 0x1f ^ VVar17) - ((int)VVar17 >> 0x1f)" (parenthesized_expression "((int)VVar17 >> 0x1f ^ VVar17)" ( (binary_expression "(int)VVar17 >> 0x1f ^ VVar17" (binary_expression "(int)VVar17 >> 0x1f" (cast_expression "(int)VVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ^ identifier) )) - (parenthesized_expression "((int)VVar17 >> 0x1f)" ( (binary_expression "(int)VVar17 >> 0x1f" (cast_expression "(int)VVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ; (call_expression "uVar22 = CONCAT22((ushort)uVar22,uVar3) & 0xff7ff000 | uVar13 & 0xfff;\n    if (-1 < (int)VVar17)" (assignment_expression "uVar22 = CONCAT22((ushort)uVar22,uVar3) & 0xff7ff000 | uVar13 & 0xfff" identifier = (binary_expression "CONCAT22((ushort)uVar22,uVar3) & 0xff7ff000 | uVar13 & 0xfff" (binary_expression "CONCAT22((ushort)uVar22,uVar3) & 0xff7ff000" (call_expression "CONCAT22((ushort)uVar22,uVar3)" identifier (argument_list "((ushort)uVar22,uVar3)" ( (cast_expression "(ushort)uVar22" ( (type_descriptor "ushort" type_identifier) ) identifier) , identifier ))) & number_literal) | (binary_expression "uVar13 & 0xfff" identifier & number_literal))) (ERROR ";\n    if" ; if) (argument_list "(-1 < (int)VVar17)" ( (binary_expression "-1 < (int)VVar17" number_literal < (cast_expression "(int)VVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ))) (compound_statement "{\n      uVar22 = uVar22 | 0x800000;\n    }" { (expression_statement "uVar22 = uVar22 | 0x800000;" (assignment_expression "uVar22 = uVar22 | 0x800000" identifier = (binary_expression "uVar22 | 0x800000" identifier | number_literal)) ;) }) (binary_expression "*(ushort *)((int)puVar28 + 2) = (ushort)uVar22;\n    *(ushort *)puVar28 = (ushort)(uVar22 >> 0x10)" (assignment_expression "*(ushort *)((int)puVar28 + 2) = (ushort)uVar22" (pointer_expression "*(ushort *)((int)puVar28 + 2)" * (cast_expression "(ushort *)((int)puVar28 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar28 + 2)" ( (binary_expression "(int)puVar28 + 2" (cast_expression "(int)puVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(ushort)uVar22" ( (type_descriptor "ushort" type_identifier) ) identifier)) (ERROR ";" ;) * (cast_expression "(ushort *)puVar28 = (ushort)(uVar22 >> 0x10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "puVar28 = (ushort)(uVar22 >> 0x10)" identifier = (call_expression "(ushort)(uVar22 >> 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar22 >> 0x10)" ( (binary_expression "uVar22 >> 0x10" identifier >> number_literal) )))))) ; (call_expression "joined_r0x0012230f:\n    if ((int)uVar13 < 0x1000)" identifier (ERROR ":\n    if" : if) (argument_list "((int)uVar13 < 0x1000)" ( (binary_expression "(int)uVar13 < 0x1000" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) identifier identifier ; break ; case number_literal : (assignment_expression "uVar22 = *puVar28" identifier = (pointer_expression "*puVar28" * identifier)) ; (assignment_expression "uVar13 = (uint)(ushort)uVar22 * 2" identifier = (binary_expression "(uint)(ushort)uVar22 * 2" (cast_expression "(uint)(ushort)uVar22" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(ushort)uVar22" ( (type_descriptor "ushort" type_identifier) ) identifier)) * number_literal)) ; (call_expression "uVar24 = uVar13 & 0x7fe;\n    if ((uVar13 & 0x400) != 0)" (assignment_expression "uVar24 = uVar13 & 0x7fe" identifier = (binary_expression "uVar13 & 0x7fe" identifier & number_literal)) (ERROR ";\n    if" ; if) (argument_list "((uVar13 & 0x400) != 0)" ( (binary_expression "(uVar13 & 0x400) != 0" (parenthesized_expression "(uVar13 & 0x400)" ( (binary_expression "uVar13 & 0x400" identifier & number_literal) )) != number_literal) ))) (compound_statement "{\n      uVar24 = uVar24 - 0x800;\n    }" { (expression_statement "uVar24 = uVar24 - 0x800;" (assignment_expression "uVar24 = uVar24 - 0x800" identifier = (binary_expression "uVar24 - 0x800" identifier - number_literal)) ;) }) (assignment_expression "VVar17 = gold" identifier = identifier) : :) (binary_expression "Symbol_value<32>::value<false" (binary_expression "Symbol_value<32>::value" (binary_expression "Symbol_value<32" identifier < number_literal) > (ERROR "::" : :) identifier) < false) > ( ( (ERROR "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,uVar24);\n    *(ushort *)puVar28 = (ushort)uVar22 & 0xf800 | (ushort)((int)VVar17 >> 1) & 0x7ff;\njoined_r0x00122297:\n    if (VVar17 + 0x800 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x67:\n    uVar22 = *puVar28;\n    uVar13 = (uint)(ushort)uVar22 * 2;\n    uVar24 = uVar13 & 0xff;\n    if ((uVar13 & 0x80) != 0) {\n      uVar24 = uVar24 - 0x100;\n    }" (comma_expression "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,uVar24)" (binary_expression "Symbol_value<32> *)local_38" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)local_38" * (ERROR ")" )) identifier)) , (parenthesized_expression "(Sized_relobj_file<32,_false> *)object,uVar24)" ( (comma_expression "Sized_relobj_file<32,_false> *)object,uVar24" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (comma_expression "_false> *)object,uVar24" (binary_expression "_false> *)object" identifier > (pointer_expression "*)object" * (ERROR ")" )) identifier)) , identifier)) ))) ; (assignment_expression "*(ushort *)puVar28 = (ushort)uVar22 & 0xf800 | (ushort)((int)VVar17 >> 1) & 0x7ff" (pointer_expression "*(ushort *)puVar28" * (cast_expression "(ushort *)puVar28" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(ushort)uVar22 & 0xf800 | (ushort)((int)VVar17 >> 1) & 0x7ff" (binary_expression "(ushort)uVar22 & 0xf800" (cast_expression "(ushort)uVar22" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal) | (binary_expression "(ushort)((int)VVar17 >> 1) & 0x7ff" (call_expression "(ushort)((int)VVar17 >> 1)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((int)VVar17 >> 1)" ( (binary_expression "(int)VVar17 >> 1" (cast_expression "(int)VVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) & number_literal))) ; (call_expression "joined_r0x00122297:\n    if (VVar17 + 0x800 < 0x1000)" identifier (ERROR ":\n    if" : if) (argument_list "(VVar17 + 0x800 < 0x1000)" ( (binary_expression "VVar17 + 0x800 < 0x1000" (binary_expression "VVar17 + 0x800" identifier + number_literal) < number_literal) ))) identifier identifier ; break ; case number_literal : (assignment_expression "uVar22 = *puVar28" identifier = (pointer_expression "*puVar28" * identifier)) ; (assignment_expression "uVar13 = (uint)(ushort)uVar22 * 2" identifier = (binary_expression "(uint)(ushort)uVar22 * 2" (cast_expression "(uint)(ushort)uVar22" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(ushort)uVar22" ( (type_descriptor "ushort" type_identifier) ) identifier)) * number_literal)) ; (call_expression "uVar24 = uVar13 & 0xff;\n    if ((uVar13 & 0x80) != 0)" (assignment_expression "uVar24 = uVar13 & 0xff" identifier = (binary_expression "uVar13 & 0xff" identifier & number_literal)) (ERROR ";\n    if" ; if) (argument_list "((uVar13 & 0x80) != 0)" ( (binary_expression "(uVar13 & 0x80) != 0" (parenthesized_expression "(uVar13 & 0x80)" ( (binary_expression "uVar13 & 0x80" identifier & number_literal) )) != number_literal) ))) (compound_statement "{\n      uVar24 = uVar24 - 0x100;\n    }" { (expression_statement "uVar24 = uVar24 - 0x100;" (assignment_expression "uVar24 = uVar24 - 0x100" identifier = (binary_expression "uVar24 - 0x100" identifier - number_literal)) ;) })) comment (binary_expression "VVar17 = gold::Symbol_value<32>::value<false" (binary_expression "VVar17 = gold::Symbol_value<32>::value" (binary_expression "VVar17 = gold::Symbol_value<32" (assignment_expression "VVar17 = gold" identifier = identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > (ERROR "::" : :) identifier) < false) > ( ( (ERROR "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,uVar24);\n    *(ushort *)puVar28 = (ushort)uVar22 & 0xff00 | (ushort)((int)VVar17 >> 1) & 0xff;\n    if (VVar17 + 0x100 < 0x200) goto LAB_0012238d;\n  }\n  object = (Arm_relobj<false> *)(pAVar7->name_)._M_dataplus._M_p;\n  pcVar19 = "relocation overflow in %s";\nLAB_0012236a:\n  uVar13 = gettext(pcVar19);\n  gold::" (comma_expression "Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,uVar24)" (binary_expression "Symbol_value<32> *)local_38" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)local_38" * (ERROR ")" )) identifier)) , (parenthesized_expression "(Sized_relobj_file<32,_false> *)object,uVar24)" ( (comma_expression "Sized_relobj_file<32,_false> *)object,uVar24" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (comma_expression "_false> *)object,uVar24" (binary_expression "_false> *)object" identifier > (pointer_expression "*)object" * (ERROR ")" )) identifier)) , identifier)) ))) ; (call_expression "*(ushort *)puVar28 = (ushort)uVar22 & 0xff00 | (ushort)((int)VVar17 >> 1) & 0xff;\n    if (VVar17 + 0x100 < 0x200)" (assignment_expression "*(ushort *)puVar28 = (ushort)uVar22 & 0xff00 | (ushort)((int)VVar17 >> 1) & 0xff" (pointer_expression "*(ushort *)puVar28" * (cast_expression "(ushort *)puVar28" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(ushort)uVar22 & 0xff00 | (ushort)((int)VVar17 >> 1) & 0xff" (binary_expression "(ushort)uVar22 & 0xff00" (cast_expression "(ushort)uVar22" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal) | (binary_expression "(ushort)((int)VVar17 >> 1) & 0xff" (call_expression "(ushort)((int)VVar17 >> 1)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((int)VVar17 >> 1)" ( (binary_expression "(int)VVar17 >> 1" (cast_expression "(int)VVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) & number_literal))) (ERROR ";\n    if" ; if) (argument_list "(VVar17 + 0x100 < 0x200)" ( (binary_expression "VVar17 + 0x100 < 0x200" (binary_expression "VVar17 + 0x100" identifier + number_literal) < number_literal) ))) identifier identifier ; } (assignment_expression "object = (Arm_relobj<false> *)(pAVar7->name_)._M_dataplus._M_p" identifier = (field_expression "(Arm_relobj<false> *)(pAVar7->name_)._M_dataplus._M_p" (field_expression "(Arm_relobj<false> *)(pAVar7->name_)._M_dataplus" (call_expression "(Arm_relobj<false> *)(pAVar7->name_)" (parenthesized_expression "(Arm_relobj<false> *)" ( (binary_expression "Arm_relobj<false> *" (binary_expression "Arm_relobj<false" identifier < false) > (pointer_expression "*" * identifier)) )) (argument_list "(pAVar7->name_)" ( (field_expression "pAVar7->name_" identifier -> field_identifier) ))) . field_identifier) . field_identifier)) ; (assignment_expression "pcVar19 = "relocation overflow in %s"" identifier = (string_literal ""relocation overflow in %s"" " string_content ")) ; identifier : (assignment_expression "uVar13 = gettext(pcVar19)" identifier = (call_expression "gettext(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier )))) ; identifier : :) (binary_expression "gold_error_at_location<32" identifier < number_literal) , identifier > ( (ERROR "(gold *)relinfo,(Relocate_info<32,_false> *)relnum,*(size_t *)preloc_in,\n             (ulonglong)uVar13 << 0x20,(char *)object);\nLAB_0012238d:\n  gold::" (comma_expression "(gold *)relinfo,(Relocate_info<32,_false> *)relnum,*(size_t *)preloc_in,\n             (ulonglong)uVar13 << 0x20,(char *)object)" (cast_expression "(gold *)relinfo" ( (type_descriptor "gold *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (parenthesized_expression "(Relocate_info<32,_false> *)relnum,*(size_t *)preloc_in,\n             (ulonglong)uVar13 << 0x20,(char *)object)" ( (comma_expression "Relocate_info<32,_false> *)relnum,*(size_t *)preloc_in,\n             (ulonglong)uVar13 << 0x20,(char *)object" (binary_expression "Relocate_info<32" identifier < number_literal) , (comma_expression "_false> *)relnum,*(size_t *)preloc_in,\n             (ulonglong)uVar13 << 0x20,(char *)object" (binary_expression "_false> *)relnum" identifier > (pointer_expression "*)relnum" * (ERROR ")" )) identifier)) , (comma_expression "*(size_t *)preloc_in,\n             (ulonglong)uVar13 << 0x20,(char *)object" (pointer_expression "*(size_t *)preloc_in" * (cast_expression "(size_t *)preloc_in" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (comma_expression "(ulonglong)uVar13 << 0x20,(char *)object" (binary_expression "(ulonglong)uVar13 << 0x20" (cast_expression "(ulonglong)uVar13" ( (type_descriptor "ulonglong" type_identifier) ) identifier) << number_literal) , (cast_expression "(char *)object" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))))) ))) ; identifier : identifier : :) (binary_expression "Symbol_value<32>::~Symbol_value(local_40,(int)object)" (binary_expression "Symbol_value<32" identifier < number_literal) > (ERROR "::" : :) (unary_expression "~Symbol_value(local_40,(int)object)" ~ (call_expression "Symbol_value(local_40,(int)object)" identifier (argument_list "(local_40,(int)object)" ( identifier , (cast_expression "(int)object" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ; return ; })
(translation_unit "void __regparm2\nFUN_00121f40(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n            int *param_6,undefined4 param_7,undefined4 param_8,int param_9,int param_10,int param_11\n            ,undefined4 param_12,int *param_13)\n\n{\n  byte bVar1;\n  ushort uVar2;\n  int *piVar3;\n  code *pcVar4;\n  int iVar5;\n  uint *puVar6;\n  int *piVar7;\n  ushort uVar8;\n  uint uVar9;\n  int iVar10;\n  int iVar11;\n  char *pcVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  int iVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  int *piVar21;\n  uint uVar22;\n  uint *puVar23;\n  uint uStack_4c;\n  uint local_48;\n  undefined4 *local_40;\n  undefined4 *local_38;\n  uint local_34;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  uint local_20;\n  \n  if (param_5 != 9) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2);\n  }\n  piVar3 = *(int **)(param_4 + 8);\n  pcVar4 = *(code **)(*piVar3 + 0x8c);\n  if (pcVar4 == FUN_00070d40) {\n    uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    uVar9 = (*pcVar4)(piVar3);\n  }\n  uVar14 = param_6[1];\n  uVar17 = uVar14 & 0xff;\n  iVar5 = *(int *)(DAT_005eb1c8 + uVar17 * 4);\n  uVar22 = uVar14 >> 8;\n  if (((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)) || ((*(byte *)(iVar5 + 0x34) & 2) == 0)) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22);\n  }\n  if (uVar9 <= uVar22) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3);\n  }\n  if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar22) {\n                    \n    FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5);\n  }\n  iVar15 = piVar3[0x37] + uVar22 * 0x10;\n  uVar9 = *(uint *)(iVar15 + 8) & 0x7ffffff;\n  if ((*(byte *)(iVar15 + 0xb) & 8) == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14);\n  }\n  if (*(code **)(*piVar3 + 0x60) == FUN_00071550) {\n    uVar16 = piVar3[0xf] - piVar3[0xe] >> 2;\n    if (uVar16 <= uVar9) {\n                    \n      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);\n    }\n    iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4);\n  }\n  else {\n    iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);\n  }\n  if (iVar15 == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0);\n  }\n  if ((*(byte *)(iVar15 + 0x90) & 1) == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15);\n  }\n  iVar18 = *(int *)(iVar15 + 100);\n  if (iVar18 == 0) {\n                    \n    FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15);\n  }\n  iVar15 = *param_6;\n  if (param_9 == -1) {\n    iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15);\n    if (iVar10 == -1) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);\n    }\n  }\n  else {\n    iVar10 = iVar15 + param_9;\n  }\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10);\n  }\n  iVar11 = iVar10;\n  if (*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d) == '\0') {\n    iVar11 = iVar10 + param_11;\n    if (param_9 != -1) {\n      iVar11 = (iVar10 + param_11) - param_9;\n    }\n  }\n  *param_13 = iVar11;\n  iVar10 = piVar3[0x38];\n  param_13[1] = iVar18 * 0x100 + uVar17;\n  uVar9 = iVar10 - piVar3[0x37] >> 4;\n  if (uVar9 <= uVar22) {\n                    \n    FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9);\n  }\n  local_38 = (undefined4 *)(piVar3[0x37] + uVar22 * 0x10);\n  iVar18 = piVar3[0x52];\n  local_2c = 0;\n  local_28 = 0xffffffff;\n  local_24 = 0x80000000;\n  local_20 = 0;\n  if ((uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8) <= uVar22) {\n                    \n                    \n    FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22);\n  }\n  local_48 = 1 << ((byte)(uVar14 >> 8) & 0x1f) & *(uint *)(iVar18 + (uVar14 >> 0xd) * 4);\n  if ((local_48 != 0) && (local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0)) {\n                    \n    local_48 = FUN_00072130(local_38,piVar3,0);\n    local_48 = local_48 & 1;\n    if (local_48 == 0) {\n      local_48 = 1;\n    }\n    else {\n                    \n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }\n  }\n  local_40 = &local_2c;\n  puVar23 = (uint *)(iVar15 + param_10);\n  if (99 < uVar17 - 4) {\nLAB_00122ab1:\n                    \n                    \n    FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);\n  }\n  iVar18 = (int)&__DT_PLTGOT + *(int *)(&DAT_00467d20 + (uVar17 - 4) * 4);\n  switch(uVar17) {\n  case 4:\n  case 0x2c:\n  case 0x2e:\n  case 0x30:\n  case 0x32:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x4c:\n  case 0x4d:\n  case 0x4e:\n  case 0x4f:\n  case 0x50:\n  case 0x51:\n  case 0x52:\n  case 0x53:\n  case 0x55:\n  case 0x58:\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    uVar13 = gettext("cannot handle %s in a relocatable link");\n    FUN_0023b810(uVar13,uVar20);\n    goto LAB_0012238d;\n  case 5:\n    uVar9 = (uint)(ushort)*puVar23;\n    if ((short)(ushort)*puVar23 < 0) {\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(ushort *)puVar23 = (ushort)iVar15;\n    if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;\n    break;\n  case 6:\n    uVar14 = *puVar23;\n    uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);\n    *puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;\n    goto joined_r0x00122297;\n  case 7:\n    uVar2 = (ushort)*puVar23;\n    iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);\n    *(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;\n    if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;\n    break;\n  case 8:\n    bVar1 = (byte)*puVar23;\n    uVar9 = bVar1 - 0x100;\n    if (-1 < (char)bVar1) {\n      uVar9 = (uint)bVar1;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(byte *)puVar23 = (byte)iVar15;\n    if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;\n    break;\n  default:\n    goto LAB_00122ab1;\n  case 10:\n  case 0x10:\n  case 0x1e:\n    iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0xb:\n    uVar9 = *puVar23;\n    uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);\n    iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);\n    *(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;\n    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;\n    break;\n  case 0xf:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n    iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0x2a:\n    uVar9 = *puVar23;\n    uVar14 = uVar9 & 0x7fffffff;\n    if ((uVar9 & 0x40000000) != 0) {\n      uVar14 = 0x7fffffff;\n    }\n    uVar14 = FUN_00072130(local_38,piVar3,uVar14);\n    *puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;\n    if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar9 = *puVar23;\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;\n    uStack_4c = uVar14 - 0x10000;\n    if ((uVar9 >> 4 & 0x8000) == 0) {\n      uStack_4c = uVar14;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229a9:\n    uStack_4c = uStack_4c | local_48;\n    *puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar8 = (ushort)*puVar23;\n    uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;\n    uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;\n    uStack_4c = uVar9 - 0x10000;\n    if ((uVar14 & 0x8000) == 0) {\n      uStack_4c = uVar9;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x00122a61:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;\n    *(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;\n    *(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);\njoined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;\n    break;\n  case 0x33:\n    iVar15 = FUN_00112810(0,local_48);\ncode_r0x00122342:\n    if (iVar15 == 1) break;\n    if (iVar15 == 0) goto LAB_0012238d;\n    if (iVar15 != 2) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    pcVar12 = "unexpected opcode while processing relocation %s";\n    goto LAB_0012236a;\n  case 0x34:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);\n    *(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;\n    if (uVar8 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = *(ushort *)((int)puVar23 + 2);\n    uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229f9:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);\n    uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;\n    if ((int)uStack_4c < 0) {\n      uVar14 = uVar14 | 0xa00000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar14 = *puVar23;\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));\n    uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);\n    uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;\n    if (-1 < (int)uVar17) {\n      uVar14 = uVar14 | 0x800000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\njoined_r0x0012230f:\n    if ((int)uVar9 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x66:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0x7fe;\n    if ((uVar9 & 0x400) != 0) {\n      uVar17 = uVar17 - 0x800;\n    }\n    uVar9 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;\njoined_r0x00122297:\n    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x67:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0xff;\n    if ((uVar9 & 0x80) != 0) {\n      uVar17 = uVar17 - 0x100;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;\n    if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;\n  }\n  uVar20 = *(undefined4 *)(iVar5 + 4);\n  pcVar12 = "relocation overflow in %s";\nLAB_0012236a:\n  uVar13 = gettext(pcVar12);\n  FUN_0023bd50(param_4,param_7,*param_6,0,uVar13,uVar20);\nLAB_0012238d:\n  FUN_00072240(local_40);\n  return;\n}\n\n" (function_definition "void __regparm2\nFUN_00121f40(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n            int *param_6,undefined4 param_7,undefined4 param_8,int param_9,int param_10,int param_11\n            ,undefined4 param_12,int *param_13)\n\n{\n  byte bVar1;\n  ushort uVar2;\n  int *piVar3;\n  code *pcVar4;\n  int iVar5;\n  uint *puVar6;\n  int *piVar7;\n  ushort uVar8;\n  uint uVar9;\n  int iVar10;\n  int iVar11;\n  char *pcVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  int iVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  int *piVar21;\n  uint uVar22;\n  uint *puVar23;\n  uint uStack_4c;\n  uint local_48;\n  undefined4 *local_40;\n  undefined4 *local_38;\n  uint local_34;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  uint local_20;\n  \n  if (param_5 != 9) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2);\n  }\n  piVar3 = *(int **)(param_4 + 8);\n  pcVar4 = *(code **)(*piVar3 + 0x8c);\n  if (pcVar4 == FUN_00070d40) {\n    uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    uVar9 = (*pcVar4)(piVar3);\n  }\n  uVar14 = param_6[1];\n  uVar17 = uVar14 & 0xff;\n  iVar5 = *(int *)(DAT_005eb1c8 + uVar17 * 4);\n  uVar22 = uVar14 >> 8;\n  if (((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)) || ((*(byte *)(iVar5 + 0x34) & 2) == 0)) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22);\n  }\n  if (uVar9 <= uVar22) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3);\n  }\n  if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar22) {\n                    \n    FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5);\n  }\n  iVar15 = piVar3[0x37] + uVar22 * 0x10;\n  uVar9 = *(uint *)(iVar15 + 8) & 0x7ffffff;\n  if ((*(byte *)(iVar15 + 0xb) & 8) == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14);\n  }\n  if (*(code **)(*piVar3 + 0x60) == FUN_00071550) {\n    uVar16 = piVar3[0xf] - piVar3[0xe] >> 2;\n    if (uVar16 <= uVar9) {\n                    \n      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);\n    }\n    iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4);\n  }\n  else {\n    iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);\n  }\n  if (iVar15 == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0);\n  }\n  if ((*(byte *)(iVar15 + 0x90) & 1) == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15);\n  }\n  iVar18 = *(int *)(iVar15 + 100);\n  if (iVar18 == 0) {\n                    \n    FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15);\n  }\n  iVar15 = *param_6;\n  if (param_9 == -1) {\n    iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15);\n    if (iVar10 == -1) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);\n    }\n  }\n  else {\n    iVar10 = iVar15 + param_9;\n  }\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10);\n  }\n  iVar11 = iVar10;\n  if (*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d) == '\0') {\n    iVar11 = iVar10 + param_11;\n    if (param_9 != -1) {\n      iVar11 = (iVar10 + param_11) - param_9;\n    }\n  }\n  *param_13 = iVar11;\n  iVar10 = piVar3[0x38];\n  param_13[1] = iVar18 * 0x100 + uVar17;\n  uVar9 = iVar10 - piVar3[0x37] >> 4;\n  if (uVar9 <= uVar22) {\n                    \n    FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9);\n  }\n  local_38 = (undefined4 *)(piVar3[0x37] + uVar22 * 0x10);\n  iVar18 = piVar3[0x52];\n  local_2c = 0;\n  local_28 = 0xffffffff;\n  local_24 = 0x80000000;\n  local_20 = 0;\n  if ((uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8) <= uVar22) {\n                    \n                    \n    FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22);\n  }\n  local_48 = 1 << ((byte)(uVar14 >> 8) & 0x1f) & *(uint *)(iVar18 + (uVar14 >> 0xd) * 4);\n  if ((local_48 != 0) && (local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0)) {\n                    \n    local_48 = FUN_00072130(local_38,piVar3,0);\n    local_48 = local_48 & 1;\n    if (local_48 == 0) {\n      local_48 = 1;\n    }\n    else {\n                    \n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }\n  }\n  local_40 = &local_2c;\n  puVar23 = (uint *)(iVar15 + param_10);\n  if (99 < uVar17 - 4) {\nLAB_00122ab1:\n                    \n                    \n    FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);\n  }\n  iVar18 = (int)&__DT_PLTGOT + *(int *)(&DAT_00467d20 + (uVar17 - 4) * 4);\n  switch(uVar17) {\n  case 4:\n  case 0x2c:\n  case 0x2e:\n  case 0x30:\n  case 0x32:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x4c:\n  case 0x4d:\n  case 0x4e:\n  case 0x4f:\n  case 0x50:\n  case 0x51:\n  case 0x52:\n  case 0x53:\n  case 0x55:\n  case 0x58:\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    uVar13 = gettext("cannot handle %s in a relocatable link");\n    FUN_0023b810(uVar13,uVar20);\n    goto LAB_0012238d;\n  case 5:\n    uVar9 = (uint)(ushort)*puVar23;\n    if ((short)(ushort)*puVar23 < 0) {\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(ushort *)puVar23 = (ushort)iVar15;\n    if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;\n    break;\n  case 6:\n    uVar14 = *puVar23;\n    uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);\n    *puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;\n    goto joined_r0x00122297;\n  case 7:\n    uVar2 = (ushort)*puVar23;\n    iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);\n    *(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;\n    if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;\n    break;\n  case 8:\n    bVar1 = (byte)*puVar23;\n    uVar9 = bVar1 - 0x100;\n    if (-1 < (char)bVar1) {\n      uVar9 = (uint)bVar1;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(byte *)puVar23 = (byte)iVar15;\n    if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;\n    break;\n  default:\n    goto LAB_00122ab1;\n  case 10:\n  case 0x10:\n  case 0x1e:\n    iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0xb:\n    uVar9 = *puVar23;\n    uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);\n    iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);\n    *(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;\n    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;\n    break;\n  case 0xf:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n    iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0x2a:\n    uVar9 = *puVar23;\n    uVar14 = uVar9 & 0x7fffffff;\n    if ((uVar9 & 0x40000000) != 0) {\n      uVar14 = 0x7fffffff;\n    }\n    uVar14 = FUN_00072130(local_38,piVar3,uVar14);\n    *puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;\n    if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar9 = *puVar23;\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;\n    uStack_4c = uVar14 - 0x10000;\n    if ((uVar9 >> 4 & 0x8000) == 0) {\n      uStack_4c = uVar14;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229a9:\n    uStack_4c = uStack_4c | local_48;\n    *puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar8 = (ushort)*puVar23;\n    uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;\n    uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;\n    uStack_4c = uVar9 - 0x10000;\n    if ((uVar14 & 0x8000) == 0) {\n      uStack_4c = uVar9;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x00122a61:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;\n    *(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;\n    *(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);\njoined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;\n    break;\n  case 0x33:\n    iVar15 = FUN_00112810(0,local_48);\ncode_r0x00122342:\n    if (iVar15 == 1) break;\n    if (iVar15 == 0) goto LAB_0012238d;\n    if (iVar15 != 2) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    pcVar12 = "unexpected opcode while processing relocation %s";\n    goto LAB_0012236a;\n  case 0x34:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);\n    *(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;\n    if (uVar8 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = *(ushort *)((int)puVar23 + 2);\n    uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229f9:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);\n    uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;\n    if ((int)uStack_4c < 0) {\n      uVar14 = uVar14 | 0xa00000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar14 = *puVar23;\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));\n    uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);\n    uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;\n    if (-1 < (int)uVar17) {\n      uVar14 = uVar14 | 0x800000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\njoined_r0x0012230f:\n    if ((int)uVar9 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x66:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0x7fe;\n    if ((uVar9 & 0x400) != 0) {\n      uVar17 = uVar17 - 0x800;\n    }\n    uVar9 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;\njoined_r0x00122297:\n    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x67:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0xff;\n    if ((uVar9 & 0x80) != 0) {\n      uVar17 = uVar17 - 0x100;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;\n    if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;\n  }\n  uVar20 = *(undefined4 *)(iVar5 + 4);\n  pcVar12 = "relocation overflow in %s";\nLAB_0012236a:\n  uVar13 = gettext(pcVar12);\n  FUN_0023bd50(param_4,param_7,*param_6,0,uVar13,uVar20);\nLAB_0012238d:\n  FUN_00072240(local_40);\n  return;\n}" primitive_type (ERROR "__regparm2" identifier) (function_declarator "FUN_00121f40(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n            int *param_6,undefined4 param_7,undefined4 param_8,int param_9,int param_10,int param_11\n            ,undefined4 param_12,int *param_13)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n            int *param_6,undefined4 param_7,undefined4 param_8,int param_9,int param_10,int param_11\n            ,undefined4 param_12,int *param_13)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "int param_9" primitive_type identifier) , (parameter_declaration "int param_10" primitive_type identifier) , (parameter_declaration "int param_11" primitive_type identifier) , (parameter_declaration "undefined4 param_12" type_identifier identifier) , (parameter_declaration "int *param_13" primitive_type (pointer_declarator "*param_13" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  ushort uVar2;\n  int *piVar3;\n  code *pcVar4;\n  int iVar5;\n  uint *puVar6;\n  int *piVar7;\n  ushort uVar8;\n  uint uVar9;\n  int iVar10;\n  int iVar11;\n  char *pcVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  int iVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  int *piVar21;\n  uint uVar22;\n  uint *puVar23;\n  uint uStack_4c;\n  uint local_48;\n  undefined4 *local_40;\n  undefined4 *local_38;\n  uint local_34;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  uint local_20;\n  \n  if (param_5 != 9) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2);\n  }\n  piVar3 = *(int **)(param_4 + 8);\n  pcVar4 = *(code **)(*piVar3 + 0x8c);\n  if (pcVar4 == FUN_00070d40) {\n    uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    uVar9 = (*pcVar4)(piVar3);\n  }\n  uVar14 = param_6[1];\n  uVar17 = uVar14 & 0xff;\n  iVar5 = *(int *)(DAT_005eb1c8 + uVar17 * 4);\n  uVar22 = uVar14 >> 8;\n  if (((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)) || ((*(byte *)(iVar5 + 0x34) & 2) == 0)) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22);\n  }\n  if (uVar9 <= uVar22) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3);\n  }\n  if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar22) {\n                    \n    FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5);\n  }\n  iVar15 = piVar3[0x37] + uVar22 * 0x10;\n  uVar9 = *(uint *)(iVar15 + 8) & 0x7ffffff;\n  if ((*(byte *)(iVar15 + 0xb) & 8) == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14);\n  }\n  if (*(code **)(*piVar3 + 0x60) == FUN_00071550) {\n    uVar16 = piVar3[0xf] - piVar3[0xe] >> 2;\n    if (uVar16 <= uVar9) {\n                    \n      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);\n    }\n    iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4);\n  }\n  else {\n    iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);\n  }\n  if (iVar15 == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0);\n  }\n  if ((*(byte *)(iVar15 + 0x90) & 1) == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15);\n  }\n  iVar18 = *(int *)(iVar15 + 100);\n  if (iVar18 == 0) {\n                    \n    FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15);\n  }\n  iVar15 = *param_6;\n  if (param_9 == -1) {\n    iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15);\n    if (iVar10 == -1) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);\n    }\n  }\n  else {\n    iVar10 = iVar15 + param_9;\n  }\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10);\n  }\n  iVar11 = iVar10;\n  if (*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d) == '\0') {\n    iVar11 = iVar10 + param_11;\n    if (param_9 != -1) {\n      iVar11 = (iVar10 + param_11) - param_9;\n    }\n  }\n  *param_13 = iVar11;\n  iVar10 = piVar3[0x38];\n  param_13[1] = iVar18 * 0x100 + uVar17;\n  uVar9 = iVar10 - piVar3[0x37] >> 4;\n  if (uVar9 <= uVar22) {\n                    \n    FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9);\n  }\n  local_38 = (undefined4 *)(piVar3[0x37] + uVar22 * 0x10);\n  iVar18 = piVar3[0x52];\n  local_2c = 0;\n  local_28 = 0xffffffff;\n  local_24 = 0x80000000;\n  local_20 = 0;\n  if ((uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8) <= uVar22) {\n                    \n                    \n    FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22);\n  }\n  local_48 = 1 << ((byte)(uVar14 >> 8) & 0x1f) & *(uint *)(iVar18 + (uVar14 >> 0xd) * 4);\n  if ((local_48 != 0) && (local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0)) {\n                    \n    local_48 = FUN_00072130(local_38,piVar3,0);\n    local_48 = local_48 & 1;\n    if (local_48 == 0) {\n      local_48 = 1;\n    }\n    else {\n                    \n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }\n  }\n  local_40 = &local_2c;\n  puVar23 = (uint *)(iVar15 + param_10);\n  if (99 < uVar17 - 4) {\nLAB_00122ab1:\n                    \n                    \n    FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);\n  }\n  iVar18 = (int)&__DT_PLTGOT + *(int *)(&DAT_00467d20 + (uVar17 - 4) * 4);\n  switch(uVar17) {\n  case 4:\n  case 0x2c:\n  case 0x2e:\n  case 0x30:\n  case 0x32:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x4c:\n  case 0x4d:\n  case 0x4e:\n  case 0x4f:\n  case 0x50:\n  case 0x51:\n  case 0x52:\n  case 0x53:\n  case 0x55:\n  case 0x58:\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    uVar13 = gettext("cannot handle %s in a relocatable link");\n    FUN_0023b810(uVar13,uVar20);\n    goto LAB_0012238d;\n  case 5:\n    uVar9 = (uint)(ushort)*puVar23;\n    if ((short)(ushort)*puVar23 < 0) {\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(ushort *)puVar23 = (ushort)iVar15;\n    if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;\n    break;\n  case 6:\n    uVar14 = *puVar23;\n    uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);\n    *puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;\n    goto joined_r0x00122297;\n  case 7:\n    uVar2 = (ushort)*puVar23;\n    iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);\n    *(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;\n    if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;\n    break;\n  case 8:\n    bVar1 = (byte)*puVar23;\n    uVar9 = bVar1 - 0x100;\n    if (-1 < (char)bVar1) {\n      uVar9 = (uint)bVar1;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(byte *)puVar23 = (byte)iVar15;\n    if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;\n    break;\n  default:\n    goto LAB_00122ab1;\n  case 10:\n  case 0x10:\n  case 0x1e:\n    iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0xb:\n    uVar9 = *puVar23;\n    uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);\n    iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);\n    *(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;\n    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;\n    break;\n  case 0xf:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n    iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0x2a:\n    uVar9 = *puVar23;\n    uVar14 = uVar9 & 0x7fffffff;\n    if ((uVar9 & 0x40000000) != 0) {\n      uVar14 = 0x7fffffff;\n    }\n    uVar14 = FUN_00072130(local_38,piVar3,uVar14);\n    *puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;\n    if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar9 = *puVar23;\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;\n    uStack_4c = uVar14 - 0x10000;\n    if ((uVar9 >> 4 & 0x8000) == 0) {\n      uStack_4c = uVar14;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229a9:\n    uStack_4c = uStack_4c | local_48;\n    *puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar8 = (ushort)*puVar23;\n    uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;\n    uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;\n    uStack_4c = uVar9 - 0x10000;\n    if ((uVar14 & 0x8000) == 0) {\n      uStack_4c = uVar9;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x00122a61:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;\n    *(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;\n    *(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);\njoined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;\n    break;\n  case 0x33:\n    iVar15 = FUN_00112810(0,local_48);\ncode_r0x00122342:\n    if (iVar15 == 1) break;\n    if (iVar15 == 0) goto LAB_0012238d;\n    if (iVar15 != 2) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    pcVar12 = "unexpected opcode while processing relocation %s";\n    goto LAB_0012236a;\n  case 0x34:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);\n    *(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;\n    if (uVar8 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = *(ushort *)((int)puVar23 + 2);\n    uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229f9:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);\n    uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;\n    if ((int)uStack_4c < 0) {\n      uVar14 = uVar14 | 0xa00000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar14 = *puVar23;\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));\n    uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);\n    uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;\n    if (-1 < (int)uVar17) {\n      uVar14 = uVar14 | 0x800000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\njoined_r0x0012230f:\n    if ((int)uVar9 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x66:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0x7fe;\n    if ((uVar9 & 0x400) != 0) {\n      uVar17 = uVar17 - 0x800;\n    }\n    uVar9 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;\njoined_r0x00122297:\n    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x67:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0xff;\n    if ((uVar9 & 0x80) != 0) {\n      uVar17 = uVar17 - 0x100;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;\n    if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;\n  }\n  uVar20 = *(undefined4 *)(iVar5 + 4);\n  pcVar12 = "relocation overflow in %s";\nLAB_0012236a:\n  uVar13 = gettext(pcVar12);\n  FUN_0023bd50(param_4,param_7,*param_6,0,uVar13,uVar20);\nLAB_0012238d:\n  FUN_00072240(local_40);\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "ushort uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "uint *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "uint uStack_4c;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "undefined4 *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "undefined4 *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "uint local_20;" type_identifier identifier ;) (if_statement "if (param_5 != 9) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2);\n  }" if (parenthesized_expression "(param_5 != 9)" ( (binary_expression "param_5 != 9" identifier != number_literal) )) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2);\n  }" { (expression_statement "FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2)" identifier (argument_list "("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") , identifier ))) ;) })) (expression_statement "piVar3 = *(int **)(param_4 + 8);" (assignment_expression "piVar3 = *(int **)(param_4 + 8)" identifier = (pointer_expression "*(int **)(param_4 + 8)" * (cast_expression "(int **)(param_4 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0x8c);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0x8c)" identifier = (pointer_expression "*(code **)(*piVar3 + 0x8c)" * (cast_expression "(code **)(*piVar3 + 0x8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0x8c)" ( (binary_expression "*piVar3 + 0x8c" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_00070d40) {\n    uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    uVar9 = (*pcVar4)(piVar3);\n  }" if (parenthesized_expression "(pcVar4 == FUN_00070d40)" ( (binary_expression "pcVar4 == FUN_00070d40" identifier == identifier) )) (compound_statement "{\n    uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }" { (expression_statement "uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3);" (assignment_expression "uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xbc))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xbc))" ( (pointer_expression "**(code **)(*piVar3 + 0xbc)" * (pointer_expression "*(code **)(*piVar3 + 0xbc)" * (cast_expression "(code **)(*piVar3 + 0xbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xbc)" ( (binary_expression "*piVar3 + 0xbc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n    uVar9 = (*pcVar4)(piVar3);\n  }" else (compound_statement "{\n    uVar9 = (*pcVar4)(piVar3);\n  }" { (expression_statement "uVar9 = (*pcVar4)(piVar3);" (assignment_expression "uVar9 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "uVar14 = param_6[1];" (assignment_expression "uVar14 = param_6[1]" identifier = (subscript_expression "param_6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = uVar14 & 0xff;" (assignment_expression "uVar17 = uVar14 & 0xff" identifier = (binary_expression "uVar14 & 0xff" identifier & number_literal)) ;) (expression_statement "iVar5 = *(int *)(DAT_005eb1c8 + uVar17 * 4);" (assignment_expression "iVar5 = *(int *)(DAT_005eb1c8 + uVar17 * 4)" identifier = (pointer_expression "*(int *)(DAT_005eb1c8 + uVar17 * 4)" * (cast_expression "(int *)(DAT_005eb1c8 + uVar17 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005eb1c8 + uVar17 * 4)" ( (binary_expression "DAT_005eb1c8 + uVar17 * 4" identifier + (binary_expression "uVar17 * 4" identifier * number_literal)) ))))) ;) (expression_statement "uVar22 = uVar14 >> 8;" (assignment_expression "uVar22 = uVar14 >> 8" identifier = (binary_expression "uVar14 >> 8" identifier >> number_literal)) ;) (if_statement "if (((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)) || ((*(byte *)(iVar5 + 0x34) & 2) == 0)) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22);\n  }" if (parenthesized_expression "(((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)) || ((*(byte *)(iVar5 + 0x34) & 2) == 0))" ( (binary_expression "((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)) || ((*(byte *)(iVar5 + 0x34) & 2) == 0)" (parenthesized_expression "((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1))" ( (binary_expression "(iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(int *)(iVar5 + 0x1c) != 1)" ( (binary_expression "*(int *)(iVar5 + 0x1c) != 1" (pointer_expression "*(int *)(iVar5 + 0x1c)" * (cast_expression "(int *)(iVar5 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) )))) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(iVar5 + 0x34) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar5 + 0x34) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x34) & 2)" ( (binary_expression "*(byte *)(iVar5 + 0x34) & 2" (pointer_expression "*(byte *)(iVar5 + 0x34)" * (cast_expression "(byte *)(iVar5 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22);\n  }" { (expression_statement "FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22)" identifier (argument_list "("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") , identifier ))) ;) })) (if_statement "if (uVar9 <= uVar22) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3);\n  }" if (parenthesized_expression "(uVar9 <= uVar22)" ( (binary_expression "uVar9 <= uVar22" identifier <= identifier) )) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3);\n  }" { (expression_statement "FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3)" identifier (argument_list "("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") , identifier ))) ;) })) (if_statement "if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar22) {\n                    \n    FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5);\n  }" if (parenthesized_expression "((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar22)" ( (binary_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar22" (call_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar3[0x38] - piVar3[0x37] >> 4)" ( (binary_expression "piVar3[0x38] - piVar3[0x37] >> 4" (binary_expression "piVar3[0x38] - piVar3[0x37]" (subscript_expression "piVar3[0x38]" identifier [ number_literal ]) - (subscript_expression "piVar3[0x37]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5);\n  }" { (expression_statement "FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5);" (call_expression "FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5)" identifier (argument_list "("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5)" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""local_symbol_input_shndx"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar15 = piVar3[0x37] + uVar22 * 0x10;" (assignment_expression "iVar15 = piVar3[0x37] + uVar22 * 0x10" identifier = (binary_expression "piVar3[0x37] + uVar22 * 0x10" (subscript_expression "piVar3[0x37]" identifier [ number_literal ]) + (binary_expression "uVar22 * 0x10" identifier * number_literal))) ;) (expression_statement "uVar9 = *(uint *)(iVar15 + 8) & 0x7ffffff;" (assignment_expression "uVar9 = *(uint *)(iVar15 + 8) & 0x7ffffff" identifier = (binary_expression "*(uint *)(iVar15 + 8) & 0x7ffffff" (pointer_expression "*(uint *)(iVar15 + 8)" * (cast_expression "(uint *)(iVar15 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 8)" ( (binary_expression "iVar15 + 8" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if ((*(byte *)(iVar15 + 0xb) & 8) == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14);\n  }" if (parenthesized_expression "((*(byte *)(iVar15 + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)(iVar15 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar15 + 0xb) & 8)" ( (binary_expression "*(byte *)(iVar15 + 0xb) & 8" (pointer_expression "*(byte *)(iVar15 + 0xb)" * (cast_expression "(byte *)(iVar15 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xb)" ( (binary_expression "iVar15 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14);\n  }" { (expression_statement "FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14)" identifier (argument_list "("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") , identifier ))) ;) })) (if_statement "if (*(code **)(*piVar3 + 0x60) == FUN_00071550) {\n    uVar16 = piVar3[0xf] - piVar3[0xe] >> 2;\n    if (uVar16 <= uVar9) {\n                    \n      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);\n    }\n    iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4);\n  }\n  else {\n    iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);\n  }" if (parenthesized_expression "(*(code **)(*piVar3 + 0x60) == FUN_00071550)" ( (binary_expression "*(code **)(*piVar3 + 0x60) == FUN_00071550" (pointer_expression "*(code **)(*piVar3 + 0x60)" * (cast_expression "(code **)(*piVar3 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0x60)" ( (binary_expression "*piVar3 + 0x60" (pointer_expression "*piVar3" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n    uVar16 = piVar3[0xf] - piVar3[0xe] >> 2;\n    if (uVar16 <= uVar9) {\n                    \n      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);\n    }\n    iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4);\n  }" { (expression_statement "uVar16 = piVar3[0xf] - piVar3[0xe] >> 2;" (assignment_expression "uVar16 = piVar3[0xf] - piVar3[0xe] >> 2" identifier = (binary_expression "piVar3[0xf] - piVar3[0xe] >> 2" (binary_expression "piVar3[0xf] - piVar3[0xe]" (subscript_expression "piVar3[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar3[0xe]" identifier [ number_literal ])) >> number_literal)) ;) (if_statement "if (uVar16 <= uVar9) {\n                    \n      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);\n    }" if (parenthesized_expression "(uVar16 <= uVar9)" ( (binary_expression "uVar16 <= uVar9" identifier <= identifier) )) (compound_statement "{\n                    \n      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);\n    }" { (expression_statement "FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);" (call_expression "FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16)" identifier (argument_list "("../../gold/object.h",0x5c8,"do_output_section",uVar16)" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""do_output_section"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4);" (assignment_expression "iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4)" identifier = (pointer_expression "*(int *)(piVar3[0xe] + uVar9 * 4)" * (cast_expression "(int *)(piVar3[0xe] + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[0xe] + uVar9 * 4)" ( (binary_expression "piVar3[0xe] + uVar9 * 4" (subscript_expression "piVar3[0xe]" identifier [ number_literal ]) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n    iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);\n  }" else (compound_statement "{\n    iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);\n  }" { (expression_statement "iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);" (assignment_expression "iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9)" identifier = (call_expression "(**(code **)(*piVar3 + 0x60))(piVar3,uVar9)" (parenthesized_expression "(**(code **)(*piVar3 + 0x60))" ( (pointer_expression "**(code **)(*piVar3 + 0x60)" * (pointer_expression "*(code **)(*piVar3 + 0x60)" * (cast_expression "(code **)(*piVar3 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0x60)" ( (binary_expression "*piVar3 + 0x60" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3,uVar9)" ( identifier , identifier )))) ;) }))) (if_statement "if (iVar15 == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0);\n  }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0);\n  }" { (expression_statement "FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0)" identifier (argument_list "("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") , number_literal ))) ;) })) (if_statement "if ((*(byte *)(iVar15 + 0x90) & 1) == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15);\n  }" if (parenthesized_expression "((*(byte *)(iVar15 + 0x90) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar15 + 0x90) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar15 + 0x90) & 1)" ( (binary_expression "*(byte *)(iVar15 + 0x90) & 1" (pointer_expression "*(byte *)(iVar15 + 0x90)" * (cast_expression "(byte *)(iVar15 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x90)" ( (binary_expression "iVar15 + 0x90" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15);\n  }" { (expression_statement "FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15)" identifier (argument_list "("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar18 = *(int *)(iVar15 + 100);" (assignment_expression "iVar18 = *(int *)(iVar15 + 100)" identifier = (pointer_expression "*(int *)(iVar15 + 100)" * (cast_expression "(int *)(iVar15 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 100)" ( (binary_expression "iVar15 + 100" identifier + number_literal) ))))) ;) (if_statement "if (iVar18 == 0) {\n                    \n    FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15);\n  }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15);\n  }" { (expression_statement "FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15);" (call_expression "FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15)" identifier (argument_list "("../../gold/output.h",0xd81,"symtab_index",iVar15)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""symtab_index"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar15 = *param_6;" (assignment_expression "iVar15 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) (if_statement "if (param_9 == -1) {\n    iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15);\n    if (iVar10 == -1) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);\n    }\n  }\n  else {\n    iVar10 = iVar15 + param_9;\n  }" if (parenthesized_expression "(param_9 == -1)" ( (binary_expression "param_9 == -1" identifier == number_literal) )) (compound_statement "{\n    iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15);\n    if (iVar10 == -1) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);\n    }\n  }" { (expression_statement "iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15);" (assignment_expression "iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15)" identifier = (call_expression "FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15)" identifier (argument_list "(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15)" ( identifier , identifier , (pointer_expression "*(undefined4 *)(param_4 + 0x18)" * (cast_expression "(undefined4 *)(param_4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar10 == -1) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);\n    }" if (parenthesized_expression "(iVar10 == -1)" ( (binary_expression "iVar10 == -1" identifier == number_literal) )) (compound_statement "{\n                    \n      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);\n    }" { (expression_statement "FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff)" identifier (argument_list "("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") , number_literal ))) ;) })) }) (else_clause "else {\n    iVar10 = iVar15 + param_9;\n  }" else (compound_statement "{\n    iVar10 = iVar15 + param_9;\n  }" { (expression_statement "iVar10 = iVar15 + param_9;" (assignment_expression "iVar10 = iVar15 + param_9" identifier = (binary_expression "iVar15 + param_9" identifier + identifier)) ;) }))) (if_statement "if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10);\n  }" if (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 8) == 0)" ( (binary_expression "*(int *)(DAT_005ea7c8 + 8) == 0" (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" * (cast_expression "(int *)(DAT_005ea7c8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 8)" ( (binary_expression "DAT_005ea7c8 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10);\n  }" { (expression_statement "FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10);" (call_expression "FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",iVar10)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar11 = iVar10;" (assignment_expression "iVar11 = iVar10" identifier = identifier) ;) (if_statement "if (*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d) == '\0') {\n    iVar11 = iVar10 + param_11;\n    if (param_9 != -1) {\n      iVar11 = (iVar10 + param_11) - param_9;\n    }\n  }" if (parenthesized_expression "(*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d) == '\0')" ( (binary_expression "*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d) == '\0'" (pointer_expression "*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d)" * (cast_expression "(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 8) + 0x318d)" ( (binary_expression "*(int *)(DAT_005ea7c8 + 8) + 0x318d" (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" * (cast_expression "(int *)(DAT_005ea7c8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 8)" ( (binary_expression "DAT_005ea7c8 + 8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar11 = iVar10 + param_11;\n    if (param_9 != -1) {\n      iVar11 = (iVar10 + param_11) - param_9;\n    }\n  }" { (expression_statement "iVar11 = iVar10 + param_11;" (assignment_expression "iVar11 = iVar10 + param_11" identifier = (binary_expression "iVar10 + param_11" identifier + identifier)) ;) (if_statement "if (param_9 != -1) {\n      iVar11 = (iVar10 + param_11) - param_9;\n    }" if (parenthesized_expression "(param_9 != -1)" ( (binary_expression "param_9 != -1" identifier != number_literal) )) (compound_statement "{\n      iVar11 = (iVar10 + param_11) - param_9;\n    }" { (expression_statement "iVar11 = (iVar10 + param_11) - param_9;" (assignment_expression "iVar11 = (iVar10 + param_11) - param_9" identifier = (binary_expression "(iVar10 + param_11) - param_9" (parenthesized_expression "(iVar10 + param_11)" ( (binary_expression "iVar10 + param_11" identifier + identifier) )) - identifier)) ;) })) })) (expression_statement "*param_13 = iVar11;" (assignment_expression "*param_13 = iVar11" (pointer_expression "*param_13" * identifier) = identifier) ;) (expression_statement "iVar10 = piVar3[0x38];" (assignment_expression "iVar10 = piVar3[0x38]" identifier = (subscript_expression "piVar3[0x38]" identifier [ number_literal ])) ;) (expression_statement "param_13[1] = iVar18 * 0x100 + uVar17;" (assignment_expression "param_13[1] = iVar18 * 0x100 + uVar17" (subscript_expression "param_13[1]" identifier [ number_literal ]) = (binary_expression "iVar18 * 0x100 + uVar17" (binary_expression "iVar18 * 0x100" identifier * number_literal) + identifier)) ;) (expression_statement "uVar9 = iVar10 - piVar3[0x37] >> 4;" (assignment_expression "uVar9 = iVar10 - piVar3[0x37] >> 4" identifier = (binary_expression "iVar10 - piVar3[0x37] >> 4" (binary_expression "iVar10 - piVar3[0x37]" identifier - (subscript_expression "piVar3[0x37]" identifier [ number_literal ])) >> number_literal)) ;) (if_statement "if (uVar9 <= uVar22) {\n                    \n    FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9);\n  }" if (parenthesized_expression "(uVar9 <= uVar22)" ( (binary_expression "uVar9 <= uVar22" identifier <= identifier) )) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9);\n  }" { (expression_statement "FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9);" (call_expression "FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9)" identifier (argument_list "("../../gold/object.h",0x8c1,"local_symbol",uVar9)" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""local_symbol"" " string_content ") , identifier ))) ;) })) (expression_statement "local_38 = (undefined4 *)(piVar3[0x37] + uVar22 * 0x10);" (assignment_expression "local_38 = (undefined4 *)(piVar3[0x37] + uVar22 * 0x10)" identifier = (cast_expression "(undefined4 *)(piVar3[0x37] + uVar22 * 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[0x37] + uVar22 * 0x10)" ( (binary_expression "piVar3[0x37] + uVar22 * 0x10" (subscript_expression "piVar3[0x37]" identifier [ number_literal ]) + (binary_expression "uVar22 * 0x10" identifier * number_literal)) )))) ;) (expression_statement "iVar18 = piVar3[0x52];" (assignment_expression "iVar18 = piVar3[0x52]" identifier = (subscript_expression "piVar3[0x52]" identifier [ number_literal ])) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0xffffffff;" (assignment_expression "local_28 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_24 = 0x80000000;" (assignment_expression "local_24 = 0x80000000" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (if_statement "if ((uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8) <= uVar22) {\n                    \n                    \n    FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22);\n  }" if (parenthesized_expression "((uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8) <= uVar22)" ( (binary_expression "(uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8) <= uVar22" (call_expression "(uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8)" ( (binary_expression "(piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8" (parenthesized_expression "(piVar3[0x55] - piVar3[0x53])" ( (binary_expression "piVar3[0x55] - piVar3[0x53]" (subscript_expression "piVar3[0x55]" identifier [ number_literal ]) - (subscript_expression "piVar3[0x53]" identifier [ number_literal ])) )) + (binary_expression "(piVar3[0x54] - iVar18) * 8" (parenthesized_expression "(piVar3[0x54] - iVar18)" ( (binary_expression "piVar3[0x54] - iVar18" (subscript_expression "piVar3[0x54]" identifier [ number_literal ]) - identifier) )) * number_literal)) ))) <= identifier) )) (compound_statement "{\n                    \n                    \n    FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22);\n  }" { (expression_statement "FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22)" identifier (argument_list "("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""local_symbol_is_thumb_function"" " string_content ") , identifier ))) ;) })) (expression_statement "local_48 = 1 << ((byte)(uVar14 >> 8) & 0x1f) & *(uint *)(iVar18 + (uVar14 >> 0xd) * 4);" (assignment_expression "local_48 = 1 << ((byte)(uVar14 >> 8) & 0x1f) & *(uint *)(iVar18 + (uVar14 >> 0xd) * 4)" identifier = (binary_expression "1 << ((byte)(uVar14 >> 8) & 0x1f) & *(uint *)(iVar18 + (uVar14 >> 0xd) * 4)" (binary_expression "1 << ((byte)(uVar14 >> 8) & 0x1f)" number_literal << (parenthesized_expression "((byte)(uVar14 >> 8) & 0x1f)" ( (binary_expression "(byte)(uVar14 >> 8) & 0x1f" (call_expression "(byte)(uVar14 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar14 >> 8)" ( (binary_expression "uVar14 >> 8" identifier >> number_literal) ))) & number_literal) ))) & (pointer_expression "*(uint *)(iVar18 + (uVar14 >> 0xd) * 4)" * (cast_expression "(uint *)(iVar18 + (uVar14 >> 0xd) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + (uVar14 >> 0xd) * 4)" ( (binary_expression "iVar18 + (uVar14 >> 0xd) * 4" identifier + (binary_expression "(uVar14 >> 0xd) * 4" (parenthesized_expression "(uVar14 >> 0xd)" ( (binary_expression "uVar14 >> 0xd" identifier >> number_literal) )) * number_literal)) )))))) ;) (if_statement "if ((local_48 != 0) && (local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0)) {\n                    \n    local_48 = FUN_00072130(local_38,piVar3,0);\n    local_48 = local_48 & 1;\n    if (local_48 == 0) {\n      local_48 = 1;\n    }\n    else {\n                    \n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }\n  }" if (parenthesized_expression "((local_48 != 0) && (local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0))" ( (binary_expression "(local_48 != 0) && (local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0)" (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0)" ( (comma_expression "local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0" (assignment_expression "local_48 = 1" identifier = number_literal) , (binary_expression "(*(byte *)(iVar5 + 0x34) & 0x40) != 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x34) & 0x40)" ( (binary_expression "*(byte *)(iVar5 + 0x34) & 0x40" (pointer_expression "*(byte *)(iVar5 + 0x34)" * (cast_expression "(byte *)(iVar5 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n                    \n    local_48 = FUN_00072130(local_38,piVar3,0);\n    local_48 = local_48 & 1;\n    if (local_48 == 0) {\n      local_48 = 1;\n    }\n    else {\n                    \n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }\n  }" { (expression_statement "local_48 = FUN_00072130(local_38,piVar3,0);" (assignment_expression "local_48 = FUN_00072130(local_38,piVar3,0)" identifier = (call_expression "FUN_00072130(local_38,piVar3,0)" identifier (argument_list "(local_38,piVar3,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "local_48 = local_48 & 1;" (assignment_expression "local_48 = local_48 & 1" identifier = (binary_expression "local_48 & 1" identifier & number_literal)) ;) (if_statement "if (local_48 == 0) {\n      local_48 = 1;\n    }\n    else {\n                    \n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (compound_statement "{\n      local_48 = 1;\n    }" { (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) }) (else_clause "else {\n                    \n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }" else (compound_statement "{\n                    \n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }" { (expression_statement "local_20 = FUN_00072130(local_38,piVar3,0);" (assignment_expression "local_20 = FUN_00072130(local_38,piVar3,0)" identifier = (call_expression "FUN_00072130(local_38,piVar3,0)" identifier (argument_list "(local_38,piVar3,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "local_20 = local_20 & 0xfffffffe;" (assignment_expression "local_20 = local_20 & 0xfffffffe" identifier = (binary_expression "local_20 & 0xfffffffe" identifier & number_literal)) ;) (expression_statement "local_38 = &local_2c;" (assignment_expression "local_38 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) }))) })) (expression_statement "local_40 = &local_2c;" (assignment_expression "local_40 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) (expression_statement "puVar23 = (uint *)(iVar15 + param_10);" (assignment_expression "puVar23 = (uint *)(iVar15 + param_10)" identifier = (cast_expression "(uint *)(iVar15 + param_10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + param_10)" ( (binary_expression "iVar15 + param_10" identifier + identifier) )))) ;) (if_statement "if (99 < uVar17 - 4) {\nLAB_00122ab1:\n                    \n                    \n    FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);\n  }" if (parenthesized_expression "(99 < uVar17 - 4)" ( (binary_expression "99 < uVar17 - 4" number_literal < (binary_expression "uVar17 - 4" identifier - number_literal)) )) (compound_statement "{\nLAB_00122ab1:\n                    \n                    \n    FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);\n  }" { (labeled_statement "LAB_00122ab1:\n                    \n                    \n    FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);" statement_identifier : (expression_statement "FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18)" identifier (argument_list "("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") , identifier ))) ;)) })) (expression_statement "iVar18 = (int)&__DT_PLTGOT + *(int *)(&DAT_00467d20 + (uVar17 - 4) * 4);" (assignment_expression "iVar18 = (int)&__DT_PLTGOT + *(int *)(&DAT_00467d20 + (uVar17 - 4) * 4)" identifier = (binary_expression "(int)&__DT_PLTGOT + *(int *)(&DAT_00467d20 + (uVar17 - 4) * 4)" (cast_expression "(int)&__DT_PLTGOT" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_PLTGOT" & identifier)) + (pointer_expression "*(int *)(&DAT_00467d20 + (uVar17 - 4) * 4)" * (cast_expression "(int *)(&DAT_00467d20 + (uVar17 - 4) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00467d20 + (uVar17 - 4) * 4)" ( (binary_expression "&DAT_00467d20 + (uVar17 - 4) * 4" (pointer_expression "&DAT_00467d20" & identifier) + (binary_expression "(uVar17 - 4) * 4" (parenthesized_expression "(uVar17 - 4)" ( (binary_expression "uVar17 - 4" identifier - number_literal) )) * number_literal)) )))))) ;) (switch_statement "switch(uVar17) {\n  case 4:\n  case 0x2c:\n  case 0x2e:\n  case 0x30:\n  case 0x32:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x4c:\n  case 0x4d:\n  case 0x4e:\n  case 0x4f:\n  case 0x50:\n  case 0x51:\n  case 0x52:\n  case 0x53:\n  case 0x55:\n  case 0x58:\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    uVar13 = gettext("cannot handle %s in a relocatable link");\n    FUN_0023b810(uVar13,uVar20);\n    goto LAB_0012238d;\n  case 5:\n    uVar9 = (uint)(ushort)*puVar23;\n    if ((short)(ushort)*puVar23 < 0) {\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(ushort *)puVar23 = (ushort)iVar15;\n    if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;\n    break;\n  case 6:\n    uVar14 = *puVar23;\n    uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);\n    *puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;\n    goto joined_r0x00122297;\n  case 7:\n    uVar2 = (ushort)*puVar23;\n    iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);\n    *(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;\n    if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;\n    break;\n  case 8:\n    bVar1 = (byte)*puVar23;\n    uVar9 = bVar1 - 0x100;\n    if (-1 < (char)bVar1) {\n      uVar9 = (uint)bVar1;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(byte *)puVar23 = (byte)iVar15;\n    if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;\n    break;\n  default:\n    goto LAB_00122ab1;\n  case 10:\n  case 0x10:\n  case 0x1e:\n    iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0xb:\n    uVar9 = *puVar23;\n    uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);\n    iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);\n    *(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;\n    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;\n    break;\n  case 0xf:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n    iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0x2a:\n    uVar9 = *puVar23;\n    uVar14 = uVar9 & 0x7fffffff;\n    if ((uVar9 & 0x40000000) != 0) {\n      uVar14 = 0x7fffffff;\n    }\n    uVar14 = FUN_00072130(local_38,piVar3,uVar14);\n    *puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;\n    if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar9 = *puVar23;\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;\n    uStack_4c = uVar14 - 0x10000;\n    if ((uVar9 >> 4 & 0x8000) == 0) {\n      uStack_4c = uVar14;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229a9:\n    uStack_4c = uStack_4c | local_48;\n    *puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar8 = (ushort)*puVar23;\n    uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;\n    uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;\n    uStack_4c = uVar9 - 0x10000;\n    if ((uVar14 & 0x8000) == 0) {\n      uStack_4c = uVar9;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x00122a61:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;\n    *(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;\n    *(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);\njoined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;\n    break;\n  case 0x33:\n    iVar15 = FUN_00112810(0,local_48);\ncode_r0x00122342:\n    if (iVar15 == 1) break;\n    if (iVar15 == 0) goto LAB_0012238d;\n    if (iVar15 != 2) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    pcVar12 = "unexpected opcode while processing relocation %s";\n    goto LAB_0012236a;\n  case 0x34:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);\n    *(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;\n    if (uVar8 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = *(ushort *)((int)puVar23 + 2);\n    uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229f9:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);\n    uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;\n    if ((int)uStack_4c < 0) {\n      uVar14 = uVar14 | 0xa00000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar14 = *puVar23;\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));\n    uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);\n    uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;\n    if (-1 < (int)uVar17) {\n      uVar14 = uVar14 | 0x800000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\njoined_r0x0012230f:\n    if ((int)uVar9 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x66:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0x7fe;\n    if ((uVar9 & 0x400) != 0) {\n      uVar17 = uVar17 - 0x800;\n    }\n    uVar9 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;\njoined_r0x00122297:\n    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x67:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0xff;\n    if ((uVar9 & 0x80) != 0) {\n      uVar17 = uVar17 - 0x100;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;\n    if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;\n  }" switch (parenthesized_expression "(uVar17)" ( identifier )) (compound_statement "{\n  case 4:\n  case 0x2c:\n  case 0x2e:\n  case 0x30:\n  case 0x32:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x4c:\n  case 0x4d:\n  case 0x4e:\n  case 0x4f:\n  case 0x50:\n  case 0x51:\n  case 0x52:\n  case 0x53:\n  case 0x55:\n  case 0x58:\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    uVar13 = gettext("cannot handle %s in a relocatable link");\n    FUN_0023b810(uVar13,uVar20);\n    goto LAB_0012238d;\n  case 5:\n    uVar9 = (uint)(ushort)*puVar23;\n    if ((short)(ushort)*puVar23 < 0) {\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(ushort *)puVar23 = (ushort)iVar15;\n    if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;\n    break;\n  case 6:\n    uVar14 = *puVar23;\n    uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);\n    *puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;\n    goto joined_r0x00122297;\n  case 7:\n    uVar2 = (ushort)*puVar23;\n    iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);\n    *(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;\n    if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;\n    break;\n  case 8:\n    bVar1 = (byte)*puVar23;\n    uVar9 = bVar1 - 0x100;\n    if (-1 < (char)bVar1) {\n      uVar9 = (uint)bVar1;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(byte *)puVar23 = (byte)iVar15;\n    if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;\n    break;\n  default:\n    goto LAB_00122ab1;\n  case 10:\n  case 0x10:\n  case 0x1e:\n    iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0xb:\n    uVar9 = *puVar23;\n    uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);\n    iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);\n    *(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;\n    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;\n    break;\n  case 0xf:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n    iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0x2a:\n    uVar9 = *puVar23;\n    uVar14 = uVar9 & 0x7fffffff;\n    if ((uVar9 & 0x40000000) != 0) {\n      uVar14 = 0x7fffffff;\n    }\n    uVar14 = FUN_00072130(local_38,piVar3,uVar14);\n    *puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;\n    if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar9 = *puVar23;\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;\n    uStack_4c = uVar14 - 0x10000;\n    if ((uVar9 >> 4 & 0x8000) == 0) {\n      uStack_4c = uVar14;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229a9:\n    uStack_4c = uStack_4c | local_48;\n    *puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar8 = (ushort)*puVar23;\n    uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;\n    uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;\n    uStack_4c = uVar9 - 0x10000;\n    if ((uVar14 & 0x8000) == 0) {\n      uStack_4c = uVar9;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x00122a61:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;\n    *(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;\n    *(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);\njoined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;\n    break;\n  case 0x33:\n    iVar15 = FUN_00112810(0,local_48);\ncode_r0x00122342:\n    if (iVar15 == 1) break;\n    if (iVar15 == 0) goto LAB_0012238d;\n    if (iVar15 != 2) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    pcVar12 = "unexpected opcode while processing relocation %s";\n    goto LAB_0012236a;\n  case 0x34:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);\n    *(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;\n    if (uVar8 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = *(ushort *)((int)puVar23 + 2);\n    uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229f9:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);\n    uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;\n    if ((int)uStack_4c < 0) {\n      uVar14 = uVar14 | 0xa00000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar14 = *puVar23;\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));\n    uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);\n    uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;\n    if (-1 < (int)uVar17) {\n      uVar14 = uVar14 | 0x800000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\njoined_r0x0012230f:\n    if ((int)uVar9 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x66:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0x7fe;\n    if ((uVar9 & 0x400) != 0) {\n      uVar17 = uVar17 - 0x800;\n    }\n    uVar9 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;\njoined_r0x00122297:\n    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x67:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0xff;\n    if ((uVar9 & 0x80) != 0) {\n      uVar17 = uVar17 - 0x100;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;\n    if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;\n  }" { (case_statement "case 4:" case number_literal :) (case_statement "case 0x2c:" case number_literal :) (case_statement "case 0x2e:" case number_literal :) (case_statement "case 0x30:" case number_literal :) (case_statement "case 0x32:" case number_literal :) (case_statement "case 0x39:" case number_literal :) (case_statement "case 0x3a:" case number_literal :) (case_statement "case 0x3b:" case number_literal :) (case_statement "case 0x3c:" case number_literal :) (case_statement "case 0x3d:" case number_literal :) (case_statement "case 0x3e:" case number_literal :) (case_statement "case 0x3f:" case number_literal :) (case_statement "case 0x40:" case number_literal :) (case_statement "case 0x41:" case number_literal :) (case_statement "case 0x42:" case number_literal :) (case_statement "case 0x43:" case number_literal :) (case_statement "case 0x44:" case number_literal :) (case_statement "case 0x45:" case number_literal :) (case_statement "case 0x46:" case number_literal :) (case_statement "case 0x47:" case number_literal :) (case_statement "case 0x48:" case number_literal :) (case_statement "case 0x49:" case number_literal :) (case_statement "case 0x4a:" case number_literal :) (case_statement "case 0x4b:" case number_literal :) (case_statement "case 0x4c:" case number_literal :) (case_statement "case 0x4d:" case number_literal :) (case_statement "case 0x4e:" case number_literal :) (case_statement "case 0x4f:" case number_literal :) (case_statement "case 0x50:" case number_literal :) (case_statement "case 0x51:" case number_literal :) (case_statement "case 0x52:" case number_literal :) (case_statement "case 0x53:" case number_literal :) (case_statement "case 0x55:" case number_literal :) (case_statement "case 0x58:\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    uVar13 = gettext("cannot handle %s in a relocatable link");\n    FUN_0023b810(uVar13,uVar20);\n    goto LAB_0012238d;" case number_literal : (expression_statement "uVar20 = *(undefined4 *)(iVar5 + 4);" (assignment_expression "uVar20 = *(undefined4 *)(iVar5 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 4)" * (cast_expression "(undefined4 *)(iVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = gettext("cannot handle %s in a relocatable link");" (assignment_expression "uVar13 = gettext("cannot handle %s in a relocatable link")" identifier = (call_expression "gettext("cannot handle %s in a relocatable link")" identifier (argument_list "("cannot handle %s in a relocatable link")" ( (string_literal ""cannot handle %s in a relocatable link"" " string_content ") )))) ;) (expression_statement "FUN_0023b810(uVar13,uVar20);" (call_expression "FUN_0023b810(uVar13,uVar20)" identifier (argument_list "(uVar13,uVar20)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;)) (case_statement "case 5:\n    uVar9 = (uint)(ushort)*puVar23;\n    if ((short)(ushort)*puVar23 < 0) {\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(ushort *)puVar23 = (ushort)iVar15;\n    if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;\n    break;" case number_literal : (expression_statement "uVar9 = (uint)(ushort)*puVar23;" (assignment_expression "uVar9 = (uint)(ushort)*puVar23" identifier = (binary_expression "(uint)(ushort)*puVar23" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ushort)" ( identifier ))) * identifier)) ;) (if_statement "if ((short)(ushort)*puVar23 < 0) {\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }" if (parenthesized_expression "((short)(ushort)*puVar23 < 0)" ( (binary_expression "(short)(ushort)*puVar23 < 0" (binary_expression "(short)(ushort)*puVar23" (cast_expression "(short)(ushort)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(ushort)" ( identifier ))) * identifier) < number_literal) )) (compound_statement "{\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }" { (expression_statement "uVar9 = (ushort)*puVar23 - 0x10000;" (assignment_expression "uVar9 = (ushort)*puVar23 - 0x10000" identifier = (binary_expression "(ushort)*puVar23 - 0x10000" (binary_expression "(ushort)*puVar23" (parenthesized_expression "(ushort)" ( identifier )) * identifier) - number_literal)) ;) })) (expression_statement "iVar15 = FUN_00072130(local_38,piVar3,uVar9);" (assignment_expression "iVar15 = FUN_00072130(local_38,piVar3,uVar9)" identifier = (call_expression "FUN_00072130(local_38,piVar3,uVar9)" identifier (argument_list "(local_38,piVar3,uVar9)" ( identifier , identifier , identifier )))) ;) (expression_statement "*(ushort *)puVar23 = (ushort)iVar15;" (assignment_expression "*(ushort *)puVar23 = (ushort)iVar15" (pointer_expression "*(ushort *)puVar23" * (cast_expression "(ushort *)puVar23" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(ushort)iVar15" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (if_statement "if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;" if (parenthesized_expression "(iVar15 + 0x8000U < 0x18000)" ( (binary_expression "iVar15 + 0x8000U < 0x18000" (binary_expression "iVar15 + 0x8000U" identifier + number_literal) < number_literal) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 6:\n    uVar14 = *puVar23;\n    uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);\n    *puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;\n    goto joined_r0x00122297;" case number_literal : (expression_statement "uVar14 = *puVar23;" (assignment_expression "uVar14 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);" (assignment_expression "uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff)" identifier = (call_expression "FUN_00072130(local_38,piVar3,uVar14 & 0xfff)" identifier (argument_list "(local_38,piVar3,uVar14 & 0xfff)" ( identifier , identifier , (binary_expression "uVar14 & 0xfff" identifier & number_literal) )))) ;) (expression_statement "*puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;" (assignment_expression "*puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff" (pointer_expression "*puVar23" * identifier) = (binary_expression "uVar14 ^ (uVar14 ^ uVar9) & 0xfff" identifier ^ (binary_expression "(uVar14 ^ uVar9) & 0xfff" (parenthesized_expression "(uVar14 ^ uVar9)" ( (binary_expression "uVar14 ^ uVar9" identifier ^ identifier) )) & number_literal))) ;) (goto_statement "goto joined_r0x00122297;" goto statement_identifier ;)) (case_statement "case 7:\n    uVar2 = (ushort)*puVar23;\n    iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);\n    *(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;\n    if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;\n    break;" case number_literal : (expression_statement "uVar2 = (ushort)*puVar23;" (assignment_expression "uVar2 = (ushort)*puVar23" identifier = (binary_expression "(ushort)*puVar23" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ;) (expression_statement "iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);" (assignment_expression "iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f)" identifier = (call_expression "FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f)" identifier (argument_list "(local_38,piVar3,uVar2 >> 6 & 0x1f)" ( identifier , identifier , (binary_expression "uVar2 >> 6 & 0x1f" (binary_expression "uVar2 >> 6" identifier >> number_literal) & number_literal) )))) ;) (expression_statement "*(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;" (assignment_expression "*(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0" (pointer_expression "*(ushort *)puVar23" * (cast_expression "(ushort *)puVar23" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0" identifier ^ (binary_expression "((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0" (parenthesized_expression "((ushort)(iVar15 << 6) ^ uVar2)" ( (binary_expression "(ushort)(iVar15 << 6) ^ uVar2" (call_expression "(ushort)(iVar15 << 6)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(iVar15 << 6)" ( (binary_expression "iVar15 << 6" identifier << number_literal) ))) ^ identifier) )) & number_literal))) ;) (if_statement "if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;" if (parenthesized_expression "(iVar15 + 0x10U < 0x20)" ( (binary_expression "iVar15 + 0x10U < 0x20" (binary_expression "iVar15 + 0x10U" identifier + number_literal) < number_literal) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 8:\n    bVar1 = (byte)*puVar23;\n    uVar9 = bVar1 - 0x100;\n    if (-1 < (char)bVar1) {\n      uVar9 = (uint)bVar1;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(byte *)puVar23 = (byte)iVar15;\n    if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;\n    break;" case number_literal : (expression_statement "bVar1 = (byte)*puVar23;" (assignment_expression "bVar1 = (byte)*puVar23" identifier = (binary_expression "(byte)*puVar23" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ;) (expression_statement "uVar9 = bVar1 - 0x100;" (assignment_expression "uVar9 = bVar1 - 0x100" identifier = (binary_expression "bVar1 - 0x100" identifier - number_literal)) ;) (if_statement "if (-1 < (char)bVar1) {\n      uVar9 = (uint)bVar1;\n    }" if (parenthesized_expression "(-1 < (char)bVar1)" ( (binary_expression "-1 < (char)bVar1" number_literal < (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\n      uVar9 = (uint)bVar1;\n    }" { (expression_statement "uVar9 = (uint)bVar1;" (assignment_expression "uVar9 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) })) (expression_statement "iVar15 = FUN_00072130(local_38,piVar3,uVar9);" (assignment_expression "iVar15 = FUN_00072130(local_38,piVar3,uVar9)" identifier = (call_expression "FUN_00072130(local_38,piVar3,uVar9)" identifier (argument_list "(local_38,piVar3,uVar9)" ( identifier , identifier , identifier )))) ;) (expression_statement "*(byte *)puVar23 = (byte)iVar15;" (assignment_expression "*(byte *)puVar23 = (byte)iVar15" (pointer_expression "*(byte *)puVar23" * (cast_expression "(byte *)puVar23" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(byte)iVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;" if (parenthesized_expression "(iVar15 + 0x80U < 0x180)" ( (binary_expression "iVar15 + 0x80U < 0x180" (binary_expression "iVar15 + 0x80U" identifier + number_literal) < number_literal) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "default:\n    goto LAB_00122ab1;" default : (goto_statement "goto LAB_00122ab1;" goto statement_identifier ;)) (case_statement "case 10:" case number_literal :) (case_statement "case 0x10:" case number_literal :) (case_statement "case 0x1e:\n    iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;" case number_literal : (expression_statement "iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);" (assignment_expression "iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0)" identifier = (call_expression "FUN_001206e0(0,piVar3,0,local_38,0,local_48,0)" identifier (argument_list "(0,piVar3,0,local_38,0,local_48,0)" ( number_literal , identifier , number_literal , identifier , number_literal , identifier , number_literal )))) ;) (goto_statement "goto code_r0x00122342;" goto statement_identifier ;)) (case_statement "case 0xb:\n    uVar9 = *puVar23;\n    uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);\n    iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);\n    *(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;\n    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;\n    break;" case number_literal : (expression_statement "uVar9 = *puVar23;" (assignment_expression "uVar9 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);" (assignment_expression "uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc)" identifier = (call_expression "FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc)" identifier (argument_list "(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc)" ( identifier , identifier , (binary_expression "(ushort)uVar9 * 4 & 0x3fc" (binary_expression "(ushort)uVar9 * 4" (cast_expression "(ushort)uVar9" ( (type_descriptor "ushort" type_identifier) ) identifier) * number_literal) & number_literal) )))) ;) (expression_statement "iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);" (assignment_expression "iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f)" identifier = (binary_expression "(uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f)" (parenthesized_expression "(uVar14 ^ (int)uVar14 >> 0x1f)" ( (binary_expression "uVar14 ^ (int)uVar14 >> 0x1f" identifier ^ (binary_expression "(int)uVar14 >> 0x1f" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) )) - (parenthesized_expression "((int)uVar14 >> 0x1f)" ( (binary_expression "(int)uVar14 >> 0x1f" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "*(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;" (assignment_expression "*(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff" (pointer_expression "*(ushort *)puVar23" * (cast_expression "(ushort *)puVar23" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff" (binary_expression "(ushort)uVar9 & 0xff00" (cast_expression "(ushort)uVar9" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal) | (binary_expression "(ushort)(iVar15 >> 2) & 0xff" (call_expression "(ushort)(iVar15 >> 2)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(iVar15 >> 2)" ( (binary_expression "iVar15 >> 2" identifier >> number_literal) ))) & number_literal))) ;) (if_statement "if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;" if (parenthesized_expression "((ushort)iVar15 < 0x3fd)" ( (binary_expression "(ushort)iVar15 < 0x3fd" (cast_expression "(ushort)iVar15" ( (type_descriptor "ushort" type_identifier) ) identifier) < number_literal) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 0xf:" case number_literal :) (case_statement "case 0x1b:" case number_literal :) (case_statement "case 0x1c:" case number_literal :) (case_statement "case 0x1d:\n    iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;" case number_literal : (expression_statement "iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);" (assignment_expression "iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0)" identifier = (call_expression "FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0)" identifier (argument_list "(0,piVar3,0,local_38,0,local_48,0)" ( number_literal , identifier , number_literal , identifier , number_literal , identifier , number_literal )))) ;) (goto_statement "goto code_r0x00122342;" goto statement_identifier ;)) (case_statement "case 0x2a:\n    uVar9 = *puVar23;\n    uVar14 = uVar9 & 0x7fffffff;\n    if ((uVar9 & 0x40000000) != 0) {\n      uVar14 = 0x7fffffff;\n    }\n    uVar14 = FUN_00072130(local_38,piVar3,uVar14);\n    *puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;\n    if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;\n    break;" case number_literal : (expression_statement "uVar9 = *puVar23;" (assignment_expression "uVar9 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "uVar14 = uVar9 & 0x7fffffff;" (assignment_expression "uVar14 = uVar9 & 0x7fffffff" identifier = (binary_expression "uVar9 & 0x7fffffff" identifier & number_literal)) ;) (if_statement "if ((uVar9 & 0x40000000) != 0) {\n      uVar14 = 0x7fffffff;\n    }" if (parenthesized_expression "((uVar9 & 0x40000000) != 0)" ( (binary_expression "(uVar9 & 0x40000000) != 0" (parenthesized_expression "(uVar9 & 0x40000000)" ( (binary_expression "uVar9 & 0x40000000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar14 = 0x7fffffff;\n    }" { (expression_statement "uVar14 = 0x7fffffff;" (assignment_expression "uVar14 = 0x7fffffff" identifier = number_literal) ;) })) (expression_statement "uVar14 = FUN_00072130(local_38,piVar3,uVar14);" (assignment_expression "uVar14 = FUN_00072130(local_38,piVar3,uVar14)" identifier = (call_expression "FUN_00072130(local_38,piVar3,uVar14)" identifier (argument_list "(local_38,piVar3,uVar14)" ( identifier , identifier , identifier )))) ;) (expression_statement "*puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;" (assignment_expression "*puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff" (pointer_expression "*puVar23" * identifier) = (binary_expression "uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff" identifier ^ (binary_expression "((uVar14 | local_48) ^ uVar9) & 0x7fffffff" (parenthesized_expression "((uVar14 | local_48) ^ uVar9)" ( (binary_expression "(uVar14 | local_48) ^ uVar9" (parenthesized_expression "(uVar14 | local_48)" ( (binary_expression "uVar14 | local_48" identifier | identifier) )) ^ identifier) )) & number_literal))) ;) (if_statement "if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;" if (parenthesized_expression "(-1 < (int)((uVar14 | local_48) + 0x40000000))" ( (binary_expression "-1 < (int)((uVar14 | local_48) + 0x40000000)" number_literal < (cast_expression "(int)((uVar14 | local_48) + 0x40000000)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uVar14 | local_48) + 0x40000000)" ( (binary_expression "(uVar14 | local_48) + 0x40000000" (parenthesized_expression "(uVar14 | local_48)" ( (binary_expression "uVar14 | local_48" identifier | identifier) )) + number_literal) )))) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 0x2b:" case number_literal :) (case_statement "case 0x2d:" case number_literal :) (case_statement "case 0x54:" case number_literal :) (case_statement "case 0x56:\n    uVar9 = *puVar23;\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;\n    uStack_4c = uVar14 - 0x10000;\n    if ((uVar9 >> 4 & 0x8000) == 0) {\n      uStack_4c = uVar14;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229a9:\n    uStack_4c = uStack_4c | local_48;\n    *puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;\n    goto joined_r0x00122aa6;" case number_literal : (expression_statement "uVar9 = *puVar23;" (assignment_expression "uVar9 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "bVar1 = *(byte *)(iVar5 + 0x34);" (assignment_expression "bVar1 = *(byte *)(iVar5 + 0x34)" identifier = (pointer_expression "*(byte *)(iVar5 + 0x34)" * (cast_expression "(byte *)(iVar5 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;" (assignment_expression "uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff" identifier = (binary_expression "uVar9 >> 4 & 0xf000 | uVar9 & 0xfff" (binary_expression "uVar9 >> 4 & 0xf000" (binary_expression "uVar9 >> 4" identifier >> number_literal) & number_literal) | (binary_expression "uVar9 & 0xfff" identifier & number_literal))) ;) (expression_statement "uStack_4c = uVar14 - 0x10000;" (assignment_expression "uStack_4c = uVar14 - 0x10000" identifier = (binary_expression "uVar14 - 0x10000" identifier - number_literal)) ;) (if_statement "if ((uVar9 >> 4 & 0x8000) == 0) {\n      uStack_4c = uVar14;\n    }" if (parenthesized_expression "((uVar9 >> 4 & 0x8000) == 0)" ( (binary_expression "(uVar9 >> 4 & 0x8000) == 0" (parenthesized_expression "(uVar9 >> 4 & 0x8000)" ( (binary_expression "uVar9 >> 4 & 0x8000" (binary_expression "uVar9 >> 4" identifier >> number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n      uStack_4c = uVar14;\n    }" { (expression_statement "uStack_4c = uVar14;" (assignment_expression "uStack_4c = uVar14" identifier = identifier) ;) })) (if_statement "if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" if (parenthesized_expression "((char)*(byte *)((int)local_38 + 0xb) < '\0')" ( (binary_expression "(char)*(byte *)((int)local_38 + 0xb) < '\0'" (cast_expression "(char)*(byte *)((int)local_38 + 0xb)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)local_38 + 0xb)" * (cast_expression "(byte *)((int)local_38 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0xb)" ( (binary_expression "(int)local_38 + 0xb" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uStack_4c = uStack_4c + local_38[3];\n    }" { (expression_statement "uStack_4c = uStack_4c + local_38[3];" (assignment_expression "uStack_4c = uStack_4c + local_38[3]" identifier = (binary_expression "uStack_4c + local_38[3]" identifier + (subscript_expression "local_38[3]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" else (compound_statement "{\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" { (if_statement "if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }" if (parenthesized_expression "((*(byte *)((int)local_38 + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)((int)local_38 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)((int)local_38 + 0xb) & 8)" ( (binary_expression "*(byte *)((int)local_38 + 0xb) & 8" (pointer_expression "*(byte *)((int)local_38 + 0xb)" * (cast_expression "(byte *)((int)local_38 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0xb)" ( (binary_expression "(int)local_38 + 0xb" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }" { (expression_statement "FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);" (call_expression "FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3)" identifier (argument_list "("../../gold/object.h",0x6ab,"value",piVar3)" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""value"" " string_content ") , identifier ))) ;) })) (expression_statement "puVar6 = (uint *)local_38[3];" (assignment_expression "puVar6 = (uint *)local_38[3]" identifier = (cast_expression "(uint *)local_38[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_38[3]" identifier [ number_literal ]))) ;) (expression_statement "local_34 = *puVar6;" (assignment_expression "local_34 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (if_statement "if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }" if (parenthesized_expression "(uStack_4c < 0xffffff00)" ( (binary_expression "uStack_4c < 0xffffff00" identifier < number_literal) )) (compound_statement "{\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }" { (expression_statement "local_34 = local_34 + uStack_4c;" (assignment_expression "local_34 = local_34 + uStack_4c" identifier = (binary_expression "local_34 + uStack_4c" identifier + identifier)) ;) (expression_statement "uStack_4c = 0;" (assignment_expression "uStack_4c = 0" identifier = number_literal) ;) })) (expression_statement "uVar14 = local_34 % puVar6[3];" (assignment_expression "uVar14 = local_34 % puVar6[3]" identifier = (binary_expression "local_34 % puVar6[3]" identifier % (subscript_expression "puVar6[3]" identifier [ number_literal ]))) ;) (expression_statement "piVar21 = *(int **)(puVar6[2] + uVar14 * 4);" (assignment_expression "piVar21 = *(int **)(puVar6[2] + uVar14 * 4)" identifier = (pointer_expression "*(int **)(puVar6[2] + uVar14 * 4)" * (cast_expression "(int **)(puVar6[2] + uVar14 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6[2] + uVar14 * 4)" ( (binary_expression "puVar6[2] + uVar14 * 4" (subscript_expression "puVar6[2]" identifier [ number_literal ]) + (binary_expression "uVar14 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }" if (parenthesized_expression "(piVar21 != (int *)0x0)" ( (binary_expression "piVar21 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }" { (expression_statement "uVar17 = ((int *)*piVar21)[1];" (assignment_expression "uVar17 = ((int *)*piVar21)[1]" identifier = (subscript_expression "((int *)*piVar21)[1]" (parenthesized_expression "((int *)*piVar21)" ( (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar7 = (int *)*piVar21;" (assignment_expression "piVar7 = (int *)*piVar21" identifier = (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (while_statement "while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }" while (parenthesized_expression "(piVar19 = piVar7, uVar17 != local_34)" ( (comma_expression "piVar19 = piVar7, uVar17 != local_34" (assignment_expression "piVar19 = piVar7" identifier = identifier) , (binary_expression "uVar17 != local_34" identifier != identifier)) )) (compound_statement "{\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }" { (expression_statement "piVar7 = (int *)*piVar19;" (assignment_expression "piVar7 = (int *)*piVar19" identifier = (cast_expression "(int *)*piVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar19" * identifier))) ;) (if_statement "if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;" if (parenthesized_expression "((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))" ( (binary_expression "(piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14)" (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14)" ( (comma_expression "uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14" (assignment_expression "uVar17 = piVar7[1]" identifier = (subscript_expression "piVar7[1]" identifier [ number_literal ])) , (comma_expression "piVar21 = piVar19, uVar17 % puVar6[3] != uVar14" (assignment_expression "piVar21 = piVar19" identifier = identifier) , (binary_expression "uVar17 % puVar6[3] != uVar14" (binary_expression "uVar17 % puVar6[3]" identifier % (subscript_expression "puVar6[3]" identifier [ number_literal ])) != identifier))) ))) )) (goto_statement "goto code_r0x00122b36;" goto statement_identifier ;)) })) (if_statement "if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }" if (parenthesized_expression "(*piVar21 != 0)" ( (binary_expression "*piVar21 != 0" (pointer_expression "*piVar21" * identifier) != number_literal) )) (compound_statement "{\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }" { (expression_statement "uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);" (assignment_expression "uStack_4c = uStack_4c + *(int *)(*piVar21 + 8)" identifier = (binary_expression "uStack_4c + *(int *)(*piVar21 + 8)" identifier + (pointer_expression "*(int *)(*piVar21 + 8)" * (cast_expression "(int *)(*piVar21 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar21 + 8)" ( (binary_expression "*piVar21 + 8" (pointer_expression "*piVar21" * identifier) + number_literal) )))))) ;) (goto_statement "goto code_r0x001229a9;" goto statement_identifier ;) })) })) (labeled_statement "code_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);" statement_identifier : (expression_statement "iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);" (assignment_expression "iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" identifier = (call_expression "FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" identifier (argument_list "(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" ( identifier , identifier , (binary_expression "local_38[2] & 0x7ffffff" (subscript_expression "local_38[2]" identifier [ number_literal ]) & number_literal) , identifier )))) ;)) (expression_statement "uStack_4c = iVar15 + uStack_4c;" (assignment_expression "uStack_4c = iVar15 + uStack_4c" identifier = (binary_expression "iVar15 + uStack_4c" identifier + identifier)) ;) }))) (labeled_statement "code_r0x001229a9:\n    uStack_4c = uStack_4c | local_48;" statement_identifier : (expression_statement "uStack_4c = uStack_4c | local_48;" (assignment_expression "uStack_4c = uStack_4c | local_48" identifier = (binary_expression "uStack_4c | local_48" identifier | identifier)) ;)) (expression_statement "*puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;" (assignment_expression "*puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff" (pointer_expression "*puVar23" * identifier) = (binary_expression "(uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff" (binary_expression "(uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000" (binary_expression "(uStack_4c & 0xf000) << 4" (parenthesized_expression "(uStack_4c & 0xf000)" ( (binary_expression "uStack_4c & 0xf000" identifier & number_literal) )) << number_literal) | (binary_expression "uVar9 & 0xfff0f000" identifier & number_literal)) | (binary_expression "uStack_4c & 0xfff" identifier & number_literal))) ;) (goto_statement "goto joined_r0x00122aa6;" goto statement_identifier ;)) (case_statement "case 0x2f:" case number_literal :) (case_statement "case 0x31:" case number_literal :) (case_statement "case 0x57:" case number_literal :) (case_statement "case 0x59:\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar8 = (ushort)*puVar23;\n    uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;\n    uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;\n    uStack_4c = uVar9 - 0x10000;\n    if ((uVar14 & 0x8000) == 0) {\n      uStack_4c = uVar9;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x00122a61:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;\n    *(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;\n    *(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);\njoined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;\n    break;" case number_literal : (expression_statement "uVar2 = *(ushort *)((int)puVar23 + 2);" (assignment_expression "uVar2 = *(ushort *)((int)puVar23 + 2)" identifier = (pointer_expression "*(ushort *)((int)puVar23 + 2)" * (cast_expression "(ushort *)((int)puVar23 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + 2)" ( (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar1 = *(byte *)(iVar5 + 0x34);" (assignment_expression "bVar1 = *(byte *)(iVar5 + 0x34)" identifier = (pointer_expression "*(byte *)(iVar5 + 0x34)" * (cast_expression "(byte *)(iVar5 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = (ushort)*puVar23;" (assignment_expression "uVar8 = (ushort)*puVar23" identifier = (binary_expression "(ushort)*puVar23" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ;) (expression_statement "uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;" (assignment_expression "uVar14 = ((uVar8 & 0xf) << 0x10) >> 4" identifier = (binary_expression "((uVar8 & 0xf) << 0x10) >> 4" (parenthesized_expression "((uVar8 & 0xf) << 0x10)" ( (binary_expression "(uVar8 & 0xf) << 0x10" (parenthesized_expression "(uVar8 & 0xf)" ( (binary_expression "uVar8 & 0xf" identifier & number_literal) )) << number_literal) )) >> number_literal)) ;) (expression_statement "uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;" (assignment_expression "uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4" identifier = (binary_expression "((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4" (binary_expression "((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff" (binary_expression "((uVar8 & 0x400) << 0x10) >> 0xf | uVar14" (binary_expression "((uVar8 & 0x400) << 0x10) >> 0xf" (parenthesized_expression "((uVar8 & 0x400) << 0x10)" ( (binary_expression "(uVar8 & 0x400) << 0x10" (parenthesized_expression "(uVar8 & 0x400)" ( (binary_expression "uVar8 & 0x400" identifier & number_literal) )) << number_literal) )) >> number_literal) | identifier) | (binary_expression "uVar2 & 0xff" identifier & number_literal)) | (binary_expression "(uVar2 & 0x7000) >> 4" (parenthesized_expression "(uVar2 & 0x7000)" ( (binary_expression "uVar2 & 0x7000" identifier & number_literal) )) >> number_literal))) ;) (expression_statement "uStack_4c = uVar9 - 0x10000;" (assignment_expression "uStack_4c = uVar9 - 0x10000" identifier = (binary_expression "uVar9 - 0x10000" identifier - number_literal)) ;) (if_statement "if ((uVar14 & 0x8000) == 0) {\n      uStack_4c = uVar9;\n    }" if (parenthesized_expression "((uVar14 & 0x8000) == 0)" ( (binary_expression "(uVar14 & 0x8000) == 0" (parenthesized_expression "(uVar14 & 0x8000)" ( (binary_expression "uVar14 & 0x8000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      uStack_4c = uVar9;\n    }" { (expression_statement "uStack_4c = uVar9;" (assignment_expression "uStack_4c = uVar9" identifier = identifier) ;) })) (if_statement "if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" if (parenthesized_expression "((char)*(byte *)((int)local_38 + 0xb) < '\0')" ( (binary_expression "(char)*(byte *)((int)local_38 + 0xb) < '\0'" (cast_expression "(char)*(byte *)((int)local_38 + 0xb)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)local_38 + 0xb)" * (cast_expression "(byte *)((int)local_38 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0xb)" ( (binary_expression "(int)local_38 + 0xb" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uStack_4c = uStack_4c + local_38[3];\n    }" { (expression_statement "uStack_4c = uStack_4c + local_38[3];" (assignment_expression "uStack_4c = uStack_4c + local_38[3]" identifier = (binary_expression "uStack_4c + local_38[3]" identifier + (subscript_expression "local_38[3]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" else (compound_statement "{\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" { (if_statement "if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }" if (parenthesized_expression "((*(byte *)((int)local_38 + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)((int)local_38 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)((int)local_38 + 0xb) & 8)" ( (binary_expression "*(byte *)((int)local_38 + 0xb) & 8" (pointer_expression "*(byte *)((int)local_38 + 0xb)" * (cast_expression "(byte *)((int)local_38 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0xb)" ( (binary_expression "(int)local_38 + 0xb" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }" { (expression_statement "FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));" (call_expression "FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2))" identifier (argument_list "("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2))" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""value"" " string_content ") , (call_expression "CONCAT22(uVar8,uVar2)" identifier (argument_list "(uVar8,uVar2)" ( identifier , identifier ))) ))) ;) })) (expression_statement "puVar6 = (uint *)local_38[3];" (assignment_expression "puVar6 = (uint *)local_38[3]" identifier = (cast_expression "(uint *)local_38[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_38[3]" identifier [ number_literal ]))) ;) (expression_statement "local_34 = *puVar6;" (assignment_expression "local_34 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (if_statement "if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }" if (parenthesized_expression "(uStack_4c < 0xffffff00)" ( (binary_expression "uStack_4c < 0xffffff00" identifier < number_literal) )) (compound_statement "{\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }" { (expression_statement "local_34 = local_34 + uStack_4c;" (assignment_expression "local_34 = local_34 + uStack_4c" identifier = (binary_expression "local_34 + uStack_4c" identifier + identifier)) ;) (expression_statement "uStack_4c = 0;" (assignment_expression "uStack_4c = 0" identifier = number_literal) ;) })) (expression_statement "uVar9 = local_34 % puVar6[3];" (assignment_expression "uVar9 = local_34 % puVar6[3]" identifier = (binary_expression "local_34 % puVar6[3]" identifier % (subscript_expression "puVar6[3]" identifier [ number_literal ]))) ;) (expression_statement "piVar21 = *(int **)(puVar6[2] + uVar9 * 4);" (assignment_expression "piVar21 = *(int **)(puVar6[2] + uVar9 * 4)" identifier = (pointer_expression "*(int **)(puVar6[2] + uVar9 * 4)" * (cast_expression "(int **)(puVar6[2] + uVar9 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6[2] + uVar9 * 4)" ( (binary_expression "puVar6[2] + uVar9 * 4" (subscript_expression "puVar6[2]" identifier [ number_literal ]) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }" if (parenthesized_expression "(piVar21 != (int *)0x0)" ( (binary_expression "piVar21 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }" { (expression_statement "uVar14 = ((int *)*piVar21)[1];" (assignment_expression "uVar14 = ((int *)*piVar21)[1]" identifier = (subscript_expression "((int *)*piVar21)[1]" (parenthesized_expression "((int *)*piVar21)" ( (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar7 = (int *)*piVar21;" (assignment_expression "piVar7 = (int *)*piVar21" identifier = (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (while_statement "while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }" while (parenthesized_expression "(piVar19 = piVar7, uVar14 != local_34)" ( (comma_expression "piVar19 = piVar7, uVar14 != local_34" (assignment_expression "piVar19 = piVar7" identifier = identifier) , (binary_expression "uVar14 != local_34" identifier != identifier)) )) (compound_statement "{\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }" { (expression_statement "piVar7 = (int *)*piVar19;" (assignment_expression "piVar7 = (int *)*piVar19" identifier = (cast_expression "(int *)*piVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar19" * identifier))) ;) (if_statement "if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;" if (parenthesized_expression "((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))" ( (binary_expression "(piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9)" (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9)" ( (comma_expression "uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9" (assignment_expression "uVar14 = piVar7[1]" identifier = (subscript_expression "piVar7[1]" identifier [ number_literal ])) , (comma_expression "piVar21 = piVar19, uVar14 % puVar6[3] != uVar9" (assignment_expression "piVar21 = piVar19" identifier = identifier) , (binary_expression "uVar14 % puVar6[3] != uVar9" (binary_expression "uVar14 % puVar6[3]" identifier % (subscript_expression "puVar6[3]" identifier [ number_literal ])) != identifier))) ))) )) (goto_statement "goto code_r0x00122b06;" goto statement_identifier ;)) })) (if_statement "if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }" if (parenthesized_expression "(*piVar21 != 0)" ( (binary_expression "*piVar21 != 0" (pointer_expression "*piVar21" * identifier) != number_literal) )) (compound_statement "{\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }" { (expression_statement "uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);" (assignment_expression "uStack_4c = uStack_4c + *(int *)(*piVar21 + 8)" identifier = (binary_expression "uStack_4c + *(int *)(*piVar21 + 8)" identifier + (pointer_expression "*(int *)(*piVar21 + 8)" * (cast_expression "(int *)(*piVar21 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar21 + 8)" ( (binary_expression "*piVar21 + 8" (pointer_expression "*piVar21" * identifier) + number_literal) )))))) ;) (goto_statement "goto code_r0x00122a61;" goto statement_identifier ;) })) })) (labeled_statement "code_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);" statement_identifier : (expression_statement "iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);" (assignment_expression "iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" identifier = (call_expression "FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" identifier (argument_list "(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" ( identifier , identifier , (binary_expression "local_38[2] & 0x7ffffff" (subscript_expression "local_38[2]" identifier [ number_literal ]) & number_literal) , identifier )))) ;)) (expression_statement "uStack_4c = iVar15 + uStack_4c;" (assignment_expression "uStack_4c = iVar15 + uStack_4c" identifier = (binary_expression "iVar15 + uStack_4c" identifier + identifier)) ;) }))) (labeled_statement "code_r0x00122a61:\n    uStack_4c = uStack_4c | local_48;" statement_identifier : (expression_statement "uStack_4c = uStack_4c | local_48;" (assignment_expression "uStack_4c = uStack_4c | local_48" identifier = (binary_expression "uStack_4c | local_48" identifier | identifier)) ;)) (expression_statement "uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;" (assignment_expression "uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00" identifier = (binary_expression "CONCAT22(uVar8,uVar2) & 0xfbf08f00" (call_expression "CONCAT22(uVar8,uVar2)" identifier (argument_list "(uVar8,uVar2)" ( identifier , identifier ))) & number_literal)) ;) (expression_statement "*(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;" (assignment_expression "*(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff" (pointer_expression "*(ushort *)((int)puVar23 + 2)" * (cast_expression "(ushort *)((int)puVar23 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + 2)" ( (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff" (binary_expression "(ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9" (binary_expression "(ushort)(uStack_4c << 4) & 0x7000" (call_expression "(ushort)(uStack_4c << 4)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uStack_4c << 4)" ( (binary_expression "uStack_4c << 4" identifier << number_literal) ))) & number_literal) | (cast_expression "(ushort)uVar9" ( (type_descriptor "ushort" type_identifier) ) identifier)) | (binary_expression "(ushort)uStack_4c & 0xff" (cast_expression "(ushort)uStack_4c" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal))) ;) (expression_statement "*(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);" (assignment_expression "*(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10)" (pointer_expression "*(ushort *)puVar23" * (cast_expression "(ushort *)puVar23" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10)" (binary_expression "(ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf" (call_expression "(ushort)(uVar9 >> 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar9 >> 0x10)" ( (binary_expression "uVar9 >> 0x10" identifier >> number_literal) ))) | (binary_expression "(ushort)((uStack_4c << 4) >> 0x10) & 0xf" (call_expression "(ushort)((uStack_4c << 4) >> 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((uStack_4c << 4) >> 0x10)" ( (binary_expression "(uStack_4c << 4) >> 0x10" (parenthesized_expression "(uStack_4c << 4)" ( (binary_expression "uStack_4c << 4" identifier << number_literal) )) >> number_literal) ))) & number_literal)) | (call_expression "(ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(((uStack_4c & 0x800) << 0xf) >> 0x10)" ( (binary_expression "((uStack_4c & 0x800) << 0xf) >> 0x10" (parenthesized_expression "((uStack_4c & 0x800) << 0xf)" ( (binary_expression "(uStack_4c & 0x800) << 0xf" (parenthesized_expression "(uStack_4c & 0x800)" ( (binary_expression "uStack_4c & 0x800" identifier & number_literal) )) << number_literal) )) >> number_literal) ))))) ;) (labeled_statement "joined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;" statement_identifier : (if_statement "if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;" if (parenthesized_expression "(((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000))" ( (binary_expression "((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)" (parenthesized_expression "((bVar1 >> 2 & 1) == 0)" ( (binary_expression "(bVar1 >> 2 & 1) == 0" (parenthesized_expression "(bVar1 >> 2 & 1)" ( (binary_expression "bVar1 >> 2 & 1" (binary_expression "bVar1 >> 2" identifier >> number_literal) & number_literal) )) == number_literal) )) || (parenthesized_expression "(uStack_4c + 0x8000 < 0x10000)" ( (binary_expression "uStack_4c + 0x8000 < 0x10000" (binary_expression "uStack_4c + 0x8000" identifier + number_literal) < number_literal) ))) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;))) (break_statement "break;" break ;)) (case_statement "case 0x33:\n    iVar15 = FUN_00112810(0,local_48);\ncode_r0x00122342:\n    if (iVar15 == 1) break;\n    if (iVar15 == 0) goto LAB_0012238d;\n    if (iVar15 != 2) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    pcVar12 = "unexpected opcode while processing relocation %s";\n    goto LAB_0012236a;" case number_literal : (expression_statement "iVar15 = FUN_00112810(0,local_48);" (assignment_expression "iVar15 = FUN_00112810(0,local_48)" identifier = (call_expression "FUN_00112810(0,local_48)" identifier (argument_list "(0,local_48)" ( number_literal , identifier )))) ;) (labeled_statement "code_r0x00122342:\n    if (iVar15 == 1) break;" statement_identifier : (if_statement "if (iVar15 == 1) break;" if (parenthesized_expression "(iVar15 == 1)" ( (binary_expression "iVar15 == 1" identifier == number_literal) )) (break_statement "break;" break ;))) (if_statement "if (iVar15 == 0) goto LAB_0012238d;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;)) (if_statement "if (iVar15 != 2) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }" if (parenthesized_expression "(iVar15 != 2)" ( (binary_expression "iVar15 != 2" identifier != number_literal) )) (compound_statement "{\n                    \n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }" { (expression_statement "FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15)" identifier (argument_list "("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15)" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""relocate_special_relocatable"" " string_content ") , identifier ))) ;) })) (expression_statement "uVar20 = *(undefined4 *)(iVar5 + 4);" (assignment_expression "uVar20 = *(undefined4 *)(iVar5 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 4)" * (cast_expression "(undefined4 *)(iVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar12 = "unexpected opcode while processing relocation %s";" (assignment_expression "pcVar12 = "unexpected opcode while processing relocation %s"" identifier = (string_literal ""unexpected opcode while processing relocation %s"" " string_content ")) ;) (goto_statement "goto LAB_0012236a;" goto statement_identifier ;)) (case_statement "case 0x34:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);\n    *(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;\n    if (uVar8 < 0x7f) goto LAB_0012238d;\n    break;" case number_literal : (expression_statement "uVar2 = (ushort)*puVar23;" (assignment_expression "uVar2 = (ushort)*puVar23" identifier = (binary_expression "(ushort)*puVar23" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ;) (expression_statement "uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);" (assignment_expression "uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e)" identifier = (call_expression "FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e)" identifier (argument_list "(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e)" ( identifier , identifier , (binary_expression "(ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e" (binary_expression "(ushort)((int)(uint)uVar2 >> 3) & 0x40" (call_expression "(ushort)((int)(uint)uVar2 >> 3)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((int)(uint)uVar2 >> 3)" ( (binary_expression "(int)(uint)uVar2 >> 3" (cast_expression "(int)(uint)uVar2" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) >> number_literal) ))) & number_literal) | (binary_expression "(ushort)((int)(uint)uVar2 >> 2) & 0x3e" (call_expression "(ushort)((int)(uint)uVar2 >> 2)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((int)(uint)uVar2 >> 2)" ( (binary_expression "(int)(uint)uVar2 >> 2" (cast_expression "(int)(uint)uVar2" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) >> number_literal) ))) & number_literal)) )))) ;) (expression_statement "*(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;" (assignment_expression "*(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200" (pointer_expression "*(ushort *)puVar23" * (cast_expression "(ushort *)puVar23" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200" (binary_expression "uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2" (binary_expression "uVar2 & 0xfd07" identifier & number_literal) | (binary_expression "(uVar2 & 0x3e) << 2" (parenthesized_expression "(uVar2 & 0x3e)" ( (binary_expression "uVar2 & 0x3e" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 * 8 & 0x200" (binary_expression "uVar8 * 8" identifier * number_literal) & number_literal))) ;) (if_statement "if (uVar8 < 0x7f) goto LAB_0012238d;" if (parenthesized_expression "(uVar8 < 0x7f)" ( (binary_expression "uVar8 < 0x7f" identifier < number_literal) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 0x35:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = *(ushort *)((int)puVar23 + 2);\n    uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229f9:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);\n    uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;\n    if ((int)uStack_4c < 0) {\n      uVar14 = uVar14 | 0xa00000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\n    goto joined_r0x0012230f;" case number_literal : (expression_statement "uVar2 = (ushort)*puVar23;" (assignment_expression "uVar2 = (ushort)*puVar23" identifier = (binary_expression "(ushort)*puVar23" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ;) (expression_statement "uVar8 = *(ushort *)((int)puVar23 + 2);" (assignment_expression "uVar8 = *(ushort *)((int)puVar23 + 2)" identifier = (pointer_expression "*(ushort *)((int)puVar23 + 2)" * (cast_expression "(ushort *)((int)puVar23 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + 2)" ( (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);" (assignment_expression "uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1)" identifier = (binary_expression "((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1)" (parenthesized_expression "((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff)" ( (binary_expression "(uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff" (binary_expression "(uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf" (binary_expression "(uVar8 & 0x7000) >> 4" (parenthesized_expression "(uVar8 & 0x7000)" ( (binary_expression "uVar8 & 0x7000" identifier & number_literal) )) >> number_literal) | (binary_expression "((uVar2 & 0x400) << 0x10) >> 0xf" (parenthesized_expression "((uVar2 & 0x400) << 0x10)" ( (binary_expression "(uVar2 & 0x400) << 0x10" (parenthesized_expression "(uVar2 & 0x400)" ( (binary_expression "uVar2 & 0x400" identifier & number_literal) )) << number_literal) )) >> number_literal)) | (binary_expression "uVar8 & 0xff" identifier & number_literal)) )) * (parenthesized_expression "((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1)" ( (binary_expression "(uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1" (binary_expression "(uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2" (call_expression "(uint)((uVar2 & 0xf8ed) != 0xf0ad)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar2 & 0xf8ed) != 0xf0ad)" ( (binary_expression "(uVar2 & 0xf8ed) != 0xf0ad" (parenthesized_expression "(uVar2 & 0xf8ed)" ( (binary_expression "uVar2 & 0xf8ed" identifier & number_literal) )) != number_literal) ))) * number_literal) + number_literal) )))) ;) (if_statement "if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" if (parenthesized_expression "((char)*(byte *)((int)local_38 + 0xb) < '\0')" ( (binary_expression "(char)*(byte *)((int)local_38 + 0xb) < '\0'" (cast_expression "(char)*(byte *)((int)local_38 + 0xb)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)local_38 + 0xb)" * (cast_expression "(byte *)((int)local_38 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0xb)" ( (binary_expression "(int)local_38 + 0xb" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uStack_4c = uStack_4c + local_38[3];\n    }" { (expression_statement "uStack_4c = uStack_4c + local_38[3];" (assignment_expression "uStack_4c = uStack_4c + local_38[3]" identifier = (binary_expression "uStack_4c + local_38[3]" identifier + (subscript_expression "local_38[3]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" else (compound_statement "{\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" { (if_statement "if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }" if (parenthesized_expression "((*(byte *)((int)local_38 + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)((int)local_38 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)((int)local_38 + 0xb) & 8)" ( (binary_expression "*(byte *)((int)local_38 + 0xb) & 8" (pointer_expression "*(byte *)((int)local_38 + 0xb)" * (cast_expression "(byte *)((int)local_38 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0xb)" ( (binary_expression "(int)local_38 + 0xb" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }" { (expression_statement "FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);" (call_expression "FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff)" identifier (argument_list "("../../gold/object.h",0x6ab,"value",uVar8 & 0xff)" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""value"" " string_content ") , (binary_expression "uVar8 & 0xff" identifier & number_literal) ))) ;) })) (expression_statement "puVar6 = (uint *)local_38[3];" (assignment_expression "puVar6 = (uint *)local_38[3]" identifier = (cast_expression "(uint *)local_38[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_38[3]" identifier [ number_literal ]))) ;) (expression_statement "local_34 = *puVar6;" (assignment_expression "local_34 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (if_statement "if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }" if (parenthesized_expression "(uStack_4c < 0xffffff00)" ( (binary_expression "uStack_4c < 0xffffff00" identifier < number_literal) )) (compound_statement "{\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }" { (expression_statement "local_34 = local_34 + uStack_4c;" (assignment_expression "local_34 = local_34 + uStack_4c" identifier = (binary_expression "local_34 + uStack_4c" identifier + identifier)) ;) (expression_statement "uStack_4c = 0;" (assignment_expression "uStack_4c = 0" identifier = number_literal) ;) })) (expression_statement "uVar9 = local_34 % puVar6[3];" (assignment_expression "uVar9 = local_34 % puVar6[3]" identifier = (binary_expression "local_34 % puVar6[3]" identifier % (subscript_expression "puVar6[3]" identifier [ number_literal ]))) ;) (expression_statement "piVar21 = *(int **)(puVar6[2] + uVar9 * 4);" (assignment_expression "piVar21 = *(int **)(puVar6[2] + uVar9 * 4)" identifier = (pointer_expression "*(int **)(puVar6[2] + uVar9 * 4)" * (cast_expression "(int **)(puVar6[2] + uVar9 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6[2] + uVar9 * 4)" ( (binary_expression "puVar6[2] + uVar9 * 4" (subscript_expression "puVar6[2]" identifier [ number_literal ]) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }" if (parenthesized_expression "(piVar21 != (int *)0x0)" ( (binary_expression "piVar21 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }" { (expression_statement "uVar14 = ((int *)*piVar21)[1];" (assignment_expression "uVar14 = ((int *)*piVar21)[1]" identifier = (subscript_expression "((int *)*piVar21)[1]" (parenthesized_expression "((int *)*piVar21)" ( (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar7 = (int *)*piVar21;" (assignment_expression "piVar7 = (int *)*piVar21" identifier = (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (while_statement "while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }" while (parenthesized_expression "(piVar19 = piVar7, uVar14 != local_34)" ( (comma_expression "piVar19 = piVar7, uVar14 != local_34" (assignment_expression "piVar19 = piVar7" identifier = identifier) , (binary_expression "uVar14 != local_34" identifier != identifier)) )) (compound_statement "{\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }" { (expression_statement "piVar7 = (int *)*piVar19;" (assignment_expression "piVar7 = (int *)*piVar19" identifier = (cast_expression "(int *)*piVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar19" * identifier))) ;) (if_statement "if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;" if (parenthesized_expression "((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))" ( (binary_expression "(piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9)" (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9)" ( (comma_expression "uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9" (assignment_expression "uVar14 = piVar7[1]" identifier = (subscript_expression "piVar7[1]" identifier [ number_literal ])) , (comma_expression "piVar21 = piVar19, uVar14 % puVar6[3] != uVar9" (assignment_expression "piVar21 = piVar19" identifier = identifier) , (binary_expression "uVar14 % puVar6[3] != uVar9" (binary_expression "uVar14 % puVar6[3]" identifier % (subscript_expression "puVar6[3]" identifier [ number_literal ])) != identifier))) ))) )) (goto_statement "goto code_r0x00122ad6;" goto statement_identifier ;)) })) (if_statement "if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }" if (parenthesized_expression "(*piVar21 != 0)" ( (binary_expression "*piVar21 != 0" (pointer_expression "*piVar21" * identifier) != number_literal) )) (compound_statement "{\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }" { (expression_statement "uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);" (assignment_expression "uStack_4c = uStack_4c + *(int *)(*piVar21 + 8)" identifier = (binary_expression "uStack_4c + *(int *)(*piVar21 + 8)" identifier + (pointer_expression "*(int *)(*piVar21 + 8)" * (cast_expression "(int *)(*piVar21 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar21 + 8)" ( (binary_expression "*piVar21 + 8" (pointer_expression "*piVar21" * identifier) + number_literal) )))))) ;) (goto_statement "goto code_r0x001229f9;" goto statement_identifier ;) })) })) (labeled_statement "code_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);" statement_identifier : (expression_statement "iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);" (assignment_expression "iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" identifier = (call_expression "FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" identifier (argument_list "(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" ( identifier , identifier , (binary_expression "local_38[2] & 0x7ffffff" (subscript_expression "local_38[2]" identifier [ number_literal ]) & number_literal) , identifier )))) ;)) (expression_statement "uStack_4c = iVar15 + uStack_4c;" (assignment_expression "uStack_4c = iVar15 + uStack_4c" identifier = (binary_expression "iVar15 + uStack_4c" identifier + identifier)) ;) }))) (labeled_statement "code_r0x001229f9:\n    uStack_4c = uStack_4c | local_48;" statement_identifier : (expression_statement "uStack_4c = uStack_4c | local_48;" (assignment_expression "uStack_4c = uStack_4c | local_48" identifier = (binary_expression "uStack_4c | local_48" identifier | identifier)) ;)) (expression_statement "uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);" (assignment_expression "uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f)" identifier = (binary_expression "((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f)" (parenthesized_expression "((int)uStack_4c >> 0x1f ^ uStack_4c)" ( (binary_expression "(int)uStack_4c >> 0x1f ^ uStack_4c" (binary_expression "(int)uStack_4c >> 0x1f" (cast_expression "(int)uStack_4c" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ^ identifier) )) - (parenthesized_expression "((int)uStack_4c >> 0x1f)" ( (binary_expression "(int)uStack_4c >> 0x1f" (cast_expression "(int)uStack_4c" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;" (assignment_expression "uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00" identifier = (binary_expression "(uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00" (binary_expression "(uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff" (binary_expression "(uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4" (binary_expression "(uVar9 & 0x800) << 0xf" (parenthesized_expression "(uVar9 & 0x800)" ( (binary_expression "uVar9 & 0x800" identifier & number_literal) )) << number_literal) | (binary_expression "(uVar9 & 0x700) << 4" (parenthesized_expression "(uVar9 & 0x700)" ( (binary_expression "uVar9 & 0x700" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 & 0xff" identifier & number_literal)) | (binary_expression "CONCAT22(uVar2,uVar8) & 0xfb0f8f00" (call_expression "CONCAT22(uVar2,uVar8)" identifier (argument_list "(uVar2,uVar8)" ( identifier , identifier ))) & number_literal))) ;) (if_statement "if ((int)uStack_4c < 0) {\n      uVar14 = uVar14 | 0xa00000;\n    }" if (parenthesized_expression "((int)uStack_4c < 0)" ( (binary_expression "(int)uStack_4c < 0" (cast_expression "(int)uStack_4c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar14 = uVar14 | 0xa00000;\n    }" { (expression_statement "uVar14 = uVar14 | 0xa00000;" (assignment_expression "uVar14 = uVar14 | 0xa00000" identifier = (binary_expression "uVar14 | 0xa00000" identifier | number_literal)) ;) })) (expression_statement "*(ushort *)((int)puVar23 + 2) = (ushort)uVar14;" (assignment_expression "*(ushort *)((int)puVar23 + 2) = (ushort)uVar14" (pointer_expression "*(ushort *)((int)puVar23 + 2)" * (cast_expression "(ushort *)((int)puVar23 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + 2)" ( (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(ushort)uVar14" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "*(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);" (assignment_expression "*(ushort *)puVar23 = (ushort)(uVar14 >> 0x10)" (pointer_expression "*(ushort *)puVar23" * (cast_expression "(ushort *)puVar23" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (call_expression "(ushort)(uVar14 >> 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar14 >> 0x10)" ( (binary_expression "uVar14 >> 0x10" identifier >> number_literal) )))) ;) (goto_statement "goto joined_r0x0012230f;" goto statement_identifier ;)) (case_statement "case 0x36:\n    uVar14 = *puVar23;\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));\n    uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);\n    uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;\n    if (-1 < (int)uVar17) {\n      uVar14 = uVar14 | 0x800000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\njoined_r0x0012230f:\n    if ((int)uVar9 < 0x1000) goto LAB_0012238d;\n    break;" case number_literal : (expression_statement "uVar14 = *puVar23;" (assignment_expression "uVar14 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "uVar2 = *(ushort *)((int)puVar23 + 2);" (assignment_expression "uVar2 = *(ushort *)((int)puVar23 + 2)" identifier = (pointer_expression "*(ushort *)((int)puVar23 + 2)" * (cast_expression "(ushort *)((int)puVar23 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + 2)" ( (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));" (assignment_expression "uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1))" identifier = (call_expression "FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1))" identifier (argument_list "(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1))" ( identifier , identifier , (binary_expression "(uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1)" (parenthesized_expression "(uVar2 & 0xfff)" ( (binary_expression "uVar2 & 0xfff" identifier & number_literal) )) * (parenthesized_expression "(-(uint)(((ushort)uVar14 & 0x80) == 0) | 1)" ( (binary_expression "-(uint)(((ushort)uVar14 & 0x80) == 0) | 1" (unary_expression "-(uint)(((ushort)uVar14 & 0x80) == 0)" - (call_expression "(uint)(((ushort)uVar14 & 0x80) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((ushort)uVar14 & 0x80) == 0)" ( (binary_expression "((ushort)uVar14 & 0x80) == 0" (parenthesized_expression "((ushort)uVar14 & 0x80)" ( (binary_expression "(ushort)uVar14 & 0x80" (cast_expression "(ushort)uVar14" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal) )) == number_literal) )))) | number_literal) ))) )))) ;) (expression_statement "uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);" (assignment_expression "uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f)" identifier = (binary_expression "((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f)" (parenthesized_expression "((int)uVar17 >> 0x1f ^ uVar17)" ( (binary_expression "(int)uVar17 >> 0x1f ^ uVar17" (binary_expression "(int)uVar17 >> 0x1f" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ^ identifier) )) - (parenthesized_expression "((int)uVar17 >> 0x1f)" ( (binary_expression "(int)uVar17 >> 0x1f" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;" (assignment_expression "uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff" identifier = (binary_expression "CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff" (binary_expression "CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000" (call_expression "CONCAT22((ushort)uVar14,uVar2)" identifier (argument_list "((ushort)uVar14,uVar2)" ( (cast_expression "(ushort)uVar14" ( (type_descriptor "ushort" type_identifier) ) identifier) , identifier ))) & number_literal) | (binary_expression "uVar9 & 0xfff" identifier & number_literal))) ;) (if_statement "if (-1 < (int)uVar17) {\n      uVar14 = uVar14 | 0x800000;\n    }" if (parenthesized_expression "(-1 < (int)uVar17)" ( (binary_expression "-1 < (int)uVar17" number_literal < (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      uVar14 = uVar14 | 0x800000;\n    }" { (expression_statement "uVar14 = uVar14 | 0x800000;" (assignment_expression "uVar14 = uVar14 | 0x800000" identifier = (binary_expression "uVar14 | 0x800000" identifier | number_literal)) ;) })) (expression_statement "*(ushort *)((int)puVar23 + 2) = (ushort)uVar14;" (assignment_expression "*(ushort *)((int)puVar23 + 2) = (ushort)uVar14" (pointer_expression "*(ushort *)((int)puVar23 + 2)" * (cast_expression "(ushort *)((int)puVar23 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + 2)" ( (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(ushort)uVar14" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "*(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);" (assignment_expression "*(ushort *)puVar23 = (ushort)(uVar14 >> 0x10)" (pointer_expression "*(ushort *)puVar23" * (cast_expression "(ushort *)puVar23" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (call_expression "(ushort)(uVar14 >> 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar14 >> 0x10)" ( (binary_expression "uVar14 >> 0x10" identifier >> number_literal) )))) ;) (labeled_statement "joined_r0x0012230f:\n    if ((int)uVar9 < 0x1000) goto LAB_0012238d;" statement_identifier : (if_statement "if ((int)uVar9 < 0x1000) goto LAB_0012238d;" if (parenthesized_expression "((int)uVar9 < 0x1000)" ( (binary_expression "(int)uVar9 < 0x1000" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;))) (break_statement "break;" break ;)) (case_statement "case 0x66:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0x7fe;\n    if ((uVar9 & 0x400) != 0) {\n      uVar17 = uVar17 - 0x800;\n    }\n    uVar9 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;\njoined_r0x00122297:\n    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;\n    break;" case number_literal : (expression_statement "uVar14 = *puVar23;" (assignment_expression "uVar14 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "uVar9 = (uint)(ushort)uVar14 * 2;" (assignment_expression "uVar9 = (uint)(ushort)uVar14 * 2" identifier = (binary_expression "(uint)(ushort)uVar14 * 2" (cast_expression "(uint)(ushort)uVar14" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(ushort)uVar14" ( (type_descriptor "ushort" type_identifier) ) identifier)) * number_literal)) ;) (expression_statement "uVar17 = uVar9 & 0x7fe;" (assignment_expression "uVar17 = uVar9 & 0x7fe" identifier = (binary_expression "uVar9 & 0x7fe" identifier & number_literal)) ;) (if_statement "if ((uVar9 & 0x400) != 0) {\n      uVar17 = uVar17 - 0x800;\n    }" if (parenthesized_expression "((uVar9 & 0x400) != 0)" ( (binary_expression "(uVar9 & 0x400) != 0" (parenthesized_expression "(uVar9 & 0x400)" ( (binary_expression "uVar9 & 0x400" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar17 = uVar17 - 0x800;\n    }" { (expression_statement "uVar17 = uVar17 - 0x800;" (assignment_expression "uVar17 = uVar17 - 0x800" identifier = (binary_expression "uVar17 - 0x800" identifier - number_literal)) ;) })) (expression_statement "uVar9 = FUN_00072130(local_38,piVar3,uVar17);" (assignment_expression "uVar9 = FUN_00072130(local_38,piVar3,uVar17)" identifier = (call_expression "FUN_00072130(local_38,piVar3,uVar17)" identifier (argument_list "(local_38,piVar3,uVar17)" ( identifier , identifier , identifier )))) ;) (expression_statement "*(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;" (assignment_expression "*(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff" (pointer_expression "*(ushort *)puVar23" * (cast_expression "(ushort *)puVar23" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff" (binary_expression "(ushort)uVar14 & 0xf800" (cast_expression "(ushort)uVar14" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal) | (binary_expression "(ushort)((int)uVar9 >> 1) & 0x7ff" (call_expression "(ushort)((int)uVar9 >> 1)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((int)uVar9 >> 1)" ( (binary_expression "(int)uVar9 >> 1" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) & number_literal))) ;) (labeled_statement "joined_r0x00122297:\n    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;" statement_identifier : (if_statement "if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;" if (parenthesized_expression "(uVar9 + 0x800 < 0x1000)" ( (binary_expression "uVar9 + 0x800 < 0x1000" (binary_expression "uVar9 + 0x800" identifier + number_literal) < number_literal) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;))) (break_statement "break;" break ;)) (case_statement "case 0x67:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0xff;\n    if ((uVar9 & 0x80) != 0) {\n      uVar17 = uVar17 - 0x100;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;\n    if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;" case number_literal : (expression_statement "uVar14 = *puVar23;" (assignment_expression "uVar14 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "uVar9 = (uint)(ushort)uVar14 * 2;" (assignment_expression "uVar9 = (uint)(ushort)uVar14 * 2" identifier = (binary_expression "(uint)(ushort)uVar14 * 2" (cast_expression "(uint)(ushort)uVar14" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(ushort)uVar14" ( (type_descriptor "ushort" type_identifier) ) identifier)) * number_literal)) ;) (expression_statement "uVar17 = uVar9 & 0xff;" (assignment_expression "uVar17 = uVar9 & 0xff" identifier = (binary_expression "uVar9 & 0xff" identifier & number_literal)) ;) (if_statement "if ((uVar9 & 0x80) != 0) {\n      uVar17 = uVar17 - 0x100;\n    }" if (parenthesized_expression "((uVar9 & 0x80) != 0)" ( (binary_expression "(uVar9 & 0x80) != 0" (parenthesized_expression "(uVar9 & 0x80)" ( (binary_expression "uVar9 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar17 = uVar17 - 0x100;\n    }" { (expression_statement "uVar17 = uVar17 - 0x100;" (assignment_expression "uVar17 = uVar17 - 0x100" identifier = (binary_expression "uVar17 - 0x100" identifier - number_literal)) ;) })) (expression_statement "iVar15 = FUN_00072130(local_38,piVar3,uVar17);" (assignment_expression "iVar15 = FUN_00072130(local_38,piVar3,uVar17)" identifier = (call_expression "FUN_00072130(local_38,piVar3,uVar17)" identifier (argument_list "(local_38,piVar3,uVar17)" ( identifier , identifier , identifier )))) ;) (expression_statement "*(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;" (assignment_expression "*(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff" (pointer_expression "*(ushort *)puVar23" * (cast_expression "(ushort *)puVar23" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff" (binary_expression "(ushort)uVar14 & 0xff00" (cast_expression "(ushort)uVar14" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal) | (binary_expression "(ushort)(iVar15 >> 1) & 0xff" (call_expression "(ushort)(iVar15 >> 1)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(iVar15 >> 1)" ( (binary_expression "iVar15 >> 1" identifier >> number_literal) ))) & number_literal))) ;) (if_statement "if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;" if (parenthesized_expression "(iVar15 + 0x100U < 0x200)" ( (binary_expression "iVar15 + 0x100U < 0x200" (binary_expression "iVar15 + 0x100U" identifier + number_literal) < number_literal) )) (goto_statement "goto LAB_0012238d;" goto statement_identifier ;))) })) (expression_statement "uVar20 = *(undefined4 *)(iVar5 + 4);" (assignment_expression "uVar20 = *(undefined4 *)(iVar5 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 4)" * (cast_expression "(undefined4 *)(iVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar12 = "relocation overflow in %s";" (assignment_expression "pcVar12 = "relocation overflow in %s"" identifier = (string_literal ""relocation overflow in %s"" " string_content ")) ;) (labeled_statement "LAB_0012236a:\n  uVar13 = gettext(pcVar12);" statement_identifier : (expression_statement "uVar13 = gettext(pcVar12);" (assignment_expression "uVar13 = gettext(pcVar12)" identifier = (call_expression "gettext(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier )))) ;)) (expression_statement "FUN_0023bd50(param_4,param_7,*param_6,0,uVar13,uVar20);" (call_expression "FUN_0023bd50(param_4,param_7,*param_6,0,uVar13,uVar20)" identifier (argument_list "(param_4,param_7,*param_6,0,uVar13,uVar20)" ( identifier , identifier , (pointer_expression "*param_6" * identifier) , number_literal , identifier , identifier ))) ;) (labeled_statement "LAB_0012238d:\n  FUN_00072240(local_40);" statement_identifier : (expression_statement "FUN_00072240(local_40);" (call_expression "FUN_00072240(local_40)" identifier (argument_list "(local_40)" ( identifier ))) ;)) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (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 )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (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) ))) <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & 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 ") , IDENT ))) ;) })) (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 = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_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 , IDENT )))) ;) }))) (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 ") , 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 ") , 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 (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , LIT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) - IDENT)) ;) })) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression IDENT * LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - (subscript_expression IDENT [ LIT ])) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) )) + (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) )) * LIT)) ))) <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) & LIT) ))) & (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT)) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (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 = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }))) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (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 ") , IDENT ))) ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) * LIT)) )))))) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (parenthesized_expression ( IDENT ))) * IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) - LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT ^ (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ IDENT) )) & LIT))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (binary_expression IDENT >> LIT) & LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression IDENT ^ (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) ^ IDENT) )) & LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT , IDENT , LIT , IDENT , LIT )))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) )) - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) & LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT , IDENT , LIT , IDENT , LIT )))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT ^ (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT | IDENT) )) ^ IDENT) )) & LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT | IDENT) )) + LIT) )))) )) (goto_statement goto statement_identifier ;)) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT >> LIT) & LIT) | (binary_expression IDENT & LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) }) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT % (subscript_expression IDENT [ LIT ])) != IDENT))) ))) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != 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 (pointer_expression * IDENT) + LIT) )))))) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | IDENT)) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression IDENT & LIT)) | (binary_expression IDENT & LIT))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) )) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) )) >> LIT) | IDENT) | (binary_expression IDENT & LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) }) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , (call_expression IDENT (argument_list ( IDENT , IDENT ))) ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT % (subscript_expression IDENT [ LIT ])) != IDENT))) ))) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != 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 (pointer_expression * IDENT) + LIT) )))))) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) & LIT) | (cast_expression ( (type_descriptor TYPE) ) IDENT)) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT) ))) & LIT)) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) )) >> LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) ))) )) (goto_statement goto statement_identifier ;))) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (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 ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) ))) & LIT) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) ))) & LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression (binary_expression (binary_expression IDENT & LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (binary_expression IDENT * LIT) & LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) )) >> LIT)) | (binary_expression IDENT & LIT)) )) * (parenthesized_expression ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) * LIT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) }) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , (binary_expression IDENT & LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT % (subscript_expression IDENT [ LIT ])) != IDENT))) ))) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != 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 (pointer_expression * IDENT) + LIT) )))))) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ^ IDENT) )) - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT & LIT)) | (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) & LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )))) | LIT) ))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ^ IDENT) )) - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT ))) & LIT) | (binary_expression IDENT & LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;))) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) & LIT))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (goto_statement goto statement_identifier ;))) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) & LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (goto_statement goto statement_identifier ;))) })) (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 = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * IDENT) , LIT , IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (return_statement return ;) })))
(function_definition "void __regparm2\nFUN_00121f40(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n            int *param_6,undefined4 param_7,undefined4 param_8,int param_9,int param_10,int param_11\n            ,undefined4 param_12,int *param_13)\n\n{\n  byte bVar1;\n  ushort uVar2;\n  int *piVar3;\n  code *pcVar4;\n  int iVar5;\n  uint *puVar6;\n  int *piVar7;\n  ushort uVar8;\n  uint uVar9;\n  int iVar10;\n  int iVar11;\n  char *pcVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  int iVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  int *piVar21;\n  uint uVar22;\n  uint *puVar23;\n  uint uStack_4c;\n  uint local_48;\n  undefined4 *local_40;\n  undefined4 *local_38;\n  uint local_34;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  uint local_20;\n  \n  if (param_5 != 9) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2);\n  }\n  piVar3 = *(int **)(param_4 + 8);\n  pcVar4 = *(code **)(*piVar3 + 0x8c);\n  if (pcVar4 == FUN_00070d40) {\n    uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    uVar9 = (*pcVar4)(piVar3);\n  }\n  uVar14 = param_6[1];\n  uVar17 = uVar14 & 0xff;\n  iVar5 = *(int *)(DAT_005eb1c8 + uVar17 * 4);\n  uVar22 = uVar14 >> 8;\n  if (((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)) || ((*(byte *)(iVar5 + 0x34) & 2) == 0)) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22);\n  }\n  if (uVar9 <= uVar22) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3);\n  }\n  if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar22) {\n                    \n    FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5);\n  }\n  iVar15 = piVar3[0x37] + uVar22 * 0x10;\n  uVar9 = *(uint *)(iVar15 + 8) & 0x7ffffff;\n  if ((*(byte *)(iVar15 + 0xb) & 8) == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14);\n  }\n  if (*(code **)(*piVar3 + 0x60) == FUN_00071550) {\n    uVar16 = piVar3[0xf] - piVar3[0xe] >> 2;\n    if (uVar16 <= uVar9) {\n                    \n      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);\n    }\n    iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4);\n  }\n  else {\n    iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);\n  }\n  if (iVar15 == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0);\n  }\n  if ((*(byte *)(iVar15 + 0x90) & 1) == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15);\n  }\n  iVar18 = *(int *)(iVar15 + 100);\n  if (iVar18 == 0) {\n                    \n    FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15);\n  }\n  iVar15 = *param_6;\n  if (param_9 == -1) {\n    iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15);\n    if (iVar10 == -1) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);\n    }\n  }\n  else {\n    iVar10 = iVar15 + param_9;\n  }\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10);\n  }\n  iVar11 = iVar10;\n  if (*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d) == '\0') {\n    iVar11 = iVar10 + param_11;\n    if (param_9 != -1) {\n      iVar11 = (iVar10 + param_11) - param_9;\n    }\n  }\n  *param_13 = iVar11;\n  iVar10 = piVar3[0x38];\n  param_13[1] = iVar18 * 0x100 + uVar17;\n  uVar9 = iVar10 - piVar3[0x37] >> 4;\n  if (uVar9 <= uVar22) {\n                    \n    FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9);\n  }\n  local_38 = (undefined4 *)(piVar3[0x37] + uVar22 * 0x10);\n  iVar18 = piVar3[0x52];\n  local_2c = 0;\n  local_28 = 0xffffffff;\n  local_24 = 0x80000000;\n  local_20 = 0;\n  if ((uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8) <= uVar22) {\n                    \n                    \n    FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22);\n  }\n  local_48 = 1 << ((byte)(uVar14 >> 8) & 0x1f) & *(uint *)(iVar18 + (uVar14 >> 0xd) * 4);\n  if ((local_48 != 0) && (local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0)) {\n                    \n    local_48 = FUN_00072130(local_38,piVar3,0);\n    local_48 = local_48 & 1;\n    if (local_48 == 0) {\n      local_48 = 1;\n    }\n    else {\n                    \n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }\n  }\n  local_40 = &local_2c;\n  puVar23 = (uint *)(iVar15 + param_10);\n  if (99 < uVar17 - 4) {\nLAB_00122ab1:\n                    \n                    \n    FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);\n  }\n  iVar18 = (int)&__DT_PLTGOT + *(int *)(&DAT_00467d20 + (uVar17 - 4) * 4);\n  switch(uVar17) {\n  case 4:\n  case 0x2c:\n  case 0x2e:\n  case 0x30:\n  case 0x32:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x4c:\n  case 0x4d:\n  case 0x4e:\n  case 0x4f:\n  case 0x50:\n  case 0x51:\n  case 0x52:\n  case 0x53:\n  case 0x55:\n  case 0x58:\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    uVar13 = gettext("cannot handle %s in a relocatable link");\n    FUN_0023b810(uVar13,uVar20);\n    goto LAB_0012238d;\n  case 5:\n    uVar9 = (uint)(ushort)*puVar23;\n    if ((short)(ushort)*puVar23 < 0) {\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(ushort *)puVar23 = (ushort)iVar15;\n    if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;\n    break;\n  case 6:\n    uVar14 = *puVar23;\n    uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);\n    *puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;\n    goto joined_r0x00122297;\n  case 7:\n    uVar2 = (ushort)*puVar23;\n    iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);\n    *(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;\n    if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;\n    break;\n  case 8:\n    bVar1 = (byte)*puVar23;\n    uVar9 = bVar1 - 0x100;\n    if (-1 < (char)bVar1) {\n      uVar9 = (uint)bVar1;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(byte *)puVar23 = (byte)iVar15;\n    if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;\n    break;\n  default:\n    goto LAB_00122ab1;\n  case 10:\n  case 0x10:\n  case 0x1e:\n    iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0xb:\n    uVar9 = *puVar23;\n    uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);\n    iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);\n    *(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;\n    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;\n    break;\n  case 0xf:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n    iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0x2a:\n    uVar9 = *puVar23;\n    uVar14 = uVar9 & 0x7fffffff;\n    if ((uVar9 & 0x40000000) != 0) {\n      uVar14 = 0x7fffffff;\n    }\n    uVar14 = FUN_00072130(local_38,piVar3,uVar14);\n    *puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;\n    if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar9 = *puVar23;\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;\n    uStack_4c = uVar14 - 0x10000;\n    if ((uVar9 >> 4 & 0x8000) == 0) {\n      uStack_4c = uVar14;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229a9:\n    uStack_4c = uStack_4c | local_48;\n    *puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar8 = (ushort)*puVar23;\n    uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;\n    uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;\n    uStack_4c = uVar9 - 0x10000;\n    if ((uVar14 & 0x8000) == 0) {\n      uStack_4c = uVar9;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x00122a61:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;\n    *(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;\n    *(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);\njoined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;\n    break;\n  case 0x33:\n    iVar15 = FUN_00112810(0,local_48);\ncode_r0x00122342:\n    if (iVar15 == 1) break;\n    if (iVar15 == 0) goto LAB_0012238d;\n    if (iVar15 != 2) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    pcVar12 = "unexpected opcode while processing relocation %s";\n    goto LAB_0012236a;\n  case 0x34:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);\n    *(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;\n    if (uVar8 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = *(ushort *)((int)puVar23 + 2);\n    uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229f9:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);\n    uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;\n    if ((int)uStack_4c < 0) {\n      uVar14 = uVar14 | 0xa00000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar14 = *puVar23;\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));\n    uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);\n    uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;\n    if (-1 < (int)uVar17) {\n      uVar14 = uVar14 | 0x800000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\njoined_r0x0012230f:\n    if ((int)uVar9 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x66:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0x7fe;\n    if ((uVar9 & 0x400) != 0) {\n      uVar17 = uVar17 - 0x800;\n    }\n    uVar9 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;\njoined_r0x00122297:\n    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x67:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0xff;\n    if ((uVar9 & 0x80) != 0) {\n      uVar17 = uVar17 - 0x100;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;\n    if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;\n  }\n  uVar20 = *(undefined4 *)(iVar5 + 4);\n  pcVar12 = "relocation overflow in %s";\nLAB_0012236a:\n  uVar13 = gettext(pcVar12);\n  FUN_0023bd50(param_4,param_7,*param_6,0,uVar13,uVar20);\nLAB_0012238d:\n  FUN_00072240(local_40);\n  return;\n}" (primitive_type "void") (ERROR "__regparm2" (identifier "__regparm2")) (function_declarator "FUN_00121f40(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n            int *param_6,undefined4 param_7,undefined4 param_8,int param_9,int param_10,int param_11\n            ,undefined4 param_12,int *param_13)" (identifier "FUN_00121f40") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n            int *param_6,undefined4 param_7,undefined4 param_8,int param_9,int param_10,int param_11\n            ,undefined4 param_12,int *param_13)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "int *param_6" (primitive_type "int") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "undefined4 param_7" (type_identifier "undefined4") (identifier "param_7")) (, ",") (parameter_declaration "undefined4 param_8" (type_identifier "undefined4") (identifier "param_8")) (, ",") (parameter_declaration "int param_9" (primitive_type "int") (identifier "param_9")) (, ",") (parameter_declaration "int param_10" (primitive_type "int") (identifier "param_10")) (, ",") (parameter_declaration "int param_11" (primitive_type "int") (identifier "param_11")) (, ",") (parameter_declaration "undefined4 param_12" (type_identifier "undefined4") (identifier "param_12")) (, ",") (parameter_declaration "int *param_13" (primitive_type "int") (pointer_declarator "*param_13" (* "*") (identifier "param_13"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  ushort uVar2;\n  int *piVar3;\n  code *pcVar4;\n  int iVar5;\n  uint *puVar6;\n  int *piVar7;\n  ushort uVar8;\n  uint uVar9;\n  int iVar10;\n  int iVar11;\n  char *pcVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  int iVar18;\n  int *piVar19;\n  undefined4 uVar20;\n  int *piVar21;\n  uint uVar22;\n  uint *puVar23;\n  uint uStack_4c;\n  uint local_48;\n  undefined4 *local_40;\n  undefined4 *local_38;\n  uint local_34;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  uint local_20;\n  \n  if (param_5 != 9) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2);\n  }\n  piVar3 = *(int **)(param_4 + 8);\n  pcVar4 = *(code **)(*piVar3 + 0x8c);\n  if (pcVar4 == FUN_00070d40) {\n    uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    uVar9 = (*pcVar4)(piVar3);\n  }\n  uVar14 = param_6[1];\n  uVar17 = uVar14 & 0xff;\n  iVar5 = *(int *)(DAT_005eb1c8 + uVar17 * 4);\n  uVar22 = uVar14 >> 8;\n  if (((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)) || ((*(byte *)(iVar5 + 0x34) & 2) == 0)) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22);\n  }\n  if (uVar9 <= uVar22) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3);\n  }\n  if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar22) {\n                    \n    FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5);\n  }\n  iVar15 = piVar3[0x37] + uVar22 * 0x10;\n  uVar9 = *(uint *)(iVar15 + 8) & 0x7ffffff;\n  if ((*(byte *)(iVar15 + 0xb) & 8) == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14);\n  }\n  if (*(code **)(*piVar3 + 0x60) == FUN_00071550) {\n    uVar16 = piVar3[0xf] - piVar3[0xe] >> 2;\n    if (uVar16 <= uVar9) {\n                    \n      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);\n    }\n    iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4);\n  }\n  else {\n    iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);\n  }\n  if (iVar15 == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0);\n  }\n  if ((*(byte *)(iVar15 + 0x90) & 1) == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15);\n  }\n  iVar18 = *(int *)(iVar15 + 100);\n  if (iVar18 == 0) {\n                    \n    FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15);\n  }\n  iVar15 = *param_6;\n  if (param_9 == -1) {\n    iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15);\n    if (iVar10 == -1) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);\n    }\n  }\n  else {\n    iVar10 = iVar15 + param_9;\n  }\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10);\n  }\n  iVar11 = iVar10;\n  if (*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d) == '\0') {\n    iVar11 = iVar10 + param_11;\n    if (param_9 != -1) {\n      iVar11 = (iVar10 + param_11) - param_9;\n    }\n  }\n  *param_13 = iVar11;\n  iVar10 = piVar3[0x38];\n  param_13[1] = iVar18 * 0x100 + uVar17;\n  uVar9 = iVar10 - piVar3[0x37] >> 4;\n  if (uVar9 <= uVar22) {\n                    \n    FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9);\n  }\n  local_38 = (undefined4 *)(piVar3[0x37] + uVar22 * 0x10);\n  iVar18 = piVar3[0x52];\n  local_2c = 0;\n  local_28 = 0xffffffff;\n  local_24 = 0x80000000;\n  local_20 = 0;\n  if ((uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8) <= uVar22) {\n                    \n                    \n    FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22);\n  }\n  local_48 = 1 << ((byte)(uVar14 >> 8) & 0x1f) & *(uint *)(iVar18 + (uVar14 >> 0xd) * 4);\n  if ((local_48 != 0) && (local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0)) {\n                    \n    local_48 = FUN_00072130(local_38,piVar3,0);\n    local_48 = local_48 & 1;\n    if (local_48 == 0) {\n      local_48 = 1;\n    }\n    else {\n                    \n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }\n  }\n  local_40 = &local_2c;\n  puVar23 = (uint *)(iVar15 + param_10);\n  if (99 < uVar17 - 4) {\nLAB_00122ab1:\n                    \n                    \n    FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);\n  }\n  iVar18 = (int)&__DT_PLTGOT + *(int *)(&DAT_00467d20 + (uVar17 - 4) * 4);\n  switch(uVar17) {\n  case 4:\n  case 0x2c:\n  case 0x2e:\n  case 0x30:\n  case 0x32:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x4c:\n  case 0x4d:\n  case 0x4e:\n  case 0x4f:\n  case 0x50:\n  case 0x51:\n  case 0x52:\n  case 0x53:\n  case 0x55:\n  case 0x58:\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    uVar13 = gettext("cannot handle %s in a relocatable link");\n    FUN_0023b810(uVar13,uVar20);\n    goto LAB_0012238d;\n  case 5:\n    uVar9 = (uint)(ushort)*puVar23;\n    if ((short)(ushort)*puVar23 < 0) {\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(ushort *)puVar23 = (ushort)iVar15;\n    if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;\n    break;\n  case 6:\n    uVar14 = *puVar23;\n    uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);\n    *puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;\n    goto joined_r0x00122297;\n  case 7:\n    uVar2 = (ushort)*puVar23;\n    iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);\n    *(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;\n    if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;\n    break;\n  case 8:\n    bVar1 = (byte)*puVar23;\n    uVar9 = bVar1 - 0x100;\n    if (-1 < (char)bVar1) {\n      uVar9 = (uint)bVar1;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(byte *)puVar23 = (byte)iVar15;\n    if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;\n    break;\n  default:\n    goto LAB_00122ab1;\n  case 10:\n  case 0x10:\n  case 0x1e:\n    iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0xb:\n    uVar9 = *puVar23;\n    uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);\n    iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);\n    *(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;\n    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;\n    break;\n  case 0xf:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n    iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0x2a:\n    uVar9 = *puVar23;\n    uVar14 = uVar9 & 0x7fffffff;\n    if ((uVar9 & 0x40000000) != 0) {\n      uVar14 = 0x7fffffff;\n    }\n    uVar14 = FUN_00072130(local_38,piVar3,uVar14);\n    *puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;\n    if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar9 = *puVar23;\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;\n    uStack_4c = uVar14 - 0x10000;\n    if ((uVar9 >> 4 & 0x8000) == 0) {\n      uStack_4c = uVar14;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229a9:\n    uStack_4c = uStack_4c | local_48;\n    *puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar8 = (ushort)*puVar23;\n    uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;\n    uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;\n    uStack_4c = uVar9 - 0x10000;\n    if ((uVar14 & 0x8000) == 0) {\n      uStack_4c = uVar9;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x00122a61:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;\n    *(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;\n    *(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);\njoined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;\n    break;\n  case 0x33:\n    iVar15 = FUN_00112810(0,local_48);\ncode_r0x00122342:\n    if (iVar15 == 1) break;\n    if (iVar15 == 0) goto LAB_0012238d;\n    if (iVar15 != 2) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    pcVar12 = "unexpected opcode while processing relocation %s";\n    goto LAB_0012236a;\n  case 0x34:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);\n    *(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;\n    if (uVar8 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = *(ushort *)((int)puVar23 + 2);\n    uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229f9:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);\n    uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;\n    if ((int)uStack_4c < 0) {\n      uVar14 = uVar14 | 0xa00000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar14 = *puVar23;\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));\n    uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);\n    uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;\n    if (-1 < (int)uVar17) {\n      uVar14 = uVar14 | 0x800000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\njoined_r0x0012230f:\n    if ((int)uVar9 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x66:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0x7fe;\n    if ((uVar9 & 0x400) != 0) {\n      uVar17 = uVar17 - 0x800;\n    }\n    uVar9 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;\njoined_r0x00122297:\n    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x67:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0xff;\n    if ((uVar9 & 0x80) != 0) {\n      uVar17 = uVar17 - 0x100;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;\n    if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;\n  }\n  uVar20 = *(undefined4 *)(iVar5 + 4);\n  pcVar12 = "relocation overflow in %s";\nLAB_0012236a:\n  uVar13 = gettext(pcVar12);\n  FUN_0023bd50(param_4,param_7,*param_6,0,uVar13,uVar20);\nLAB_0012238d:\n  FUN_00072240(local_40);\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "ushort uVar2;" (type_identifier "ushort") (identifier "uVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "code *pcVar4;" (type_identifier "code") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint *puVar6;" (type_identifier "uint") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "ushort uVar8;" (type_identifier "ushort") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "char *pcVar12;" (primitive_type "char") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "undefined4 uVar13;" (type_identifier "undefined4") (identifier "uVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "int *piVar19;" (primitive_type "int") (pointer_declarator "*piVar19" (* "*") (identifier "piVar19")) (; ";")) (declaration "undefined4 uVar20;" (type_identifier "undefined4") (identifier "uVar20") (; ";")) (declaration "int *piVar21;" (primitive_type "int") (pointer_declarator "*piVar21" (* "*") (identifier "piVar21")) (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "uint *puVar23;" (type_identifier "uint") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "uint uStack_4c;" (type_identifier "uint") (identifier "uStack_4c") (; ";")) (declaration "uint local_48;" (type_identifier "uint") (identifier "local_48") (; ";")) (declaration "undefined4 *local_40;" (type_identifier "undefined4") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "undefined4 *local_38;" (type_identifier "undefined4") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (declaration "uint local_34;" (type_identifier "uint") (identifier "local_34") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "uint local_20;" (type_identifier "uint") (identifier "local_20") (; ";")) (if_statement "if (param_5 != 9) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2);\n  }" (if "if") (parenthesized_expression "(param_5 != 9)" (( "(") (binary_expression "param_5 != 9" (identifier "param_5") (!= "!=") (number_literal "9")) () ")")) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2);\n  }" ({ "{") (expression_statement "FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2)" (identifier "FUN_002446e0") (argument_list "("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2)" (( "(") (string_literal ""../../gold/arm.cc"" (" """) (string_content "../../gold/arm.cc") (" """)) (, ",") (number_literal "0x28db") (, ",") (string_literal ""relocate_special_relocatable"" (" """) (string_content "relocate_special_relocatable") (" """)) (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar3 = *(int **)(param_4 + 8);" (assignment_expression "piVar3 = *(int **)(param_4 + 8)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(param_4 + 8)" (* "*") (cast_expression "(int **)(param_4 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 8)" (( "(") (binary_expression "param_4 + 8" (identifier "param_4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0x8c);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0x8c)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(*piVar3 + 0x8c)" (* "*") (cast_expression "(code **)(*piVar3 + 0x8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0x8c)" (( "(") (binary_expression "*piVar3 + 0x8c" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0x8c")) () ")"))))) (; ";")) (if_statement "if (pcVar4 == FUN_00070d40) {\n    uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    uVar9 = (*pcVar4)(piVar3);\n  }" (if "if") (parenthesized_expression "(pcVar4 == FUN_00070d40)" (( "(") (binary_expression "pcVar4 == FUN_00070d40" (identifier "pcVar4") (== "==") (identifier "FUN_00070d40")) () ")")) (compound_statement "{\n    uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }" ({ "{") (expression_statement "uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3);" (assignment_expression "uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(*piVar3 + 0xbc))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xbc))" (( "(") (pointer_expression "**(code **)(*piVar3 + 0xbc)" (* "*") (pointer_expression "*(code **)(*piVar3 + 0xbc)" (* "*") (cast_expression "(code **)(*piVar3 + 0xbc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xbc)" (( "(") (binary_expression "*piVar3 + 0xbc" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xbc")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    uVar9 = (*pcVar4)(piVar3);\n  }" (else "else") (compound_statement "{\n    uVar9 = (*pcVar4)(piVar3);\n  }" ({ "{") (expression_statement "uVar9 = (*pcVar4)(piVar3);" (assignment_expression "uVar9 = (*pcVar4)(piVar3)" (identifier "uVar9") (= "=") (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar14 = param_6[1];" (assignment_expression "uVar14 = param_6[1]" (identifier "uVar14") (= "=") (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar17 = uVar14 & 0xff;" (assignment_expression "uVar17 = uVar14 & 0xff" (identifier "uVar17") (= "=") (binary_expression "uVar14 & 0xff" (identifier "uVar14") (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "iVar5 = *(int *)(DAT_005eb1c8 + uVar17 * 4);" (assignment_expression "iVar5 = *(int *)(DAT_005eb1c8 + uVar17 * 4)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(DAT_005eb1c8 + uVar17 * 4)" (* "*") (cast_expression "(int *)(DAT_005eb1c8 + uVar17 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_005eb1c8 + uVar17 * 4)" (( "(") (binary_expression "DAT_005eb1c8 + uVar17 * 4" (identifier "DAT_005eb1c8") (+ "+") (binary_expression "uVar17 * 4" (identifier "uVar17") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar22 = uVar14 >> 8;" (assignment_expression "uVar22 = uVar14 >> 8" (identifier "uVar22") (= "=") (binary_expression "uVar14 >> 8" (identifier "uVar14") (>> ">>") (number_literal "8"))) (; ";")) (if_statement "if (((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)) || ((*(byte *)(iVar5 + 0x34) & 2) == 0)) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22);\n  }" (if "if") (parenthesized_expression "(((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)) || ((*(byte *)(iVar5 + 0x34) & 2) == 0))" (( "(") (binary_expression "((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)) || ((*(byte *)(iVar5 + 0x34) & 2) == 0)" (parenthesized_expression "((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1))" (( "(") (binary_expression "(iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)" (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar5 + 0x1c) != 1)" (( "(") (binary_expression "*(int *)(iVar5 + 0x1c) != 1" (pointer_expression "*(int *)(iVar5 + 0x1c)" (* "*") (cast_expression "(int *)(iVar5 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1c)" (( "(") (binary_expression "iVar5 + 0x1c" (identifier "iVar5") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "1")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(iVar5 + 0x34) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(iVar5 + 0x34) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x34) & 2)" (( "(") (binary_expression "*(byte *)(iVar5 + 0x34) & 2" (pointer_expression "*(byte *)(iVar5 + 0x34)" (* "*") (cast_expression "(byte *)(iVar5 + 0x34)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x34)" (( "(") (binary_expression "iVar5 + 0x34" (identifier "iVar5") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22);\n  }" ({ "{") (expression_statement "FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22)" (identifier "FUN_002446e0") (argument_list "("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22)" (( "(") (string_literal ""../../gold/arm.cc"" (" """) (string_content "../../gold/arm.cc") (" """)) (, ",") (number_literal "0x28ef") (, ",") (string_literal ""relocate_special_relocatable"" (" """) (string_content "relocate_special_relocatable") (" """)) (, ",") (identifier "uVar22") () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar9 <= uVar22) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3);\n  }" (if "if") (parenthesized_expression "(uVar9 <= uVar22)" (( "(") (binary_expression "uVar9 <= uVar22" (identifier "uVar9") (<= "<=") (identifier "uVar22")) () ")")) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3);\n  }" ({ "{") (expression_statement "FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3)" (identifier "FUN_002446e0") (argument_list "("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3)" (( "(") (string_literal ""../../gold/arm.cc"" (" """) (string_content "../../gold/arm.cc") (" """)) (, ",") (number_literal "0x28f3") (, ",") (string_literal ""relocate_special_relocatable"" (" """) (string_content "relocate_special_relocatable") (" """)) (, ",") (identifier "piVar3") () ")"))) (; ";")) (} "}"))) (if_statement "if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar22) {\n                    \n    FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5);\n  }" (if "if") (parenthesized_expression "((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar22)" (( "(") (binary_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar22" (call_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar3[0x38] - piVar3[0x37] >> 4)" (( "(") (binary_expression "piVar3[0x38] - piVar3[0x37] >> 4" (binary_expression "piVar3[0x38] - piVar3[0x37]" (subscript_expression "piVar3[0x38]" (identifier "piVar3") ([ "[") (number_literal "0x38") (] "]")) (- "-") (subscript_expression "piVar3[0x37]" (identifier "piVar3") ([ "[") (number_literal "0x37") (] "]"))) (>> ">>") (number_literal "4")) () ")"))) (<= "<=") (identifier "uVar22")) () ")")) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5);\n  }" ({ "{") (expression_statement "FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5);" (call_expression "FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5)" (identifier "FUN_002446e0") (argument_list "("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5)" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x8db") (, ",") (string_literal ""local_symbol_input_shndx"" (" """) (string_content "local_symbol_input_shndx") (" """)) (, ",") (identifier "iVar5") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar15 = piVar3[0x37] + uVar22 * 0x10;" (assignment_expression "iVar15 = piVar3[0x37] + uVar22 * 0x10" (identifier "iVar15") (= "=") (binary_expression "piVar3[0x37] + uVar22 * 0x10" (subscript_expression "piVar3[0x37]" (identifier "piVar3") ([ "[") (number_literal "0x37") (] "]")) (+ "+") (binary_expression "uVar22 * 0x10" (identifier "uVar22") (* "*") (number_literal "0x10")))) (; ";")) (expression_statement "uVar9 = *(uint *)(iVar15 + 8) & 0x7ffffff;" (assignment_expression "uVar9 = *(uint *)(iVar15 + 8) & 0x7ffffff" (identifier "uVar9") (= "=") (binary_expression "*(uint *)(iVar15 + 8) & 0x7ffffff" (pointer_expression "*(uint *)(iVar15 + 8)" (* "*") (cast_expression "(uint *)(iVar15 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 8)" (( "(") (binary_expression "iVar15 + 8" (identifier "iVar15") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0x7ffffff"))) (; ";")) (if_statement "if ((*(byte *)(iVar15 + 0xb) & 8) == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14);\n  }" (if "if") (parenthesized_expression "((*(byte *)(iVar15 + 0xb) & 8) == 0)" (( "(") (binary_expression "(*(byte *)(iVar15 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar15 + 0xb) & 8)" (( "(") (binary_expression "*(byte *)(iVar15 + 0xb) & 8" (pointer_expression "*(byte *)(iVar15 + 0xb)" (* "*") (cast_expression "(byte *)(iVar15 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0xb)" (( "(") (binary_expression "iVar15 + 0xb" (identifier "iVar15") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14);\n  }" ({ "{") (expression_statement "FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14)" (identifier "FUN_002446e0") (argument_list "("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14)" (( "(") (string_literal ""../../gold/arm.cc"" (" """) (string_content "../../gold/arm.cc") (" """)) (, ",") (number_literal "0x28fb") (, ",") (string_literal ""relocate_special_relocatable"" (" """) (string_content "relocate_special_relocatable") (" """)) (, ",") (identifier "uVar14") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(code **)(*piVar3 + 0x60) == FUN_00071550) {\n    uVar16 = piVar3[0xf] - piVar3[0xe] >> 2;\n    if (uVar16 <= uVar9) {\n                    \n      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);\n    }\n    iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4);\n  }\n  else {\n    iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);\n  }" (if "if") (parenthesized_expression "(*(code **)(*piVar3 + 0x60) == FUN_00071550)" (( "(") (binary_expression "*(code **)(*piVar3 + 0x60) == FUN_00071550" (pointer_expression "*(code **)(*piVar3 + 0x60)" (* "*") (cast_expression "(code **)(*piVar3 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0x60)" (( "(") (binary_expression "*piVar3 + 0x60" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0x60")) () ")")))) (== "==") (identifier "FUN_00071550")) () ")")) (compound_statement "{\n    uVar16 = piVar3[0xf] - piVar3[0xe] >> 2;\n    if (uVar16 <= uVar9) {\n                    \n      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);\n    }\n    iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4);\n  }" ({ "{") (expression_statement "uVar16 = piVar3[0xf] - piVar3[0xe] >> 2;" (assignment_expression "uVar16 = piVar3[0xf] - piVar3[0xe] >> 2" (identifier "uVar16") (= "=") (binary_expression "piVar3[0xf] - piVar3[0xe] >> 2" (binary_expression "piVar3[0xf] - piVar3[0xe]" (subscript_expression "piVar3[0xf]" (identifier "piVar3") ([ "[") (number_literal "0xf") (] "]")) (- "-") (subscript_expression "piVar3[0xe]" (identifier "piVar3") ([ "[") (number_literal "0xe") (] "]"))) (>> ">>") (number_literal "2"))) (; ";")) (if_statement "if (uVar16 <= uVar9) {\n                    \n      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);\n    }" (if "if") (parenthesized_expression "(uVar16 <= uVar9)" (( "(") (binary_expression "uVar16 <= uVar9" (identifier "uVar16") (<= "<=") (identifier "uVar9")) () ")")) (compound_statement "{\n                    \n      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);\n    }" ({ "{") (expression_statement "FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);" (call_expression "FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16)" (identifier "FUN_002446e0") (argument_list "("../../gold/object.h",0x5c8,"do_output_section",uVar16)" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x5c8") (, ",") (string_literal ""do_output_section"" (" """) (string_content "do_output_section") (" """)) (, ",") (identifier "uVar16") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4);" (assignment_expression "iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(piVar3[0xe] + uVar9 * 4)" (* "*") (cast_expression "(int *)(piVar3[0xe] + uVar9 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3[0xe] + uVar9 * 4)" (( "(") (binary_expression "piVar3[0xe] + uVar9 * 4" (subscript_expression "piVar3[0xe]" (identifier "piVar3") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (binary_expression "uVar9 * 4" (identifier "uVar9") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);\n  }" (else "else") (compound_statement "{\n    iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);\n  }" ({ "{") (expression_statement "iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);" (assignment_expression "iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9)" (identifier "iVar15") (= "=") (call_expression "(**(code **)(*piVar3 + 0x60))(piVar3,uVar9)" (parenthesized_expression "(**(code **)(*piVar3 + 0x60))" (( "(") (pointer_expression "**(code **)(*piVar3 + 0x60)" (* "*") (pointer_expression "*(code **)(*piVar3 + 0x60)" (* "*") (cast_expression "(code **)(*piVar3 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0x60)" (( "(") (binary_expression "*piVar3 + 0x60" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (argument_list "(piVar3,uVar9)" (( "(") (identifier "piVar3") (, ",") (identifier "uVar9") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar15 == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0);\n  }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0);\n  }" ({ "{") (expression_statement "FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0)" (identifier "FUN_002446e0") (argument_list "("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0)" (( "(") (string_literal ""../../gold/arm.cc"" (" """) (string_content "../../gold/arm.cc") (" """)) (, ",") (number_literal "0x28fd") (, ",") (string_literal ""relocate_special_relocatable"" (" """) (string_content "relocate_special_relocatable") (" """)) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)(iVar15 + 0x90) & 1) == 0) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15);\n  }" (if "if") (parenthesized_expression "((*(byte *)(iVar15 + 0x90) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(iVar15 + 0x90) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar15 + 0x90) & 1)" (( "(") (binary_expression "*(byte *)(iVar15 + 0x90) & 1" (pointer_expression "*(byte *)(iVar15 + 0x90)" (* "*") (cast_expression "(byte *)(iVar15 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x90)" (( "(") (binary_expression "iVar15 + 0x90" (identifier "iVar15") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15);\n  }" ({ "{") (expression_statement "FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15)" (identifier "FUN_002446e0") (argument_list "("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15)" (( "(") (string_literal ""../../gold/arm.cc"" (" """) (string_content "../../gold/arm.cc") (" """)) (, ",") (number_literal "0x28fe") (, ",") (string_literal ""relocate_special_relocatable"" (" """) (string_content "relocate_special_relocatable") (" """)) (, ",") (identifier "iVar15") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar18 = *(int *)(iVar15 + 100);" (assignment_expression "iVar18 = *(int *)(iVar15 + 100)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(iVar15 + 100)" (* "*") (cast_expression "(int *)(iVar15 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 100)" (( "(") (binary_expression "iVar15 + 100" (identifier "iVar15") (+ "+") (number_literal "100")) () ")"))))) (; ";")) (if_statement "if (iVar18 == 0) {\n                    \n    FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15);\n  }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15);\n  }" ({ "{") (expression_statement "FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15);" (call_expression "FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15)" (identifier "FUN_002446e0") (argument_list "("../../gold/output.h",0xd81,"symtab_index",iVar15)" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xd81") (, ",") (string_literal ""symtab_index"" (" """) (string_content "symtab_index") (" """)) (, ",") (identifier "iVar15") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar15 = *param_6;" (assignment_expression "iVar15 = *param_6" (identifier "iVar15") (= "=") (pointer_expression "*param_6" (* "*") (identifier "param_6"))) (; ";")) (if_statement "if (param_9 == -1) {\n    iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15);\n    if (iVar10 == -1) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);\n    }\n  }\n  else {\n    iVar10 = iVar15 + param_9;\n  }" (if "if") (parenthesized_expression "(param_9 == -1)" (( "(") (binary_expression "param_9 == -1" (identifier "param_9") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15);\n    if (iVar10 == -1) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);\n    }\n  }" ({ "{") (expression_statement "iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15);" (assignment_expression "iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15)" (identifier "iVar10") (= "=") (call_expression "FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15)" (identifier "FUN_002cda80") (argument_list "(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15)" (( "(") (identifier "param_8") (, ",") (identifier "piVar3") (, ",") (pointer_expression "*(undefined4 *)(param_4 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "iVar15") () ")")))) (; ";")) (if_statement "if (iVar10 == -1) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);\n    }" (if "if") (parenthesized_expression "(iVar10 == -1)" (( "(") (binary_expression "iVar10 == -1" (identifier "iVar10") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                    \n      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);\n    }" ({ "{") (expression_statement "FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff)" (identifier "FUN_002446e0") (argument_list "("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff)" (( "(") (string_literal ""../../gold/arm.cc"" (" """) (string_content "../../gold/arm.cc") (" """)) (, ",") (number_literal "0x290f") (, ",") (string_literal ""relocate_special_relocatable"" (" """) (string_content "relocate_special_relocatable") (" """)) (, ",") (number_literal "0xffffffff") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    iVar10 = iVar15 + param_9;\n  }" (else "else") (compound_statement "{\n    iVar10 = iVar15 + param_9;\n  }" ({ "{") (expression_statement "iVar10 = iVar15 + param_9;" (assignment_expression "iVar10 = iVar15 + param_9" (identifier "iVar10") (= "=") (binary_expression "iVar15 + param_9" (identifier "iVar15") (+ "+") (identifier "param_9"))) (; ";")) (} "}")))) (if_statement "if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10);\n  }" (if "if") (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 8) == 0)" (( "(") (binary_expression "*(int *)(DAT_005ea7c8 + 8) == 0" (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" (* "*") (cast_expression "(int *)(DAT_005ea7c8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_005ea7c8 + 8)" (( "(") (binary_expression "DAT_005ea7c8 + 8" (identifier "DAT_005ea7c8") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10);\n  }" ({ "{") (expression_statement "FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10);" (call_expression "FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10)" (identifier "FUN_002446e0") (argument_list "("../../gold/parameters.h",0x5c,"options",iVar10)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) (, ",") (identifier "iVar10") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar11 = iVar10;" (assignment_expression "iVar11 = iVar10" (identifier "iVar11") (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d) == '\0') {\n    iVar11 = iVar10 + param_11;\n    if (param_9 != -1) {\n      iVar11 = (iVar10 + param_11) - param_9;\n    }\n  }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d) == '\0'" (pointer_expression "*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d)" (* "*") (cast_expression "(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 8) + 0x318d)" (( "(") (binary_expression "*(int *)(DAT_005ea7c8 + 8) + 0x318d" (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" (* "*") (cast_expression "(int *)(DAT_005ea7c8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_005ea7c8 + 8)" (( "(") (binary_expression "DAT_005ea7c8 + 8" (identifier "DAT_005ea7c8") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x318d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar11 = iVar10 + param_11;\n    if (param_9 != -1) {\n      iVar11 = (iVar10 + param_11) - param_9;\n    }\n  }" ({ "{") (expression_statement "iVar11 = iVar10 + param_11;" (assignment_expression "iVar11 = iVar10 + param_11" (identifier "iVar11") (= "=") (binary_expression "iVar10 + param_11" (identifier "iVar10") (+ "+") (identifier "param_11"))) (; ";")) (if_statement "if (param_9 != -1) {\n      iVar11 = (iVar10 + param_11) - param_9;\n    }" (if "if") (parenthesized_expression "(param_9 != -1)" (( "(") (binary_expression "param_9 != -1" (identifier "param_9") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n      iVar11 = (iVar10 + param_11) - param_9;\n    }" ({ "{") (expression_statement "iVar11 = (iVar10 + param_11) - param_9;" (assignment_expression "iVar11 = (iVar10 + param_11) - param_9" (identifier "iVar11") (= "=") (binary_expression "(iVar10 + param_11) - param_9" (parenthesized_expression "(iVar10 + param_11)" (( "(") (binary_expression "iVar10 + param_11" (identifier "iVar10") (+ "+") (identifier "param_11")) () ")")) (- "-") (identifier "param_9"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "*param_13 = iVar11;" (assignment_expression "*param_13 = iVar11" (pointer_expression "*param_13" (* "*") (identifier "param_13")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "iVar10 = piVar3[0x38];" (assignment_expression "iVar10 = piVar3[0x38]" (identifier "iVar10") (= "=") (subscript_expression "piVar3[0x38]" (identifier "piVar3") ([ "[") (number_literal "0x38") (] "]"))) (; ";")) (expression_statement "param_13[1] = iVar18 * 0x100 + uVar17;" (assignment_expression "param_13[1] = iVar18 * 0x100 + uVar17" (subscript_expression "param_13[1]" (identifier "param_13") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "iVar18 * 0x100 + uVar17" (binary_expression "iVar18 * 0x100" (identifier "iVar18") (* "*") (number_literal "0x100")) (+ "+") (identifier "uVar17"))) (; ";")) (expression_statement "uVar9 = iVar10 - piVar3[0x37] >> 4;" (assignment_expression "uVar9 = iVar10 - piVar3[0x37] >> 4" (identifier "uVar9") (= "=") (binary_expression "iVar10 - piVar3[0x37] >> 4" (binary_expression "iVar10 - piVar3[0x37]" (identifier "iVar10") (- "-") (subscript_expression "piVar3[0x37]" (identifier "piVar3") ([ "[") (number_literal "0x37") (] "]"))) (>> ">>") (number_literal "4"))) (; ";")) (if_statement "if (uVar9 <= uVar22) {\n                    \n    FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9);\n  }" (if "if") (parenthesized_expression "(uVar9 <= uVar22)" (( "(") (binary_expression "uVar9 <= uVar22" (identifier "uVar9") (<= "<=") (identifier "uVar22")) () ")")) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9);\n  }" ({ "{") (expression_statement "FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9);" (call_expression "FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9)" (identifier "FUN_002446e0") (argument_list "("../../gold/object.h",0x8c1,"local_symbol",uVar9)" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x8c1") (, ",") (string_literal ""local_symbol"" (" """) (string_content "local_symbol") (" """)) (, ",") (identifier "uVar9") () ")"))) (; ";")) (} "}"))) (expression_statement "local_38 = (undefined4 *)(piVar3[0x37] + uVar22 * 0x10);" (assignment_expression "local_38 = (undefined4 *)(piVar3[0x37] + uVar22 * 0x10)" (identifier "local_38") (= "=") (cast_expression "(undefined4 *)(piVar3[0x37] + uVar22 * 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3[0x37] + uVar22 * 0x10)" (( "(") (binary_expression "piVar3[0x37] + uVar22 * 0x10" (subscript_expression "piVar3[0x37]" (identifier "piVar3") ([ "[") (number_literal "0x37") (] "]")) (+ "+") (binary_expression "uVar22 * 0x10" (identifier "uVar22") (* "*") (number_literal "0x10"))) () ")")))) (; ";")) (expression_statement "iVar18 = piVar3[0x52];" (assignment_expression "iVar18 = piVar3[0x52]" (identifier "iVar18") (= "=") (subscript_expression "piVar3[0x52]" (identifier "piVar3") ([ "[") (number_literal "0x52") (] "]"))) (; ";")) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" (identifier "local_2c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = 0xffffffff;" (assignment_expression "local_28 = 0xffffffff" (identifier "local_28") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_24 = 0x80000000;" (assignment_expression "local_24 = 0x80000000" (identifier "local_24") (= "=") (number_literal "0x80000000")) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8) <= uVar22) {\n                    \n                    \n    FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22);\n  }" (if "if") (parenthesized_expression "((uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8) <= uVar22)" (( "(") (binary_expression "(uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8) <= uVar22" (call_expression "(uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8)" (( "(") (binary_expression "(piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8" (parenthesized_expression "(piVar3[0x55] - piVar3[0x53])" (( "(") (binary_expression "piVar3[0x55] - piVar3[0x53]" (subscript_expression "piVar3[0x55]" (identifier "piVar3") ([ "[") (number_literal "0x55") (] "]")) (- "-") (subscript_expression "piVar3[0x53]" (identifier "piVar3") ([ "[") (number_literal "0x53") (] "]"))) () ")")) (+ "+") (binary_expression "(piVar3[0x54] - iVar18) * 8" (parenthesized_expression "(piVar3[0x54] - iVar18)" (( "(") (binary_expression "piVar3[0x54] - iVar18" (subscript_expression "piVar3[0x54]" (identifier "piVar3") ([ "[") (number_literal "0x54") (] "]")) (- "-") (identifier "iVar18")) () ")")) (* "*") (number_literal "8"))) () ")"))) (<= "<=") (identifier "uVar22")) () ")")) (compound_statement "{\n                    \n                    \n    FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22);\n  }" ({ "{") (expression_statement "FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22)" (identifier "FUN_002446e0") (argument_list "("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22)" (( "(") (string_literal ""../../gold/arm.cc"" (" """) (string_content "../../gold/arm.cc") (" """)) (, ",") (number_literal "0x5f8") (, ",") (string_literal ""local_symbol_is_thumb_function"" (" """) (string_content "local_symbol_is_thumb_function") (" """)) (, ",") (identifier "uVar22") () ")"))) (; ";")) (} "}"))) (expression_statement "local_48 = 1 << ((byte)(uVar14 >> 8) & 0x1f) & *(uint *)(iVar18 + (uVar14 >> 0xd) * 4);" (assignment_expression "local_48 = 1 << ((byte)(uVar14 >> 8) & 0x1f) & *(uint *)(iVar18 + (uVar14 >> 0xd) * 4)" (identifier "local_48") (= "=") (binary_expression "1 << ((byte)(uVar14 >> 8) & 0x1f) & *(uint *)(iVar18 + (uVar14 >> 0xd) * 4)" (binary_expression "1 << ((byte)(uVar14 >> 8) & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)(uVar14 >> 8) & 0x1f)" (( "(") (binary_expression "(byte)(uVar14 >> 8) & 0x1f" (call_expression "(byte)(uVar14 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar14 >> 8)" (( "(") (binary_expression "uVar14 >> 8" (identifier "uVar14") (>> ">>") (number_literal "8")) () ")"))) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (pointer_expression "*(uint *)(iVar18 + (uVar14 >> 0xd) * 4)" (* "*") (cast_expression "(uint *)(iVar18 + (uVar14 >> 0xd) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + (uVar14 >> 0xd) * 4)" (( "(") (binary_expression "iVar18 + (uVar14 >> 0xd) * 4" (identifier "iVar18") (+ "+") (binary_expression "(uVar14 >> 0xd) * 4" (parenthesized_expression "(uVar14 >> 0xd)" (( "(") (binary_expression "uVar14 >> 0xd" (identifier "uVar14") (>> ">>") (number_literal "0xd")) () ")")) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (if_statement "if ((local_48 != 0) && (local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0)) {\n                    \n    local_48 = FUN_00072130(local_38,piVar3,0);\n    local_48 = local_48 & 1;\n    if (local_48 == 0) {\n      local_48 = 1;\n    }\n    else {\n                    \n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }\n  }" (if "if") (parenthesized_expression "((local_48 != 0) && (local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0))" (( "(") (binary_expression "(local_48 != 0) && (local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0)" (parenthesized_expression "(local_48 != 0)" (( "(") (binary_expression "local_48 != 0" (identifier "local_48") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0)" (( "(") (comma_expression "local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0" (assignment_expression "local_48 = 1" (identifier "local_48") (= "=") (number_literal "1")) (, ",") (binary_expression "(*(byte *)(iVar5 + 0x34) & 0x40) != 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x34) & 0x40)" (( "(") (binary_expression "*(byte *)(iVar5 + 0x34) & 0x40" (pointer_expression "*(byte *)(iVar5 + 0x34)" (* "*") (cast_expression "(byte *)(iVar5 + 0x34)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x34)" (( "(") (binary_expression "iVar5 + 0x34" (identifier "iVar5") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                    \n    local_48 = FUN_00072130(local_38,piVar3,0);\n    local_48 = local_48 & 1;\n    if (local_48 == 0) {\n      local_48 = 1;\n    }\n    else {\n                    \n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }\n  }" ({ "{") (expression_statement "local_48 = FUN_00072130(local_38,piVar3,0);" (assignment_expression "local_48 = FUN_00072130(local_38,piVar3,0)" (identifier "local_48") (= "=") (call_expression "FUN_00072130(local_38,piVar3,0)" (identifier "FUN_00072130") (argument_list "(local_38,piVar3,0)" (( "(") (identifier "local_38") (, ",") (identifier "piVar3") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "local_48 = local_48 & 1;" (assignment_expression "local_48 = local_48 & 1" (identifier "local_48") (= "=") (binary_expression "local_48 & 1" (identifier "local_48") (& "&") (number_literal "1"))) (; ";")) (if_statement "if (local_48 == 0) {\n      local_48 = 1;\n    }\n    else {\n                    \n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }" (if "if") (parenthesized_expression "(local_48 == 0)" (( "(") (binary_expression "local_48 == 0" (identifier "local_48") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_48 = 1;\n    }" ({ "{") (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" (identifier "local_48") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n                    \n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }" (else "else") (compound_statement "{\n                    \n      local_20 = FUN_00072130(local_38,piVar3,0);\n      local_20 = local_20 & 0xfffffffe;\n      local_38 = &local_2c;\n    }" ({ "{") (expression_statement "local_20 = FUN_00072130(local_38,piVar3,0);" (assignment_expression "local_20 = FUN_00072130(local_38,piVar3,0)" (identifier "local_20") (= "=") (call_expression "FUN_00072130(local_38,piVar3,0)" (identifier "FUN_00072130") (argument_list "(local_38,piVar3,0)" (( "(") (identifier "local_38") (, ",") (identifier "piVar3") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "local_20 = local_20 & 0xfffffffe;" (assignment_expression "local_20 = local_20 & 0xfffffffe" (identifier "local_20") (= "=") (binary_expression "local_20 & 0xfffffffe" (identifier "local_20") (& "&") (number_literal "0xfffffffe"))) (; ";")) (expression_statement "local_38 = &local_2c;" (assignment_expression "local_38 = &local_2c" (identifier "local_38") (= "=") (pointer_expression "&local_2c" (& "&") (identifier "local_2c"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "local_40 = &local_2c;" (assignment_expression "local_40 = &local_2c" (identifier "local_40") (= "=") (pointer_expression "&local_2c" (& "&") (identifier "local_2c"))) (; ";")) (expression_statement "puVar23 = (uint *)(iVar15 + param_10);" (assignment_expression "puVar23 = (uint *)(iVar15 + param_10)" (identifier "puVar23") (= "=") (cast_expression "(uint *)(iVar15 + param_10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + param_10)" (( "(") (binary_expression "iVar15 + param_10" (identifier "iVar15") (+ "+") (identifier "param_10")) () ")")))) (; ";")) (if_statement "if (99 < uVar17 - 4) {\nLAB_00122ab1:\n                    \n                    \n    FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);\n  }" (if "if") (parenthesized_expression "(99 < uVar17 - 4)" (( "(") (binary_expression "99 < uVar17 - 4" (number_literal "99") (< "<") (binary_expression "uVar17 - 4" (identifier "uVar17") (- "-") (number_literal "4"))) () ")")) (compound_statement "{\nLAB_00122ab1:\n                    \n                    \n    FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);\n  }" ({ "{") (labeled_statement "LAB_00122ab1:\n                    \n                    \n    FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);" (statement_identifier "LAB_00122ab1") (: ":") (expression_statement "FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18)" (identifier "FUN_002446e0") (argument_list "("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18)" (( "(") (string_literal ""../../gold/arm.cc"" (" """) (string_content "../../gold/arm.cc") (" """)) (, ",") (number_literal "0x29cf") (, ",") (string_literal ""relocate_special_relocatable"" (" """) (string_content "relocate_special_relocatable") (" """)) (, ",") (identifier "iVar18") () ")"))) (; ";"))) (} "}"))) (expression_statement "iVar18 = (int)&__DT_PLTGOT + *(int *)(&DAT_00467d20 + (uVar17 - 4) * 4);" (assignment_expression "iVar18 = (int)&__DT_PLTGOT + *(int *)(&DAT_00467d20 + (uVar17 - 4) * 4)" (identifier "iVar18") (= "=") (binary_expression "(int)&__DT_PLTGOT + *(int *)(&DAT_00467d20 + (uVar17 - 4) * 4)" (cast_expression "(int)&__DT_PLTGOT" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (+ "+") (pointer_expression "*(int *)(&DAT_00467d20 + (uVar17 - 4) * 4)" (* "*") (cast_expression "(int *)(&DAT_00467d20 + (uVar17 - 4) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00467d20 + (uVar17 - 4) * 4)" (( "(") (binary_expression "&DAT_00467d20 + (uVar17 - 4) * 4" (pointer_expression "&DAT_00467d20" (& "&") (identifier "DAT_00467d20")) (+ "+") (binary_expression "(uVar17 - 4) * 4" (parenthesized_expression "(uVar17 - 4)" (( "(") (binary_expression "uVar17 - 4" (identifier "uVar17") (- "-") (number_literal "4")) () ")")) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (switch_statement "switch(uVar17) {\n  case 4:\n  case 0x2c:\n  case 0x2e:\n  case 0x30:\n  case 0x32:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x4c:\n  case 0x4d:\n  case 0x4e:\n  case 0x4f:\n  case 0x50:\n  case 0x51:\n  case 0x52:\n  case 0x53:\n  case 0x55:\n  case 0x58:\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    uVar13 = gettext("cannot handle %s in a relocatable link");\n    FUN_0023b810(uVar13,uVar20);\n    goto LAB_0012238d;\n  case 5:\n    uVar9 = (uint)(ushort)*puVar23;\n    if ((short)(ushort)*puVar23 < 0) {\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(ushort *)puVar23 = (ushort)iVar15;\n    if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;\n    break;\n  case 6:\n    uVar14 = *puVar23;\n    uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);\n    *puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;\n    goto joined_r0x00122297;\n  case 7:\n    uVar2 = (ushort)*puVar23;\n    iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);\n    *(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;\n    if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;\n    break;\n  case 8:\n    bVar1 = (byte)*puVar23;\n    uVar9 = bVar1 - 0x100;\n    if (-1 < (char)bVar1) {\n      uVar9 = (uint)bVar1;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(byte *)puVar23 = (byte)iVar15;\n    if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;\n    break;\n  default:\n    goto LAB_00122ab1;\n  case 10:\n  case 0x10:\n  case 0x1e:\n    iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0xb:\n    uVar9 = *puVar23;\n    uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);\n    iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);\n    *(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;\n    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;\n    break;\n  case 0xf:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n    iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0x2a:\n    uVar9 = *puVar23;\n    uVar14 = uVar9 & 0x7fffffff;\n    if ((uVar9 & 0x40000000) != 0) {\n      uVar14 = 0x7fffffff;\n    }\n    uVar14 = FUN_00072130(local_38,piVar3,uVar14);\n    *puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;\n    if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar9 = *puVar23;\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;\n    uStack_4c = uVar14 - 0x10000;\n    if ((uVar9 >> 4 & 0x8000) == 0) {\n      uStack_4c = uVar14;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229a9:\n    uStack_4c = uStack_4c | local_48;\n    *puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar8 = (ushort)*puVar23;\n    uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;\n    uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;\n    uStack_4c = uVar9 - 0x10000;\n    if ((uVar14 & 0x8000) == 0) {\n      uStack_4c = uVar9;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x00122a61:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;\n    *(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;\n    *(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);\njoined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;\n    break;\n  case 0x33:\n    iVar15 = FUN_00112810(0,local_48);\ncode_r0x00122342:\n    if (iVar15 == 1) break;\n    if (iVar15 == 0) goto LAB_0012238d;\n    if (iVar15 != 2) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    pcVar12 = "unexpected opcode while processing relocation %s";\n    goto LAB_0012236a;\n  case 0x34:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);\n    *(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;\n    if (uVar8 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = *(ushort *)((int)puVar23 + 2);\n    uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229f9:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);\n    uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;\n    if ((int)uStack_4c < 0) {\n      uVar14 = uVar14 | 0xa00000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar14 = *puVar23;\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));\n    uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);\n    uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;\n    if (-1 < (int)uVar17) {\n      uVar14 = uVar14 | 0x800000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\njoined_r0x0012230f:\n    if ((int)uVar9 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x66:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0x7fe;\n    if ((uVar9 & 0x400) != 0) {\n      uVar17 = uVar17 - 0x800;\n    }\n    uVar9 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;\njoined_r0x00122297:\n    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x67:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0xff;\n    if ((uVar9 & 0x80) != 0) {\n      uVar17 = uVar17 - 0x100;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;\n    if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;\n  }" (switch "switch") (parenthesized_expression "(uVar17)" (( "(") (identifier "uVar17") () ")")) (compound_statement "{\n  case 4:\n  case 0x2c:\n  case 0x2e:\n  case 0x30:\n  case 0x32:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x4c:\n  case 0x4d:\n  case 0x4e:\n  case 0x4f:\n  case 0x50:\n  case 0x51:\n  case 0x52:\n  case 0x53:\n  case 0x55:\n  case 0x58:\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    uVar13 = gettext("cannot handle %s in a relocatable link");\n    FUN_0023b810(uVar13,uVar20);\n    goto LAB_0012238d;\n  case 5:\n    uVar9 = (uint)(ushort)*puVar23;\n    if ((short)(ushort)*puVar23 < 0) {\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(ushort *)puVar23 = (ushort)iVar15;\n    if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;\n    break;\n  case 6:\n    uVar14 = *puVar23;\n    uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);\n    *puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;\n    goto joined_r0x00122297;\n  case 7:\n    uVar2 = (ushort)*puVar23;\n    iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);\n    *(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;\n    if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;\n    break;\n  case 8:\n    bVar1 = (byte)*puVar23;\n    uVar9 = bVar1 - 0x100;\n    if (-1 < (char)bVar1) {\n      uVar9 = (uint)bVar1;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(byte *)puVar23 = (byte)iVar15;\n    if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;\n    break;\n  default:\n    goto LAB_00122ab1;\n  case 10:\n  case 0x10:\n  case 0x1e:\n    iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0xb:\n    uVar9 = *puVar23;\n    uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);\n    iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);\n    *(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;\n    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;\n    break;\n  case 0xf:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n    iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;\n  case 0x2a:\n    uVar9 = *puVar23;\n    uVar14 = uVar9 & 0x7fffffff;\n    if ((uVar9 & 0x40000000) != 0) {\n      uVar14 = 0x7fffffff;\n    }\n    uVar14 = FUN_00072130(local_38,piVar3,uVar14);\n    *puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;\n    if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;\n    break;\n  case 0x2b:\n  case 0x2d:\n  case 0x54:\n  case 0x56:\n    uVar9 = *puVar23;\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;\n    uStack_4c = uVar14 - 0x10000;\n    if ((uVar9 >> 4 & 0x8000) == 0) {\n      uStack_4c = uVar14;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229a9:\n    uStack_4c = uStack_4c | local_48;\n    *puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;\n    goto joined_r0x00122aa6;\n  case 0x2f:\n  case 0x31:\n  case 0x57:\n  case 0x59:\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar8 = (ushort)*puVar23;\n    uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;\n    uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;\n    uStack_4c = uVar9 - 0x10000;\n    if ((uVar14 & 0x8000) == 0) {\n      uStack_4c = uVar9;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x00122a61:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;\n    *(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;\n    *(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);\njoined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;\n    break;\n  case 0x33:\n    iVar15 = FUN_00112810(0,local_48);\ncode_r0x00122342:\n    if (iVar15 == 1) break;\n    if (iVar15 == 0) goto LAB_0012238d;\n    if (iVar15 != 2) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    pcVar12 = "unexpected opcode while processing relocation %s";\n    goto LAB_0012236a;\n  case 0x34:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);\n    *(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;\n    if (uVar8 < 0x7f) goto LAB_0012238d;\n    break;\n  case 0x35:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = *(ushort *)((int)puVar23 + 2);\n    uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229f9:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);\n    uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;\n    if ((int)uStack_4c < 0) {\n      uVar14 = uVar14 | 0xa00000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\n    goto joined_r0x0012230f;\n  case 0x36:\n    uVar14 = *puVar23;\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));\n    uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);\n    uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;\n    if (-1 < (int)uVar17) {\n      uVar14 = uVar14 | 0x800000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\njoined_r0x0012230f:\n    if ((int)uVar9 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x66:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0x7fe;\n    if ((uVar9 & 0x400) != 0) {\n      uVar17 = uVar17 - 0x800;\n    }\n    uVar9 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;\njoined_r0x00122297:\n    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;\n    break;\n  case 0x67:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0xff;\n    if ((uVar9 & 0x80) != 0) {\n      uVar17 = uVar17 - 0x100;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;\n    if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;\n  }" ({ "{") (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 0x2c:" (case "case") (number_literal "0x2c") (: ":")) (case_statement "case 0x2e:" (case "case") (number_literal "0x2e") (: ":")) (case_statement "case 0x30:" (case "case") (number_literal "0x30") (: ":")) (case_statement "case 0x32:" (case "case") (number_literal "0x32") (: ":")) (case_statement "case 0x39:" (case "case") (number_literal "0x39") (: ":")) (case_statement "case 0x3a:" (case "case") (number_literal "0x3a") (: ":")) (case_statement "case 0x3b:" (case "case") (number_literal "0x3b") (: ":")) (case_statement "case 0x3c:" (case "case") (number_literal "0x3c") (: ":")) (case_statement "case 0x3d:" (case "case") (number_literal "0x3d") (: ":")) (case_statement "case 0x3e:" (case "case") (number_literal "0x3e") (: ":")) (case_statement "case 0x3f:" (case "case") (number_literal "0x3f") (: ":")) (case_statement "case 0x40:" (case "case") (number_literal "0x40") (: ":")) (case_statement "case 0x41:" (case "case") (number_literal "0x41") (: ":")) (case_statement "case 0x42:" (case "case") (number_literal "0x42") (: ":")) (case_statement "case 0x43:" (case "case") (number_literal "0x43") (: ":")) (case_statement "case 0x44:" (case "case") (number_literal "0x44") (: ":")) (case_statement "case 0x45:" (case "case") (number_literal "0x45") (: ":")) (case_statement "case 0x46:" (case "case") (number_literal "0x46") (: ":")) (case_statement "case 0x47:" (case "case") (number_literal "0x47") (: ":")) (case_statement "case 0x48:" (case "case") (number_literal "0x48") (: ":")) (case_statement "case 0x49:" (case "case") (number_literal "0x49") (: ":")) (case_statement "case 0x4a:" (case "case") (number_literal "0x4a") (: ":")) (case_statement "case 0x4b:" (case "case") (number_literal "0x4b") (: ":")) (case_statement "case 0x4c:" (case "case") (number_literal "0x4c") (: ":")) (case_statement "case 0x4d:" (case "case") (number_literal "0x4d") (: ":")) (case_statement "case 0x4e:" (case "case") (number_literal "0x4e") (: ":")) (case_statement "case 0x4f:" (case "case") (number_literal "0x4f") (: ":")) (case_statement "case 0x50:" (case "case") (number_literal "0x50") (: ":")) (case_statement "case 0x51:" (case "case") (number_literal "0x51") (: ":")) (case_statement "case 0x52:" (case "case") (number_literal "0x52") (: ":")) (case_statement "case 0x53:" (case "case") (number_literal "0x53") (: ":")) (case_statement "case 0x55:" (case "case") (number_literal "0x55") (: ":")) (case_statement "case 0x58:\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    uVar13 = gettext("cannot handle %s in a relocatable link");\n    FUN_0023b810(uVar13,uVar20);\n    goto LAB_0012238d;" (case "case") (number_literal "0x58") (: ":") (expression_statement "uVar20 = *(undefined4 *)(iVar5 + 4);" (assignment_expression "uVar20 = *(undefined4 *)(iVar5 + 4)" (identifier "uVar20") (= "=") (pointer_expression "*(undefined4 *)(iVar5 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar13 = gettext("cannot handle %s in a relocatable link");" (assignment_expression "uVar13 = gettext("cannot handle %s in a relocatable link")" (identifier "uVar13") (= "=") (call_expression "gettext("cannot handle %s in a relocatable link")" (identifier "gettext") (argument_list "("cannot handle %s in a relocatable link")" (( "(") (string_literal ""cannot handle %s in a relocatable link"" (" """) (string_content "cannot handle %s in a relocatable link") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0023b810(uVar13,uVar20);" (call_expression "FUN_0023b810(uVar13,uVar20)" (identifier "FUN_0023b810") (argument_list "(uVar13,uVar20)" (( "(") (identifier "uVar13") (, ",") (identifier "uVar20") () ")"))) (; ";")) (goto_statement "goto LAB_0012238d;" (goto "goto") (statement_identifier "LAB_0012238d") (; ";"))) (case_statement "case 5:\n    uVar9 = (uint)(ushort)*puVar23;\n    if ((short)(ushort)*puVar23 < 0) {\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(ushort *)puVar23 = (ushort)iVar15;\n    if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;\n    break;" (case "case") (number_literal "5") (: ":") (expression_statement "uVar9 = (uint)(ushort)*puVar23;" (assignment_expression "uVar9 = (uint)(ushort)*puVar23" (identifier "uVar9") (= "=") (binary_expression "(uint)(ushort)*puVar23" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(ushort)" (( "(") (identifier "ushort") () ")"))) (* "*") (identifier "puVar23"))) (; ";")) (if_statement "if ((short)(ushort)*puVar23 < 0) {\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }" (if "if") (parenthesized_expression "((short)(ushort)*puVar23 < 0)" (( "(") (binary_expression "(short)(ushort)*puVar23 < 0" (binary_expression "(short)(ushort)*puVar23" (cast_expression "(short)(ushort)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")"))) (* "*") (identifier "puVar23")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      uVar9 = (ushort)*puVar23 - 0x10000;\n    }" ({ "{") (expression_statement "uVar9 = (ushort)*puVar23 - 0x10000;" (assignment_expression "uVar9 = (ushort)*puVar23 - 0x10000" (identifier "uVar9") (= "=") (binary_expression "(ushort)*puVar23 - 0x10000" (binary_expression "(ushort)*puVar23" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (* "*") (identifier "puVar23")) (- "-") (number_literal "0x10000"))) (; ";")) (} "}"))) (expression_statement "iVar15 = FUN_00072130(local_38,piVar3,uVar9);" (assignment_expression "iVar15 = FUN_00072130(local_38,piVar3,uVar9)" (identifier "iVar15") (= "=") (call_expression "FUN_00072130(local_38,piVar3,uVar9)" (identifier "FUN_00072130") (argument_list "(local_38,piVar3,uVar9)" (( "(") (identifier "local_38") (, ",") (identifier "piVar3") (, ",") (identifier "uVar9") () ")")))) (; ";")) (expression_statement "*(ushort *)puVar23 = (ushort)iVar15;" (assignment_expression "*(ushort *)puVar23 = (ushort)iVar15" (pointer_expression "*(ushort *)puVar23" (* "*") (cast_expression "(ushort *)puVar23" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar23"))) (= "=") (cast_expression "(ushort)iVar15" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "iVar15"))) (; ";")) (if_statement "if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;" (if "if") (parenthesized_expression "(iVar15 + 0x8000U < 0x18000)" (( "(") (binary_expression "iVar15 + 0x8000U < 0x18000" (binary_expression "iVar15 + 0x8000U" (identifier "iVar15") (+ "+") (number_literal "0x8000U")) (< "<") (number_literal "0x18000")) () ")")) (goto_statement "goto LAB_0012238d;" (goto "goto") (statement_identifier "LAB_0012238d") (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n    uVar14 = *puVar23;\n    uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);\n    *puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;\n    goto joined_r0x00122297;" (case "case") (number_literal "6") (: ":") (expression_statement "uVar14 = *puVar23;" (assignment_expression "uVar14 = *puVar23" (identifier "uVar14") (= "=") (pointer_expression "*puVar23" (* "*") (identifier "puVar23"))) (; ";")) (expression_statement "uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);" (assignment_expression "uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff)" (identifier "uVar9") (= "=") (call_expression "FUN_00072130(local_38,piVar3,uVar14 & 0xfff)" (identifier "FUN_00072130") (argument_list "(local_38,piVar3,uVar14 & 0xfff)" (( "(") (identifier "local_38") (, ",") (identifier "piVar3") (, ",") (binary_expression "uVar14 & 0xfff" (identifier "uVar14") (& "&") (number_literal "0xfff")) () ")")))) (; ";")) (expression_statement "*puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;" (assignment_expression "*puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff" (pointer_expression "*puVar23" (* "*") (identifier "puVar23")) (= "=") (binary_expression "uVar14 ^ (uVar14 ^ uVar9) & 0xfff" (identifier "uVar14") (^ "^") (binary_expression "(uVar14 ^ uVar9) & 0xfff" (parenthesized_expression "(uVar14 ^ uVar9)" (( "(") (binary_expression "uVar14 ^ uVar9" (identifier "uVar14") (^ "^") (identifier "uVar9")) () ")")) (& "&") (number_literal "0xfff")))) (; ";")) (goto_statement "goto joined_r0x00122297;" (goto "goto") (statement_identifier "joined_r0x00122297") (; ";"))) (case_statement "case 7:\n    uVar2 = (ushort)*puVar23;\n    iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);\n    *(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;\n    if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;\n    break;" (case "case") (number_literal "7") (: ":") (expression_statement "uVar2 = (ushort)*puVar23;" (assignment_expression "uVar2 = (ushort)*puVar23" (identifier "uVar2") (= "=") (binary_expression "(ushort)*puVar23" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (* "*") (identifier "puVar23"))) (; ";")) (expression_statement "iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);" (assignment_expression "iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f)" (identifier "iVar15") (= "=") (call_expression "FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f)" (identifier "FUN_00072130") (argument_list "(local_38,piVar3,uVar2 >> 6 & 0x1f)" (( "(") (identifier "local_38") (, ",") (identifier "piVar3") (, ",") (binary_expression "uVar2 >> 6 & 0x1f" (binary_expression "uVar2 >> 6" (identifier "uVar2") (>> ">>") (number_literal "6")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "*(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;" (assignment_expression "*(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0" (pointer_expression "*(ushort *)puVar23" (* "*") (cast_expression "(ushort *)puVar23" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar23"))) (= "=") (binary_expression "uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0" (identifier "uVar2") (^ "^") (binary_expression "((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0" (parenthesized_expression "((ushort)(iVar15 << 6) ^ uVar2)" (( "(") (binary_expression "(ushort)(iVar15 << 6) ^ uVar2" (call_expression "(ushort)(iVar15 << 6)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(iVar15 << 6)" (( "(") (binary_expression "iVar15 << 6" (identifier "iVar15") (<< "<<") (number_literal "6")) () ")"))) (^ "^") (identifier "uVar2")) () ")")) (& "&") (number_literal "0x7e0")))) (; ";")) (if_statement "if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;" (if "if") (parenthesized_expression "(iVar15 + 0x10U < 0x20)" (( "(") (binary_expression "iVar15 + 0x10U < 0x20" (binary_expression "iVar15 + 0x10U" (identifier "iVar15") (+ "+") (number_literal "0x10U")) (< "<") (number_literal "0x20")) () ")")) (goto_statement "goto LAB_0012238d;" (goto "goto") (statement_identifier "LAB_0012238d") (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 8:\n    bVar1 = (byte)*puVar23;\n    uVar9 = bVar1 - 0x100;\n    if (-1 < (char)bVar1) {\n      uVar9 = (uint)bVar1;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar9);\n    *(byte *)puVar23 = (byte)iVar15;\n    if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;\n    break;" (case "case") (number_literal "8") (: ":") (expression_statement "bVar1 = (byte)*puVar23;" (assignment_expression "bVar1 = (byte)*puVar23" (identifier "bVar1") (= "=") (binary_expression "(byte)*puVar23" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "puVar23"))) (; ";")) (expression_statement "uVar9 = bVar1 - 0x100;" (assignment_expression "uVar9 = bVar1 - 0x100" (identifier "uVar9") (= "=") (binary_expression "bVar1 - 0x100" (identifier "bVar1") (- "-") (number_literal "0x100"))) (; ";")) (if_statement "if (-1 < (char)bVar1) {\n      uVar9 = (uint)bVar1;\n    }" (if "if") (parenthesized_expression "(-1 < (char)bVar1)" (( "(") (binary_expression "-1 < (char)bVar1" (number_literal "-1") (< "<") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1"))) () ")")) (compound_statement "{\n      uVar9 = (uint)bVar1;\n    }" ({ "{") (expression_statement "uVar9 = (uint)bVar1;" (assignment_expression "uVar9 = (uint)bVar1" (identifier "uVar9") (= "=") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1"))) (; ";")) (} "}"))) (expression_statement "iVar15 = FUN_00072130(local_38,piVar3,uVar9);" (assignment_expression "iVar15 = FUN_00072130(local_38,piVar3,uVar9)" (identifier "iVar15") (= "=") (call_expression "FUN_00072130(local_38,piVar3,uVar9)" (identifier "FUN_00072130") (argument_list "(local_38,piVar3,uVar9)" (( "(") (identifier "local_38") (, ",") (identifier "piVar3") (, ",") (identifier "uVar9") () ")")))) (; ";")) (expression_statement "*(byte *)puVar23 = (byte)iVar15;" (assignment_expression "*(byte *)puVar23 = (byte)iVar15" (pointer_expression "*(byte *)puVar23" (* "*") (cast_expression "(byte *)puVar23" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar23"))) (= "=") (cast_expression "(byte)iVar15" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar15"))) (; ";")) (if_statement "if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;" (if "if") (parenthesized_expression "(iVar15 + 0x80U < 0x180)" (( "(") (binary_expression "iVar15 + 0x80U < 0x180" (binary_expression "iVar15 + 0x80U" (identifier "iVar15") (+ "+") (number_literal "0x80U")) (< "<") (number_literal "0x180")) () ")")) (goto_statement "goto LAB_0012238d;" (goto "goto") (statement_identifier "LAB_0012238d") (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    goto LAB_00122ab1;" (default "default") (: ":") (goto_statement "goto LAB_00122ab1;" (goto "goto") (statement_identifier "LAB_00122ab1") (; ";"))) (case_statement "case 10:" (case "case") (number_literal "10") (: ":")) (case_statement "case 0x10:" (case "case") (number_literal "0x10") (: ":")) (case_statement "case 0x1e:\n    iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;" (case "case") (number_literal "0x1e") (: ":") (expression_statement "iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);" (assignment_expression "iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0)" (identifier "iVar15") (= "=") (call_expression "FUN_001206e0(0,piVar3,0,local_38,0,local_48,0)" (identifier "FUN_001206e0") (argument_list "(0,piVar3,0,local_38,0,local_48,0)" (( "(") (number_literal "0") (, ",") (identifier "piVar3") (, ",") (number_literal "0") (, ",") (identifier "local_38") (, ",") (number_literal "0") (, ",") (identifier "local_48") (, ",") (number_literal "0") () ")")))) (; ";")) (goto_statement "goto code_r0x00122342;" (goto "goto") (statement_identifier "code_r0x00122342") (; ";"))) (case_statement "case 0xb:\n    uVar9 = *puVar23;\n    uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);\n    iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);\n    *(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;\n    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;\n    break;" (case "case") (number_literal "0xb") (: ":") (expression_statement "uVar9 = *puVar23;" (assignment_expression "uVar9 = *puVar23" (identifier "uVar9") (= "=") (pointer_expression "*puVar23" (* "*") (identifier "puVar23"))) (; ";")) (expression_statement "uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);" (assignment_expression "uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc)" (identifier "uVar14") (= "=") (call_expression "FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc)" (identifier "FUN_00072130") (argument_list "(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc)" (( "(") (identifier "local_38") (, ",") (identifier "piVar3") (, ",") (binary_expression "(ushort)uVar9 * 4 & 0x3fc" (binary_expression "(ushort)uVar9 * 4" (cast_expression "(ushort)uVar9" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar9")) (* "*") (number_literal "4")) (& "&") (number_literal "0x3fc")) () ")")))) (; ";")) (expression_statement "iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);" (assignment_expression "iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f)" (identifier "iVar15") (= "=") (binary_expression "(uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f)" (parenthesized_expression "(uVar14 ^ (int)uVar14 >> 0x1f)" (( "(") (binary_expression "uVar14 ^ (int)uVar14 >> 0x1f" (identifier "uVar14") (^ "^") (binary_expression "(int)uVar14 >> 0x1f" (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14")) (>> ">>") (number_literal "0x1f"))) () ")")) (- "-") (parenthesized_expression "((int)uVar14 >> 0x1f)" (( "(") (binary_expression "(int)uVar14 >> 0x1f" (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "*(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;" (assignment_expression "*(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff" (pointer_expression "*(ushort *)puVar23" (* "*") (cast_expression "(ushort *)puVar23" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar23"))) (= "=") (binary_expression "(ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff" (binary_expression "(ushort)uVar9 & 0xff00" (cast_expression "(ushort)uVar9" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar9")) (& "&") (number_literal "0xff00")) (| "|") (binary_expression "(ushort)(iVar15 >> 2) & 0xff" (call_expression "(ushort)(iVar15 >> 2)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(iVar15 >> 2)" (( "(") (binary_expression "iVar15 >> 2" (identifier "iVar15") (>> ">>") (number_literal "2")) () ")"))) (& "&") (number_literal "0xff")))) (; ";")) (if_statement "if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;" (if "if") (parenthesized_expression "((ushort)iVar15 < 0x3fd)" (( "(") (binary_expression "(ushort)iVar15 < 0x3fd" (cast_expression "(ushort)iVar15" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "iVar15")) (< "<") (number_literal "0x3fd")) () ")")) (goto_statement "goto LAB_0012238d;" (goto "goto") (statement_identifier "LAB_0012238d") (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xf:" (case "case") (number_literal "0xf") (: ":")) (case_statement "case 0x1b:" (case "case") (number_literal "0x1b") (: ":")) (case_statement "case 0x1c:" (case "case") (number_literal "0x1c") (: ":")) (case_statement "case 0x1d:\n    iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);\n    goto code_r0x00122342;" (case "case") (number_literal "0x1d") (: ":") (expression_statement "iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);" (assignment_expression "iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0)" (identifier "iVar15") (= "=") (call_expression "FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0)" (identifier "FUN_00120fa0") (argument_list "(0,piVar3,0,local_38,0,local_48,0)" (( "(") (number_literal "0") (, ",") (identifier "piVar3") (, ",") (number_literal "0") (, ",") (identifier "local_38") (, ",") (number_literal "0") (, ",") (identifier "local_48") (, ",") (number_literal "0") () ")")))) (; ";")) (goto_statement "goto code_r0x00122342;" (goto "goto") (statement_identifier "code_r0x00122342") (; ";"))) (case_statement "case 0x2a:\n    uVar9 = *puVar23;\n    uVar14 = uVar9 & 0x7fffffff;\n    if ((uVar9 & 0x40000000) != 0) {\n      uVar14 = 0x7fffffff;\n    }\n    uVar14 = FUN_00072130(local_38,piVar3,uVar14);\n    *puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;\n    if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;\n    break;" (case "case") (number_literal "0x2a") (: ":") (expression_statement "uVar9 = *puVar23;" (assignment_expression "uVar9 = *puVar23" (identifier "uVar9") (= "=") (pointer_expression "*puVar23" (* "*") (identifier "puVar23"))) (; ";")) (expression_statement "uVar14 = uVar9 & 0x7fffffff;" (assignment_expression "uVar14 = uVar9 & 0x7fffffff" (identifier "uVar14") (= "=") (binary_expression "uVar9 & 0x7fffffff" (identifier "uVar9") (& "&") (number_literal "0x7fffffff"))) (; ";")) (if_statement "if ((uVar9 & 0x40000000) != 0) {\n      uVar14 = 0x7fffffff;\n    }" (if "if") (parenthesized_expression "((uVar9 & 0x40000000) != 0)" (( "(") (binary_expression "(uVar9 & 0x40000000) != 0" (parenthesized_expression "(uVar9 & 0x40000000)" (( "(") (binary_expression "uVar9 & 0x40000000" (identifier "uVar9") (& "&") (number_literal "0x40000000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar14 = 0x7fffffff;\n    }" ({ "{") (expression_statement "uVar14 = 0x7fffffff;" (assignment_expression "uVar14 = 0x7fffffff" (identifier "uVar14") (= "=") (number_literal "0x7fffffff")) (; ";")) (} "}"))) (expression_statement "uVar14 = FUN_00072130(local_38,piVar3,uVar14);" (assignment_expression "uVar14 = FUN_00072130(local_38,piVar3,uVar14)" (identifier "uVar14") (= "=") (call_expression "FUN_00072130(local_38,piVar3,uVar14)" (identifier "FUN_00072130") (argument_list "(local_38,piVar3,uVar14)" (( "(") (identifier "local_38") (, ",") (identifier "piVar3") (, ",") (identifier "uVar14") () ")")))) (; ";")) (expression_statement "*puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;" (assignment_expression "*puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff" (pointer_expression "*puVar23" (* "*") (identifier "puVar23")) (= "=") (binary_expression "uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff" (identifier "uVar9") (^ "^") (binary_expression "((uVar14 | local_48) ^ uVar9) & 0x7fffffff" (parenthesized_expression "((uVar14 | local_48) ^ uVar9)" (( "(") (binary_expression "(uVar14 | local_48) ^ uVar9" (parenthesized_expression "(uVar14 | local_48)" (( "(") (binary_expression "uVar14 | local_48" (identifier "uVar14") (| "|") (identifier "local_48")) () ")")) (^ "^") (identifier "uVar9")) () ")")) (& "&") (number_literal "0x7fffffff")))) (; ";")) (if_statement "if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;" (if "if") (parenthesized_expression "(-1 < (int)((uVar14 | local_48) + 0x40000000))" (( "(") (binary_expression "-1 < (int)((uVar14 | local_48) + 0x40000000)" (number_literal "-1") (< "<") (cast_expression "(int)((uVar14 | local_48) + 0x40000000)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((uVar14 | local_48) + 0x40000000)" (( "(") (binary_expression "(uVar14 | local_48) + 0x40000000" (parenthesized_expression "(uVar14 | local_48)" (( "(") (binary_expression "uVar14 | local_48" (identifier "uVar14") (| "|") (identifier "local_48")) () ")")) (+ "+") (number_literal "0x40000000")) () ")")))) () ")")) (goto_statement "goto LAB_0012238d;" (goto "goto") (statement_identifier "LAB_0012238d") (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x2b:" (case "case") (number_literal "0x2b") (: ":")) (case_statement "case 0x2d:" (case "case") (number_literal "0x2d") (: ":")) (case_statement "case 0x54:" (case "case") (number_literal "0x54") (: ":")) (case_statement "case 0x56:\n    uVar9 = *puVar23;\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;\n    uStack_4c = uVar14 - 0x10000;\n    if ((uVar9 >> 4 & 0x8000) == 0) {\n      uStack_4c = uVar14;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229a9:\n    uStack_4c = uStack_4c | local_48;\n    *puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;\n    goto joined_r0x00122aa6;" (case "case") (number_literal "0x56") (: ":") (expression_statement "uVar9 = *puVar23;" (assignment_expression "uVar9 = *puVar23" (identifier "uVar9") (= "=") (pointer_expression "*puVar23" (* "*") (identifier "puVar23"))) (; ";")) (expression_statement "bVar1 = *(byte *)(iVar5 + 0x34);" (assignment_expression "bVar1 = *(byte *)(iVar5 + 0x34)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(iVar5 + 0x34)" (* "*") (cast_expression "(byte *)(iVar5 + 0x34)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x34)" (( "(") (binary_expression "iVar5 + 0x34" (identifier "iVar5") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;" (assignment_expression "uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff" (identifier "uVar14") (= "=") (binary_expression "uVar9 >> 4 & 0xf000 | uVar9 & 0xfff" (binary_expression "uVar9 >> 4 & 0xf000" (binary_expression "uVar9 >> 4" (identifier "uVar9") (>> ">>") (number_literal "4")) (& "&") (number_literal "0xf000")) (| "|") (binary_expression "uVar9 & 0xfff" (identifier "uVar9") (& "&") (number_literal "0xfff")))) (; ";")) (expression_statement "uStack_4c = uVar14 - 0x10000;" (assignment_expression "uStack_4c = uVar14 - 0x10000" (identifier "uStack_4c") (= "=") (binary_expression "uVar14 - 0x10000" (identifier "uVar14") (- "-") (number_literal "0x10000"))) (; ";")) (if_statement "if ((uVar9 >> 4 & 0x8000) == 0) {\n      uStack_4c = uVar14;\n    }" (if "if") (parenthesized_expression "((uVar9 >> 4 & 0x8000) == 0)" (( "(") (binary_expression "(uVar9 >> 4 & 0x8000) == 0" (parenthesized_expression "(uVar9 >> 4 & 0x8000)" (( "(") (binary_expression "uVar9 >> 4 & 0x8000" (binary_expression "uVar9 >> 4" (identifier "uVar9") (>> ">>") (number_literal "4")) (& "&") (number_literal "0x8000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uStack_4c = uVar14;\n    }" ({ "{") (expression_statement "uStack_4c = uVar14;" (assignment_expression "uStack_4c = uVar14" (identifier "uStack_4c") (= "=") (identifier "uVar14")) (; ";")) (} "}"))) (if_statement "if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)((int)local_38 + 0xb) < '\0')" (( "(") (binary_expression "(char)*(byte *)((int)local_38 + 0xb) < '\0'" (cast_expression "(char)*(byte *)((int)local_38 + 0xb)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)((int)local_38 + 0xb)" (* "*") (cast_expression "(byte *)((int)local_38 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_38 + 0xb)" (( "(") (binary_expression "(int)local_38 + 0xb" (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38")) (+ "+") (number_literal "0xb")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uStack_4c = uStack_4c + local_38[3];\n    }" ({ "{") (expression_statement "uStack_4c = uStack_4c + local_38[3];" (assignment_expression "uStack_4c = uStack_4c + local_38[3]" (identifier "uStack_4c") (= "=") (binary_expression "uStack_4c + local_38[3]" (identifier "uStack_4c") (+ "+") (subscript_expression "local_38[3]" (identifier "local_38") ([ "[") (number_literal "3") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" (else "else") (compound_statement "{\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar14 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }\ncode_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" ({ "{") (if_statement "if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }" (if "if") (parenthesized_expression "((*(byte *)((int)local_38 + 0xb) & 8) == 0)" (( "(") (binary_expression "(*(byte *)((int)local_38 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)((int)local_38 + 0xb) & 8)" (( "(") (binary_expression "*(byte *)((int)local_38 + 0xb) & 8" (pointer_expression "*(byte *)((int)local_38 + 0xb)" (* "*") (cast_expression "(byte *)((int)local_38 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_38 + 0xb)" (( "(") (binary_expression "(int)local_38 + 0xb" (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38")) (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);\n      }" ({ "{") (expression_statement "FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);" (call_expression "FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3)" (identifier "FUN_002446e0") (argument_list "("../../gold/object.h",0x6ab,"value",piVar3)" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x6ab") (, ",") (string_literal ""value"" (" """) (string_content "value") (" """)) (, ",") (identifier "piVar3") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar6 = (uint *)local_38[3];" (assignment_expression "puVar6 = (uint *)local_38[3]" (identifier "puVar6") (= "=") (cast_expression "(uint *)local_38[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_38[3]" (identifier "local_38") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "local_34 = *puVar6;" (assignment_expression "local_34 = *puVar6" (identifier "local_34") (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (if_statement "if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }" (if "if") (parenthesized_expression "(uStack_4c < 0xffffff00)" (( "(") (binary_expression "uStack_4c < 0xffffff00" (identifier "uStack_4c") (< "<") (number_literal "0xffffff00")) () ")")) (compound_statement "{\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }" ({ "{") (expression_statement "local_34 = local_34 + uStack_4c;" (assignment_expression "local_34 = local_34 + uStack_4c" (identifier "local_34") (= "=") (binary_expression "local_34 + uStack_4c" (identifier "local_34") (+ "+") (identifier "uStack_4c"))) (; ";")) (expression_statement "uStack_4c = 0;" (assignment_expression "uStack_4c = 0" (identifier "uStack_4c") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar14 = local_34 % puVar6[3];" (assignment_expression "uVar14 = local_34 % puVar6[3]" (identifier "uVar14") (= "=") (binary_expression "local_34 % puVar6[3]" (identifier "local_34") (% "%") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "piVar21 = *(int **)(puVar6[2] + uVar14 * 4);" (assignment_expression "piVar21 = *(int **)(puVar6[2] + uVar14 * 4)" (identifier "piVar21") (= "=") (pointer_expression "*(int **)(puVar6[2] + uVar14 * 4)" (* "*") (cast_expression "(int **)(puVar6[2] + uVar14 * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar6[2] + uVar14 * 4)" (( "(") (binary_expression "puVar6[2] + uVar14 * 4" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (+ "+") (binary_expression "uVar14 * 4" (identifier "uVar14") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (piVar21 != (int *)0x0) {\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }" (if "if") (parenthesized_expression "(piVar21 != (int *)0x0)" (( "(") (binary_expression "piVar21 != (int *)0x0" (identifier "piVar21") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar17 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }\n      }" ({ "{") (expression_statement "uVar17 = ((int *)*piVar21)[1];" (assignment_expression "uVar17 = ((int *)*piVar21)[1]" (identifier "uVar17") (= "=") (subscript_expression "((int *)*piVar21)[1]" (parenthesized_expression "((int *)*piVar21)" (( "(") (cast_expression "(int *)*piVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar7 = (int *)*piVar21;" (assignment_expression "piVar7 = (int *)*piVar21" (identifier "piVar7") (= "=") (cast_expression "(int *)*piVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar21" (* "*") (identifier "piVar21")))) (; ";")) (while_statement "while (piVar19 = piVar7, uVar17 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }" (while "while") (parenthesized_expression "(piVar19 = piVar7, uVar17 != local_34)" (( "(") (comma_expression "piVar19 = piVar7, uVar17 != local_34" (assignment_expression "piVar19 = piVar7" (identifier "piVar19") (= "=") (identifier "piVar7")) (, ",") (binary_expression "uVar17 != local_34" (identifier "uVar17") (!= "!=") (identifier "local_34"))) () ")")) (compound_statement "{\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;\n        }" ({ "{") (expression_statement "piVar7 = (int *)*piVar19;" (assignment_expression "piVar7 = (int *)*piVar19" (identifier "piVar7") (= "=") (cast_expression "(int *)*piVar19" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar19" (* "*") (identifier "piVar19")))) (; ";")) (if_statement "if ((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))\n          goto code_r0x00122b36;" (if "if") (parenthesized_expression "((piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))" (( "(") (binary_expression "(piVar7 == (int *)0x0) ||\n             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14)" (parenthesized_expression "(piVar7 == (int *)0x0)" (( "(") (binary_expression "piVar7 == (int *)0x0" (identifier "piVar7") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14)" (( "(") (comma_expression "uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14" (assignment_expression "uVar17 = piVar7[1]" (identifier "uVar17") (= "=") (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]"))) (, ",") (comma_expression "piVar21 = piVar19, uVar17 % puVar6[3] != uVar14" (assignment_expression "piVar21 = piVar19" (identifier "piVar21") (= "=") (identifier "piVar19")) (, ",") (binary_expression "uVar17 % puVar6[3] != uVar14" (binary_expression "uVar17 % puVar6[3]" (identifier "uVar17") (% "%") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]"))) (!= "!=") (identifier "uVar14")))) () ")"))) () ")")) (goto_statement "goto code_r0x00122b36;" (goto "goto") (statement_identifier "code_r0x00122b36") (; ";"))) (} "}"))) (if_statement "if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }" (if "if") (parenthesized_expression "(*piVar21 != 0)" (( "(") (binary_expression "*piVar21 != 0" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229a9;\n        }" ({ "{") (expression_statement "uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);" (assignment_expression "uStack_4c = uStack_4c + *(int *)(*piVar21 + 8)" (identifier "uStack_4c") (= "=") (binary_expression "uStack_4c + *(int *)(*piVar21 + 8)" (identifier "uStack_4c") (+ "+") (pointer_expression "*(int *)(*piVar21 + 8)" (* "*") (cast_expression "(int *)(*piVar21 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar21 + 8)" (( "(") (binary_expression "*piVar21 + 8" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (+ "+") (number_literal "8")) () ")")))))) (; ";")) (goto_statement "goto code_r0x001229a9;" (goto "goto") (statement_identifier "code_r0x001229a9") (; ";")) (} "}"))) (} "}"))) (labeled_statement "code_r0x00122b36:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);" (statement_identifier "code_r0x00122b36") (: ":") (expression_statement "iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);" (assignment_expression "iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" (identifier "iVar15") (= "=") (call_expression "FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" (identifier "FUN_00318cf0") (argument_list "(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" (( "(") (identifier "puVar6") (, ",") (identifier "piVar3") (, ",") (binary_expression "local_38[2] & 0x7ffffff" (subscript_expression "local_38[2]" (identifier "local_38") ([ "[") (number_literal "2") (] "]")) (& "&") (number_literal "0x7ffffff")) (, ",") (identifier "local_34") () ")")))) (; ";"))) (expression_statement "uStack_4c = iVar15 + uStack_4c;" (assignment_expression "uStack_4c = iVar15 + uStack_4c" (identifier "uStack_4c") (= "=") (binary_expression "iVar15 + uStack_4c" (identifier "iVar15") (+ "+") (identifier "uStack_4c"))) (; ";")) (} "}")))) (labeled_statement "code_r0x001229a9:\n    uStack_4c = uStack_4c | local_48;" (statement_identifier "code_r0x001229a9") (: ":") (expression_statement "uStack_4c = uStack_4c | local_48;" (assignment_expression "uStack_4c = uStack_4c | local_48" (identifier "uStack_4c") (= "=") (binary_expression "uStack_4c | local_48" (identifier "uStack_4c") (| "|") (identifier "local_48"))) (; ";"))) (expression_statement "*puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;" (assignment_expression "*puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff" (pointer_expression "*puVar23" (* "*") (identifier "puVar23")) (= "=") (binary_expression "(uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff" (binary_expression "(uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000" (binary_expression "(uStack_4c & 0xf000) << 4" (parenthesized_expression "(uStack_4c & 0xf000)" (( "(") (binary_expression "uStack_4c & 0xf000" (identifier "uStack_4c") (& "&") (number_literal "0xf000")) () ")")) (<< "<<") (number_literal "4")) (| "|") (binary_expression "uVar9 & 0xfff0f000" (identifier "uVar9") (& "&") (number_literal "0xfff0f000"))) (| "|") (binary_expression "uStack_4c & 0xfff" (identifier "uStack_4c") (& "&") (number_literal "0xfff")))) (; ";")) (goto_statement "goto joined_r0x00122aa6;" (goto "goto") (statement_identifier "joined_r0x00122aa6") (; ";"))) (case_statement "case 0x2f:" (case "case") (number_literal "0x2f") (: ":")) (case_statement "case 0x31:" (case "case") (number_literal "0x31") (: ":")) (case_statement "case 0x57:" (case "case") (number_literal "0x57") (: ":")) (case_statement "case 0x59:\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    bVar1 = *(byte *)(iVar5 + 0x34);\n    uVar8 = (ushort)*puVar23;\n    uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;\n    uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;\n    uStack_4c = uVar9 - 0x10000;\n    if ((uVar14 & 0x8000) == 0) {\n      uStack_4c = uVar9;\n    }\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x00122a61:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;\n    *(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;\n    *(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);\njoined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;\n    break;" (case "case") (number_literal "0x59") (: ":") (expression_statement "uVar2 = *(ushort *)((int)puVar23 + 2);" (assignment_expression "uVar2 = *(ushort *)((int)puVar23 + 2)" (identifier "uVar2") (= "=") (pointer_expression "*(ushort *)((int)puVar23 + 2)" (* "*") (cast_expression "(ushort *)((int)puVar23 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar23 + 2)" (( "(") (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23")) (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "bVar1 = *(byte *)(iVar5 + 0x34);" (assignment_expression "bVar1 = *(byte *)(iVar5 + 0x34)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(iVar5 + 0x34)" (* "*") (cast_expression "(byte *)(iVar5 + 0x34)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x34)" (( "(") (binary_expression "iVar5 + 0x34" (identifier "iVar5") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "uVar8 = (ushort)*puVar23;" (assignment_expression "uVar8 = (ushort)*puVar23" (identifier "uVar8") (= "=") (binary_expression "(ushort)*puVar23" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (* "*") (identifier "puVar23"))) (; ";")) (expression_statement "uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;" (assignment_expression "uVar14 = ((uVar8 & 0xf) << 0x10) >> 4" (identifier "uVar14") (= "=") (binary_expression "((uVar8 & 0xf) << 0x10) >> 4" (parenthesized_expression "((uVar8 & 0xf) << 0x10)" (( "(") (binary_expression "(uVar8 & 0xf) << 0x10" (parenthesized_expression "(uVar8 & 0xf)" (( "(") (binary_expression "uVar8 & 0xf" (identifier "uVar8") (& "&") (number_literal "0xf")) () ")")) (<< "<<") (number_literal "0x10")) () ")")) (>> ">>") (number_literal "4"))) (; ";")) (expression_statement "uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;" (assignment_expression "uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4" (identifier "uVar9") (= "=") (binary_expression "((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4" (binary_expression "((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff" (binary_expression "((uVar8 & 0x400) << 0x10) >> 0xf | uVar14" (binary_expression "((uVar8 & 0x400) << 0x10) >> 0xf" (parenthesized_expression "((uVar8 & 0x400) << 0x10)" (( "(") (binary_expression "(uVar8 & 0x400) << 0x10" (parenthesized_expression "(uVar8 & 0x400)" (( "(") (binary_expression "uVar8 & 0x400" (identifier "uVar8") (& "&") (number_literal "0x400")) () ")")) (<< "<<") (number_literal "0x10")) () ")")) (>> ">>") (number_literal "0xf")) (| "|") (identifier "uVar14")) (| "|") (binary_expression "uVar2 & 0xff" (identifier "uVar2") (& "&") (number_literal "0xff"))) (| "|") (binary_expression "(uVar2 & 0x7000) >> 4" (parenthesized_expression "(uVar2 & 0x7000)" (( "(") (binary_expression "uVar2 & 0x7000" (identifier "uVar2") (& "&") (number_literal "0x7000")) () ")")) (>> ">>") (number_literal "4")))) (; ";")) (expression_statement "uStack_4c = uVar9 - 0x10000;" (assignment_expression "uStack_4c = uVar9 - 0x10000" (identifier "uStack_4c") (= "=") (binary_expression "uVar9 - 0x10000" (identifier "uVar9") (- "-") (number_literal "0x10000"))) (; ";")) (if_statement "if ((uVar14 & 0x8000) == 0) {\n      uStack_4c = uVar9;\n    }" (if "if") (parenthesized_expression "((uVar14 & 0x8000) == 0)" (( "(") (binary_expression "(uVar14 & 0x8000) == 0" (parenthesized_expression "(uVar14 & 0x8000)" (( "(") (binary_expression "uVar14 & 0x8000" (identifier "uVar14") (& "&") (number_literal "0x8000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uStack_4c = uVar9;\n    }" ({ "{") (expression_statement "uStack_4c = uVar9;" (assignment_expression "uStack_4c = uVar9" (identifier "uStack_4c") (= "=") (identifier "uVar9")) (; ";")) (} "}"))) (if_statement "if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)((int)local_38 + 0xb) < '\0')" (( "(") (binary_expression "(char)*(byte *)((int)local_38 + 0xb) < '\0'" (cast_expression "(char)*(byte *)((int)local_38 + 0xb)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)((int)local_38 + 0xb)" (* "*") (cast_expression "(byte *)((int)local_38 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_38 + 0xb)" (( "(") (binary_expression "(int)local_38 + 0xb" (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38")) (+ "+") (number_literal "0xb")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uStack_4c = uStack_4c + local_38[3];\n    }" ({ "{") (expression_statement "uStack_4c = uStack_4c + local_38[3];" (assignment_expression "uStack_4c = uStack_4c + local_38[3]" (identifier "uStack_4c") (= "=") (binary_expression "uStack_4c + local_38[3]" (identifier "uStack_4c") (+ "+") (subscript_expression "local_38[3]" (identifier "local_38") ([ "[") (number_literal "3") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" (else "else") (compound_statement "{\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }\ncode_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" ({ "{") (if_statement "if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }" (if "if") (parenthesized_expression "((*(byte *)((int)local_38 + 0xb) & 8) == 0)" (( "(") (binary_expression "(*(byte *)((int)local_38 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)((int)local_38 + 0xb) & 8)" (( "(") (binary_expression "*(byte *)((int)local_38 + 0xb) & 8" (pointer_expression "*(byte *)((int)local_38 + 0xb)" (* "*") (cast_expression "(byte *)((int)local_38 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_38 + 0xb)" (( "(") (binary_expression "(int)local_38 + 0xb" (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38")) (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));\n      }" ({ "{") (expression_statement "FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));" (call_expression "FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2))" (identifier "FUN_002446e0") (argument_list "("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2))" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x6ab") (, ",") (string_literal ""value"" (" """) (string_content "value") (" """)) (, ",") (call_expression "CONCAT22(uVar8,uVar2)" (identifier "CONCAT22") (argument_list "(uVar8,uVar2)" (( "(") (identifier "uVar8") (, ",") (identifier "uVar2") () ")"))) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar6 = (uint *)local_38[3];" (assignment_expression "puVar6 = (uint *)local_38[3]" (identifier "puVar6") (= "=") (cast_expression "(uint *)local_38[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_38[3]" (identifier "local_38") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "local_34 = *puVar6;" (assignment_expression "local_34 = *puVar6" (identifier "local_34") (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (if_statement "if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }" (if "if") (parenthesized_expression "(uStack_4c < 0xffffff00)" (( "(") (binary_expression "uStack_4c < 0xffffff00" (identifier "uStack_4c") (< "<") (number_literal "0xffffff00")) () ")")) (compound_statement "{\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }" ({ "{") (expression_statement "local_34 = local_34 + uStack_4c;" (assignment_expression "local_34 = local_34 + uStack_4c" (identifier "local_34") (= "=") (binary_expression "local_34 + uStack_4c" (identifier "local_34") (+ "+") (identifier "uStack_4c"))) (; ";")) (expression_statement "uStack_4c = 0;" (assignment_expression "uStack_4c = 0" (identifier "uStack_4c") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar9 = local_34 % puVar6[3];" (assignment_expression "uVar9 = local_34 % puVar6[3]" (identifier "uVar9") (= "=") (binary_expression "local_34 % puVar6[3]" (identifier "local_34") (% "%") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "piVar21 = *(int **)(puVar6[2] + uVar9 * 4);" (assignment_expression "piVar21 = *(int **)(puVar6[2] + uVar9 * 4)" (identifier "piVar21") (= "=") (pointer_expression "*(int **)(puVar6[2] + uVar9 * 4)" (* "*") (cast_expression "(int **)(puVar6[2] + uVar9 * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar6[2] + uVar9 * 4)" (( "(") (binary_expression "puVar6[2] + uVar9 * 4" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (+ "+") (binary_expression "uVar9 * 4" (identifier "uVar9") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }" (if "if") (parenthesized_expression "(piVar21 != (int *)0x0)" (( "(") (binary_expression "piVar21 != (int *)0x0" (identifier "piVar21") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }\n      }" ({ "{") (expression_statement "uVar14 = ((int *)*piVar21)[1];" (assignment_expression "uVar14 = ((int *)*piVar21)[1]" (identifier "uVar14") (= "=") (subscript_expression "((int *)*piVar21)[1]" (parenthesized_expression "((int *)*piVar21)" (( "(") (cast_expression "(int *)*piVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar7 = (int *)*piVar21;" (assignment_expression "piVar7 = (int *)*piVar21" (identifier "piVar7") (= "=") (cast_expression "(int *)*piVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar21" (* "*") (identifier "piVar21")))) (; ";")) (while_statement "while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }" (while "while") (parenthesized_expression "(piVar19 = piVar7, uVar14 != local_34)" (( "(") (comma_expression "piVar19 = piVar7, uVar14 != local_34" (assignment_expression "piVar19 = piVar7" (identifier "piVar19") (= "=") (identifier "piVar7")) (, ",") (binary_expression "uVar14 != local_34" (identifier "uVar14") (!= "!=") (identifier "local_34"))) () ")")) (compound_statement "{\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;\n        }" ({ "{") (expression_statement "piVar7 = (int *)*piVar19;" (assignment_expression "piVar7 = (int *)*piVar19" (identifier "piVar7") (= "=") (cast_expression "(int *)*piVar19" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar19" (* "*") (identifier "piVar19")))) (; ";")) (if_statement "if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122b06;" (if "if") (parenthesized_expression "((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))" (( "(") (binary_expression "(piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9)" (parenthesized_expression "(piVar7 == (int *)0x0)" (( "(") (binary_expression "piVar7 == (int *)0x0" (identifier "piVar7") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9)" (( "(") (comma_expression "uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9" (assignment_expression "uVar14 = piVar7[1]" (identifier "uVar14") (= "=") (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]"))) (, ",") (comma_expression "piVar21 = piVar19, uVar14 % puVar6[3] != uVar9" (assignment_expression "piVar21 = piVar19" (identifier "piVar21") (= "=") (identifier "piVar19")) (, ",") (binary_expression "uVar14 % puVar6[3] != uVar9" (binary_expression "uVar14 % puVar6[3]" (identifier "uVar14") (% "%") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]"))) (!= "!=") (identifier "uVar9")))) () ")"))) () ")")) (goto_statement "goto code_r0x00122b06;" (goto "goto") (statement_identifier "code_r0x00122b06") (; ";"))) (} "}"))) (if_statement "if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }" (if "if") (parenthesized_expression "(*piVar21 != 0)" (( "(") (binary_expression "*piVar21 != 0" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x00122a61;\n        }" ({ "{") (expression_statement "uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);" (assignment_expression "uStack_4c = uStack_4c + *(int *)(*piVar21 + 8)" (identifier "uStack_4c") (= "=") (binary_expression "uStack_4c + *(int *)(*piVar21 + 8)" (identifier "uStack_4c") (+ "+") (pointer_expression "*(int *)(*piVar21 + 8)" (* "*") (cast_expression "(int *)(*piVar21 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar21 + 8)" (( "(") (binary_expression "*piVar21 + 8" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (+ "+") (number_literal "8")) () ")")))))) (; ";")) (goto_statement "goto code_r0x00122a61;" (goto "goto") (statement_identifier "code_r0x00122a61") (; ";")) (} "}"))) (} "}"))) (labeled_statement "code_r0x00122b06:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);" (statement_identifier "code_r0x00122b06") (: ":") (expression_statement "iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);" (assignment_expression "iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" (identifier "iVar15") (= "=") (call_expression "FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" (identifier "FUN_00318cf0") (argument_list "(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" (( "(") (identifier "puVar6") (, ",") (identifier "piVar3") (, ",") (binary_expression "local_38[2] & 0x7ffffff" (subscript_expression "local_38[2]" (identifier "local_38") ([ "[") (number_literal "2") (] "]")) (& "&") (number_literal "0x7ffffff")) (, ",") (identifier "local_34") () ")")))) (; ";"))) (expression_statement "uStack_4c = iVar15 + uStack_4c;" (assignment_expression "uStack_4c = iVar15 + uStack_4c" (identifier "uStack_4c") (= "=") (binary_expression "iVar15 + uStack_4c" (identifier "iVar15") (+ "+") (identifier "uStack_4c"))) (; ";")) (} "}")))) (labeled_statement "code_r0x00122a61:\n    uStack_4c = uStack_4c | local_48;" (statement_identifier "code_r0x00122a61") (: ":") (expression_statement "uStack_4c = uStack_4c | local_48;" (assignment_expression "uStack_4c = uStack_4c | local_48" (identifier "uStack_4c") (= "=") (binary_expression "uStack_4c | local_48" (identifier "uStack_4c") (| "|") (identifier "local_48"))) (; ";"))) (expression_statement "uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;" (assignment_expression "uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00" (identifier "uVar9") (= "=") (binary_expression "CONCAT22(uVar8,uVar2) & 0xfbf08f00" (call_expression "CONCAT22(uVar8,uVar2)" (identifier "CONCAT22") (argument_list "(uVar8,uVar2)" (( "(") (identifier "uVar8") (, ",") (identifier "uVar2") () ")"))) (& "&") (number_literal "0xfbf08f00"))) (; ";")) (expression_statement "*(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;" (assignment_expression "*(ushort *)((int)puVar23 + 2) =\n         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff" (pointer_expression "*(ushort *)((int)puVar23 + 2)" (* "*") (cast_expression "(ushort *)((int)puVar23 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar23 + 2)" (( "(") (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23")) (+ "+") (number_literal "2")) () ")")))) (= "=") (binary_expression "(ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff" (binary_expression "(ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9" (binary_expression "(ushort)(uStack_4c << 4) & 0x7000" (call_expression "(ushort)(uStack_4c << 4)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(uStack_4c << 4)" (( "(") (binary_expression "uStack_4c << 4" (identifier "uStack_4c") (<< "<<") (number_literal "4")) () ")"))) (& "&") (number_literal "0x7000")) (| "|") (cast_expression "(ushort)uVar9" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar9"))) (| "|") (binary_expression "(ushort)uStack_4c & 0xff" (cast_expression "(ushort)uStack_4c" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uStack_4c")) (& "&") (number_literal "0xff")))) (; ";")) (expression_statement "*(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);" (assignment_expression "*(ushort *)puVar23 =\n         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10)" (pointer_expression "*(ushort *)puVar23" (* "*") (cast_expression "(ushort *)puVar23" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar23"))) (= "=") (binary_expression "(ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |\n         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10)" (binary_expression "(ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf" (call_expression "(ushort)(uVar9 >> 0x10)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(uVar9 >> 0x10)" (( "(") (binary_expression "uVar9 >> 0x10" (identifier "uVar9") (>> ">>") (number_literal "0x10")) () ")"))) (| "|") (binary_expression "(ushort)((uStack_4c << 4) >> 0x10) & 0xf" (call_expression "(ushort)((uStack_4c << 4) >> 0x10)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "((uStack_4c << 4) >> 0x10)" (( "(") (binary_expression "(uStack_4c << 4) >> 0x10" (parenthesized_expression "(uStack_4c << 4)" (( "(") (binary_expression "uStack_4c << 4" (identifier "uStack_4c") (<< "<<") (number_literal "4")) () ")")) (>> ">>") (number_literal "0x10")) () ")"))) (& "&") (number_literal "0xf"))) (| "|") (call_expression "(ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(((uStack_4c & 0x800) << 0xf) >> 0x10)" (( "(") (binary_expression "((uStack_4c & 0x800) << 0xf) >> 0x10" (parenthesized_expression "((uStack_4c & 0x800) << 0xf)" (( "(") (binary_expression "(uStack_4c & 0x800) << 0xf" (parenthesized_expression "(uStack_4c & 0x800)" (( "(") (binary_expression "uStack_4c & 0x800" (identifier "uStack_4c") (& "&") (number_literal "0x800")) () ")")) (<< "<<") (number_literal "0xf")) () ")")) (>> ">>") (number_literal "0x10")) () ")"))))) (; ";")) (labeled_statement "joined_r0x00122aa6:\n    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;" (statement_identifier "joined_r0x00122aa6") (: ":") (if_statement "if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;" (if "if") (parenthesized_expression "(((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000))" (( "(") (binary_expression "((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)" (parenthesized_expression "((bVar1 >> 2 & 1) == 0)" (( "(") (binary_expression "(bVar1 >> 2 & 1) == 0" (parenthesized_expression "(bVar1 >> 2 & 1)" (( "(") (binary_expression "bVar1 >> 2 & 1" (binary_expression "bVar1 >> 2" (identifier "bVar1") (>> ">>") (number_literal "2")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uStack_4c + 0x8000 < 0x10000)" (( "(") (binary_expression "uStack_4c + 0x8000 < 0x10000" (binary_expression "uStack_4c + 0x8000" (identifier "uStack_4c") (+ "+") (number_literal "0x8000")) (< "<") (number_literal "0x10000")) () ")"))) () ")")) (goto_statement "goto LAB_0012238d;" (goto "goto") (statement_identifier "LAB_0012238d") (; ";")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x33:\n    iVar15 = FUN_00112810(0,local_48);\ncode_r0x00122342:\n    if (iVar15 == 1) break;\n    if (iVar15 == 0) goto LAB_0012238d;\n    if (iVar15 != 2) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }\n    uVar20 = *(undefined4 *)(iVar5 + 4);\n    pcVar12 = "unexpected opcode while processing relocation %s";\n    goto LAB_0012236a;" (case "case") (number_literal "0x33") (: ":") (expression_statement "iVar15 = FUN_00112810(0,local_48);" (assignment_expression "iVar15 = FUN_00112810(0,local_48)" (identifier "iVar15") (= "=") (call_expression "FUN_00112810(0,local_48)" (identifier "FUN_00112810") (argument_list "(0,local_48)" (( "(") (number_literal "0") (, ",") (identifier "local_48") () ")")))) (; ";")) (labeled_statement "code_r0x00122342:\n    if (iVar15 == 1) break;" (statement_identifier "code_r0x00122342") (: ":") (if_statement "if (iVar15 == 1) break;" (if "if") (parenthesized_expression "(iVar15 == 1)" (( "(") (binary_expression "iVar15 == 1" (identifier "iVar15") (== "==") (number_literal "1")) () ")")) (break_statement "break;" (break "break") (; ";")))) (if_statement "if (iVar15 == 0) goto LAB_0012238d;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0012238d;" (goto "goto") (statement_identifier "LAB_0012238d") (; ";"))) (if_statement "if (iVar15 != 2) {\n                    \n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }" (if "if") (parenthesized_expression "(iVar15 != 2)" (( "(") (binary_expression "iVar15 != 2" (identifier "iVar15") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                    \n      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);\n    }" ({ "{") (expression_statement "FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);" (call_expression "FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15)" (identifier "FUN_002446e0") (argument_list "("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15)" (( "(") (string_literal ""../../gold/arm.cc"" (" """) (string_content "../../gold/arm.cc") (" """)) (, ",") (number_literal "0x29e2") (, ",") (string_literal ""relocate_special_relocatable"" (" """) (string_content "relocate_special_relocatable") (" """)) (, ",") (identifier "iVar15") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar20 = *(undefined4 *)(iVar5 + 4);" (assignment_expression "uVar20 = *(undefined4 *)(iVar5 + 4)" (identifier "uVar20") (= "=") (pointer_expression "*(undefined4 *)(iVar5 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pcVar12 = "unexpected opcode while processing relocation %s";" (assignment_expression "pcVar12 = "unexpected opcode while processing relocation %s"" (identifier "pcVar12") (= "=") (string_literal ""unexpected opcode while processing relocation %s"" (" """) (string_content "unexpected opcode while processing relocation %s") (" """))) (; ";")) (goto_statement "goto LAB_0012236a;" (goto "goto") (statement_identifier "LAB_0012236a") (; ";"))) (case_statement "case 0x34:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);\n    *(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;\n    if (uVar8 < 0x7f) goto LAB_0012238d;\n    break;" (case "case") (number_literal "0x34") (: ":") (expression_statement "uVar2 = (ushort)*puVar23;" (assignment_expression "uVar2 = (ushort)*puVar23" (identifier "uVar2") (= "=") (binary_expression "(ushort)*puVar23" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (* "*") (identifier "puVar23"))) (; ";")) (expression_statement "uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);" (assignment_expression "uVar8 = FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e)" (identifier "uVar8") (= "=") (call_expression "FUN_00072130(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e)" (identifier "FUN_00072130") (argument_list "(local_38,piVar3,\n                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e)" (( "(") (identifier "local_38") (, ",") (identifier "piVar3") (, ",") (binary_expression "(ushort)((int)(uint)uVar2 >> 3) & 0x40 |\n                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e" (binary_expression "(ushort)((int)(uint)uVar2 >> 3) & 0x40" (call_expression "(ushort)((int)(uint)uVar2 >> 3)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "((int)(uint)uVar2 >> 3)" (( "(") (binary_expression "(int)(uint)uVar2 >> 3" (cast_expression "(int)(uint)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)uVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar2"))) (>> ">>") (number_literal "3")) () ")"))) (& "&") (number_literal "0x40")) (| "|") (binary_expression "(ushort)((int)(uint)uVar2 >> 2) & 0x3e" (call_expression "(ushort)((int)(uint)uVar2 >> 2)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "((int)(uint)uVar2 >> 2)" (( "(") (binary_expression "(int)(uint)uVar2 >> 2" (cast_expression "(int)(uint)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)uVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar2"))) (>> ">>") (number_literal "2")) () ")"))) (& "&") (number_literal "0x3e"))) () ")")))) (; ";")) (expression_statement "*(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;" (assignment_expression "*(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200" (pointer_expression "*(ushort *)puVar23" (* "*") (cast_expression "(ushort *)puVar23" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar23"))) (= "=") (binary_expression "uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200" (binary_expression "uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2" (binary_expression "uVar2 & 0xfd07" (identifier "uVar2") (& "&") (number_literal "0xfd07")) (| "|") (binary_expression "(uVar2 & 0x3e) << 2" (parenthesized_expression "(uVar2 & 0x3e)" (( "(") (binary_expression "uVar2 & 0x3e" (identifier "uVar2") (& "&") (number_literal "0x3e")) () ")")) (<< "<<") (number_literal "2"))) (| "|") (binary_expression "uVar8 * 8 & 0x200" (binary_expression "uVar8 * 8" (identifier "uVar8") (* "*") (number_literal "8")) (& "&") (number_literal "0x200")))) (; ";")) (if_statement "if (uVar8 < 0x7f) goto LAB_0012238d;" (if "if") (parenthesized_expression "(uVar8 < 0x7f)" (( "(") (binary_expression "uVar8 < 0x7f" (identifier "uVar8") (< "<") (number_literal "0x7f")) () ")")) (goto_statement "goto LAB_0012238d;" (goto "goto") (statement_identifier "LAB_0012238d") (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x35:\n    uVar2 = (ushort)*puVar23;\n    uVar8 = *(ushort *)((int)puVar23 + 2);\n    uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);\n    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }\ncode_r0x001229f9:\n    uStack_4c = uStack_4c | local_48;\n    uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);\n    uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;\n    if ((int)uStack_4c < 0) {\n      uVar14 = uVar14 | 0xa00000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\n    goto joined_r0x0012230f;" (case "case") (number_literal "0x35") (: ":") (expression_statement "uVar2 = (ushort)*puVar23;" (assignment_expression "uVar2 = (ushort)*puVar23" (identifier "uVar2") (= "=") (binary_expression "(ushort)*puVar23" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (* "*") (identifier "puVar23"))) (; ";")) (expression_statement "uVar8 = *(ushort *)((int)puVar23 + 2);" (assignment_expression "uVar8 = *(ushort *)((int)puVar23 + 2)" (identifier "uVar8") (= "=") (pointer_expression "*(ushort *)((int)puVar23 + 2)" (* "*") (cast_expression "(ushort *)((int)puVar23 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar23 + 2)" (( "(") (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23")) (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);" (assignment_expression "uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1)" (identifier "uStack_4c") (= "=") (binary_expression "((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *\n                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1)" (parenthesized_expression "((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff)" (( "(") (binary_expression "(uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff" (binary_expression "(uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf" (binary_expression "(uVar8 & 0x7000) >> 4" (parenthesized_expression "(uVar8 & 0x7000)" (( "(") (binary_expression "uVar8 & 0x7000" (identifier "uVar8") (& "&") (number_literal "0x7000")) () ")")) (>> ">>") (number_literal "4")) (| "|") (binary_expression "((uVar2 & 0x400) << 0x10) >> 0xf" (parenthesized_expression "((uVar2 & 0x400) << 0x10)" (( "(") (binary_expression "(uVar2 & 0x400) << 0x10" (parenthesized_expression "(uVar2 & 0x400)" (( "(") (binary_expression "uVar2 & 0x400" (identifier "uVar2") (& "&") (number_literal "0x400")) () ")")) (<< "<<") (number_literal "0x10")) () ")")) (>> ">>") (number_literal "0xf"))) (| "|") (binary_expression "uVar8 & 0xff" (identifier "uVar8") (& "&") (number_literal "0xff"))) () ")")) (* "*") (parenthesized_expression "((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1)" (( "(") (binary_expression "(uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1" (binary_expression "(uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2" (call_expression "(uint)((uVar2 & 0xf8ed) != 0xf0ad)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uVar2 & 0xf8ed) != 0xf0ad)" (( "(") (binary_expression "(uVar2 & 0xf8ed) != 0xf0ad" (parenthesized_expression "(uVar2 & 0xf8ed)" (( "(") (binary_expression "uVar2 & 0xf8ed" (identifier "uVar2") (& "&") (number_literal "0xf8ed")) () ")")) (!= "!=") (number_literal "0xf0ad")) () ")"))) (* "*") (number_literal "2")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {\n      uStack_4c = uStack_4c + local_38[3];\n    }\n    else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)((int)local_38 + 0xb) < '\0')" (( "(") (binary_expression "(char)*(byte *)((int)local_38 + 0xb) < '\0'" (cast_expression "(char)*(byte *)((int)local_38 + 0xb)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)((int)local_38 + 0xb)" (* "*") (cast_expression "(byte *)((int)local_38 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_38 + 0xb)" (( "(") (binary_expression "(int)local_38 + 0xb" (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38")) (+ "+") (number_literal "0xb")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uStack_4c = uStack_4c + local_38[3];\n    }" ({ "{") (expression_statement "uStack_4c = uStack_4c + local_38[3];" (assignment_expression "uStack_4c = uStack_4c + local_38[3]" (identifier "uStack_4c") (= "=") (binary_expression "uStack_4c + local_38[3]" (identifier "uStack_4c") (+ "+") (subscript_expression "local_38[3]" (identifier "local_38") ([ "[") (number_literal "3") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" (else "else") (compound_statement "{\n      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }\n      puVar6 = (uint *)local_38[3];\n      local_34 = *puVar6;\n      if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }\n      uVar9 = local_34 % puVar6[3];\n      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);\n      if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }\ncode_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);\n      uStack_4c = iVar15 + uStack_4c;\n    }" ({ "{") (if_statement "if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }" (if "if") (parenthesized_expression "((*(byte *)((int)local_38 + 0xb) & 8) == 0)" (( "(") (binary_expression "(*(byte *)((int)local_38 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)((int)local_38 + 0xb) & 8)" (( "(") (binary_expression "*(byte *)((int)local_38 + 0xb) & 8" (pointer_expression "*(byte *)((int)local_38 + 0xb)" (* "*") (cast_expression "(byte *)((int)local_38 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_38 + 0xb)" (( "(") (binary_expression "(int)local_38 + 0xb" (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38")) (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);\n      }" ({ "{") (expression_statement "FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);" (call_expression "FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff)" (identifier "FUN_002446e0") (argument_list "("../../gold/object.h",0x6ab,"value",uVar8 & 0xff)" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x6ab") (, ",") (string_literal ""value"" (" """) (string_content "value") (" """)) (, ",") (binary_expression "uVar8 & 0xff" (identifier "uVar8") (& "&") (number_literal "0xff")) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar6 = (uint *)local_38[3];" (assignment_expression "puVar6 = (uint *)local_38[3]" (identifier "puVar6") (= "=") (cast_expression "(uint *)local_38[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_38[3]" (identifier "local_38") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "local_34 = *puVar6;" (assignment_expression "local_34 = *puVar6" (identifier "local_34") (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (if_statement "if (uStack_4c < 0xffffff00) {\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }" (if "if") (parenthesized_expression "(uStack_4c < 0xffffff00)" (( "(") (binary_expression "uStack_4c < 0xffffff00" (identifier "uStack_4c") (< "<") (number_literal "0xffffff00")) () ")")) (compound_statement "{\n        local_34 = local_34 + uStack_4c;\n        uStack_4c = 0;\n      }" ({ "{") (expression_statement "local_34 = local_34 + uStack_4c;" (assignment_expression "local_34 = local_34 + uStack_4c" (identifier "local_34") (= "=") (binary_expression "local_34 + uStack_4c" (identifier "local_34") (+ "+") (identifier "uStack_4c"))) (; ";")) (expression_statement "uStack_4c = 0;" (assignment_expression "uStack_4c = 0" (identifier "uStack_4c") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar9 = local_34 % puVar6[3];" (assignment_expression "uVar9 = local_34 % puVar6[3]" (identifier "uVar9") (= "=") (binary_expression "local_34 % puVar6[3]" (identifier "local_34") (% "%") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "piVar21 = *(int **)(puVar6[2] + uVar9 * 4);" (assignment_expression "piVar21 = *(int **)(puVar6[2] + uVar9 * 4)" (identifier "piVar21") (= "=") (pointer_expression "*(int **)(puVar6[2] + uVar9 * 4)" (* "*") (cast_expression "(int **)(puVar6[2] + uVar9 * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar6[2] + uVar9 * 4)" (( "(") (binary_expression "puVar6[2] + uVar9 * 4" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (+ "+") (binary_expression "uVar9 * 4" (identifier "uVar9") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (piVar21 != (int *)0x0) {\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }" (if "if") (parenthesized_expression "(piVar21 != (int *)0x0)" (( "(") (binary_expression "piVar21 != (int *)0x0" (identifier "piVar21") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar14 = ((int *)*piVar21)[1];\n        piVar7 = (int *)*piVar21;\n        while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }\n        if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }\n      }" ({ "{") (expression_statement "uVar14 = ((int *)*piVar21)[1];" (assignment_expression "uVar14 = ((int *)*piVar21)[1]" (identifier "uVar14") (= "=") (subscript_expression "((int *)*piVar21)[1]" (parenthesized_expression "((int *)*piVar21)" (( "(") (cast_expression "(int *)*piVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar7 = (int *)*piVar21;" (assignment_expression "piVar7 = (int *)*piVar21" (identifier "piVar7") (= "=") (cast_expression "(int *)*piVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar21" (* "*") (identifier "piVar21")))) (; ";")) (while_statement "while (piVar19 = piVar7, uVar14 != local_34) {\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }" (while "while") (parenthesized_expression "(piVar19 = piVar7, uVar14 != local_34)" (( "(") (comma_expression "piVar19 = piVar7, uVar14 != local_34" (assignment_expression "piVar19 = piVar7" (identifier "piVar19") (= "=") (identifier "piVar7")) (, ",") (binary_expression "uVar14 != local_34" (identifier "uVar14") (!= "!=") (identifier "local_34"))) () ")")) (compound_statement "{\n          piVar7 = (int *)*piVar19;\n          if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;\n        }" ({ "{") (expression_statement "piVar7 = (int *)*piVar19;" (assignment_expression "piVar7 = (int *)*piVar19" (identifier "piVar7") (= "=") (cast_expression "(int *)*piVar19" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar19" (* "*") (identifier "piVar19")))) (; ";")) (if_statement "if ((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))\n          goto code_r0x00122ad6;" (if "if") (parenthesized_expression "((piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))" (( "(") (binary_expression "(piVar7 == (int *)0x0) ||\n             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9)" (parenthesized_expression "(piVar7 == (int *)0x0)" (( "(") (binary_expression "piVar7 == (int *)0x0" (identifier "piVar7") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9)" (( "(") (comma_expression "uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9" (assignment_expression "uVar14 = piVar7[1]" (identifier "uVar14") (= "=") (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]"))) (, ",") (comma_expression "piVar21 = piVar19, uVar14 % puVar6[3] != uVar9" (assignment_expression "piVar21 = piVar19" (identifier "piVar21") (= "=") (identifier "piVar19")) (, ",") (binary_expression "uVar14 % puVar6[3] != uVar9" (binary_expression "uVar14 % puVar6[3]" (identifier "uVar14") (% "%") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]"))) (!= "!=") (identifier "uVar9")))) () ")"))) () ")")) (goto_statement "goto code_r0x00122ad6;" (goto "goto") (statement_identifier "code_r0x00122ad6") (; ";"))) (} "}"))) (if_statement "if (*piVar21 != 0) {\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }" (if "if") (parenthesized_expression "(*piVar21 != 0)" (( "(") (binary_expression "*piVar21 != 0" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);\n          goto code_r0x001229f9;\n        }" ({ "{") (expression_statement "uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);" (assignment_expression "uStack_4c = uStack_4c + *(int *)(*piVar21 + 8)" (identifier "uStack_4c") (= "=") (binary_expression "uStack_4c + *(int *)(*piVar21 + 8)" (identifier "uStack_4c") (+ "+") (pointer_expression "*(int *)(*piVar21 + 8)" (* "*") (cast_expression "(int *)(*piVar21 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar21 + 8)" (( "(") (binary_expression "*piVar21 + 8" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (+ "+") (number_literal "8")) () ")")))))) (; ";")) (goto_statement "goto code_r0x001229f9;" (goto "goto") (statement_identifier "code_r0x001229f9") (; ";")) (} "}"))) (} "}"))) (labeled_statement "code_r0x00122ad6:\n      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);" (statement_identifier "code_r0x00122ad6") (: ":") (expression_statement "iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);" (assignment_expression "iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" (identifier "iVar15") (= "=") (call_expression "FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" (identifier "FUN_00318cf0") (argument_list "(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34)" (( "(") (identifier "puVar6") (, ",") (identifier "piVar3") (, ",") (binary_expression "local_38[2] & 0x7ffffff" (subscript_expression "local_38[2]" (identifier "local_38") ([ "[") (number_literal "2") (] "]")) (& "&") (number_literal "0x7ffffff")) (, ",") (identifier "local_34") () ")")))) (; ";"))) (expression_statement "uStack_4c = iVar15 + uStack_4c;" (assignment_expression "uStack_4c = iVar15 + uStack_4c" (identifier "uStack_4c") (= "=") (binary_expression "iVar15 + uStack_4c" (identifier "iVar15") (+ "+") (identifier "uStack_4c"))) (; ";")) (} "}")))) (labeled_statement "code_r0x001229f9:\n    uStack_4c = uStack_4c | local_48;" (statement_identifier "code_r0x001229f9") (: ":") (expression_statement "uStack_4c = uStack_4c | local_48;" (assignment_expression "uStack_4c = uStack_4c | local_48" (identifier "uStack_4c") (= "=") (binary_expression "uStack_4c | local_48" (identifier "uStack_4c") (| "|") (identifier "local_48"))) (; ";"))) (expression_statement "uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);" (assignment_expression "uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f)" (identifier "uVar9") (= "=") (binary_expression "((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f)" (parenthesized_expression "((int)uStack_4c >> 0x1f ^ uStack_4c)" (( "(") (binary_expression "(int)uStack_4c >> 0x1f ^ uStack_4c" (binary_expression "(int)uStack_4c >> 0x1f" (cast_expression "(int)uStack_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_4c")) (>> ">>") (number_literal "0x1f")) (^ "^") (identifier "uStack_4c")) () ")")) (- "-") (parenthesized_expression "((int)uStack_4c >> 0x1f)" (( "(") (binary_expression "(int)uStack_4c >> 0x1f" (cast_expression "(int)uStack_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_4c")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;" (assignment_expression "uVar14 = (uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00" (identifier "uVar14") (= "=") (binary_expression "(uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00" (binary_expression "(uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4 | uVar9 & 0xff" (binary_expression "(uVar9 & 0x800) << 0xf |\n             (uVar9 & 0x700) << 4" (binary_expression "(uVar9 & 0x800) << 0xf" (parenthesized_expression "(uVar9 & 0x800)" (( "(") (binary_expression "uVar9 & 0x800" (identifier "uVar9") (& "&") (number_literal "0x800")) () ")")) (<< "<<") (number_literal "0xf")) (| "|") (binary_expression "(uVar9 & 0x700) << 4" (parenthesized_expression "(uVar9 & 0x700)" (( "(") (binary_expression "uVar9 & 0x700" (identifier "uVar9") (& "&") (number_literal "0x700")) () ")")) (<< "<<") (number_literal "4"))) (| "|") (binary_expression "uVar9 & 0xff" (identifier "uVar9") (& "&") (number_literal "0xff"))) (| "|") (binary_expression "CONCAT22(uVar2,uVar8) & 0xfb0f8f00" (call_expression "CONCAT22(uVar2,uVar8)" (identifier "CONCAT22") (argument_list "(uVar2,uVar8)" (( "(") (identifier "uVar2") (, ",") (identifier "uVar8") () ")"))) (& "&") (number_literal "0xfb0f8f00")))) (; ";")) (if_statement "if ((int)uStack_4c < 0) {\n      uVar14 = uVar14 | 0xa00000;\n    }" (if "if") (parenthesized_expression "((int)uStack_4c < 0)" (( "(") (binary_expression "(int)uStack_4c < 0" (cast_expression "(int)uStack_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_4c")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      uVar14 = uVar14 | 0xa00000;\n    }" ({ "{") (expression_statement "uVar14 = uVar14 | 0xa00000;" (assignment_expression "uVar14 = uVar14 | 0xa00000" (identifier "uVar14") (= "=") (binary_expression "uVar14 | 0xa00000" (identifier "uVar14") (| "|") (number_literal "0xa00000"))) (; ";")) (} "}"))) (expression_statement "*(ushort *)((int)puVar23 + 2) = (ushort)uVar14;" (assignment_expression "*(ushort *)((int)puVar23 + 2) = (ushort)uVar14" (pointer_expression "*(ushort *)((int)puVar23 + 2)" (* "*") (cast_expression "(ushort *)((int)puVar23 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar23 + 2)" (( "(") (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23")) (+ "+") (number_literal "2")) () ")")))) (= "=") (cast_expression "(ushort)uVar14" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar14"))) (; ";")) (expression_statement "*(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);" (assignment_expression "*(ushort *)puVar23 = (ushort)(uVar14 >> 0x10)" (pointer_expression "*(ushort *)puVar23" (* "*") (cast_expression "(ushort *)puVar23" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar23"))) (= "=") (call_expression "(ushort)(uVar14 >> 0x10)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(uVar14 >> 0x10)" (( "(") (binary_expression "uVar14 >> 0x10" (identifier "uVar14") (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (goto_statement "goto joined_r0x0012230f;" (goto "goto") (statement_identifier "joined_r0x0012230f") (; ";"))) (case_statement "case 0x36:\n    uVar14 = *puVar23;\n    uVar2 = *(ushort *)((int)puVar23 + 2);\n    uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));\n    uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);\n    uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;\n    if (-1 < (int)uVar17) {\n      uVar14 = uVar14 | 0x800000;\n    }\n    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;\n    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);\njoined_r0x0012230f:\n    if ((int)uVar9 < 0x1000) goto LAB_0012238d;\n    break;" (case "case") (number_literal "0x36") (: ":") (expression_statement "uVar14 = *puVar23;" (assignment_expression "uVar14 = *puVar23" (identifier "uVar14") (= "=") (pointer_expression "*puVar23" (* "*") (identifier "puVar23"))) (; ";")) (expression_statement "uVar2 = *(ushort *)((int)puVar23 + 2);" (assignment_expression "uVar2 = *(ushort *)((int)puVar23 + 2)" (identifier "uVar2") (= "=") (pointer_expression "*(ushort *)((int)puVar23 + 2)" (* "*") (cast_expression "(ushort *)((int)puVar23 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar23 + 2)" (( "(") (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23")) (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));" (assignment_expression "uVar17 = FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1))" (identifier "uVar17") (= "=") (call_expression "FUN_00072130(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1))" (identifier "FUN_00072130") (argument_list "(local_38,piVar3,\n                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1))" (( "(") (identifier "local_38") (, ",") (identifier "piVar3") (, ",") (binary_expression "(uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1)" (parenthesized_expression "(uVar2 & 0xfff)" (( "(") (binary_expression "uVar2 & 0xfff" (identifier "uVar2") (& "&") (number_literal "0xfff")) () ")")) (* "*") (parenthesized_expression "(-(uint)(((ushort)uVar14 & 0x80) == 0) | 1)" (( "(") (binary_expression "-(uint)(((ushort)uVar14 & 0x80) == 0) | 1" (unary_expression "-(uint)(((ushort)uVar14 & 0x80) == 0)" (- "-") (call_expression "(uint)(((ushort)uVar14 & 0x80) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(((ushort)uVar14 & 0x80) == 0)" (( "(") (binary_expression "((ushort)uVar14 & 0x80) == 0" (parenthesized_expression "((ushort)uVar14 & 0x80)" (( "(") (binary_expression "(ushort)uVar14 & 0x80" (cast_expression "(ushort)uVar14" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar14")) (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")))) (| "|") (number_literal "1")) () ")"))) () ")")))) (; ";")) (expression_statement "uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);" (assignment_expression "uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f)" (identifier "uVar9") (= "=") (binary_expression "((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f)" (parenthesized_expression "((int)uVar17 >> 0x1f ^ uVar17)" (( "(") (binary_expression "(int)uVar17 >> 0x1f ^ uVar17" (binary_expression "(int)uVar17 >> 0x1f" (cast_expression "(int)uVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar17")) (>> ">>") (number_literal "0x1f")) (^ "^") (identifier "uVar17")) () ")")) (- "-") (parenthesized_expression "((int)uVar17 >> 0x1f)" (( "(") (binary_expression "(int)uVar17 >> 0x1f" (cast_expression "(int)uVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar17")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;" (assignment_expression "uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff" (identifier "uVar14") (= "=") (binary_expression "CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff" (binary_expression "CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000" (call_expression "CONCAT22((ushort)uVar14,uVar2)" (identifier "CONCAT22") (argument_list "((ushort)uVar14,uVar2)" (( "(") (cast_expression "(ushort)uVar14" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar14")) (, ",") (identifier "uVar2") () ")"))) (& "&") (number_literal "0xff7ff000")) (| "|") (binary_expression "uVar9 & 0xfff" (identifier "uVar9") (& "&") (number_literal "0xfff")))) (; ";")) (if_statement "if (-1 < (int)uVar17) {\n      uVar14 = uVar14 | 0x800000;\n    }" (if "if") (parenthesized_expression "(-1 < (int)uVar17)" (( "(") (binary_expression "-1 < (int)uVar17" (number_literal "-1") (< "<") (cast_expression "(int)uVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar17"))) () ")")) (compound_statement "{\n      uVar14 = uVar14 | 0x800000;\n    }" ({ "{") (expression_statement "uVar14 = uVar14 | 0x800000;" (assignment_expression "uVar14 = uVar14 | 0x800000" (identifier "uVar14") (= "=") (binary_expression "uVar14 | 0x800000" (identifier "uVar14") (| "|") (number_literal "0x800000"))) (; ";")) (} "}"))) (expression_statement "*(ushort *)((int)puVar23 + 2) = (ushort)uVar14;" (assignment_expression "*(ushort *)((int)puVar23 + 2) = (ushort)uVar14" (pointer_expression "*(ushort *)((int)puVar23 + 2)" (* "*") (cast_expression "(ushort *)((int)puVar23 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar23 + 2)" (( "(") (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23")) (+ "+") (number_literal "2")) () ")")))) (= "=") (cast_expression "(ushort)uVar14" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar14"))) (; ";")) (expression_statement "*(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);" (assignment_expression "*(ushort *)puVar23 = (ushort)(uVar14 >> 0x10)" (pointer_expression "*(ushort *)puVar23" (* "*") (cast_expression "(ushort *)puVar23" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar23"))) (= "=") (call_expression "(ushort)(uVar14 >> 0x10)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(uVar14 >> 0x10)" (( "(") (binary_expression "uVar14 >> 0x10" (identifier "uVar14") (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (labeled_statement "joined_r0x0012230f:\n    if ((int)uVar9 < 0x1000) goto LAB_0012238d;" (statement_identifier "joined_r0x0012230f") (: ":") (if_statement "if ((int)uVar9 < 0x1000) goto LAB_0012238d;" (if "if") (parenthesized_expression "((int)uVar9 < 0x1000)" (( "(") (binary_expression "(int)uVar9 < 0x1000" (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9")) (< "<") (number_literal "0x1000")) () ")")) (goto_statement "goto LAB_0012238d;" (goto "goto") (statement_identifier "LAB_0012238d") (; ";")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x66:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0x7fe;\n    if ((uVar9 & 0x400) != 0) {\n      uVar17 = uVar17 - 0x800;\n    }\n    uVar9 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;\njoined_r0x00122297:\n    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;\n    break;" (case "case") (number_literal "0x66") (: ":") (expression_statement "uVar14 = *puVar23;" (assignment_expression "uVar14 = *puVar23" (identifier "uVar14") (= "=") (pointer_expression "*puVar23" (* "*") (identifier "puVar23"))) (; ";")) (expression_statement "uVar9 = (uint)(ushort)uVar14 * 2;" (assignment_expression "uVar9 = (uint)(ushort)uVar14 * 2" (identifier "uVar9") (= "=") (binary_expression "(uint)(ushort)uVar14 * 2" (cast_expression "(uint)(ushort)uVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(ushort)uVar14" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar14"))) (* "*") (number_literal "2"))) (; ";")) (expression_statement "uVar17 = uVar9 & 0x7fe;" (assignment_expression "uVar17 = uVar9 & 0x7fe" (identifier "uVar17") (= "=") (binary_expression "uVar9 & 0x7fe" (identifier "uVar9") (& "&") (number_literal "0x7fe"))) (; ";")) (if_statement "if ((uVar9 & 0x400) != 0) {\n      uVar17 = uVar17 - 0x800;\n    }" (if "if") (parenthesized_expression "((uVar9 & 0x400) != 0)" (( "(") (binary_expression "(uVar9 & 0x400) != 0" (parenthesized_expression "(uVar9 & 0x400)" (( "(") (binary_expression "uVar9 & 0x400" (identifier "uVar9") (& "&") (number_literal "0x400")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar17 = uVar17 - 0x800;\n    }" ({ "{") (expression_statement "uVar17 = uVar17 - 0x800;" (assignment_expression "uVar17 = uVar17 - 0x800" (identifier "uVar17") (= "=") (binary_expression "uVar17 - 0x800" (identifier "uVar17") (- "-") (number_literal "0x800"))) (; ";")) (} "}"))) (expression_statement "uVar9 = FUN_00072130(local_38,piVar3,uVar17);" (assignment_expression "uVar9 = FUN_00072130(local_38,piVar3,uVar17)" (identifier "uVar9") (= "=") (call_expression "FUN_00072130(local_38,piVar3,uVar17)" (identifier "FUN_00072130") (argument_list "(local_38,piVar3,uVar17)" (( "(") (identifier "local_38") (, ",") (identifier "piVar3") (, ",") (identifier "uVar17") () ")")))) (; ";")) (expression_statement "*(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;" (assignment_expression "*(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff" (pointer_expression "*(ushort *)puVar23" (* "*") (cast_expression "(ushort *)puVar23" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar23"))) (= "=") (binary_expression "(ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff" (binary_expression "(ushort)uVar14 & 0xf800" (cast_expression "(ushort)uVar14" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar14")) (& "&") (number_literal "0xf800")) (| "|") (binary_expression "(ushort)((int)uVar9 >> 1) & 0x7ff" (call_expression "(ushort)((int)uVar9 >> 1)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "((int)uVar9 >> 1)" (( "(") (binary_expression "(int)uVar9 >> 1" (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9")) (>> ">>") (number_literal "1")) () ")"))) (& "&") (number_literal "0x7ff")))) (; ";")) (labeled_statement "joined_r0x00122297:\n    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;" (statement_identifier "joined_r0x00122297") (: ":") (if_statement "if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;" (if "if") (parenthesized_expression "(uVar9 + 0x800 < 0x1000)" (( "(") (binary_expression "uVar9 + 0x800 < 0x1000" (binary_expression "uVar9 + 0x800" (identifier "uVar9") (+ "+") (number_literal "0x800")) (< "<") (number_literal "0x1000")) () ")")) (goto_statement "goto LAB_0012238d;" (goto "goto") (statement_identifier "LAB_0012238d") (; ";")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x67:\n    uVar14 = *puVar23;\n    uVar9 = (uint)(ushort)uVar14 * 2;\n    uVar17 = uVar9 & 0xff;\n    if ((uVar9 & 0x80) != 0) {\n      uVar17 = uVar17 - 0x100;\n    }\n    iVar15 = FUN_00072130(local_38,piVar3,uVar17);\n    *(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;\n    if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;" (case "case") (number_literal "0x67") (: ":") (expression_statement "uVar14 = *puVar23;" (assignment_expression "uVar14 = *puVar23" (identifier "uVar14") (= "=") (pointer_expression "*puVar23" (* "*") (identifier "puVar23"))) (; ";")) (expression_statement "uVar9 = (uint)(ushort)uVar14 * 2;" (assignment_expression "uVar9 = (uint)(ushort)uVar14 * 2" (identifier "uVar9") (= "=") (binary_expression "(uint)(ushort)uVar14 * 2" (cast_expression "(uint)(ushort)uVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(ushort)uVar14" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar14"))) (* "*") (number_literal "2"))) (; ";")) (expression_statement "uVar17 = uVar9 & 0xff;" (assignment_expression "uVar17 = uVar9 & 0xff" (identifier "uVar17") (= "=") (binary_expression "uVar9 & 0xff" (identifier "uVar9") (& "&") (number_literal "0xff"))) (; ";")) (if_statement "if ((uVar9 & 0x80) != 0) {\n      uVar17 = uVar17 - 0x100;\n    }" (if "if") (parenthesized_expression "((uVar9 & 0x80) != 0)" (( "(") (binary_expression "(uVar9 & 0x80) != 0" (parenthesized_expression "(uVar9 & 0x80)" (( "(") (binary_expression "uVar9 & 0x80" (identifier "uVar9") (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar17 = uVar17 - 0x100;\n    }" ({ "{") (expression_statement "uVar17 = uVar17 - 0x100;" (assignment_expression "uVar17 = uVar17 - 0x100" (identifier "uVar17") (= "=") (binary_expression "uVar17 - 0x100" (identifier "uVar17") (- "-") (number_literal "0x100"))) (; ";")) (} "}"))) (expression_statement "iVar15 = FUN_00072130(local_38,piVar3,uVar17);" (assignment_expression "iVar15 = FUN_00072130(local_38,piVar3,uVar17)" (identifier "iVar15") (= "=") (call_expression "FUN_00072130(local_38,piVar3,uVar17)" (identifier "FUN_00072130") (argument_list "(local_38,piVar3,uVar17)" (( "(") (identifier "local_38") (, ",") (identifier "piVar3") (, ",") (identifier "uVar17") () ")")))) (; ";")) (expression_statement "*(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;" (assignment_expression "*(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff" (pointer_expression "*(ushort *)puVar23" (* "*") (cast_expression "(ushort *)puVar23" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar23"))) (= "=") (binary_expression "(ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff" (binary_expression "(ushort)uVar14 & 0xff00" (cast_expression "(ushort)uVar14" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar14")) (& "&") (number_literal "0xff00")) (| "|") (binary_expression "(ushort)(iVar15 >> 1) & 0xff" (call_expression "(ushort)(iVar15 >> 1)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(iVar15 >> 1)" (( "(") (binary_expression "iVar15 >> 1" (identifier "iVar15") (>> ">>") (number_literal "1")) () ")"))) (& "&") (number_literal "0xff")))) (; ";")) (if_statement "if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;" (if "if") (parenthesized_expression "(iVar15 + 0x100U < 0x200)" (( "(") (binary_expression "iVar15 + 0x100U < 0x200" (binary_expression "iVar15 + 0x100U" (identifier "iVar15") (+ "+") (number_literal "0x100U")) (< "<") (number_literal "0x200")) () ")")) (goto_statement "goto LAB_0012238d;" (goto "goto") (statement_identifier "LAB_0012238d") (; ";")))) (} "}"))) (expression_statement "uVar20 = *(undefined4 *)(iVar5 + 4);" (assignment_expression "uVar20 = *(undefined4 *)(iVar5 + 4)" (identifier "uVar20") (= "=") (pointer_expression "*(undefined4 *)(iVar5 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pcVar12 = "relocation overflow in %s";" (assignment_expression "pcVar12 = "relocation overflow in %s"" (identifier "pcVar12") (= "=") (string_literal ""relocation overflow in %s"" (" """) (string_content "relocation overflow in %s") (" """))) (; ";")) (labeled_statement "LAB_0012236a:\n  uVar13 = gettext(pcVar12);" (statement_identifier "LAB_0012236a") (: ":") (expression_statement "uVar13 = gettext(pcVar12);" (assignment_expression "uVar13 = gettext(pcVar12)" (identifier "uVar13") (= "=") (call_expression "gettext(pcVar12)" (identifier "gettext") (argument_list "(pcVar12)" (( "(") (identifier "pcVar12") () ")")))) (; ";"))) (expression_statement "FUN_0023bd50(param_4,param_7,*param_6,0,uVar13,uVar20);" (call_expression "FUN_0023bd50(param_4,param_7,*param_6,0,uVar13,uVar20)" (identifier "FUN_0023bd50") (argument_list "(param_4,param_7,*param_6,0,uVar13,uVar20)" (( "(") (identifier "param_4") (, ",") (identifier "param_7") (, ",") (pointer_expression "*param_6" (* "*") (identifier "param_6")) (, ",") (number_literal "0") (, ",") (identifier "uVar13") (, ",") (identifier "uVar20") () ")"))) (; ";")) (labeled_statement "LAB_0012238d:\n  FUN_00072240(local_40);" (statement_identifier "LAB_0012238d") (: ":") (expression_statement "FUN_00072240(local_40);" (call_expression "FUN_00072240(local_40)" (identifier "FUN_00072240") (argument_list "(local_40)" (( "(") (identifier "local_40") () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "<anon>": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: void relocate_special_relocatable(Target_arm<false> * this,
   Relocate_info<32,_false> * relinfo, uint sh_type, uchar * preloc_in, size_t relnum,
   Output_section * output_section, Elf_Off offset_in_output_section, uchar * view, Elf_Addr
   view_address, section_size_type param_9, uchar * preloc_out) */

void __thiscall
anon_unknown.dwarf_91258a::Target_arm<false>::relocate_special_relocatable
          (Target_arm<false> *this,Relocate_info<32,_false> *relinfo,uint sh_type,uchar *preloc_in,
          size_t relnum,Output_section *output_section,Elf_Off offset_in_output_section,uchar *view,
          Elf_Addr view_address,section_size_type param_9,uchar *preloc_out)

{
  byte bVar1;
  byte bVar2;
  ushort uVar3;
  ushort uVar4;
  _func_int_varargs **pp_Var5;
  _func_int_varargs *p_Var6;
  Arm_reloc_property *pAVar7;
  pointer pSVar8;
  pointer ppOVar9;
  Arm_address offset;
  pointer pSVar10;
  Merged_symbol_value<32> *pMVar11;
  _Hash_node_base *p_Var12;
  uint uVar13;
  Arm_relobj<false> *pAVar14;
  int iVar15;
  int iVar16;
  Value VVar17;
  Status SVar18;
  char *pcVar19;
  Output_section *pOVar20;
  Elf_Addr EVar21;
  uint uVar22;
  _Hash_node_base *p_Var23;
  uint uVar24;
  __bucket_type p_Var25;
  Arm_relobj<false> *object;
  __bucket_type p_Var26;
  uint uVar27;
  uint *puVar28;
  Arm_relobj<false> *in_stack_ffffff88;
  Symbol_value<32> *in_stack_ffffff8c;
  Arm_address in_stack_ffffff90;
  Arm_address in_stack_ffffff94;
  undefined1 in_stack_ffffff98;
  uint local_4c;
  Arm_relobj<false> *local_48;
  Symbol_value<32> *local_40;
  Sized_symbol<32> *local_38;
  _Hash_node_base *local_34;
  Symbol_value<32> symval;
  
  if (sh_type != 9) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/arm.cc",0x28db,"relocate_special_relocatable");
  }
  object = (Arm_relobj<false> *)relinfo->object;
  pp_Var5 = (((Sized_relobj<32,_false> *)&object->invalid_address)->super_Relobj).super_Object.
            _vptr_Object;
  p_Var6 = pp_Var5[0x23];
  if (p_Var6 == gold::Relobj::local_symbol_count) {
    uVar13 = (*pp_Var5[0x2f])(object);
  }
  else {
    uVar13 = (*p_Var6)(object);
  }
  uVar22 = *(uint *)(preloc_in + 4);
  uVar24 = uVar22 & 0xff;
  pAVar7 = arm_reloc_property_table->table_[uVar24];
  uVar27 = uVar22 >> 8;
  if (((pAVar7 == (Arm_reloc_property *)0x0) || (pAVar7->reloc_type_ != RT_STATIC)) ||
     ((pAVar7->field_0x34 & 2) == 0)) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/arm.cc",0x28ef,"relocate_special_relocatable");
  }
  if (uVar13 <= uVar27) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/arm.cc",0x28f3,"relocate_special_relocatable");
  }
  pSVar8 = (((Local_values *)&object->field_0xdc)->
           super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>).
           _M_impl._M_start;
  if ((uint)((int)*(pointer *)&object->field_0xe0 - (int)pSVar8 >> 4) <= uVar27) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/object.h",0x8db,"local_symbol_input_shndx");
  }
  pAVar14 = (Arm_relobj<false> *)(*(uint *)&pSVar8[uVar27].field_0x8 & 0x7ffffff);
  if ((pSVar8[uVar27].field_0xb & 8) == 0) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/arm.cc",0x28fb,"relocate_special_relocatable");
  }
  p_Var6 = (((Sized_relobj<32,_false> *)&object->invalid_address)->super_Relobj).super_Object.
           _vptr_Object[0x18];
  if (p_Var6 == gold::Relobj::do_output_section) {
    ppOVar9 = (((Output_sections *)&object->field_0x38)->
              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).
              _M_impl._M_start;
    if ((Arm_relobj<false> *)((int)*(pointer *)&object->field_0x3c - (int)ppOVar9 >> 2) <= pAVar14)
    {
                    /* WARNING: Subroutine does not return */
      gold::do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");
    }
    pOVar20 = ppOVar9[(int)pAVar14];
    pAVar14 = in_stack_ffffff88;
  }
  else {
    pOVar20 = (Output_section *)(*p_Var6)(object);
  }
  if (pOVar20 == (Output_section *)0x0) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/arm.cc",0x28fd,"relocate_special_relocatable");
  }
  if ((pOVar20->field_0x90 & 1) == 0) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/arm.cc",0x28fe,"relocate_special_relocatable");
  }
  uVar13 = pOVar20->symtab_index_;
  if (uVar13 == 0) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/output.h",0xd81,"symtab_index");
  }
  offset = *(Arm_address *)preloc_in;
  if (offset_in_output_section == 0xffffffff) {
    in_stack_ffffff8c = (Symbol_value<32> *)relinfo->data_shndx;
    pAVar14 = object;
    in_stack_ffffff90 = offset;
    iVar15 = gold::Output_section::output_offset
                       (output_section,(Relobj *)object,(uint)in_stack_ffffff8c,offset);
    if (iVar15 == -1) {
                    /* WARNING: Subroutine does not return */
      gold::do_gold_unreachable("../../gold/arm.cc",0x290f,"relocate_special_relocatable");
    }
  }
  else {
    iVar15 = offset + offset_in_output_section;
  }
  if (gold::parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  iVar16 = iVar15;
  if ((gold::parameters->options_->relocatable_).value == false) {
    iVar16 = iVar15 + view_address;
    if (offset_in_output_section != 0xffffffff) {
      iVar16 = (iVar15 + view_address) - offset_in_output_section;
    }
  }
  *(int *)preloc_out = iVar16;
  pSVar8 = *(pointer *)&object->field_0xe0;
  *(uint *)(preloc_out + 4) = uVar13 * 0x100 + uVar24;
  pSVar10 = (((Local_values *)&object->field_0xdc)->
            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>).
            _M_impl._M_start;
  if ((uint)((int)pSVar8 - (int)pSVar10 >> 4) <= uVar27) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/object.h",0x8c1,"local_symbol");
  }
  local_38 = (Sized_symbol<32> *)(pSVar10 + uVar27);
  iVar15 = (int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>
                ._M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p;
  symval.output_symtab_index_ = 0;
  symval.output_dynsym_index_ = 0xffffffff;
  symval._8_4_ = 0x80000000;
  symval.u_.value = 0;
  if (((object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.
       super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_offset -
      (object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>._M_impl.
      super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_offset) +
      ((int)(object->local_symbol_is_thumb_function_).super__Bvector_base<std::allocator<bool>_>.
            _M_impl.super__Bvector_impl_data._M_finish.super__Bit_iterator_base._M_p - iVar15) * 8
      <= uVar27) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00122c8d to 00122c91 has its CatchHandler @ 00122d02 */
    gold::do_gold_unreachable("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function");
  }
  local_48 = (Arm_relobj<false> *)
             (1 << ((byte)(uVar22 >> 8) & 0x1f) & *(uint *)(iVar15 + (uVar22 >> 0xd) * 4));
  if ((local_48 != (Arm_relobj<false> *)0x0) &&
     (local_48 = (Arm_relobj<false> *)0x1, (pAVar7->field_0x34 & 0x40) != 0)) {
    in_stack_ffffff8c = (Symbol_value<32> *)0x0;
    pAVar14 = object;
                    /* try { // try from 00122161 to 00122165 has its CatchHandler @ 00122d02 */
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,0);
    local_48 = (Arm_relobj<false> *)(VVar17 & 1);
    if (local_48 == (Arm_relobj<false> *)0x0) {
      local_48 = (Arm_relobj<false> *)0x1;
    }
    else {
      in_stack_ffffff8c = (Symbol_value<32> *)0x0;
      pAVar14 = object;
                    /* try { // try from 00122967 to 0012296b has its CatchHandler @ 00122d02 */
      VVar17 = gold::Symbol_value<32>::value<false>
                         ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,0);
      symval.u_.value = VVar17 & 0xfffffffe;
      local_38 = (Sized_symbol<32> *)&symval;
    }
  }
  local_40 = &symval;
  puVar28 = (uint *)(view + offset);
  switch(uVar24) {
  case 4:
  case 0x2c:
  case 0x2e:
  case 0x30:
  case 0x32:
  case 0x39:
  case 0x3a:
  case 0x3b:
  case 0x3c:
  case 0x3d:
  case 0x3e:
  case 0x3f:
  case 0x40:
  case 0x41:
  case 0x42:
  case 0x43:
  case 0x44:
  case 0x45:
  case 0x46:
  case 0x47:
  case 0x48:
  case 0x49:
  case 0x4a:
  case 0x4b:
  case 0x4c:
  case 0x4d:
  case 0x4e:
  case 0x4f:
  case 0x50:
  case 0x51:
  case 0x52:
  case 0x53:
  case 0x55:
  case 0x58:
    object = (Arm_relobj<false> *)(pAVar7->name_)._M_dataplus._M_p;
    pcVar19 = (char *)gettext("cannot handle %s in a relocatable link");
    gold::gold_error(pcVar19);
    goto LAB_0012238d;
  case 5:
    uVar13 = (uint)(ushort)*puVar28;
    if ((short)(ushort)*puVar28 < 0) {
      uVar13 = (ushort)*puVar28 - 0x10000;
    }
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,uVar13);
    *(ushort *)puVar28 = (ushort)VVar17;
    if (VVar17 + 0x8000 < 0x18000) goto LAB_0012238d;
    break;
  case 6:
    uVar13 = *puVar28;
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,
                        uVar13 & 0xfff);
    *puVar28 = uVar13 ^ (uVar13 ^ VVar17) & 0xfff;
    goto joined_r0x00122297;
  case 7:
    uVar3 = (ushort)*puVar28;
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,
                        uVar3 >> 6 & 0x1f);
    *(ushort *)puVar28 = uVar3 ^ ((ushort)(VVar17 << 6) ^ uVar3) & 0x7e0;
    if (VVar17 + 0x10 < 0x20) goto LAB_0012238d;
    break;
  case 8:
    bVar1 = (byte)*puVar28;
    VVar17 = bVar1 - 0x100;
    if (-1 < (char)bVar1) {
      VVar17 = (uint)bVar1;
    }
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);
    *(byte *)puVar28 = (byte)VVar17;
    if (VVar17 + 0x80 < 0x180) goto LAB_0012238d;
    break;
  default:
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00122ac8 to 00122b77 has its CatchHandler @ 00122d02 */
    gold::do_gold_unreachable("../../gold/arm.cc",0x29cf,"relocate_special_relocatable");
  case 10:
  case 0x10:
  case 0x1e:
    SVar18 = Arm_relocate_functions<false>::thumb_branch_common
                       (0,(Relocate_info<32,_false> *)object,(uchar *)0x0,local_38,
                        (Arm_relobj<false> *)0x0,(uint)local_48,(Symbol_value<32> *)0x0,
                        in_stack_ffffff90,in_stack_ffffff94,(bool)in_stack_ffffff98);
    object = local_48;
    goto LAB_00122342;
  case 0xb:
    uVar13 = *puVar28;
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,
                        (uint)(ushort)uVar13 * 4 & 0x3fc);
    iVar15 = (VVar17 ^ (int)VVar17 >> 0x1f) - ((int)VVar17 >> 0x1f);
    *(ushort *)puVar28 = (ushort)uVar13 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;
    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;
    break;
  case 0xf:
  case 0x1b:
  case 0x1c:
  case 0x1d:
    SVar18 = Arm_relocate_functions<false>::arm_branch_common
                       (0,(Relocate_info<32,_false> *)object,(uchar *)0x0,local_38,
                        (Arm_relobj<false> *)0x0,(uint)local_48,(Symbol_value<32> *)0x0,
                        in_stack_ffffff90,in_stack_ffffff94,(bool)in_stack_ffffff98);
    object = local_48;
    goto LAB_00122342;
  case 0x2a:
    uVar13 = *puVar28;
    VVar17 = uVar13 & 0x7fffffff;
    if ((uVar13 & 0x40000000) != 0) {
      VVar17 = 0x7fffffff;
    }
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,VVar17);
    *puVar28 = uVar13 ^ ((VVar17 | (uint)local_48) ^ uVar13) & 0x7fffffff;
    if (-1 < (int)((VVar17 | (uint)local_48) + 0x40000000)) goto LAB_0012238d;
    break;
  case 0x2b:
  case 0x2d:
  case 0x54:
  case 0x56:
    uVar13 = *puVar28;
    bVar1 = pAVar7->field_0x34;
    uVar22 = uVar13 >> 4 & 0xf000 | uVar13 & 0xfff;
    local_4c = uVar22 - 0x10000;
    if ((uVar13 >> 4 & 0x8000) == 0) {
      local_4c = uVar22;
    }
    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);
    if ((char)bVar2 < '\0') {
      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;
    }
    else {
      if ((bVar2 & 8) == 0) {
                    /* WARNING: Subroutine does not return */
        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");
      }
      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;
      local_34 = (_Hash_node_base *)pMVar11->input_value_;
      if (local_4c < 0xffffff00) {
        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);
        local_4c = 0;
      }
      uVar22 = (pMVar11->output_addresses_)._M_h._M_bucket_count;
      uVar24 = (uint)local_34 % uVar22;
      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar24];
      if (p_Var26 != (__bucket_type)0x0) {
        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;
        p_Var12 = p_Var26->_M_nxt;
        while (p_Var25 = p_Var12, p_Var23 != local_34) {
          p_Var12 = p_Var25->_M_nxt;
          if ((p_Var12 == (_Hash_node_base *)0x0) ||
             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar22 != uVar24))
          goto LAB_00122b36;
        }
        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {
          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;
          goto LAB_001229a9;
        }
      }
LAB_00122b36:
      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section
                         (pMVar11,(Relobj *)object,
                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);
      local_4c = EVar21 + local_4c;
      pAVar14 = object;
    }
LAB_001229a9:
    local_4c = local_4c | (uint)local_48;
    *puVar28 = (local_4c & 0xf000) << 4 | uVar13 & 0xfff0f000 | local_4c & 0xfff;
    object = pAVar14;
    goto joined_r0x00122aa6;
  case 0x2f:
  case 0x31:
  case 0x57:
  case 0x59:
    uVar3 = *(ushort *)((int)puVar28 + 2);
    bVar1 = pAVar7->field_0x34;
    uVar4 = (ushort)*puVar28;
    uVar22 = ((uVar4 & 0xf) << 0x10) >> 4;
    uVar13 = ((uVar4 & 0x400) << 0x10) >> 0xf | uVar22 | uVar3 & 0xff | (uVar3 & 0x7000) >> 4;
    local_4c = uVar13 - 0x10000;
    if ((uVar22 & 0x8000) == 0) {
      local_4c = uVar13;
    }
    bVar2 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);
    if ((char)bVar2 < '\0') {
      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;
    }
    else {
      if ((bVar2 & 8) == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00122cc5 to 00122d01 has its CatchHandler @ 00122d02 */
        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");
      }
      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;
      local_34 = (_Hash_node_base *)pMVar11->input_value_;
      if (local_4c < 0xffffff00) {
        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);
        local_4c = 0;
      }
      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;
      uVar22 = (uint)local_34 % uVar13;
      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];
      if (p_Var26 != (__bucket_type)0x0) {
        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;
        p_Var12 = p_Var26->_M_nxt;
        while (p_Var25 = p_Var12, p_Var23 != local_34) {
          p_Var12 = p_Var25->_M_nxt;
          if ((p_Var12 == (_Hash_node_base *)0x0) ||
             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))
          goto LAB_00122b06;
        }
        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {
          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;
          goto LAB_00122a61;
        }
      }
LAB_00122b06:
      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section
                         (pMVar11,(Relobj *)object,
                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);
      local_4c = EVar21 + local_4c;
      pAVar14 = object;
    }
LAB_00122a61:
    local_4c = local_4c | (uint)local_48;
    uVar13 = CONCAT22(uVar4,uVar3) & 0xfbf08f00;
    *(ushort *)((int)puVar28 + 2) =
         (ushort)(local_4c << 4) & 0x7000 | (ushort)uVar13 | (ushort)local_4c & 0xff;
    *(ushort *)puVar28 =
         (ushort)(uVar13 >> 0x10) | (ushort)((local_4c << 4) >> 0x10) & 0xf |
         (ushort)(((local_4c & 0x800) << 0xf) >> 0x10);
    object = pAVar14;
joined_r0x00122aa6:
    if (((bVar1 >> 2 & 1) == 0) || (local_4c + 0x8000 < 0x10000)) goto LAB_0012238d;
    break;
  case 0x33:
    SVar18 = Arm_relocate_functions<false>::thm_jump19
                       ((uchar *)0x0,local_48,in_stack_ffffff8c,in_stack_ffffff90,in_stack_ffffff94)
    ;
    object = local_48;
LAB_00122342:
    if (SVar18 == STATUS_OVERFLOW) break;
    if (SVar18 == STATUS_OKAY) goto LAB_0012238d;
    if (SVar18 != STATUS_BAD_RELOC) {
                    /* WARNING: Subroutine does not return */
      gold::do_gold_unreachable("../../gold/arm.cc",0x29e2,"relocate_special_relocatable");
    }
    object = (Arm_relobj<false> *)(pAVar7->name_)._M_dataplus._M_p;
    pcVar19 = "unexpected opcode while processing relocation %s";
    goto LAB_0012236a;
  case 0x34:
    uVar3 = (ushort)*puVar28;
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,
                        (int)(short)((ushort)((int)(uint)uVar3 >> 3) & 0x40 |
                                    (ushort)((int)(uint)uVar3 >> 2) & 0x3e));
    *(ushort *)puVar28 = uVar3 & 0xfd07 | (uVar3 & 0x3e) << 2 | (ushort)VVar17 * 8 & 0x200;
    if ((ushort)VVar17 < 0x7f) goto LAB_0012238d;
    break;
  case 0x35:
    uVar3 = (ushort)*puVar28;
    uVar4 = *(ushort *)((int)puVar28 + 2);
    local_4c = ((uVar4 & 0x7000) >> 4 | ((uVar3 & 0x400) << 0x10) >> 0xf | uVar4 & 0xff) *
               ((uint)((uVar3 & 0xf8ed) != 0xf0ad) * 2 + -1);
    bVar1 = *(byte *)((int)&(local_38->super_Symbol).u1_ + 3);
    if ((char)bVar1 < '\0') {
      local_4c = local_4c + (local_38->super_Symbol).u2_.shndx;
    }
    else {
      if ((bVar1 & 8) == 0) {
                    /* WARNING: Subroutine does not return */
        gold::do_gold_unreachable("../../gold/object.h",0x6ab,"value");
      }
      pMVar11 = *(Merged_symbol_value<32> **)&(local_38->super_Symbol).u2_.offset_is_from_end;
      local_34 = (_Hash_node_base *)pMVar11->input_value_;
      if (local_4c < 0xffffff00) {
        local_34 = (_Hash_node_base *)((int)&local_34->_M_nxt + local_4c);
        local_4c = 0;
      }
      uVar13 = (pMVar11->output_addresses_)._M_h._M_bucket_count;
      uVar22 = (uint)local_34 % uVar13;
      p_Var26 = (pMVar11->output_addresses_)._M_h._M_buckets[uVar22];
      if (p_Var26 != (__bucket_type)0x0) {
        p_Var23 = p_Var26->_M_nxt[1]._M_nxt;
        p_Var12 = p_Var26->_M_nxt;
        while (p_Var25 = p_Var12, p_Var23 != local_34) {
          p_Var12 = p_Var25->_M_nxt;
          if ((p_Var12 == (_Hash_node_base *)0x0) ||
             (p_Var23 = p_Var12[1]._M_nxt, p_Var26 = p_Var25, (uint)p_Var23 % uVar13 != uVar22))
          goto LAB_00122ad6;
        }
        if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {
          local_4c = (int)&(p_Var26->_M_nxt[2]._M_nxt)->_M_nxt + local_4c;
          goto LAB_001229f9;
        }
      }
LAB_00122ad6:
      EVar21 = gold::Merged_symbol_value<32>::value_from_output_section
                         (pMVar11,(Relobj *)object,
                          (uint)(local_38->super_Symbol).u1_.object & 0x7ffffff,(Elf_Addr)local_34);
      local_4c = EVar21 + local_4c;
      pAVar14 = object;
    }
LAB_001229f9:
    local_4c = local_4c | (uint)local_48;
    uVar13 = ((int)local_4c >> 0x1f ^ local_4c) - ((int)local_4c >> 0x1f);
    uVar22 = (uVar13 & 0x800) << 0xf |
             (uVar13 & 0x700) << 4 | uVar13 & 0xff | CONCAT22(uVar3,uVar4) & 0xfb0f8f00;
    if ((int)local_4c < 0) {
      uVar22 = uVar22 | 0xa00000;
    }
    *(ushort *)((int)puVar28 + 2) = (ushort)uVar22;
    *(ushort *)puVar28 = (ushort)(uVar22 >> 0x10);
    object = pAVar14;
    goto joined_r0x0012230f;
  case 0x36:
    uVar22 = *puVar28;
    uVar3 = *(ushort *)((int)puVar28 + 2);
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,
                        (uVar3 & 0xfff) * (-(uint)(((ushort)uVar22 & 0x80) == 0) | 1));
    uVar13 = ((int)VVar17 >> 0x1f ^ VVar17) - ((int)VVar17 >> 0x1f);
    uVar22 = CONCAT22((ushort)uVar22,uVar3) & 0xff7ff000 | uVar13 & 0xfff;
    if (-1 < (int)VVar17) {
      uVar22 = uVar22 | 0x800000;
    }
    *(ushort *)((int)puVar28 + 2) = (ushort)uVar22;
    *(ushort *)puVar28 = (ushort)(uVar22 >> 0x10);
joined_r0x0012230f:
    if ((int)uVar13 < 0x1000) goto LAB_0012238d;
    break;
  case 0x66:
    uVar22 = *puVar28;
    uVar13 = (uint)(ushort)uVar22 * 2;
    uVar24 = uVar13 & 0x7fe;
    if ((uVar13 & 0x400) != 0) {
      uVar24 = uVar24 - 0x800;
    }
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,uVar24);
    *(ushort *)puVar28 = (ushort)uVar22 & 0xf800 | (ushort)((int)VVar17 >> 1) & 0x7ff;
joined_r0x00122297:
    if (VVar17 + 0x800 < 0x1000) goto LAB_0012238d;
    break;
  case 0x67:
    uVar22 = *puVar28;
    uVar13 = (uint)(ushort)uVar22 * 2;
    uVar24 = uVar13 & 0xff;
    if ((uVar13 & 0x80) != 0) {
      uVar24 = uVar24 - 0x100;
    }
                    /* try { // try from 00122201 to 001228fb has its CatchHandler @ 00122d02 */
    VVar17 = gold::Symbol_value<32>::value<false>
                       ((Symbol_value<32> *)local_38,(Sized_relobj_file<32,_false> *)object,uVar24);
    *(ushort *)puVar28 = (ushort)uVar22 & 0xff00 | (ushort)((int)VVar17 >> 1) & 0xff;
    if (VVar17 + 0x100 < 0x200) goto LAB_0012238d;
  }
  object = (Arm_relobj<false> *)(pAVar7->name_)._M_dataplus._M_p;
  pcVar19 = "relocation overflow in %s";
LAB_0012236a:
  uVar13 = gettext(pcVar19);
  gold::gold_error_at_location<32,_false>
            ((gold *)relinfo,(Relocate_info<32,_false> *)relnum,*(size_t *)preloc_in,
             (ulonglong)uVar13 << 0x20,(char *)object);
LAB_0012238d:
  gold::Symbol_value<32>::~Symbol_value(local_40,(int)object);
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void __regparm2
MASKED(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,
            int *param_6,undefined4 param_7,undefined4 param_8,int param_9,int param_10,int param_11
            ,undefined4 param_12,int *param_13)

{
  byte bVar1;
  ushort uVar2;
  int *piVar3;
  code *pcVar4;
  int iVar5;
  uint *puVar6;
  int *piVar7;
  ushort uVar8;
  uint uVar9;
  int iVar10;
  int iVar11;
  char *pcVar12;
  undefined4 uVar13;
  uint uVar14;
  int iVar15;
  uint uVar16;
  uint uVar17;
  int iVar18;
  int *piVar19;
  undefined4 uVar20;
  int *piVar21;
  uint uVar22;
  uint *puVar23;
  uint uStack_4c;
  uint local_48;
  undefined4 *local_40;
  undefined4 *local_38;
  uint local_34;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  uint local_20;
  
  if (param_5 != 9) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/arm.cc",0x28db,"relocate_special_relocatable",param_2);
  }
  piVar3 = *(int **)(param_4 + 8);
  pcVar4 = *(code **)(*piVar3 + 0x8c);
  if (pcVar4 == FUN_00070d40) {
    uVar9 = (**(code **)(*piVar3 + 0xbc))(piVar3);
  }
  else {
    uVar9 = (*pcVar4)(piVar3);
  }
  uVar14 = param_6[1];
  uVar17 = uVar14 & 0xff;
  iVar5 = *(int *)(DAT_005eb1c8 + uVar17 * 4);
  uVar22 = uVar14 >> 8;
  if (((iVar5 == 0) || (*(int *)(iVar5 + 0x1c) != 1)) || ((*(byte *)(iVar5 + 0x34) & 2) == 0)) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/arm.cc",0x28ef,"relocate_special_relocatable",uVar22);
  }
  if (uVar9 <= uVar22) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/arm.cc",0x28f3,"relocate_special_relocatable",piVar3);
  }
  if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar22) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/object.h",0x8db,"local_symbol_input_shndx",iVar5);
  }
  iVar15 = piVar3[0x37] + uVar22 * 0x10;
  uVar9 = *(uint *)(iVar15 + 8) & 0x7ffffff;
  if ((*(byte *)(iVar15 + 0xb) & 8) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/arm.cc",0x28fb,"relocate_special_relocatable",uVar14);
  }
  if (*(code **)(*piVar3 + 0x60) == FUN_00071550) {
    uVar16 = piVar3[0xf] - piVar3[0xe] >> 2;
    if (uVar16 <= uVar9) {
                    /* WARNING: Subroutine does not return */
      FUN_002446e0("../../gold/object.h",0x5c8,"do_output_section",uVar16);
    }
    iVar15 = *(int *)(piVar3[0xe] + uVar9 * 4);
  }
  else {
    iVar15 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar9);
  }
  if (iVar15 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/arm.cc",0x28fd,"relocate_special_relocatable",0);
  }
  if ((*(byte *)(iVar15 + 0x90) & 1) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/arm.cc",0x28fe,"relocate_special_relocatable",iVar15);
  }
  iVar18 = *(int *)(iVar15 + 100);
  if (iVar18 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/output.h",0xd81,"symtab_index",iVar15);
  }
  iVar15 = *param_6;
  if (param_9 == -1) {
    iVar10 = FUN_002cda80(param_8,piVar3,*(undefined4 *)(param_4 + 0x18),iVar15);
    if (iVar10 == -1) {
                    /* WARNING: Subroutine does not return */
      FUN_002446e0("../../gold/arm.cc",0x290f,"relocate_special_relocatable",0xffffffff);
    }
  }
  else {
    iVar10 = iVar15 + param_9;
  }
  if (*(int *)(DAT_005ea7c8 + 8) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/parameters.h",0x5c,"options",iVar10);
  }
  iVar11 = iVar10;
  if (*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x318d) == '\0') {
    iVar11 = iVar10 + param_11;
    if (param_9 != -1) {
      iVar11 = (iVar10 + param_11) - param_9;
    }
  }
  *param_13 = iVar11;
  iVar10 = piVar3[0x38];
  param_13[1] = iVar18 * 0x100 + uVar17;
  uVar9 = iVar10 - piVar3[0x37] >> 4;
  if (uVar9 <= uVar22) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/object.h",0x8c1,"local_symbol",uVar9);
  }
  local_38 = (undefined4 *)(piVar3[0x37] + uVar22 * 0x10);
  iVar18 = piVar3[0x52];
  local_2c = 0;
  local_28 = 0xffffffff;
  local_24 = 0x80000000;
  local_20 = 0;
  if ((uint)((piVar3[0x55] - piVar3[0x53]) + (piVar3[0x54] - iVar18) * 8) <= uVar22) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00122c8d to 00122c91 has its CatchHandler @ 00122d02 */
    FUN_002446e0("../../gold/arm.cc",0x5f8,"local_symbol_is_thumb_function",uVar22);
  }
  local_48 = 1 << ((byte)(uVar14 >> 8) & 0x1f) & *(uint *)(iVar18 + (uVar14 >> 0xd) * 4);
  if ((local_48 != 0) && (local_48 = 1, (*(byte *)(iVar5 + 0x34) & 0x40) != 0)) {
                    /* try { // try from 00122161 to 00122165 has its CatchHandler @ 00122d02 */
    local_48 = FUN_00072130(local_38,piVar3,0);
    local_48 = local_48 & 1;
    if (local_48 == 0) {
      local_48 = 1;
    }
    else {
                    /* try { // try from 00122967 to 0012296b has its CatchHandler @ 00122d02 */
      local_20 = FUN_00072130(local_38,piVar3,0);
      local_20 = local_20 & 0xfffffffe;
      local_38 = &local_2c;
    }
  }
  local_40 = &local_2c;
  puVar23 = (uint *)(iVar15 + param_10);
  if (99 < uVar17 - 4) {
LAB_00122ab1:
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00122ac8 to 00122b77 has its CatchHandler @ 00122d02 */
    FUN_002446e0("../../gold/arm.cc",0x29cf,"relocate_special_relocatable",iVar18);
  }
  iVar18 = (int)&__DT_PLTGOT + *(int *)(&DAT_00467d20 + (uVar17 - 4) * 4);
  switch(uVar17) {
  case 4:
  case 0x2c:
  case 0x2e:
  case 0x30:
  case 0x32:
  case 0x39:
  case 0x3a:
  case 0x3b:
  case 0x3c:
  case 0x3d:
  case 0x3e:
  case 0x3f:
  case 0x40:
  case 0x41:
  case 0x42:
  case 0x43:
  case 0x44:
  case 0x45:
  case 0x46:
  case 0x47:
  case 0x48:
  case 0x49:
  case 0x4a:
  case 0x4b:
  case 0x4c:
  case 0x4d:
  case 0x4e:
  case 0x4f:
  case 0x50:
  case 0x51:
  case 0x52:
  case 0x53:
  case 0x55:
  case 0x58:
    uVar20 = *(undefined4 *)(iVar5 + 4);
    uVar13 = gettext("cannot handle %s in a relocatable link");
    FUN_0023b810(uVar13,uVar20);
    goto LAB_0012238d;
  case 5:
    uVar9 = (uint)(ushort)*puVar23;
    if ((short)(ushort)*puVar23 < 0) {
      uVar9 = (ushort)*puVar23 - 0x10000;
    }
    iVar15 = FUN_00072130(local_38,piVar3,uVar9);
    *(ushort *)puVar23 = (ushort)iVar15;
    if (iVar15 + 0x8000U < 0x18000) goto LAB_0012238d;
    break;
  case 6:
    uVar14 = *puVar23;
    uVar9 = FUN_00072130(local_38,piVar3,uVar14 & 0xfff);
    *puVar23 = uVar14 ^ (uVar14 ^ uVar9) & 0xfff;
    goto joined_r0x00122297;
  case 7:
    uVar2 = (ushort)*puVar23;
    iVar15 = FUN_00072130(local_38,piVar3,uVar2 >> 6 & 0x1f);
    *(ushort *)puVar23 = uVar2 ^ ((ushort)(iVar15 << 6) ^ uVar2) & 0x7e0;
    if (iVar15 + 0x10U < 0x20) goto LAB_0012238d;
    break;
  case 8:
    bVar1 = (byte)*puVar23;
    uVar9 = bVar1 - 0x100;
    if (-1 < (char)bVar1) {
      uVar9 = (uint)bVar1;
    }
    iVar15 = FUN_00072130(local_38,piVar3,uVar9);
    *(byte *)puVar23 = (byte)iVar15;
    if (iVar15 + 0x80U < 0x180) goto LAB_0012238d;
    break;
  default:
    goto LAB_00122ab1;
  case 10:
  case 0x10:
  case 0x1e:
    iVar15 = FUN_001206e0(0,piVar3,0,local_38,0,local_48,0);
    goto code_r0x00122342;
  case 0xb:
    uVar9 = *puVar23;
    uVar14 = FUN_00072130(local_38,piVar3,(ushort)uVar9 * 4 & 0x3fc);
    iVar15 = (uVar14 ^ (int)uVar14 >> 0x1f) - ((int)uVar14 >> 0x1f);
    *(ushort *)puVar23 = (ushort)uVar9 & 0xff00 | (ushort)(iVar15 >> 2) & 0xff;
    if ((ushort)iVar15 < 0x3fd) goto LAB_0012238d;
    break;
  case 0xf:
  case 0x1b:
  case 0x1c:
  case 0x1d:
    iVar15 = FUN_00120fa0(0,piVar3,0,local_38,0,local_48,0);
    goto code_r0x00122342;
  case 0x2a:
    uVar9 = *puVar23;
    uVar14 = uVar9 & 0x7fffffff;
    if ((uVar9 & 0x40000000) != 0) {
      uVar14 = 0x7fffffff;
    }
    uVar14 = FUN_00072130(local_38,piVar3,uVar14);
    *puVar23 = uVar9 ^ ((uVar14 | local_48) ^ uVar9) & 0x7fffffff;
    if (-1 < (int)((uVar14 | local_48) + 0x40000000)) goto LAB_0012238d;
    break;
  case 0x2b:
  case 0x2d:
  case 0x54:
  case 0x56:
    uVar9 = *puVar23;
    bVar1 = *(byte *)(iVar5 + 0x34);
    uVar14 = uVar9 >> 4 & 0xf000 | uVar9 & 0xfff;
    uStack_4c = uVar14 - 0x10000;
    if ((uVar9 >> 4 & 0x8000) == 0) {
      uStack_4c = uVar14;
    }
    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {
      uStack_4c = uStack_4c + local_38[3];
    }
    else {
      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_002446e0("../../gold/object.h",0x6ab,"value",piVar3);
      }
      puVar6 = (uint *)local_38[3];
      local_34 = *puVar6;
      if (uStack_4c < 0xffffff00) {
        local_34 = local_34 + uStack_4c;
        uStack_4c = 0;
      }
      uVar14 = local_34 % puVar6[3];
      piVar21 = *(int **)(puVar6[2] + uVar14 * 4);
      if (piVar21 != (int *)0x0) {
        uVar17 = ((int *)*piVar21)[1];
        piVar7 = (int *)*piVar21;
        while (piVar19 = piVar7, uVar17 != local_34) {
          piVar7 = (int *)*piVar19;
          if ((piVar7 == (int *)0x0) ||
             (uVar17 = piVar7[1], piVar21 = piVar19, uVar17 % puVar6[3] != uVar14))
          goto code_r0x00122b36;
        }
        if (*piVar21 != 0) {
          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);
          goto code_r0x001229a9;
        }
      }
code_r0x00122b36:
      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);
      uStack_4c = iVar15 + uStack_4c;
    }
code_r0x001229a9:
    uStack_4c = uStack_4c | local_48;
    *puVar23 = (uStack_4c & 0xf000) << 4 | uVar9 & 0xfff0f000 | uStack_4c & 0xfff;
    goto joined_r0x00122aa6;
  case 0x2f:
  case 0x31:
  case 0x57:
  case 0x59:
    uVar2 = *(ushort *)((int)puVar23 + 2);
    bVar1 = *(byte *)(iVar5 + 0x34);
    uVar8 = (ushort)*puVar23;
    uVar14 = ((uVar8 & 0xf) << 0x10) >> 4;
    uVar9 = ((uVar8 & 0x400) << 0x10) >> 0xf | uVar14 | uVar2 & 0xff | (uVar2 & 0x7000) >> 4;
    uStack_4c = uVar9 - 0x10000;
    if ((uVar14 & 0x8000) == 0) {
      uStack_4c = uVar9;
    }
    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {
      uStack_4c = uStack_4c + local_38[3];
    }
    else {
      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_002446e0("../../gold/object.h",0x6ab,"value",CONCAT22(uVar8,uVar2));
      }
      puVar6 = (uint *)local_38[3];
      local_34 = *puVar6;
      if (uStack_4c < 0xffffff00) {
        local_34 = local_34 + uStack_4c;
        uStack_4c = 0;
      }
      uVar9 = local_34 % puVar6[3];
      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);
      if (piVar21 != (int *)0x0) {
        uVar14 = ((int *)*piVar21)[1];
        piVar7 = (int *)*piVar21;
        while (piVar19 = piVar7, uVar14 != local_34) {
          piVar7 = (int *)*piVar19;
          if ((piVar7 == (int *)0x0) ||
             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))
          goto code_r0x00122b06;
        }
        if (*piVar21 != 0) {
          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);
          goto code_r0x00122a61;
        }
      }
code_r0x00122b06:
      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);
      uStack_4c = iVar15 + uStack_4c;
    }
code_r0x00122a61:
    uStack_4c = uStack_4c | local_48;
    uVar9 = CONCAT22(uVar8,uVar2) & 0xfbf08f00;
    *(ushort *)((int)puVar23 + 2) =
         (ushort)(uStack_4c << 4) & 0x7000 | (ushort)uVar9 | (ushort)uStack_4c & 0xff;
    *(ushort *)puVar23 =
         (ushort)(uVar9 >> 0x10) | (ushort)((uStack_4c << 4) >> 0x10) & 0xf |
         (ushort)(((uStack_4c & 0x800) << 0xf) >> 0x10);
joined_r0x00122aa6:
    if (((bVar1 >> 2 & 1) == 0) || (uStack_4c + 0x8000 < 0x10000)) goto LAB_0012238d;
    break;
  case 0x33:
    iVar15 = FUN_00112810(0,local_48);
code_r0x00122342:
    if (iVar15 == 1) break;
    if (iVar15 == 0) goto LAB_0012238d;
    if (iVar15 != 2) {
                    /* WARNING: Subroutine does not return */
      FUN_002446e0("../../gold/arm.cc",0x29e2,"relocate_special_relocatable",iVar15);
    }
    uVar20 = *(undefined4 *)(iVar5 + 4);
    pcVar12 = "unexpected opcode while processing relocation %s";
    goto LAB_0012236a;
  case 0x34:
    uVar2 = (ushort)*puVar23;
    uVar8 = FUN_00072130(local_38,piVar3,
                         (ushort)((int)(uint)uVar2 >> 3) & 0x40 |
                         (ushort)((int)(uint)uVar2 >> 2) & 0x3e);
    *(ushort *)puVar23 = uVar2 & 0xfd07 | (uVar2 & 0x3e) << 2 | uVar8 * 8 & 0x200;
    if (uVar8 < 0x7f) goto LAB_0012238d;
    break;
  case 0x35:
    uVar2 = (ushort)*puVar23;
    uVar8 = *(ushort *)((int)puVar23 + 2);
    uStack_4c = ((uVar8 & 0x7000) >> 4 | ((uVar2 & 0x400) << 0x10) >> 0xf | uVar8 & 0xff) *
                ((uint)((uVar2 & 0xf8ed) != 0xf0ad) * 2 + -1);
    if ((char)*(byte *)((int)local_38 + 0xb) < '\0') {
      uStack_4c = uStack_4c + local_38[3];
    }
    else {
      if ((*(byte *)((int)local_38 + 0xb) & 8) == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_002446e0("../../gold/object.h",0x6ab,"value",uVar8 & 0xff);
      }
      puVar6 = (uint *)local_38[3];
      local_34 = *puVar6;
      if (uStack_4c < 0xffffff00) {
        local_34 = local_34 + uStack_4c;
        uStack_4c = 0;
      }
      uVar9 = local_34 % puVar6[3];
      piVar21 = *(int **)(puVar6[2] + uVar9 * 4);
      if (piVar21 != (int *)0x0) {
        uVar14 = ((int *)*piVar21)[1];
        piVar7 = (int *)*piVar21;
        while (piVar19 = piVar7, uVar14 != local_34) {
          piVar7 = (int *)*piVar19;
          if ((piVar7 == (int *)0x0) ||
             (uVar14 = piVar7[1], piVar21 = piVar19, uVar14 % puVar6[3] != uVar9))
          goto code_r0x00122ad6;
        }
        if (*piVar21 != 0) {
          uStack_4c = uStack_4c + *(int *)(*piVar21 + 8);
          goto code_r0x001229f9;
        }
      }
code_r0x00122ad6:
      iVar15 = FUN_00318cf0(puVar6,piVar3,local_38[2] & 0x7ffffff,local_34);
      uStack_4c = iVar15 + uStack_4c;
    }
code_r0x001229f9:
    uStack_4c = uStack_4c | local_48;
    uVar9 = ((int)uStack_4c >> 0x1f ^ uStack_4c) - ((int)uStack_4c >> 0x1f);
    uVar14 = (uVar9 & 0x800) << 0xf |
             (uVar9 & 0x700) << 4 | uVar9 & 0xff | CONCAT22(uVar2,uVar8) & 0xfb0f8f00;
    if ((int)uStack_4c < 0) {
      uVar14 = uVar14 | 0xa00000;
    }
    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;
    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);
    goto joined_r0x0012230f;
  case 0x36:
    uVar14 = *puVar23;
    uVar2 = *(ushort *)((int)puVar23 + 2);
    uVar17 = FUN_00072130(local_38,piVar3,
                          (uVar2 & 0xfff) * (-(uint)(((ushort)uVar14 & 0x80) == 0) | 1));
    uVar9 = ((int)uVar17 >> 0x1f ^ uVar17) - ((int)uVar17 >> 0x1f);
    uVar14 = CONCAT22((ushort)uVar14,uVar2) & 0xff7ff000 | uVar9 & 0xfff;
    if (-1 < (int)uVar17) {
      uVar14 = uVar14 | 0x800000;
    }
    *(ushort *)((int)puVar23 + 2) = (ushort)uVar14;
    *(ushort *)puVar23 = (ushort)(uVar14 >> 0x10);
joined_r0x0012230f:
    if ((int)uVar9 < 0x1000) goto LAB_0012238d;
    break;
  case 0x66:
    uVar14 = *puVar23;
    uVar9 = (uint)(ushort)uVar14 * 2;
    uVar17 = uVar9 & 0x7fe;
    if ((uVar9 & 0x400) != 0) {
      uVar17 = uVar17 - 0x800;
    }
    uVar9 = FUN_00072130(local_38,piVar3,uVar17);
    *(ushort *)puVar23 = (ushort)uVar14 & 0xf800 | (ushort)((int)uVar9 >> 1) & 0x7ff;
joined_r0x00122297:
    if (uVar9 + 0x800 < 0x1000) goto LAB_0012238d;
    break;
  case 0x67:
    uVar14 = *puVar23;
    uVar9 = (uint)(ushort)uVar14 * 2;
    uVar17 = uVar9 & 0xff;
    if ((uVar9 & 0x80) != 0) {
      uVar17 = uVar17 - 0x100;
    }
    iVar15 = FUN_00072130(local_38,piVar3,uVar17);
    *(ushort *)puVar23 = (ushort)uVar14 & 0xff00 | (ushort)(iVar15 >> 1) & 0xff;
    if (iVar15 + 0x100U < 0x200) goto LAB_0012238d;
  }
  uVar20 = *(undefined4 *)(iVar5 + 4);
  pcVar12 = "relocation overflow in %s";
LAB_0012236a:
  uVar13 = gettext(pcVar12);
  FUN_0023bd50(param_4,param_7,*param_6,0,uVar13,uVar20);
LAB_0012238d:
  FUN_00072240(local_40);
  return;
}

