
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: string get_name(Read_symbols * this) */

string * __thiscall gold::Read_symbols::get_name(string *__return_storage_ptr__,Read_symbols *this)

{
  char cVar1;
  Input_file_type IVar2;
  Input_file_lib *pIVar3;
  pointer pIVar4;
  Input_file_group *pIVar5;
  _Alloc_hider _Var6;
  size_type sVar7;
  size_t sVar8;
  Input_argument *pIVar9;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar10;
  undefined8 uVar11;
  pointer pIVar12;
  ulong uVar13;
  char *pcVar14;
  size_type __dnew;
  string ret;
  
  pIVar3 = this->input_argument_->lib_;
  if (this->input_argument_->is_file_ == false) {
    if (pIVar3 == (Input_file_lib *)0x0) {
      ret._M_dataplus._M_p = (pointer)&ret.field_2;
      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
      _M_construct<char_const*>(&ret,"Read_symbols group (");
      if (this->input_argument_->is_file_ != false) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */
        do_gold_unreachable("../../gold/options.h",0x830,"group");
      }
      pIVar5 = this->input_argument_->group_;
      pIVar4 = (pIVar5->files_).
               super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.
               _M_impl._M_start;
      if ((pIVar5->files_).
          super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.
          _M_finish != pIVar4) {
        cVar1 = pIVar4->is_file_;
        while( true ) {
          if (cVar1 == '\0') {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */
            do_gold_unreachable("../../gold/options.h",0x828,"file");
          }
          pIVar12 = pIVar4 + 1;
          pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p;
          sVar8 = strlen(pcVar14);
          if (0x7fffffffffffffff - ret._M_string_length < sVar8) {
                    /* WARNING: Subroutine does not return */
            std::__throw_length_error("basic_string::append");
          }
                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */
          std::string::_M_append((string *)&ret,pcVar14,sVar8);
          sVar7 = ret._M_string_length;
          if ((pIVar5->files_).
              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.
              _M_impl._M_finish == pIVar12) break;
          uVar13 = ret._M_string_length + 1;
          uVar11 = ret.field_2._M_allocated_capacity;
          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
               *)ret._M_dataplus._M_p == &ret.field_2) {
            uVar11 = 0xf;
          }
          if (uVar11 < uVar13) {
            std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);
          }
          ret._M_dataplus._M_p[sVar7] = ' ';
          ret._M_dataplus._M_p[uVar13] = '\0';
          cVar1 = pIVar12->is_file_;
          pIVar4 = pIVar12;
          ret._M_string_length = uVar13;
        }
      }
      sVar7 = ret._M_string_length;
      _Var6._M_p = ret._M_dataplus._M_p;
      paVar10 = &__return_storage_ptr__->field_2;
      (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;
      if ((ret._M_dataplus._M_p + ret._M_string_length != (pointer)0x0) &&
         (ret._M_dataplus._M_p == (pointer)0x0)) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */
        std::__throw_logic_error("basic_string::_M_construct null not valid");
      }
      __dnew = ret._M_string_length;
      if (ret._M_string_length < 0x10) {
        if (ret._M_string_length == 1) {
          (__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;
        }
        else if (ret._M_string_length != 0) goto LAB_0040fb81;
      }
      else {
                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */
        paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                   *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0);
        (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;
        (__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew;
LAB_0040fb81:
        memcpy(paVar10,_Var6._M_p,sVar7);
        paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                   *)(__return_storage_ptr__->_M_dataplus)._M_p;
      }
      __return_storage_ptr__->_M_string_length = __dnew;
      paVar10->_M_local_buf[__dnew] = '\0';
                    /* try { // try from 0040fb0c to 0040fb10 has its CatchHandler @ 0040fcc4 */
      std::string::_M_replace_aux
                ((string *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')');
      goto LAB_0040f851;
    }
  }
  else if (pIVar3 == (Input_file_lib *)0x0) {
    ret._M_dataplus._M_p = (pointer)&ret.field_2;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>(&ret,"Read_symbols ");
    pIVar9 = this->input_argument_;
    if (pIVar9->is_file_ == false) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/options.h",0x828,"file");
    }
    IVar2 = (pIVar9->file_).type_;
    uVar13 = 0x7fffffffffffffff - ret._M_string_length;
    if (IVar2 == INPUT_FILE_TYPE_LIBRARY) {
      if (uVar13 < 2) {
                    /* WARNING: Subroutine does not return */
        std::__throw_length_error("basic_string::append");
      }
                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */
      std::string::_M_append((string *)&ret,"-l",2);
    }
    else {
      if (IVar2 != INPUT_FILE_TYPE_SEARCHED_FILE) goto LAB_0040f8db;
      if (uVar13 < 3) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */
        std::__throw_length_error("basic_string::append");
      }
      std::string::_M_append((string *)&ret,"-l:",3);
    }
    pIVar9 = this->input_argument_;
    if (pIVar9->is_file_ == false) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */
      do_gold_unreachable("../../gold/options.h",0x828,"file");
    }
    uVar13 = 0x7fffffffffffffff - ret._M_string_length;
LAB_0040f8db:
    pcVar14 = (pIVar9->file_).name_._M_dataplus._M_p;
    sVar8 = strlen(pcVar14);
    if (sVar8 <= uVar13) {
                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */
      std::string::_M_append((string *)&ret,pcVar14,sVar8);
      (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)ret._M_dataplus._M_p == &ret.field_2) {
        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;
        *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = ret.field_2._8_8_;
      }
      else {
        (__return_storage_ptr__->_M_dataplus)._M_p = ret._M_dataplus._M_p;
        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;
      }
      __return_storage_ptr__->_M_string_length = ret._M_string_length;
      return __return_storage_ptr__;
    }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fca7 to 0040fcab has its CatchHandler @ 0040fccc */
    std::__throw_length_error("basic_string::append");
  }
  ret._M_dataplus._M_p = (pointer)&ret.field_2;
  pcVar14 = "Read_symbols lib (";
  pIVar9 = (Input_argument *)&ret;
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char_const*>();
  if (this->input_argument_->is_file_ != false) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/options.h",0x83f,"lib");
  }
  pIVar3 = this->input_argument_->lib_;
  if (pIVar3 == (Input_file_lib *)0x0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fc77 to 0040fc9f has its CatchHandler @ 0040fcbc */
    Input_argument::lib(pIVar9,(Input_argument *)pcVar14);
  }
  pIVar4 = (pIVar3->files_).
           super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.
           _M_start;
  if (pIVar4 != (pIVar3->files_).
                super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.
                _M_impl._M_finish) {
    cVar1 = pIVar4->is_file_;
    while( true ) {
      if (cVar1 == '\0') {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/options.h",0x828,"file");
      }
      pIVar12 = pIVar4 + 1;
      pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p;
      sVar8 = strlen(pcVar14);
      if (0x7fffffffffffffff - ret._M_string_length < sVar8) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */
        std::__throw_length_error("basic_string::append");
      }
                    /* try { // try from 0040f780 to 0040f7c0 has its CatchHandler @ 0040fcbc */
      std::string::_M_append((string *)&ret,pcVar14,sVar8);
      sVar7 = ret._M_string_length;
      if ((pIVar3->files_).
          super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.
          _M_finish == pIVar12) break;
      uVar13 = ret._M_string_length + 1;
      uVar11 = ret.field_2._M_allocated_capacity;
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)ret._M_dataplus._M_p == &ret.field_2) {
        uVar11 = 0xf;
      }
      if (uVar11 < uVar13) {
        std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);
      }
      ret._M_dataplus._M_p[sVar7] = ' ';
      ret._M_dataplus._M_p[uVar13] = '\0';
      cVar1 = pIVar12->is_file_;
      pIVar4 = pIVar12;
      ret._M_string_length = uVar13;
    }
  }
  sVar7 = ret._M_string_length;
  _Var6._M_p = ret._M_dataplus._M_p;
  paVar10 = &__return_storage_ptr__->field_2;
  (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;
  if ((ret._M_dataplus._M_p + ret._M_string_length != (pointer)0x0) &&
     (ret._M_dataplus._M_p == (pointer)0x0)) {
                    /* WARNING: Subroutine does not return */
    std::__throw_logic_error("basic_string::_M_construct null not valid");
  }
  __dnew = ret._M_string_length;
  if (ret._M_string_length < 0x10) {
    if (ret._M_string_length == 1) {
      (__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;
    }
    else if (ret._M_string_length != 0) goto LAB_0040f970;
  }
  else {
                    /* try { // try from 0040f95f to 0040f963 has its CatchHandler @ 0040fcbc */
    paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
               *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0);
    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;
    (__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew;
LAB_0040f970:
    memcpy(paVar10,_Var6._M_p,sVar7);
    paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
               *)(__return_storage_ptr__->_M_dataplus)._M_p;
  }
  __return_storage_ptr__->_M_string_length = __dnew;
  paVar10->_M_local_buf[__dnew] = '\0';
                    /* try { // try from 0040f84c to 0040f850 has its CatchHandler @ 0040fcac */
  std::string::_M_replace_aux
            ((string *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')');
LAB_0040f851:
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)ret._M_dataplus._M_p != &ret.field_2) {
    operator_delete(ret._M_dataplus._M_p);
  }
  return __return_storage_ptr__;
}



long * FUN_0040f6a0(long *param_1,long param_2)

{
  ulong uVar1;
  char cVar2;
  long lVar3;
  undefined8 *puVar4;
  ulong *puVar5;
  size_t sVar6;
  char *pcVar7;
  long *plVar8;
  ulong uVar9;
  char *pcVar10;
  ulong uVar11;
  ulong local_60;
  ulong *local_58;
  ulong local_50;
  ulong local_48;
  long lStack_40;
  
  lVar3 = *(long *)(*(char **)(param_2 + 0x68) + 0x70);
  if (**(char **)(param_2 + 0x68) == '\0') {
    if (lVar3 == 0) {
      local_58 = &local_48;
      FUN_001a61c0(&local_58,"Read_symbols group (");
      if (**(char **)(param_2 + 0x68) != '\0') {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */
        FUN_00352af0("../../gold/options.h",0x830,"group");
      }
      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);
      pcVar7 = (char *)*puVar4;
      if ((char *)puVar4[1] != pcVar7) {
        cVar2 = *pcVar7;
        while( true ) {
          if (cVar2 == '\0') {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */
            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);
          }
          pcVar10 = pcVar7 + 0x80;
          pcVar7 = *(char **)(pcVar7 + 8);
          sVar6 = strlen(pcVar7);
          if (0x7fffffffffffffff - local_50 < sVar6) {
                    /* WARNING: Subroutine does not return */
            FUN_004dcc70("basic_string::append");
          }
                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */
          FUN_004a65c0(&local_58,pcVar7,sVar6);
          uVar11 = local_50;
          if ((char *)puVar4[1] == pcVar10) break;
          uVar1 = local_50 + 1;
          uVar9 = local_48;
          if (local_58 == &local_48) {
            uVar9 = 0xf;
          }
          if (uVar9 < uVar1) {
            FUN_004a5030(&local_58,local_50,0,0,1);
          }
          *(undefined1 *)((long)local_58 + uVar11) = 0x20;
          *(undefined1 *)((long)local_58 + uVar1) = 0;
          cVar2 = *pcVar10;
          pcVar7 = pcVar10;
          local_50 = uVar1;
        }
      }
      uVar11 = local_50;
      puVar5 = local_58;
      plVar8 = param_1 + 2;
      *param_1 = (long)plVar8;
      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&
         (local_58 == (ulong *)0x0)) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */
        FUN_004dcbb0("basic_string::_M_construct null not valid");
      }
      local_60 = local_50;
      if (local_50 < 0x10) {
        if (local_50 == 1) {
          *(char *)(param_1 + 2) = (char)*local_58;
        }
        else if (local_50 != 0) goto LAB_0040fb81;
      }
      else {
                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */
        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);
        *param_1 = (long)plVar8;
        param_1[2] = local_60;
LAB_0040fb81:
        memcpy(plVar8,puVar5,uVar11);
        plVar8 = (long *)*param_1;
      }
      param_1[1] = local_60;
      *(undefined1 *)((long)plVar8 + local_60) = 0;
                    /* try { // try from 0040fb0c to 0040fb10 has its CatchHandler @ 0040fcc4 */
      FUN_004a59d0(param_1,param_1[1],0,1,0x29);
      goto LAB_0040f851;
    }
  }
  else if (lVar3 == 0) {
    local_58 = &local_48;
    FUN_001a61c0(&local_58,"Read_symbols ");
    pcVar7 = *(char **)(param_2 + 0x68);
    if (*pcVar7 == '\0') {
                    /* WARNING: Subroutine does not return */
      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);
    }
    uVar11 = 0x7fffffffffffffff - local_50;
    if (*(int *)(pcVar7 + 0x28) == 1) {
      if (uVar11 < 2) {
                    /* WARNING: Subroutine does not return */
        FUN_004dcc70("basic_string::append");
      }
                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */
      FUN_004a65c0(&local_58,&DAT_0056d435,2);
    }
    else {
      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;
      if (uVar11 < 3) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */
        FUN_004dcc70("basic_string::append");
      }
      FUN_004a65c0(&local_58,&DAT_0057d35e,3);
    }
    pcVar7 = *(char **)(param_2 + 0x68);
    if (*pcVar7 == '\0') {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */
      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);
    }
    uVar11 = 0x7fffffffffffffff - local_50;
LAB_0040f8db:
    pcVar7 = *(char **)(pcVar7 + 8);
    sVar6 = strlen(pcVar7);
    if (sVar6 <= uVar11) {
                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */
      FUN_004a65c0(&local_58,pcVar7,sVar6);
      *param_1 = (long)(param_1 + 2);
      if (local_58 == &local_48) {
        param_1[2] = local_48;
        param_1[3] = lStack_40;
      }
      else {
        *param_1 = (long)local_58;
        param_1[2] = local_48;
      }
      param_1[1] = local_50;
      return param_1;
    }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fca7 to 0040fcab has its CatchHandler @ 0040fccc */
    FUN_004dcc70("basic_string::append");
  }
  local_58 = &local_48;
  FUN_001a61c0(&local_58,"Read_symbols lib (");
  if (**(char **)(param_2 + 0x68) != '\0') {
LAB_0040fc7c:
                    /* WARNING: Subroutine does not return */
    FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);
  }
  puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70);
  if (puVar4 == (undefined8 *)0x0) {
                    /* try { // try from 0040fc77 to 0040fc9f has its CatchHandler @ 0040fcbc */
    FUN_0040d630();
    goto LAB_0040fc7c;
  }
  pcVar7 = (char *)*puVar4;
  if (pcVar7 != (char *)puVar4[1]) {
    cVar2 = *pcVar7;
    while( true ) {
      if (cVar2 == '\0') {
                    /* WARNING: Subroutine does not return */
        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);
      }
      pcVar10 = pcVar7 + 0x80;
      pcVar7 = *(char **)(pcVar7 + 8);
      sVar6 = strlen(pcVar7);
      if (0x7fffffffffffffff - local_50 < sVar6) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */
        FUN_004dcc70("basic_string::append");
      }
                    /* try { // try from 0040f780 to 0040f7c0 has its CatchHandler @ 0040fcbc */
      FUN_004a65c0(&local_58,pcVar7,sVar6);
      uVar11 = local_50;
      if ((char *)puVar4[1] == pcVar10) break;
      uVar1 = local_50 + 1;
      uVar9 = local_48;
      if (local_58 == &local_48) {
        uVar9 = 0xf;
      }
      if (uVar9 < uVar1) {
        FUN_004a5030(&local_58,local_50,0,0,1);
      }
      *(undefined1 *)((long)local_58 + uVar11) = 0x20;
      *(undefined1 *)((long)local_58 + uVar1) = 0;
      cVar2 = *pcVar10;
      pcVar7 = pcVar10;
      local_50 = uVar1;
    }
  }
  uVar11 = local_50;
  puVar5 = local_58;
  plVar8 = param_1 + 2;
  *param_1 = (long)plVar8;
  if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) && (local_58 == (ulong *)0x0)
     ) {
                    /* WARNING: Subroutine does not return */
    FUN_004dcbb0("basic_string::_M_construct null not valid");
  }
  local_60 = local_50;
  if (local_50 < 0x10) {
    if (local_50 == 1) {
      *(char *)(param_1 + 2) = (char)*local_58;
    }
    else if (local_50 != 0) goto LAB_0040f970;
  }
  else {
                    /* try { // try from 0040f95f to 0040f963 has its CatchHandler @ 0040fcbc */
    plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);
    *param_1 = (long)plVar8;
    param_1[2] = local_60;
LAB_0040f970:
    memcpy(plVar8,puVar5,uVar11);
    plVar8 = (long *)*param_1;
  }
  param_1[1] = local_60;
  *(undefined1 *)((long)plVar8 + local_60) = 0;
                    /* try { // try from 0040f84c to 0040f850 has its CatchHandler @ 0040fcac */
  FUN_004a59d0(param_1,param_1[1],0,1,0x29);
LAB_0040f851:
  if (local_58 != &local_48) {
    FUN_0049e340();
  }
  return param_1;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
MOV RBX,RSI
SUB RSP,0x48
MOV RAX,qword ptr [RSI + 0x68]
MOV qword ptr [RSP + 0x8],RDI
CMP byte ptr [RAX],0x0
MOV RDX,qword ptr [RAX + 0x70]
JNZ 0x0040f880
TEST RDX,RDX
JZ 0x0040f990
LEA R14,[RSP + 0x20]
LEA RDX,[0x57d389]
LEA RAX,[R14 + 0x10]
LEA RSI,[RDX + -0x12]
MOV RDI,R14
MOV qword ptr [RSP + 0x20],RAX
CALL 0x001a61c0
MOV RAX,qword ptr [RBX + 0x68]
CMP byte ptr [RAX],0x0
JNZ 0x0040fc7c
MOV R15,qword ptr [RAX + 0x70]
TEST R15,R15
JZ 0x0040fc77
MOV RBX,qword ptr [R15]
CMP RBX,qword ptr [R15 + 0x8]
JZ 0x0040f7d7
CMP byte ptr [RBX],0x0
JZ 0x0040fbcf
SUB RBX,-0x80
JMP 0x0040f753
MOV byte ptr [R13 + RBP*0x1],0x20
MOV RAX,qword ptr [RSP + 0x20]
SUB RBX,-0x80
MOV qword ptr [RSP + 0x28],R12
MOV byte ptr [RAX + R12*0x1],0x0
CMP byte ptr [RBX + -0x80],0x0
JZ 0x0040fbcf
MOV RBP,qword ptr [RBX + -0x78]
MOV RDI,RBP
CALL 0x00177490
MOV RDX,0x7fffffffffffffff
SUB RDX,qword ptr [RSP + 0x28]
CMP RAX,RDX
JA 0x0040fbc3
MOV RDX,RAX
MOV RSI,RBP
MOV RDI,R14
CALL 0x004a65c0
MOV RBP,qword ptr [RSP + 0x28]
MOV R13,qword ptr [RSP + 0x20]
CMP qword ptr [R15 + 0x8],RBX
JZ 0x0040f7e8
LEA RAX,[R14 + 0x10]
LEA R12,[RBP + 0x1]
CMP R13,RAX
JZ 0x0040f7d0
MOV RAX,qword ptr [RSP + 0x30]
CMP R12,RAX
JBE 0x0040f730
MOV R8D,0x1
XOR ECX,ECX
XOR EDX,EDX
MOV RSI,RBP
MOV RDI,R14
CALL 0x004a5030
MOV R13,qword ptr [RSP + 0x20]
JMP 0x0040f730
MOV EAX,0xf
JMP 0x0040f7a7
MOV R13,qword ptr [RSP + 0x20]
MOV RBP,qword ptr [RSP + 0x28]
NOP dword ptr [RAX]
MOV RAX,qword ptr [RSP + 0x8]
LEA RBX,[RAX + 0x10]
MOV qword ptr [RAX],RBX
MOV RAX,R13
ADD RAX,RBP
JZ 0x0040f805
TEST R13,R13
JZ 0x0040fc94
MOV qword ptr [RSP + 0x18],RBP
CMP RBP,0xf
JA 0x0040f950
CMP RBP,0x1
JNZ 0x0040f940
MOVZX EAX,byte ptr [R13]
MOV RCX,qword ptr [RSP + 0x8]
MOV byte ptr [RCX + 0x10],AL
MOV RAX,RBX
MOV RDI,qword ptr [RSP + 0x8]
MOV R8D,0x29
MOV ECX,0x1
XOR EDX,EDX
MOV qword ptr [RDI + 0x8],RBP
MOV byte ptr [RAX + RBP*0x1],0x0
MOV RSI,qword ptr [RDI + 0x8]
CALL 0x004a59d0
MOV RDI,qword ptr [RSP + 0x20]
ADD R14,0x10
CMP RDI,R14
JZ 0x0040f864
CALL 0x0049e340
MOV RAX,qword ptr [RSP + 0x8]
ADD RSP,0x48
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
TEST RDX,RDX
JNZ 0x0040f6d0
LEA R14,[RSP + 0x20]
LEA RDX,[0x57d397]
LEA RAX,[R14 + 0x10]
LEA RSI,[RDX + -0xd]
MOV RDI,R14
MOV qword ptr [RSP + 0x20],RAX
CALL 0x001a61c0
MOV RAX,qword ptr [RBX + 0x68]
CMP byte ptr [RAX],0x0
JZ 0x0040fc17
MOV RBP,0x7fffffffffffffff
MOV EDX,dword ptr [RAX + 0x28]
SUB RBP,qword ptr [RSP + 0x28]
CMP EDX,0x1
JZ 0x0040fb16
CMP EDX,0x2
JZ 0x0040fb55
MOV RBX,qword ptr [RAX + 0x8]
MOV RDI,RBX
CALL 0x00177490
CMP RAX,RBP
JA 0x0040fca0
MOV RDX,RAX
MOV RSI,RBX
MOV RDI,R14
CALL 0x004a65c0
MOV RCX,qword ptr [RSP + 0x8]
ADD R14,0x10
LEA RAX,[RCX + 0x10]
MOV qword ptr [RCX],RAX
MOV RAX,qword ptr [RSP + 0x20]
CMP RAX,R14
JZ 0x0040fa7b
MOV RCX,qword ptr [RSP + 0x8]
MOV qword ptr [RCX],RAX
MOV RAX,qword ptr [RSP + 0x30]
MOV qword ptr [RCX + 0x10],RAX
MOV RAX,qword ptr [RSP + 0x28]
MOV RCX,qword ptr [RSP + 0x8]
MOV qword ptr [RCX + 0x8],RAX
JMP 0x0040f864
MOV RAX,RBX
TEST RBP,RBP
JZ 0x0040f82e
JMP 0x0040f970
MOV R15,qword ptr [RSP + 0x8]
LEA RSI,[RSP + 0x18]
XOR EDX,EDX
MOV RDI,R15
CALL 0x004a4c70
MOV RDX,qword ptr [RSP + 0x18]
MOV qword ptr [R15],RAX
MOV qword ptr [R15 + 0x10],RDX
MOV RDX,RBP
MOV RSI,R13
MOV RDI,RAX
CALL 0x00177aa0
MOV RAX,qword ptr [RSP + 0x8]
MOV RBP,qword ptr [RSP + 0x18]
MOV RAX,qword ptr [RAX]
JMP 0x0040f82e
LEA R14,[RSP + 0x20]
LEA RDX,[0x57d376]
LEA RAX,[R14 + 0x10]
LEA RSI,[RDX + -0x14]
MOV RDI,R14
MOV qword ptr [RSP + 0x20],RAX
CALL 0x001a61c0
MOV RAX,qword ptr [RBX + 0x68]
CMP byte ptr [RAX],0x0
JNZ 0x0040fc5f
MOV R15,qword ptr [RAX + 0x68]
MOV RBX,qword ptr [R15]
CMP qword ptr [R15 + 0x8],RBX
JZ 0x0040fa97
CMP byte ptr [RBX],0x0
JZ 0x0040fbe7
SUB RBX,-0x80
JMP 0x0040fa03
MOV byte ptr [R13 + RBP*0x1],0x20
MOV RAX,qword ptr [RSP + 0x20]
SUB RBX,-0x80
MOV qword ptr [RSP + 0x28],R12
MOV byte ptr [RAX + R12*0x1],0x0
CMP byte ptr [RBX + -0x80],0x0
JZ 0x0040fbe7
MOV RBP,qword ptr [RBX + -0x78]
MOV RDI,RBP
CALL 0x00177490
MOV RDX,0x7fffffffffffffff
SUB RDX,qword ptr [RSP + 0x28]
CMP RAX,RDX
JA 0x0040fbff
MOV RDX,RAX
MOV RSI,RBP
MOV RDI,R14
CALL 0x004a65c0
MOV RBP,qword ptr [RSP + 0x28]
MOV R13,qword ptr [RSP + 0x20]
CMP qword ptr [R15 + 0x8],RBX
JZ 0x0040faa8
LEA RAX,[R14 + 0x10]
LEA R12,[RBP + 0x1]
CMP R13,RAX
JZ 0x0040fa90
MOV RAX,qword ptr [RSP + 0x30]
CMP R12,RAX
JBE 0x0040f9e0
MOV R8D,0x1
XOR ECX,ECX
XOR EDX,EDX
MOV RSI,RBP
MOV RDI,R14
CALL 0x004a5030
MOV R13,qword ptr [RSP + 0x20]
JMP 0x0040f9e0
MOVDQA XMM0,xmmword ptr [RSP + 0x30]
MOVUPS xmmword ptr [RCX + 0x10],XMM0
JMP 0x0040f92d
MOV EAX,0xf
JMP 0x0040fa57
MOV R13,qword ptr [RSP + 0x20]
MOV RBP,qword ptr [RSP + 0x28]
NOP dword ptr [RAX]
MOV RAX,qword ptr [RSP + 0x8]
LEA RBX,[RAX + 0x10]
MOV qword ptr [RAX],RBX
MOV RAX,R13
ADD RAX,RBP
JZ 0x0040fac5
TEST R13,R13
JZ 0x0040fc2f
MOV qword ptr [RSP + 0x18],RBP
CMP RBP,0xf
JA 0x0040fba1
CMP RBP,0x1
JNZ 0x0040fb75
MOVZX EAX,byte ptr [R13]
MOV RCX,qword ptr [RSP + 0x8]
MOV byte ptr [RCX + 0x10],AL
MOV RAX,RBX
MOV RDI,qword ptr [RSP + 0x8]
MOV R8D,0x29
MOV ECX,0x1
XOR EDX,EDX
MOV qword ptr [RDI + 0x8],RBP
MOV byte ptr [RAX + RBP*0x1],0x0
MOV RSI,qword ptr [RDI + 0x8]
CALL 0x004a59d0
JMP 0x0040f851
CMP RBP,0x1
JBE 0x0040fc53
MOV EDX,0x2
LEA RSI,[0x56d435]
MOV RDI,R14
CALL 0x004a65c0
MOV RAX,qword ptr [RBX + 0x68]
CMP byte ptr [RAX],0x0
JZ 0x0040fc3b
MOV RBP,0x7fffffffffffffff
SUB RBP,qword ptr [RSP + 0x28]
JMP 0x0040f8db
CMP RBP,0x2
JBE 0x0040fc0b
MOV EDX,0x3
LEA RSI,[0x57d35e]
MOV RDI,R14
CALL 0x004a65c0
JMP 0x0040fb34
MOV RAX,RBX
TEST RBP,RBP
JZ 0x0040faee
MOV RDX,RBP
MOV RSI,R13
MOV RDI,RAX
CALL 0x00177aa0
MOV RAX,qword ptr [RSP + 0x8]
MOV RBP,qword ptr [RSP + 0x18]
MOV RAX,qword ptr [RAX]
JMP 0x0040faee
MOV R15,qword ptr [RSP + 0x8]
LEA RSI,[RSP + 0x18]
XOR EDX,EDX
MOV RDI,R15
CALL 0x004a4c70
MOV RDX,qword ptr [RSP + 0x18]
MOV qword ptr [R15],RAX
MOV qword ptr [R15 + 0x10],RDX
JMP 0x0040fb81
LEA RDI,[0x552e2e]
CALL 0x004dcc70
LEA RDX,[0x57d4db]
MOV ESI,0x828
LEA RDI,[0x56bc15]
CALL 0x00352af0
LEA RDX,[0x57d4db]
MOV ESI,0x828
LEA RDI,[0x56bc15]
CALL 0x00352af0
LEA RDI,[0x552e2e]
CALL 0x004dcc70
LEA RDI,[0x552e2e]
CALL 0x004dcc70
LEA RDX,[0x57d4db]
MOV ESI,0x828
LEA RDI,[0x56bc15]
CALL 0x00352af0
LEA RDI,[0x52e0a0]
CALL 0x004dcbb0
LEA RDX,[0x57d4db]
MOV ESI,0x828
LEA RDI,[0x56bc15]
CALL 0x00352af0
LEA RDI,[0x552e2e]
CALL 0x004dcc70
LEA RDX,[0x57d44c]
MOV ESI,0x830
LEA RDI,[0x56bc15]
CALL 0x00352af0
CALL 0x0040d630
LEA RDX,[0x57d49c]
MOV ESI,0x83f
LEA RDI,[0x56bc15]
CALL 0x00352af0
LEA RDI,[0x52e0a0]
CALL 0x004dcbb0
LEA RDI,[0x552e2e]
CALL 0x004dcc70
(translation_unit "long * FUN_0040f6a0(long *param_1,long param_2)\n\n{\n  ulong uVar1;\n  char cVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  ulong *puVar5;\n  size_t sVar6;\n  char *pcVar7;\n  long *plVar8;\n  ulong uVar9;\n  char *pcVar10;\n  ulong uVar11;\n  ulong local_60;\n  ulong *local_58;\n  ulong local_50;\n  ulong local_48;\n  long lStack_40;\n  \n  lVar3 = *(long *)(*(char **)(param_2 + 0x68) + 0x70);\n  if (**(char **)(param_2 + 0x68) == '\0') {\n    if (lVar3 == 0) {\n      local_58 = &local_48;\n      FUN_001a61c0(&local_58,"Read_symbols group (");\n      if (**(char **)(param_2 + 0x68) != '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */\n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }\n      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);\n      pcVar7 = (char *)*puVar4;\n      if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_004dcc70("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }\n      uVar11 = local_50;\n      puVar5 = local_58;\n      plVar8 = param_1 + 2;\n      *param_1 = (long)plVar8;\n      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */\n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }\n      local_60 = local_50;\n      if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */\n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }\n      param_1[1] = local_60;\n      *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    /* try { // try from 0040fb0c to 0040fb10 has its CatchHandler @ 0040fcc4 */\n      FUN_004a59d0(param_1,param_1[1],0,1,0x29);\n      goto LAB_0040f851;\n    }\n  }\n  else if (lVar3 == 0) {\n    local_58 = &local_48;\n    FUN_001a61c0(&local_58,"Read_symbols ");\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\n    if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_004dcc70("basic_string::append");\n      }\n                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */\n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */\n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\nLAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);\n    sVar6 = strlen(pcVar7);\n    if (sVar6 <= uVar11) {\n                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */\n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fca7 to 0040fcab has its CatchHandler @ 0040fccc */\n    FUN_004dcc70("basic_string::append");\n  }\n  local_58 = &local_48;\n  FUN_001a61c0(&local_58,"Read_symbols lib (");\n  if (**(char **)(param_2 + 0x68) != '\0') {\nLAB_0040fc7c:\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);\n  }\n  puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70);\n  if (puVar4 == (undefined8 *)0x0) {\n                    /* try { // try from 0040fc77 to 0040fc9f has its CatchHandler @ 0040fcbc */\n    FUN_0040d630();\n    goto LAB_0040fc7c;\n  }\n  pcVar7 = (char *)*puVar4;\n  if (pcVar7 != (char *)puVar4[1]) {\n    cVar2 = *pcVar7;\n    while( true ) {\n      if (cVar2 == '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }\n      pcVar10 = pcVar7 + 0x80;\n      pcVar7 = *(char **)(pcVar7 + 8);\n      sVar6 = strlen(pcVar7);\n      if (0x7fffffffffffffff - local_50 < sVar6) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */\n        FUN_004dcc70("basic_string::append");\n      }\n                    /* try { // try from 0040f780 to 0040f7c0 has its CatchHandler @ 0040fcbc */\n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      uVar11 = local_50;\n      if ((char *)puVar4[1] == pcVar10) break;\n      uVar1 = local_50 + 1;\n      uVar9 = local_48;\n      if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }\n      if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }\n      *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n      *(undefined1 *)((long)local_58 + uVar1) = 0;\n      cVar2 = *pcVar10;\n      pcVar7 = pcVar10;\n      local_50 = uVar1;\n    }\n  }\n  uVar11 = local_50;\n  puVar5 = local_58;\n  plVar8 = param_1 + 2;\n  *param_1 = (long)plVar8;\n  if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) && (local_58 == (ulong *)0x0)\n     ) {\n                    /* WARNING: Subroutine does not return */\n    FUN_004dcbb0("basic_string::_M_construct null not valid");\n  }\n  local_60 = local_50;\n  if (local_50 < 0x10) {\n    if (local_50 == 1) {\n      *(char *)(param_1 + 2) = (char)*local_58;\n    }\n    else if (local_50 != 0) goto LAB_0040f970;\n  }\n  else {\n                    /* try { // try from 0040f95f to 0040f963 has its CatchHandler @ 0040fcbc */\n    plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n    *param_1 = (long)plVar8;\n    param_1[2] = local_60;\nLAB_0040f970:\n    memcpy(plVar8,puVar5,uVar11);\n    plVar8 = (long *)*param_1;\n  }\n  param_1[1] = local_60;\n  *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    /* try { // try from 0040f84c to 0040f850 has its CatchHandler @ 0040fcac */\n  FUN_004a59d0(param_1,param_1[1],0,1,0x29);\nLAB_0040f851:\n  if (local_58 != &local_48) {\n    FUN_0049e340();\n  }\n  return param_1;\n}\n\n" (function_definition "long * FUN_0040f6a0(long *param_1,long param_2)\n\n{\n  ulong uVar1;\n  char cVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  ulong *puVar5;\n  size_t sVar6;\n  char *pcVar7;\n  long *plVar8;\n  ulong uVar9;\n  char *pcVar10;\n  ulong uVar11;\n  ulong local_60;\n  ulong *local_58;\n  ulong local_50;\n  ulong local_48;\n  long lStack_40;\n  \n  lVar3 = *(long *)(*(char **)(param_2 + 0x68) + 0x70);\n  if (**(char **)(param_2 + 0x68) == '\0') {\n    if (lVar3 == 0) {\n      local_58 = &local_48;\n      FUN_001a61c0(&local_58,"Read_symbols group (");\n      if (**(char **)(param_2 + 0x68) != '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */\n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }\n      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);\n      pcVar7 = (char *)*puVar4;\n      if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_004dcc70("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }\n      uVar11 = local_50;\n      puVar5 = local_58;\n      plVar8 = param_1 + 2;\n      *param_1 = (long)plVar8;\n      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */\n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }\n      local_60 = local_50;\n      if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */\n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }\n      param_1[1] = local_60;\n      *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    /* try { // try from 0040fb0c to 0040fb10 has its CatchHandler @ 0040fcc4 */\n      FUN_004a59d0(param_1,param_1[1],0,1,0x29);\n      goto LAB_0040f851;\n    }\n  }\n  else if (lVar3 == 0) {\n    local_58 = &local_48;\n    FUN_001a61c0(&local_58,"Read_symbols ");\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\n    if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_004dcc70("basic_string::append");\n      }\n                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */\n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */\n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\nLAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);\n    sVar6 = strlen(pcVar7);\n    if (sVar6 <= uVar11) {\n                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */\n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fca7 to 0040fcab has its CatchHandler @ 0040fccc */\n    FUN_004dcc70("basic_string::append");\n  }\n  local_58 = &local_48;\n  FUN_001a61c0(&local_58,"Read_symbols lib (");\n  if (**(char **)(param_2 + 0x68) != '\0') {\nLAB_0040fc7c:\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);\n  }\n  puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70);\n  if (puVar4 == (undefined8 *)0x0) {\n                    /* try { // try from 0040fc77 to 0040fc9f has its CatchHandler @ 0040fcbc */\n    FUN_0040d630();\n    goto LAB_0040fc7c;\n  }\n  pcVar7 = (char *)*puVar4;\n  if (pcVar7 != (char *)puVar4[1]) {\n    cVar2 = *pcVar7;\n    while( true ) {\n      if (cVar2 == '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }\n      pcVar10 = pcVar7 + 0x80;\n      pcVar7 = *(char **)(pcVar7 + 8);\n      sVar6 = strlen(pcVar7);\n      if (0x7fffffffffffffff - local_50 < sVar6) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */\n        FUN_004dcc70("basic_string::append");\n      }\n                    /* try { // try from 0040f780 to 0040f7c0 has its CatchHandler @ 0040fcbc */\n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      uVar11 = local_50;\n      if ((char *)puVar4[1] == pcVar10) break;\n      uVar1 = local_50 + 1;\n      uVar9 = local_48;\n      if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }\n      if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }\n      *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n      *(undefined1 *)((long)local_58 + uVar1) = 0;\n      cVar2 = *pcVar10;\n      pcVar7 = pcVar10;\n      local_50 = uVar1;\n    }\n  }\n  uVar11 = local_50;\n  puVar5 = local_58;\n  plVar8 = param_1 + 2;\n  *param_1 = (long)plVar8;\n  if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) && (local_58 == (ulong *)0x0)\n     ) {\n                    /* WARNING: Subroutine does not return */\n    FUN_004dcbb0("basic_string::_M_construct null not valid");\n  }\n  local_60 = local_50;\n  if (local_50 < 0x10) {\n    if (local_50 == 1) {\n      *(char *)(param_1 + 2) = (char)*local_58;\n    }\n    else if (local_50 != 0) goto LAB_0040f970;\n  }\n  else {\n                    /* try { // try from 0040f95f to 0040f963 has its CatchHandler @ 0040fcbc */\n    plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n    *param_1 = (long)plVar8;\n    param_1[2] = local_60;\nLAB_0040f970:\n    memcpy(plVar8,puVar5,uVar11);\n    plVar8 = (long *)*param_1;\n  }\n  param_1[1] = local_60;\n  *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    /* try { // try from 0040f84c to 0040f850 has its CatchHandler @ 0040fcac */\n  FUN_004a59d0(param_1,param_1[1],0,1,0x29);\nLAB_0040f851:\n  if (local_58 != &local_48) {\n    FUN_0049e340();\n  }\n  return param_1;\n}" (sized_type_specifier "long" long) (pointer_declarator "* FUN_0040f6a0(long *param_1,long param_2)" * (function_declarator "FUN_0040f6a0(long *param_1,long param_2)" identifier (parameter_list "(long *param_1,long param_2)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) )))) (compound_statement "{\n  ulong uVar1;\n  char cVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  ulong *puVar5;\n  size_t sVar6;\n  char *pcVar7;\n  long *plVar8;\n  ulong uVar9;\n  char *pcVar10;\n  ulong uVar11;\n  ulong local_60;\n  ulong *local_58;\n  ulong local_50;\n  ulong local_48;\n  long lStack_40;\n  \n  lVar3 = *(long *)(*(char **)(param_2 + 0x68) + 0x70);\n  if (**(char **)(param_2 + 0x68) == '\0') {\n    if (lVar3 == 0) {\n      local_58 = &local_48;\n      FUN_001a61c0(&local_58,"Read_symbols group (");\n      if (**(char **)(param_2 + 0x68) != '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */\n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }\n      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);\n      pcVar7 = (char *)*puVar4;\n      if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_004dcc70("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }\n      uVar11 = local_50;\n      puVar5 = local_58;\n      plVar8 = param_1 + 2;\n      *param_1 = (long)plVar8;\n      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */\n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }\n      local_60 = local_50;\n      if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */\n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }\n      param_1[1] = local_60;\n      *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    /* try { // try from 0040fb0c to 0040fb10 has its CatchHandler @ 0040fcc4 */\n      FUN_004a59d0(param_1,param_1[1],0,1,0x29);\n      goto LAB_0040f851;\n    }\n  }\n  else if (lVar3 == 0) {\n    local_58 = &local_48;\n    FUN_001a61c0(&local_58,"Read_symbols ");\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\n    if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_004dcc70("basic_string::append");\n      }\n                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */\n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */\n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\nLAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);\n    sVar6 = strlen(pcVar7);\n    if (sVar6 <= uVar11) {\n                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */\n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fca7 to 0040fcab has its CatchHandler @ 0040fccc */\n    FUN_004dcc70("basic_string::append");\n  }\n  local_58 = &local_48;\n  FUN_001a61c0(&local_58,"Read_symbols lib (");\n  if (**(char **)(param_2 + 0x68) != '\0') {\nLAB_0040fc7c:\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);\n  }\n  puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70);\n  if (puVar4 == (undefined8 *)0x0) {\n                    /* try { // try from 0040fc77 to 0040fc9f has its CatchHandler @ 0040fcbc */\n    FUN_0040d630();\n    goto LAB_0040fc7c;\n  }\n  pcVar7 = (char *)*puVar4;\n  if (pcVar7 != (char *)puVar4[1]) {\n    cVar2 = *pcVar7;\n    while( true ) {\n      if (cVar2 == '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }\n      pcVar10 = pcVar7 + 0x80;\n      pcVar7 = *(char **)(pcVar7 + 8);\n      sVar6 = strlen(pcVar7);\n      if (0x7fffffffffffffff - local_50 < sVar6) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */\n        FUN_004dcc70("basic_string::append");\n      }\n                    /* try { // try from 0040f780 to 0040f7c0 has its CatchHandler @ 0040fcbc */\n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      uVar11 = local_50;\n      if ((char *)puVar4[1] == pcVar10) break;\n      uVar1 = local_50 + 1;\n      uVar9 = local_48;\n      if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }\n      if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }\n      *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n      *(undefined1 *)((long)local_58 + uVar1) = 0;\n      cVar2 = *pcVar10;\n      pcVar7 = pcVar10;\n      local_50 = uVar1;\n    }\n  }\n  uVar11 = local_50;\n  puVar5 = local_58;\n  plVar8 = param_1 + 2;\n  *param_1 = (long)plVar8;\n  if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) && (local_58 == (ulong *)0x0)\n     ) {\n                    /* WARNING: Subroutine does not return */\n    FUN_004dcbb0("basic_string::_M_construct null not valid");\n  }\n  local_60 = local_50;\n  if (local_50 < 0x10) {\n    if (local_50 == 1) {\n      *(char *)(param_1 + 2) = (char)*local_58;\n    }\n    else if (local_50 != 0) goto LAB_0040f970;\n  }\n  else {\n                    /* try { // try from 0040f95f to 0040f963 has its CatchHandler @ 0040fcbc */\n    plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n    *param_1 = (long)plVar8;\n    param_1[2] = local_60;\nLAB_0040f970:\n    memcpy(plVar8,puVar5,uVar11);\n    plVar8 = (long *)*param_1;\n  }\n  param_1[1] = local_60;\n  *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    /* try { // try from 0040f84c to 0040f850 has its CatchHandler @ 0040fcac */\n  FUN_004a59d0(param_1,param_1[1],0,1,0x29);\nLAB_0040f851:\n  if (local_58 != &local_48) {\n    FUN_0049e340();\n  }\n  return param_1;\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "ulong *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "long *plVar8;" (sized_type_specifier "long" long) (pointer_declarator "*plVar8" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "ulong local_60;" type_identifier identifier ;) (declaration "ulong *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "ulong local_50;" type_identifier identifier ;) (declaration "ulong local_48;" type_identifier identifier ;) (declaration "long lStack_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar3 = *(long *)(*(char **)(param_2 + 0x68) + 0x70);" (assignment_expression "lVar3 = *(long *)(*(char **)(param_2 + 0x68) + 0x70)" identifier = (pointer_expression "*(long *)(*(char **)(param_2 + 0x68) + 0x70)" * (cast_expression "(long *)(*(char **)(param_2 + 0x68) + 0x70)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(char **)(param_2 + 0x68) + 0x70)" ( (binary_expression "*(char **)(param_2 + 0x68) + 0x70" (pointer_expression "*(char **)(param_2 + 0x68)" * (cast_expression "(char **)(param_2 + 0x68)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x68)" ( (binary_expression "param_2 + 0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (**(char **)(param_2 + 0x68) == '\0') {\n    if (lVar3 == 0) {\n      local_58 = &local_48;\n      FUN_001a61c0(&local_58,"Read_symbols group (");\n      if (**(char **)(param_2 + 0x68) != '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */\n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }\n      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);\n      pcVar7 = (char *)*puVar4;\n      if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_004dcc70("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }\n      uVar11 = local_50;\n      puVar5 = local_58;\n      plVar8 = param_1 + 2;\n      *param_1 = (long)plVar8;\n      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */\n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }\n      local_60 = local_50;\n      if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */\n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }\n      param_1[1] = local_60;\n      *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    /* try { // try from 0040fb0c to 0040fb10 has its CatchHandler @ 0040fcc4 */\n      FUN_004a59d0(param_1,param_1[1],0,1,0x29);\n      goto LAB_0040f851;\n    }\n  }\n  else if (lVar3 == 0) {\n    local_58 = &local_48;\n    FUN_001a61c0(&local_58,"Read_symbols ");\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\n    if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_004dcc70("basic_string::append");\n      }\n                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */\n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */\n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\nLAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);\n    sVar6 = strlen(pcVar7);\n    if (sVar6 <= uVar11) {\n                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */\n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fca7 to 0040fcab has its CatchHandler @ 0040fccc */\n    FUN_004dcc70("basic_string::append");\n  }" if (parenthesized_expression "(**(char **)(param_2 + 0x68) == '\0')" ( (binary_expression "**(char **)(param_2 + 0x68) == '\0'" (pointer_expression "**(char **)(param_2 + 0x68)" * (pointer_expression "*(char **)(param_2 + 0x68)" * (cast_expression "(char **)(param_2 + 0x68)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x68)" ( (binary_expression "param_2 + 0x68" identifier + number_literal) ))))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (lVar3 == 0) {\n      local_58 = &local_48;\n      FUN_001a61c0(&local_58,"Read_symbols group (");\n      if (**(char **)(param_2 + 0x68) != '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */\n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }\n      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);\n      pcVar7 = (char *)*puVar4;\n      if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_004dcc70("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }\n      uVar11 = local_50;\n      puVar5 = local_58;\n      plVar8 = param_1 + 2;\n      *param_1 = (long)plVar8;\n      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */\n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }\n      local_60 = local_50;\n      if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */\n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }\n      param_1[1] = local_60;\n      *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    /* try { // try from 0040fb0c to 0040fb10 has its CatchHandler @ 0040fcc4 */\n      FUN_004a59d0(param_1,param_1[1],0,1,0x29);\n      goto LAB_0040f851;\n    }\n  }" { (if_statement "if (lVar3 == 0) {\n      local_58 = &local_48;\n      FUN_001a61c0(&local_58,"Read_symbols group (");\n      if (**(char **)(param_2 + 0x68) != '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */\n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }\n      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);\n      pcVar7 = (char *)*puVar4;\n      if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_004dcc70("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }\n      uVar11 = local_50;\n      puVar5 = local_58;\n      plVar8 = param_1 + 2;\n      *param_1 = (long)plVar8;\n      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */\n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }\n      local_60 = local_50;\n      if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */\n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }\n      param_1[1] = local_60;\n      *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    /* try { // try from 0040fb0c to 0040fb10 has its CatchHandler @ 0040fcc4 */\n      FUN_004a59d0(param_1,param_1[1],0,1,0x29);\n      goto LAB_0040f851;\n    }" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      local_58 = &local_48;\n      FUN_001a61c0(&local_58,"Read_symbols group (");\n      if (**(char **)(param_2 + 0x68) != '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */\n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }\n      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);\n      pcVar7 = (char *)*puVar4;\n      if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_004dcc70("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }\n      uVar11 = local_50;\n      puVar5 = local_58;\n      plVar8 = param_1 + 2;\n      *param_1 = (long)plVar8;\n      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */\n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }\n      local_60 = local_50;\n      if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */\n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }\n      param_1[1] = local_60;\n      *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    /* try { // try from 0040fb0c to 0040fb10 has its CatchHandler @ 0040fcc4 */\n      FUN_004a59d0(param_1,param_1[1],0,1,0x29);\n      goto LAB_0040f851;\n    }" { (expression_statement "local_58 = &local_48;" (assignment_expression "local_58 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "FUN_001a61c0(&local_58,"Read_symbols group (");" (call_expression "FUN_001a61c0(&local_58,"Read_symbols group (")" identifier (argument_list "(&local_58,"Read_symbols group (")" ( (pointer_expression "&local_58" & identifier) , (string_literal ""Read_symbols group ("" " string_content ") ))) ;) (if_statement "if (**(char **)(param_2 + 0x68) != '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */\n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }" if (parenthesized_expression "(**(char **)(param_2 + 0x68) != '\0')" ( (binary_expression "**(char **)(param_2 + 0x68) != '\0'" (pointer_expression "**(char **)(param_2 + 0x68)" * (pointer_expression "*(char **)(param_2 + 0x68)" * (cast_expression "(char **)(param_2 + 0x68)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x68)" ( (binary_expression "param_2 + 0x68" identifier + number_literal) ))))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */\n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }" { comment comment (expression_statement "FUN_00352af0("../../gold/options.h",0x830,"group");" (call_expression "FUN_00352af0("../../gold/options.h",0x830,"group")" identifier (argument_list "("../../gold/options.h",0x830,"group")" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (string_literal ""group"" " string_content ") ))) ;) })) (expression_statement "puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);" (assignment_expression "puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68)" identifier = (pointer_expression "*(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68)" * (cast_expression "(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(char **)(param_2 + 0x68) + 0x68)" ( (binary_expression "*(char **)(param_2 + 0x68) + 0x68" (pointer_expression "*(char **)(param_2 + 0x68)" * (cast_expression "(char **)(param_2 + 0x68)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x68)" ( (binary_expression "param_2 + 0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pcVar7 = (char *)*puVar4;" (assignment_expression "pcVar7 = (char *)*puVar4" identifier = (cast_expression "(char *)*puVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (if_statement "if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_004dcc70("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }" if (parenthesized_expression "((char *)puVar4[1] != pcVar7)" ( (binary_expression "(char *)puVar4[1] != pcVar7" (cast_expression "(char *)puVar4[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ])) != identifier) )) (compound_statement "{\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_004dcc70("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }" { (expression_statement "cVar2 = *pcVar7;" (assignment_expression "cVar2 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (while_statement "while( true ) {\n          if (cVar2 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_004dcc70("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if (cVar2 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_004dcc70("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }" { (if_statement "if (cVar2 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }" { comment comment (expression_statement "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);" (call_expression "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db)" identifier (argument_list "("../../gold/options.h",0x828,&DAT_0057d4db)" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (pointer_expression "&DAT_0057d4db" & identifier) ))) ;) })) (expression_statement "pcVar10 = pcVar7 + 0x80;" (assignment_expression "pcVar10 = pcVar7 + 0x80" identifier = (binary_expression "pcVar7 + 0x80" identifier + number_literal)) ;) (expression_statement "pcVar7 = *(char **)(pcVar7 + 8);" (assignment_expression "pcVar7 = *(char **)(pcVar7 + 8)" identifier = (pointer_expression "*(char **)(pcVar7 + 8)" * (cast_expression "(char **)(pcVar7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar7 + 8)" ( (binary_expression "pcVar7 + 8" identifier + number_literal) ))))) ;) (expression_statement "sVar6 = strlen(pcVar7);" (assignment_expression "sVar6 = strlen(pcVar7)" identifier = (call_expression "strlen(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (if_statement "if (0x7fffffffffffffff - local_50 < sVar6) {\n                    /* WARNING: Subroutine does not return */\n            FUN_004dcc70("basic_string::append");\n          }" if (parenthesized_expression "(0x7fffffffffffffff - local_50 < sVar6)" ( (binary_expression "0x7fffffffffffffff - local_50 < sVar6" (binary_expression "0x7fffffffffffffff - local_50" number_literal - identifier) < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_004dcc70("basic_string::append");\n          }" { comment (expression_statement "FUN_004dcc70("basic_string::append");" (call_expression "FUN_004dcc70("basic_string::append")" identifier (argument_list "("basic_string::append")" ( (string_literal ""basic_string::append"" " string_content ") ))) ;) })) comment (expression_statement "FUN_004a65c0(&local_58,pcVar7,sVar6);" (call_expression "FUN_004a65c0(&local_58,pcVar7,sVar6)" identifier (argument_list "(&local_58,pcVar7,sVar6)" ( (pointer_expression "&local_58" & identifier) , identifier , identifier ))) ;) (expression_statement "uVar11 = local_50;" (assignment_expression "uVar11 = local_50" identifier = identifier) ;) (if_statement "if ((char *)puVar4[1] == pcVar10) break;" if (parenthesized_expression "((char *)puVar4[1] == pcVar10)" ( (binary_expression "(char *)puVar4[1] == pcVar10" (cast_expression "(char *)puVar4[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ])) == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar1 = local_50 + 1;" (assignment_expression "uVar1 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;) (expression_statement "uVar9 = local_48;" (assignment_expression "uVar9 = local_48" identifier = identifier) ;) (if_statement "if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }" if (parenthesized_expression "(local_58 == &local_48)" ( (binary_expression "local_58 == &local_48" identifier == (pointer_expression "&local_48" & identifier)) )) (compound_statement "{\n            uVar9 = 0xf;\n          }" { (expression_statement "uVar9 = 0xf;" (assignment_expression "uVar9 = 0xf" identifier = number_literal) ;) })) (if_statement "if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }" if (parenthesized_expression "(uVar9 < uVar1)" ( (binary_expression "uVar9 < uVar1" identifier < identifier) )) (compound_statement "{\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }" { (expression_statement "FUN_004a5030(&local_58,local_50,0,0,1);" (call_expression "FUN_004a5030(&local_58,local_50,0,0,1)" identifier (argument_list "(&local_58,local_50,0,0,1)" ( (pointer_expression "&local_58" & identifier) , identifier , number_literal , number_literal , number_literal ))) ;) })) (expression_statement "*(undefined1 *)((long)local_58 + uVar11) = 0x20;" (assignment_expression "*(undefined1 *)((long)local_58 + uVar11) = 0x20" (pointer_expression "*(undefined1 *)((long)local_58 + uVar11)" * (cast_expression "(undefined1 *)((long)local_58 + uVar11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + uVar11)" ( (binary_expression "(long)local_58 + uVar11" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)local_58 + uVar1) = 0;" (assignment_expression "*(undefined1 *)((long)local_58 + uVar1) = 0" (pointer_expression "*(undefined1 *)((long)local_58 + uVar1)" * (cast_expression "(undefined1 *)((long)local_58 + uVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + uVar1)" ( (binary_expression "(long)local_58 + uVar1" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "cVar2 = *pcVar10;" (assignment_expression "cVar2 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (expression_statement "pcVar7 = pcVar10;" (assignment_expression "pcVar7 = pcVar10" identifier = identifier) ;) (expression_statement "local_50 = uVar1;" (assignment_expression "local_50 = uVar1" identifier = identifier) ;) })) })) (expression_statement "uVar11 = local_50;" (assignment_expression "uVar11 = local_50" identifier = identifier) ;) (expression_statement "puVar5 = local_58;" (assignment_expression "puVar5 = local_58" identifier = identifier) ;) (expression_statement "plVar8 = param_1 + 2;" (assignment_expression "plVar8 = param_1 + 2" identifier = (binary_expression "param_1 + 2" identifier + number_literal)) ;) (expression_statement "*param_1 = (long)plVar8;" (assignment_expression "*param_1 = (long)plVar8" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)plVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (if_statement "if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */\n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }" if (parenthesized_expression "(((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0))" ( (binary_expression "((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)" (parenthesized_expression "((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0)" ( (binary_expression "(undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0" (cast_expression "(undefined1 *)((long)local_58 + local_50)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + local_50)" ( (binary_expression "(long)local_58 + local_50" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_58 == (ulong *)0x0)" ( (binary_expression "local_58 == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */\n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }" { comment comment (expression_statement "FUN_004dcbb0("basic_string::_M_construct null not valid");" (call_expression "FUN_004dcbb0("basic_string::_M_construct null not valid")" identifier (argument_list "("basic_string::_M_construct null not valid")" ( (string_literal ""basic_string::_M_construct null not valid"" " string_content ") ))) ;) })) (expression_statement "local_60 = local_50;" (assignment_expression "local_60 = local_50" identifier = identifier) ;) (if_statement "if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */\n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }" if (parenthesized_expression "(local_50 < 0x10)" ( (binary_expression "local_50 < 0x10" identifier < number_literal) )) (compound_statement "{\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }" { (if_statement "if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;" if (parenthesized_expression "(local_50 == 1)" ( (binary_expression "local_50 == 1" identifier == number_literal) )) (compound_statement "{\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }" { (expression_statement "*(char *)(param_1 + 2) = (char)*local_58;" (assignment_expression "*(char *)(param_1 + 2) = (char)*local_58" (pointer_expression "*(char *)(param_1 + 2)" * (cast_expression "(char *)(param_1 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) = (cast_expression "(char)*local_58" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*local_58" * identifier))) ;) }) (else_clause "else if (local_50 != 0) goto LAB_0040fb81;" else (if_statement "if (local_50 != 0) goto LAB_0040fb81;" if (parenthesized_expression "(local_50 != 0)" ( (binary_expression "local_50 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0040fb81;" goto statement_identifier ;)))) }) (else_clause "else {\n                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */\n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }" else (compound_statement "{\n                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */\n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }" { comment (expression_statement "plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);" (assignment_expression "plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0)" identifier = (cast_expression "(long *)FUN_004a4c70(param_1,&local_60,0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_004a4c70(param_1,&local_60,0)" identifier (argument_list "(param_1,&local_60,0)" ( identifier , (pointer_expression "&local_60" & identifier) , number_literal ))))) ;) (expression_statement "*param_1 = (long)plVar8;" (assignment_expression "*param_1 = (long)plVar8" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)plVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "param_1[2] = local_60;" (assignment_expression "param_1[2] = local_60" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);" statement_identifier : (expression_statement "memcpy(plVar8,puVar5,uVar11);" (call_expression "memcpy(plVar8,puVar5,uVar11)" identifier (argument_list "(plVar8,puVar5,uVar11)" ( identifier , identifier , identifier ))) ;)) (expression_statement "plVar8 = (long *)*param_1;" (assignment_expression "plVar8 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) }))) (expression_statement "param_1[1] = local_60;" (assignment_expression "param_1[1] = local_60" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((long)plVar8 + local_60) = 0;" (assignment_expression "*(undefined1 *)((long)plVar8 + local_60) = 0" (pointer_expression "*(undefined1 *)((long)plVar8 + local_60)" * (cast_expression "(undefined1 *)((long)plVar8 + local_60)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar8 + local_60)" ( (binary_expression "(long)plVar8 + local_60" (cast_expression "(long)plVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) comment (expression_statement "FUN_004a59d0(param_1,param_1[1],0,1,0x29);" (call_expression "FUN_004a59d0(param_1,param_1[1],0,1,0x29)" identifier (argument_list "(param_1,param_1[1],0,1,0x29)" ( identifier , (subscript_expression "param_1[1]" identifier [ number_literal ]) , number_literal , number_literal , number_literal ))) ;) (goto_statement "goto LAB_0040f851;" goto statement_identifier ;) })) }) (else_clause "else if (lVar3 == 0) {\n    local_58 = &local_48;\n    FUN_001a61c0(&local_58,"Read_symbols ");\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\n    if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_004dcc70("basic_string::append");\n      }\n                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */\n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */\n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\nLAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);\n    sVar6 = strlen(pcVar7);\n    if (sVar6 <= uVar11) {\n                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */\n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fca7 to 0040fcab has its CatchHandler @ 0040fccc */\n    FUN_004dcc70("basic_string::append");\n  }" else (if_statement "if (lVar3 == 0) {\n    local_58 = &local_48;\n    FUN_001a61c0(&local_58,"Read_symbols ");\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\n    if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_004dcc70("basic_string::append");\n      }\n                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */\n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */\n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\nLAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);\n    sVar6 = strlen(pcVar7);\n    if (sVar6 <= uVar11) {\n                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */\n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fca7 to 0040fcab has its CatchHandler @ 0040fccc */\n    FUN_004dcc70("basic_string::append");\n  }" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    local_58 = &local_48;\n    FUN_001a61c0(&local_58,"Read_symbols ");\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\n    if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_004dcc70("basic_string::append");\n      }\n                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */\n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */\n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\nLAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);\n    sVar6 = strlen(pcVar7);\n    if (sVar6 <= uVar11) {\n                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */\n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fca7 to 0040fcab has its CatchHandler @ 0040fccc */\n    FUN_004dcc70("basic_string::append");\n  }" { (expression_statement "local_58 = &local_48;" (assignment_expression "local_58 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "FUN_001a61c0(&local_58,"Read_symbols ");" (call_expression "FUN_001a61c0(&local_58,"Read_symbols ")" identifier (argument_list "(&local_58,"Read_symbols ")" ( (pointer_expression "&local_58" & identifier) , (string_literal ""Read_symbols "" " string_content ") ))) ;) (expression_statement "pcVar7 = *(char **)(param_2 + 0x68);" (assignment_expression "pcVar7 = *(char **)(param_2 + 0x68)" identifier = (pointer_expression "*(char **)(param_2 + 0x68)" * (cast_expression "(char **)(param_2 + 0x68)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x68)" ( (binary_expression "param_2 + 0x68" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }" if (parenthesized_expression "(*pcVar7 == '\0')" ( (binary_expression "*pcVar7 == '\0'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }" { comment (expression_statement "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);" (call_expression "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db)" identifier (argument_list "("../../gold/options.h",0x828,&DAT_0057d4db)" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (pointer_expression "&DAT_0057d4db" & identifier) ))) ;) })) (expression_statement "uVar11 = 0x7fffffffffffffff - local_50;" (assignment_expression "uVar11 = 0x7fffffffffffffff - local_50" identifier = (binary_expression "0x7fffffffffffffff - local_50" number_literal - identifier)) ;) (if_statement "if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_004dcc70("basic_string::append");\n      }\n                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */\n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }" if (parenthesized_expression "(*(int *)(pcVar7 + 0x28) == 1)" ( (binary_expression "*(int *)(pcVar7 + 0x28) == 1" (pointer_expression "*(int *)(pcVar7 + 0x28)" * (cast_expression "(int *)(pcVar7 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x28)" ( (binary_expression "pcVar7 + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (uVar11 < 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_004dcc70("basic_string::append");\n      }\n                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */\n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }" { (if_statement "if (uVar11 < 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_004dcc70("basic_string::append");\n      }" if (parenthesized_expression "(uVar11 < 2)" ( (binary_expression "uVar11 < 2" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_004dcc70("basic_string::append");\n      }" { comment (expression_statement "FUN_004dcc70("basic_string::append");" (call_expression "FUN_004dcc70("basic_string::append")" identifier (argument_list "("basic_string::append")" ( (string_literal ""basic_string::append"" " string_content ") ))) ;) })) comment (expression_statement "FUN_004a65c0(&local_58,&DAT_0056d435,2);" (call_expression "FUN_004a65c0(&local_58,&DAT_0056d435,2)" identifier (argument_list "(&local_58,&DAT_0056d435,2)" ( (pointer_expression "&local_58" & identifier) , (pointer_expression "&DAT_0056d435" & identifier) , number_literal ))) ;) }) (else_clause "else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }" else (compound_statement "{\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }" { (if_statement "if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;" if (parenthesized_expression "(*(int *)(pcVar7 + 0x28) != 2)" ( (binary_expression "*(int *)(pcVar7 + 0x28) != 2" (pointer_expression "*(int *)(pcVar7 + 0x28)" * (cast_expression "(int *)(pcVar7 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x28)" ( (binary_expression "pcVar7 + 0x28" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0040f8db;" goto statement_identifier ;)) (if_statement "if (uVar11 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        FUN_004dcc70("basic_string::append");\n      }" if (parenthesized_expression "(uVar11 < 3)" ( (binary_expression "uVar11 < 3" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        FUN_004dcc70("basic_string::append");\n      }" { comment comment (expression_statement "FUN_004dcc70("basic_string::append");" (call_expression "FUN_004dcc70("basic_string::append")" identifier (argument_list "("basic_string::append")" ( (string_literal ""basic_string::append"" " string_content ") ))) ;) })) (expression_statement "FUN_004a65c0(&local_58,&DAT_0057d35e,3);" (call_expression "FUN_004a65c0(&local_58,&DAT_0057d35e,3)" identifier (argument_list "(&local_58,&DAT_0057d35e,3)" ( (pointer_expression "&local_58" & identifier) , (pointer_expression "&DAT_0057d35e" & identifier) , number_literal ))) ;) }))) (expression_statement "pcVar7 = *(char **)(param_2 + 0x68);" (assignment_expression "pcVar7 = *(char **)(param_2 + 0x68)" identifier = (pointer_expression "*(char **)(param_2 + 0x68)" * (cast_expression "(char **)(param_2 + 0x68)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x68)" ( (binary_expression "param_2 + 0x68" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar7 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */\n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }" if (parenthesized_expression "(*pcVar7 == '\0')" ( (binary_expression "*pcVar7 == '\0'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */\n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }" { comment comment (expression_statement "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);" (call_expression "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db)" identifier (argument_list "("../../gold/options.h",0x828,&DAT_0057d4db)" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (pointer_expression "&DAT_0057d4db" & identifier) ))) ;) })) (expression_statement "uVar11 = 0x7fffffffffffffff - local_50;" (assignment_expression "uVar11 = 0x7fffffffffffffff - local_50" identifier = (binary_expression "0x7fffffffffffffff - local_50" number_literal - identifier)) ;) (labeled_statement "LAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);" statement_identifier : (expression_statement "pcVar7 = *(char **)(pcVar7 + 8);" (assignment_expression "pcVar7 = *(char **)(pcVar7 + 8)" identifier = (pointer_expression "*(char **)(pcVar7 + 8)" * (cast_expression "(char **)(pcVar7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar7 + 8)" ( (binary_expression "pcVar7 + 8" identifier + number_literal) ))))) ;)) (expression_statement "sVar6 = strlen(pcVar7);" (assignment_expression "sVar6 = strlen(pcVar7)" identifier = (call_expression "strlen(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (if_statement "if (sVar6 <= uVar11) {\n                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */\n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }" if (parenthesized_expression "(sVar6 <= uVar11)" ( (binary_expression "sVar6 <= uVar11" identifier <= identifier) )) (compound_statement "{\n                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */\n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }" { comment (expression_statement "FUN_004a65c0(&local_58,pcVar7,sVar6);" (call_expression "FUN_004a65c0(&local_58,pcVar7,sVar6)" identifier (argument_list "(&local_58,pcVar7,sVar6)" ( (pointer_expression "&local_58" & identifier) , identifier , identifier ))) ;) (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)(param_1 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (if_statement "if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }" if (parenthesized_expression "(local_58 == &local_48)" ( (binary_expression "local_58 == &local_48" identifier == (pointer_expression "&local_48" & identifier)) )) (compound_statement "{\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }" { (expression_statement "param_1[2] = local_48;" (assignment_expression "param_1[2] = local_48" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = lStack_40;" (assignment_expression "param_1[3] = lStack_40" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }" else (compound_statement "{\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }" { (expression_statement "*param_1 = (long)local_58;" (assignment_expression "*param_1 = (long)local_58" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "param_1[2] = local_48;" (assignment_expression "param_1[2] = local_48" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "param_1[1] = local_50;" (assignment_expression "param_1[1] = local_50" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return param_1;" return identifier ;) })) comment comment (expression_statement "FUN_004dcc70("basic_string::append");" (call_expression "FUN_004dcc70("basic_string::append")" identifier (argument_list "("basic_string::append")" ( (string_literal ""basic_string::append"" " string_content ") ))) ;) })))) (expression_statement "local_58 = &local_48;" (assignment_expression "local_58 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "FUN_001a61c0(&local_58,"Read_symbols lib (");" (call_expression "FUN_001a61c0(&local_58,"Read_symbols lib (")" identifier (argument_list "(&local_58,"Read_symbols lib (")" ( (pointer_expression "&local_58" & identifier) , (string_literal ""Read_symbols lib ("" " string_content ") ))) ;) (if_statement "if (**(char **)(param_2 + 0x68) != '\0') {\nLAB_0040fc7c:\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);\n  }" if (parenthesized_expression "(**(char **)(param_2 + 0x68) != '\0')" ( (binary_expression "**(char **)(param_2 + 0x68) != '\0'" (pointer_expression "**(char **)(param_2 + 0x68)" * (pointer_expression "*(char **)(param_2 + 0x68)" * (cast_expression "(char **)(param_2 + 0x68)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x68)" ( (binary_expression "param_2 + 0x68" identifier + number_literal) ))))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0040fc7c:\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);\n  }" { (labeled_statement "LAB_0040fc7c:\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);" statement_identifier : comment (expression_statement "FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);" (call_expression "FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c)" identifier (argument_list "("../../gold/options.h",0x83f,&DAT_0057d49c)" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (pointer_expression "&DAT_0057d49c" & identifier) ))) ;)) })) (expression_statement "puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70);" (assignment_expression "puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70)" identifier = (pointer_expression "*(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70)" * (cast_expression "(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(char **)(param_2 + 0x68) + 0x70)" ( (binary_expression "*(char **)(param_2 + 0x68) + 0x70" (pointer_expression "*(char **)(param_2 + 0x68)" * (cast_expression "(char **)(param_2 + 0x68)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x68)" ( (binary_expression "param_2 + 0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (puVar4 == (undefined8 *)0x0) {\n                    /* try { // try from 0040fc77 to 0040fc9f has its CatchHandler @ 0040fcbc */\n    FUN_0040d630();\n    goto LAB_0040fc7c;\n  }" if (parenthesized_expression "(puVar4 == (undefined8 *)0x0)" ( (binary_expression "puVar4 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* try { // try from 0040fc77 to 0040fc9f has its CatchHandler @ 0040fcbc */\n    FUN_0040d630();\n    goto LAB_0040fc7c;\n  }" { comment (expression_statement "FUN_0040d630();" (call_expression "FUN_0040d630()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0040fc7c;" goto statement_identifier ;) })) (expression_statement "pcVar7 = (char *)*puVar4;" (assignment_expression "pcVar7 = (char *)*puVar4" identifier = (cast_expression "(char *)*puVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (if_statement "if (pcVar7 != (char *)puVar4[1]) {\n    cVar2 = *pcVar7;\n    while( true ) {\n      if (cVar2 == '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }\n      pcVar10 = pcVar7 + 0x80;\n      pcVar7 = *(char **)(pcVar7 + 8);\n      sVar6 = strlen(pcVar7);\n      if (0x7fffffffffffffff - local_50 < sVar6) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */\n        FUN_004dcc70("basic_string::append");\n      }\n                    /* try { // try from 0040f780 to 0040f7c0 has its CatchHandler @ 0040fcbc */\n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      uVar11 = local_50;\n      if ((char *)puVar4[1] == pcVar10) break;\n      uVar1 = local_50 + 1;\n      uVar9 = local_48;\n      if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }\n      if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }\n      *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n      *(undefined1 *)((long)local_58 + uVar1) = 0;\n      cVar2 = *pcVar10;\n      pcVar7 = pcVar10;\n      local_50 = uVar1;\n    }\n  }" if (parenthesized_expression "(pcVar7 != (char *)puVar4[1])" ( (binary_expression "pcVar7 != (char *)puVar4[1]" identifier != (cast_expression "(char *)puVar4[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) )) (compound_statement "{\n    cVar2 = *pcVar7;\n    while( true ) {\n      if (cVar2 == '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }\n      pcVar10 = pcVar7 + 0x80;\n      pcVar7 = *(char **)(pcVar7 + 8);\n      sVar6 = strlen(pcVar7);\n      if (0x7fffffffffffffff - local_50 < sVar6) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */\n        FUN_004dcc70("basic_string::append");\n      }\n                    /* try { // try from 0040f780 to 0040f7c0 has its CatchHandler @ 0040fcbc */\n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      uVar11 = local_50;\n      if ((char *)puVar4[1] == pcVar10) break;\n      uVar1 = local_50 + 1;\n      uVar9 = local_48;\n      if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }\n      if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }\n      *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n      *(undefined1 *)((long)local_58 + uVar1) = 0;\n      cVar2 = *pcVar10;\n      pcVar7 = pcVar10;\n      local_50 = uVar1;\n    }\n  }" { (expression_statement "cVar2 = *pcVar7;" (assignment_expression "cVar2 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (while_statement "while( true ) {\n      if (cVar2 == '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }\n      pcVar10 = pcVar7 + 0x80;\n      pcVar7 = *(char **)(pcVar7 + 8);\n      sVar6 = strlen(pcVar7);\n      if (0x7fffffffffffffff - local_50 < sVar6) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */\n        FUN_004dcc70("basic_string::append");\n      }\n                    /* try { // try from 0040f780 to 0040f7c0 has its CatchHandler @ 0040fcbc */\n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      uVar11 = local_50;\n      if ((char *)puVar4[1] == pcVar10) break;\n      uVar1 = local_50 + 1;\n      uVar9 = local_48;\n      if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }\n      if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }\n      *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n      *(undefined1 *)((long)local_58 + uVar1) = 0;\n      cVar2 = *pcVar10;\n      pcVar7 = pcVar10;\n      local_50 = uVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (cVar2 == '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }\n      pcVar10 = pcVar7 + 0x80;\n      pcVar7 = *(char **)(pcVar7 + 8);\n      sVar6 = strlen(pcVar7);\n      if (0x7fffffffffffffff - local_50 < sVar6) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */\n        FUN_004dcc70("basic_string::append");\n      }\n                    /* try { // try from 0040f780 to 0040f7c0 has its CatchHandler @ 0040fcbc */\n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      uVar11 = local_50;\n      if ((char *)puVar4[1] == pcVar10) break;\n      uVar1 = local_50 + 1;\n      uVar9 = local_48;\n      if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }\n      if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }\n      *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n      *(undefined1 *)((long)local_58 + uVar1) = 0;\n      cVar2 = *pcVar10;\n      pcVar7 = pcVar10;\n      local_50 = uVar1;\n    }" { (if_statement "if (cVar2 == '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }" { comment (expression_statement "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);" (call_expression "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db)" identifier (argument_list "("../../gold/options.h",0x828,&DAT_0057d4db)" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (pointer_expression "&DAT_0057d4db" & identifier) ))) ;) })) (expression_statement "pcVar10 = pcVar7 + 0x80;" (assignment_expression "pcVar10 = pcVar7 + 0x80" identifier = (binary_expression "pcVar7 + 0x80" identifier + number_literal)) ;) (expression_statement "pcVar7 = *(char **)(pcVar7 + 8);" (assignment_expression "pcVar7 = *(char **)(pcVar7 + 8)" identifier = (pointer_expression "*(char **)(pcVar7 + 8)" * (cast_expression "(char **)(pcVar7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar7 + 8)" ( (binary_expression "pcVar7 + 8" identifier + number_literal) ))))) ;) (expression_statement "sVar6 = strlen(pcVar7);" (assignment_expression "sVar6 = strlen(pcVar7)" identifier = (call_expression "strlen(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (if_statement "if (0x7fffffffffffffff - local_50 < sVar6) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */\n        FUN_004dcc70("basic_string::append");\n      }" if (parenthesized_expression "(0x7fffffffffffffff - local_50 < sVar6)" ( (binary_expression "0x7fffffffffffffff - local_50 < sVar6" (binary_expression "0x7fffffffffffffff - local_50" number_literal - identifier) < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */\n        FUN_004dcc70("basic_string::append");\n      }" { comment comment (expression_statement "FUN_004dcc70("basic_string::append");" (call_expression "FUN_004dcc70("basic_string::append")" identifier (argument_list "("basic_string::append")" ( (string_literal ""basic_string::append"" " string_content ") ))) ;) })) comment (expression_statement "FUN_004a65c0(&local_58,pcVar7,sVar6);" (call_expression "FUN_004a65c0(&local_58,pcVar7,sVar6)" identifier (argument_list "(&local_58,pcVar7,sVar6)" ( (pointer_expression "&local_58" & identifier) , identifier , identifier ))) ;) (expression_statement "uVar11 = local_50;" (assignment_expression "uVar11 = local_50" identifier = identifier) ;) (if_statement "if ((char *)puVar4[1] == pcVar10) break;" if (parenthesized_expression "((char *)puVar4[1] == pcVar10)" ( (binary_expression "(char *)puVar4[1] == pcVar10" (cast_expression "(char *)puVar4[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ])) == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar1 = local_50 + 1;" (assignment_expression "uVar1 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;) (expression_statement "uVar9 = local_48;" (assignment_expression "uVar9 = local_48" identifier = identifier) ;) (if_statement "if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }" if (parenthesized_expression "(local_58 == &local_48)" ( (binary_expression "local_58 == &local_48" identifier == (pointer_expression "&local_48" & identifier)) )) (compound_statement "{\n        uVar9 = 0xf;\n      }" { (expression_statement "uVar9 = 0xf;" (assignment_expression "uVar9 = 0xf" identifier = number_literal) ;) })) (if_statement "if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }" if (parenthesized_expression "(uVar9 < uVar1)" ( (binary_expression "uVar9 < uVar1" identifier < identifier) )) (compound_statement "{\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }" { (expression_statement "FUN_004a5030(&local_58,local_50,0,0,1);" (call_expression "FUN_004a5030(&local_58,local_50,0,0,1)" identifier (argument_list "(&local_58,local_50,0,0,1)" ( (pointer_expression "&local_58" & identifier) , identifier , number_literal , number_literal , number_literal ))) ;) })) (expression_statement "*(undefined1 *)((long)local_58 + uVar11) = 0x20;" (assignment_expression "*(undefined1 *)((long)local_58 + uVar11) = 0x20" (pointer_expression "*(undefined1 *)((long)local_58 + uVar11)" * (cast_expression "(undefined1 *)((long)local_58 + uVar11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + uVar11)" ( (binary_expression "(long)local_58 + uVar11" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)local_58 + uVar1) = 0;" (assignment_expression "*(undefined1 *)((long)local_58 + uVar1) = 0" (pointer_expression "*(undefined1 *)((long)local_58 + uVar1)" * (cast_expression "(undefined1 *)((long)local_58 + uVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + uVar1)" ( (binary_expression "(long)local_58 + uVar1" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "cVar2 = *pcVar10;" (assignment_expression "cVar2 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (expression_statement "pcVar7 = pcVar10;" (assignment_expression "pcVar7 = pcVar10" identifier = identifier) ;) (expression_statement "local_50 = uVar1;" (assignment_expression "local_50 = uVar1" identifier = identifier) ;) })) })) (expression_statement "uVar11 = local_50;" (assignment_expression "uVar11 = local_50" identifier = identifier) ;) (expression_statement "puVar5 = local_58;" (assignment_expression "puVar5 = local_58" identifier = identifier) ;) (expression_statement "plVar8 = param_1 + 2;" (assignment_expression "plVar8 = param_1 + 2" identifier = (binary_expression "param_1 + 2" identifier + number_literal)) ;) (expression_statement "*param_1 = (long)plVar8;" (assignment_expression "*param_1 = (long)plVar8" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)plVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (if_statement "if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) && (local_58 == (ulong *)0x0)\n     ) {\n                    /* WARNING: Subroutine does not return */\n    FUN_004dcbb0("basic_string::_M_construct null not valid");\n  }" if (parenthesized_expression "(((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) && (local_58 == (ulong *)0x0)\n     )" ( (binary_expression "((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) && (local_58 == (ulong *)0x0)" (parenthesized_expression "((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0)" ( (binary_expression "(undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0" (cast_expression "(undefined1 *)((long)local_58 + local_50)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + local_50)" ( (binary_expression "(long)local_58 + local_50" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_58 == (ulong *)0x0)" ( (binary_expression "local_58 == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_004dcbb0("basic_string::_M_construct null not valid");\n  }" { comment (expression_statement "FUN_004dcbb0("basic_string::_M_construct null not valid");" (call_expression "FUN_004dcbb0("basic_string::_M_construct null not valid")" identifier (argument_list "("basic_string::_M_construct null not valid")" ( (string_literal ""basic_string::_M_construct null not valid"" " string_content ") ))) ;) })) (expression_statement "local_60 = local_50;" (assignment_expression "local_60 = local_50" identifier = identifier) ;) (if_statement "if (local_50 < 0x10) {\n    if (local_50 == 1) {\n      *(char *)(param_1 + 2) = (char)*local_58;\n    }\n    else if (local_50 != 0) goto LAB_0040f970;\n  }\n  else {\n                    /* try { // try from 0040f95f to 0040f963 has its CatchHandler @ 0040fcbc */\n    plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n    *param_1 = (long)plVar8;\n    param_1[2] = local_60;\nLAB_0040f970:\n    memcpy(plVar8,puVar5,uVar11);\n    plVar8 = (long *)*param_1;\n  }" if (parenthesized_expression "(local_50 < 0x10)" ( (binary_expression "local_50 < 0x10" identifier < number_literal) )) (compound_statement "{\n    if (local_50 == 1) {\n      *(char *)(param_1 + 2) = (char)*local_58;\n    }\n    else if (local_50 != 0) goto LAB_0040f970;\n  }" { (if_statement "if (local_50 == 1) {\n      *(char *)(param_1 + 2) = (char)*local_58;\n    }\n    else if (local_50 != 0) goto LAB_0040f970;" if (parenthesized_expression "(local_50 == 1)" ( (binary_expression "local_50 == 1" identifier == number_literal) )) (compound_statement "{\n      *(char *)(param_1 + 2) = (char)*local_58;\n    }" { (expression_statement "*(char *)(param_1 + 2) = (char)*local_58;" (assignment_expression "*(char *)(param_1 + 2) = (char)*local_58" (pointer_expression "*(char *)(param_1 + 2)" * (cast_expression "(char *)(param_1 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) = (cast_expression "(char)*local_58" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*local_58" * identifier))) ;) }) (else_clause "else if (local_50 != 0) goto LAB_0040f970;" else (if_statement "if (local_50 != 0) goto LAB_0040f970;" if (parenthesized_expression "(local_50 != 0)" ( (binary_expression "local_50 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0040f970;" goto statement_identifier ;)))) }) (else_clause "else {\n                    /* try { // try from 0040f95f to 0040f963 has its CatchHandler @ 0040fcbc */\n    plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n    *param_1 = (long)plVar8;\n    param_1[2] = local_60;\nLAB_0040f970:\n    memcpy(plVar8,puVar5,uVar11);\n    plVar8 = (long *)*param_1;\n  }" else (compound_statement "{\n                    /* try { // try from 0040f95f to 0040f963 has its CatchHandler @ 0040fcbc */\n    plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n    *param_1 = (long)plVar8;\n    param_1[2] = local_60;\nLAB_0040f970:\n    memcpy(plVar8,puVar5,uVar11);\n    plVar8 = (long *)*param_1;\n  }" { comment (expression_statement "plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);" (assignment_expression "plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0)" identifier = (cast_expression "(long *)FUN_004a4c70(param_1,&local_60,0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_004a4c70(param_1,&local_60,0)" identifier (argument_list "(param_1,&local_60,0)" ( identifier , (pointer_expression "&local_60" & identifier) , number_literal ))))) ;) (expression_statement "*param_1 = (long)plVar8;" (assignment_expression "*param_1 = (long)plVar8" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)plVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "param_1[2] = local_60;" (assignment_expression "param_1[2] = local_60" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_0040f970:\n    memcpy(plVar8,puVar5,uVar11);" statement_identifier : (expression_statement "memcpy(plVar8,puVar5,uVar11);" (call_expression "memcpy(plVar8,puVar5,uVar11)" identifier (argument_list "(plVar8,puVar5,uVar11)" ( identifier , identifier , identifier ))) ;)) (expression_statement "plVar8 = (long *)*param_1;" (assignment_expression "plVar8 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) }))) (expression_statement "param_1[1] = local_60;" (assignment_expression "param_1[1] = local_60" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((long)plVar8 + local_60) = 0;" (assignment_expression "*(undefined1 *)((long)plVar8 + local_60) = 0" (pointer_expression "*(undefined1 *)((long)plVar8 + local_60)" * (cast_expression "(undefined1 *)((long)plVar8 + local_60)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar8 + local_60)" ( (binary_expression "(long)plVar8 + local_60" (cast_expression "(long)plVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) comment (expression_statement "FUN_004a59d0(param_1,param_1[1],0,1,0x29);" (call_expression "FUN_004a59d0(param_1,param_1[1],0,1,0x29)" identifier (argument_list "(param_1,param_1[1],0,1,0x29)" ( identifier , (subscript_expression "param_1[1]" identifier [ number_literal ]) , number_literal , number_literal , number_literal ))) ;) (labeled_statement "LAB_0040f851:\n  if (local_58 != &local_48) {\n    FUN_0049e340();\n  }" statement_identifier : (if_statement "if (local_58 != &local_48) {\n    FUN_0049e340();\n  }" if (parenthesized_expression "(local_58 != &local_48)" ( (binary_expression "local_58 != &local_48" identifier != (pointer_expression "&local_48" & identifier)) )) (compound_statement "{\n    FUN_0049e340();\n  }" { (expression_statement "FUN_0049e340();" (call_expression "FUN_0049e340()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return param_1;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: string get_name(Read_symbols * this) */\n\nstring * __thiscall gold::Read_symbols::get_name(string *__return_storage_ptr__,Read_symbols *this)\n\n{\n  char cVar1;\n  Input_file_type IVar2;\n  Input_file_lib *pIVar3;\n  pointer pIVar4;\n  Input_file_group *pIVar5;\n  _Alloc_hider _Var6;\n  size_type sVar7;\n  size_t sVar8;\n  Input_argument *pIVar9;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar10;\n  undefined8 uVar11;\n  pointer pIVar12;\n  ulong uVar13;\n  char *pcVar14;\n  size_type __dnew;\n  string ret;\n  \n  pIVar3 = this->input_argument_->lib_;\n  if (this->input_argument_->is_file_ == false) {\n    if (pIVar3 == (Input_file_lib *)0x0) {\n      ret._M_dataplus._M_p = (pointer)&ret.field_2;\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&ret,"Read_symbols group (");\n      if (this->input_argument_->is_file_ != false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */\n        do_gold_unreachable("../../gold/options.h",0x830,"group");\n      }\n      pIVar5 = this->input_argument_->group_;\n      pIVar4 = (pIVar5->files_).\n               super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n               _M_impl._M_start;\n      if ((pIVar5->files_).\n          super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n          _M_finish != pIVar4) {\n        cVar1 = pIVar4->is_file_;\n        while( true ) {\n          if (cVar1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            do_gold_unreachable("../../gold/options.h",0x828,"file");\n          }\n          pIVar12 = pIVar4 + 1;\n          pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p;\n          sVar8 = strlen(pcVar14);\n          if (0x7fffffffffffffff - ret._M_string_length < sVar8) {\n                    /* WARNING: Subroutine does not return */\n            std::__throw_length_error("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          std::string::_M_append((string *)&ret,pcVar14,sVar8);\n          sVar7 = ret._M_string_length;\n          if ((pIVar5->files_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish == pIVar12) break;\n          uVar13 = ret._M_string_length + 1;\n          uVar11 = ret.field_2._M_allocated_capacity;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)ret._M_dataplus._M_p == &ret.field_2) {\n            uVar11 = 0xf;\n          }\n          if (uVar11 < uVar13) {\n            std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);\n          }\n          ret._M_dataplus._M_p[sVar7] = ' ';\n          ret._M_dataplus._M_p[uVar13] = '\0';\n          cVar1 = pIVar12->is_file_;\n          pIVar4 = pIVar12;\n          ret._M_string_length = uVar13;\n        }\n      }\n      sVar7 = ret._M_string_length;\n      _Var6._M_p = ret._M_dataplus._M_p;\n      paVar10 = &__return_storage_ptr__->field_2;\n      (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n      if ((ret._M_dataplus._M_p + ret._M_string_length != (pointer)0x0) &&\n         (ret._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */\n        std::__throw_logic_error("basic_string::_M_construct null not valid");\n      }\n      __dnew = ret._M_string_length;\n      if (ret._M_string_length < 0x10) {\n        if (ret._M_string_length == 1) {\n          (__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;\n        }\n        else if (ret._M_string_length != 0) goto LAB_0040fb81;\n      }\n      else {\n                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */\n        paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0);\n        (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew;\nLAB_0040fb81:\n        memcpy(paVar10,_Var6._M_p,sVar7);\n        paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(__return_storage_ptr__->_M_dataplus)._M_p;\n      }\n      __return_storage_ptr__->_M_string_length = __dnew;\n      paVar10->_M_local_buf[__dnew] = '\0';\n                    /* try { // try from 0040fb0c to 0040fb10 has its CatchHandler @ 0040fcc4 */\n      std::string::_M_replace_aux\n                ((string *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')');\n      goto LAB_0040f851;\n    }\n  }\n  else if (pIVar3 == (Input_file_lib *)0x0) {\n    ret._M_dataplus._M_p = (pointer)&ret.field_2;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&ret,"Read_symbols ");\n    pIVar9 = this->input_argument_;\n    if (pIVar9->is_file_ == false) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }\n    IVar2 = (pIVar9->file_).type_;\n    uVar13 = 0x7fffffffffffffff - ret._M_string_length;\n    if (IVar2 == INPUT_FILE_TYPE_LIBRARY) {\n      if (uVar13 < 2) {\n                    /* WARNING: Subroutine does not return */\n        std::__throw_length_error("basic_string::append");\n      }\n                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */\n      std::string::_M_append((string *)&ret,"-l",2);\n    }\n    else {\n      if (IVar2 != INPUT_FILE_TYPE_SEARCHED_FILE) goto LAB_0040f8db;\n      if (uVar13 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        std::__throw_length_error("basic_string::append");\n      }\n      std::string::_M_append((string *)&ret,"-l:",3);\n    }\n    pIVar9 = this->input_argument_;\n    if (pIVar9->is_file_ == false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }\n    uVar13 = 0x7fffffffffffffff - ret._M_string_length;\nLAB_0040f8db:\n    pcVar14 = (pIVar9->file_).name_._M_dataplus._M_p;\n    sVar8 = strlen(pcVar14);\n    if (sVar8 <= uVar13) {\n                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */\n      std::string::_M_append((string *)&ret,pcVar14,sVar8);\n      (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2) {\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n        *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = ret.field_2._8_8_;\n      }\n      else {\n        (__return_storage_ptr__->_M_dataplus)._M_p = ret._M_dataplus._M_p;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n      }\n      __return_storage_ptr__->_M_string_length = ret._M_string_length;\n      return __return_storage_ptr__;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fca7 to 0040fcab has its CatchHandler @ 0040fccc */\n    std::__throw_length_error("basic_string::append");\n  }\n  ret._M_dataplus._M_p = (pointer)&ret.field_2;\n  pcVar14 = "Read_symbols lib (";\n  pIVar9 = (Input_argument *)&ret;\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>();\n  if (this->input_argument_->is_file_ != false) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/options.h",0x83f,"lib");\n  }\n  pIVar3 = this->input_argument_->lib_;\n  if (pIVar3 == (Input_file_lib *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc77 to 0040fc9f has its CatchHandler @ 0040fcbc */\n    Input_argument::lib(pIVar9,(Input_argument *)pcVar14);\n  }\n  pIVar4 = (pIVar3->files_).\n           super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n           _M_start;\n  if (pIVar4 != (pIVar3->files_).\n                super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                _M_impl._M_finish) {\n    cVar1 = pIVar4->is_file_;\n    while( true ) {\n      if (cVar1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/options.h",0x828,"file");\n      }\n      pIVar12 = pIVar4 + 1;\n      pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p;\n      sVar8 = strlen(pcVar14);\n      if (0x7fffffffffffffff - ret._M_string_length < sVar8) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */\n        std::__throw_length_error("basic_string::append");\n      }\n                    /* try { // try from 0040f780 to 0040f7c0 has its CatchHandler @ 0040fcbc */\n      std::string::_M_append((string *)&ret,pcVar14,sVar8);\n      sVar7 = ret._M_string_length;\n      if ((pIVar3->files_).\n          super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n          _M_finish == pIVar12) break;\n      uVar13 = ret._M_string_length + 1;\n      uVar11 = ret.field_2._M_allocated_capacity;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2) {\n        uVar11 = 0xf;\n      }\n      if (uVar11 < uVar13) {\n        std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);\n      }\n      ret._M_dataplus._M_p[sVar7] = ' ';\n      ret._M_dataplus._M_p[uVar13] = '\0';\n      cVar1 = pIVar12->is_file_;\n      pIVar4 = pIVar12;\n      ret._M_string_length = uVar13;\n    }\n  }\n  sVar7 = ret._M_string_length;\n  _Var6._M_p = ret._M_dataplus._M_p;\n  paVar10 = &__return_storage_ptr__->field_2;\n  (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n  if ((ret._M_dataplus._M_p + ret._M_string_length != (pointer)0x0) &&\n     (ret._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    std::__throw_logic_error("basic_string::_M_construct null not valid");\n  }\n  __dnew = ret._M_string_length;\n  if (ret._M_string_length < 0x10) {\n    if (ret._M_string_length == 1) {\n      (__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;\n    }\n    else if (ret._M_string_length != 0) goto LAB_0040f970;\n  }\n  else {\n                    /* try { // try from 0040f95f to 0040f963 has its CatchHandler @ 0040fcbc */\n    paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0);\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n    (__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew;\nLAB_0040f970:\n    memcpy(paVar10,_Var6._M_p,sVar7);\n    paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)(__return_storage_ptr__->_M_dataplus)._M_p;\n  }\n  __return_storage_ptr__->_M_string_length = __dnew;\n  paVar10->_M_local_buf[__dnew] = '\0';\n                    /* try { // try from 0040f84c to 0040f850 has its CatchHandler @ 0040fcac */\n  std::string::_M_replace_aux\n            ((string *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')');\nLAB_0040f851:\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)ret._M_dataplus._M_p != &ret.field_2) {\n    operator_delete(ret._M_dataplus._M_p);\n  }\n  return __return_storage_ptr__;\n}\n\n" comment comment (ERROR "string * __thiscall gold::Read_symbols::get_name(string *__return_storage_ptr__,Read_symbols *this)" (binary_expression "string * __thiscall gold::Read_symbols::get_name(string *__return_storage_ptr__,Read_symbols *this" (binary_expression "string * __thiscall gold::Read_symbols::get_name(string *__return_storage_ptr__" (binary_expression "string * __thiscall" identifier * identifier) (ERROR "gold::Read_symbols::get_name(string" identifier : : identifier : : identifier ( identifier) * identifier) (ERROR ",Read_symbols" , identifier) * identifier) )) (compound_statement "{\n  char cVar1;\n  Input_file_type IVar2;\n  Input_file_lib *pIVar3;\n  pointer pIVar4;\n  Input_file_group *pIVar5;\n  _Alloc_hider _Var6;\n  size_type sVar7;\n  size_t sVar8;\n  Input_argument *pIVar9;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar10;\n  undefined8 uVar11;\n  pointer pIVar12;\n  ulong uVar13;\n  char *pcVar14;\n  size_type __dnew;\n  string ret;\n  \n  pIVar3 = this->input_argument_->lib_;\n  if (this->input_argument_->is_file_ == false) {\n    if (pIVar3 == (Input_file_lib *)0x0) {\n      ret._M_dataplus._M_p = (pointer)&ret.field_2;\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&ret,"Read_symbols group (");\n      if (this->input_argument_->is_file_ != false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */\n        do_gold_unreachable("../../gold/options.h",0x830,"group");\n      }\n      pIVar5 = this->input_argument_->group_;\n      pIVar4 = (pIVar5->files_).\n               super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n               _M_impl._M_start;\n      if ((pIVar5->files_).\n          super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n          _M_finish != pIVar4) {\n        cVar1 = pIVar4->is_file_;\n        while( true ) {\n          if (cVar1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            do_gold_unreachable("../../gold/options.h",0x828,"file");\n          }\n          pIVar12 = pIVar4 + 1;\n          pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p;\n          sVar8 = strlen(pcVar14);\n          if (0x7fffffffffffffff - ret._M_string_length < sVar8) {\n                    /* WARNING: Subroutine does not return */\n            std::__throw_length_error("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          std::string::_M_append((string *)&ret,pcVar14,sVar8);\n          sVar7 = ret._M_string_length;\n          if ((pIVar5->files_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish == pIVar12) break;\n          uVar13 = ret._M_string_length + 1;\n          uVar11 = ret.field_2._M_allocated_capacity;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)ret._M_dataplus._M_p == &ret.field_2) {\n            uVar11 = 0xf;\n          }\n          if (uVar11 < uVar13) {\n            std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);\n          }\n          ret._M_dataplus._M_p[sVar7] = ' ';\n          ret._M_dataplus._M_p[uVar13] = '\0';\n          cVar1 = pIVar12->is_file_;\n          pIVar4 = pIVar12;\n          ret._M_string_length = uVar13;\n        }\n      }\n      sVar7 = ret._M_string_length;\n      _Var6._M_p = ret._M_dataplus._M_p;\n      paVar10 = &__return_storage_ptr__->field_2;\n      (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n      if ((ret._M_dataplus._M_p + ret._M_string_length != (pointer)0x0) &&\n         (ret._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */\n        std::__throw_logic_error("basic_string::_M_construct null not valid");\n      }\n      __dnew = ret._M_string_length;\n      if (ret._M_string_length < 0x10) {\n        if (ret._M_string_length == 1) {\n          (__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;\n        }\n        else if (ret._M_string_length != 0) goto LAB_0040fb81;\n      }\n      else {\n                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */\n        paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0);\n        (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew;\nLAB_0040fb81:\n        memcpy(paVar10,_Var6._M_p,sVar7);\n        paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(__return_storage_ptr__->_M_dataplus)._M_p;\n      }\n      __return_storage_ptr__->_M_string_length = __dnew;\n      paVar10->_M_local_buf[__dnew] = '\0';\n                    /* try { // try from 0040fb0c to 0040fb10 has its CatchHandler @ 0040fcc4 */\n      std::string::_M_replace_aux\n                ((string *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')');\n      goto LAB_0040f851;\n    }\n  }\n  else if (pIVar3 == (Input_file_lib *)0x0) {\n    ret._M_dataplus._M_p = (pointer)&ret.field_2;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&ret,"Read_symbols ");\n    pIVar9 = this->input_argument_;\n    if (pIVar9->is_file_ == false) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }\n    IVar2 = (pIVar9->file_).type_;\n    uVar13 = 0x7fffffffffffffff - ret._M_string_length;\n    if (IVar2 == INPUT_FILE_TYPE_LIBRARY) {\n      if (uVar13 < 2) {\n                    /* WARNING: Subroutine does not return */\n        std::__throw_length_error("basic_string::append");\n      }\n                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */\n      std::string::_M_append((string *)&ret,"-l",2);\n    }\n    else {\n      if (IVar2 != INPUT_FILE_TYPE_SEARCHED_FILE) goto LAB_0040f8db;\n      if (uVar13 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        std::__throw_length_error("basic_string::append");\n      }\n      std::string::_M_append((string *)&ret,"-l:",3);\n    }\n    pIVar9 = this->input_argument_;\n    if (pIVar9->is_file_ == false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }\n    uVar13 = 0x7fffffffffffffff - ret._M_string_length;\nLAB_0040f8db:\n    pcVar14 = (pIVar9->file_).name_._M_dataplus._M_p;\n    sVar8 = strlen(pcVar14);\n    if (sVar8 <= uVar13) {\n                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */\n      std::string::_M_append((string *)&ret,pcVar14,sVar8);\n      (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2) {\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n        *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = ret.field_2._8_8_;\n      }\n      else {\n        (__return_storage_ptr__->_M_dataplus)._M_p = ret._M_dataplus._M_p;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n      }\n      __return_storage_ptr__->_M_string_length = ret._M_string_length;\n      return __return_storage_ptr__;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fca7 to 0040fcab has its CatchHandler @ 0040fccc */\n    std::__throw_length_error("basic_string::append");\n  }\n  ret._M_dataplus._M_p = (pointer)&ret.field_2;\n  pcVar14 = "Read_symbols lib (";\n  pIVar9 = (Input_argument *)&ret;\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>();\n  if (this->input_argument_->is_file_ != false) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/options.h",0x83f,"lib");\n  }\n  pIVar3 = this->input_argument_->lib_;\n  if (pIVar3 == (Input_file_lib *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc77 to 0040fc9f has its CatchHandler @ 0040fcbc */\n    Input_argument::lib(pIVar9,(Input_argument *)pcVar14);\n  }\n  pIVar4 = (pIVar3->files_).\n           super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n           _M_start;\n  if (pIVar4 != (pIVar3->files_).\n                super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                _M_impl._M_finish) {\n    cVar1 = pIVar4->is_file_;\n    while( true ) {\n      if (cVar1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/options.h",0x828,"file");\n      }\n      pIVar12 = pIVar4 + 1;\n      pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p;\n      sVar8 = strlen(pcVar14);\n      if (0x7fffffffffffffff - ret._M_string_length < sVar8) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */\n        std::__throw_length_error("basic_string::append");\n      }\n                    /* try { // try from 0040f780 to 0040f7c0 has its CatchHandler @ 0040fcbc */\n      std::string::_M_append((string *)&ret,pcVar14,sVar8);\n      sVar7 = ret._M_string_length;\n      if ((pIVar3->files_).\n          super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n          _M_finish == pIVar12) break;\n      uVar13 = ret._M_string_length + 1;\n      uVar11 = ret.field_2._M_allocated_capacity;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2) {\n        uVar11 = 0xf;\n      }\n      if (uVar11 < uVar13) {\n        std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);\n      }\n      ret._M_dataplus._M_p[sVar7] = ' ';\n      ret._M_dataplus._M_p[uVar13] = '\0';\n      cVar1 = pIVar12->is_file_;\n      pIVar4 = pIVar12;\n      ret._M_string_length = uVar13;\n    }\n  }\n  sVar7 = ret._M_string_length;\n  _Var6._M_p = ret._M_dataplus._M_p;\n  paVar10 = &__return_storage_ptr__->field_2;\n  (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n  if ((ret._M_dataplus._M_p + ret._M_string_length != (pointer)0x0) &&\n     (ret._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    std::__throw_logic_error("basic_string::_M_construct null not valid");\n  }\n  __dnew = ret._M_string_length;\n  if (ret._M_string_length < 0x10) {\n    if (ret._M_string_length == 1) {\n      (__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;\n    }\n    else if (ret._M_string_length != 0) goto LAB_0040f970;\n  }\n  else {\n                    /* try { // try from 0040f95f to 0040f963 has its CatchHandler @ 0040fcbc */\n    paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0);\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n    (__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew;\nLAB_0040f970:\n    memcpy(paVar10,_Var6._M_p,sVar7);\n    paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)(__return_storage_ptr__->_M_dataplus)._M_p;\n  }\n  __return_storage_ptr__->_M_string_length = __dnew;\n  paVar10->_M_local_buf[__dnew] = '\0';\n                    /* try { // try from 0040f84c to 0040f850 has its CatchHandler @ 0040fcac */\n  std::string::_M_replace_aux\n            ((string *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')');\nLAB_0040f851:\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)ret._M_dataplus._M_p != &ret.field_2) {\n    operator_delete(ret._M_dataplus._M_p);\n  }\n  return __return_storage_ptr__;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "Input_file_type IVar2;" type_identifier identifier ;) (declaration "Input_file_lib *pIVar3;" type_identifier (pointer_declarator "*pIVar3" * identifier) ;) (declaration "pointer pIVar4;" type_identifier identifier ;) (declaration "Input_file_group *pIVar5;" type_identifier (pointer_declarator "*pIVar5" * identifier) ;) (declaration "_Alloc_hider _Var6;" type_identifier identifier ;) (declaration "size_type sVar7;" type_identifier identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "Input_argument *pIVar9;" type_identifier (pointer_declarator "*pIVar9" * identifier) ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar10;" (binary_expression "allocator<char>_>_9\n  *paVar10" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar10" identifier * identifier)) ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "pointer pIVar12;" type_identifier identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "size_type __dnew;" type_identifier identifier ;) (declaration "string ret;" type_identifier identifier ;) (expression_statement "pIVar3 = this->input_argument_->lib_;" (assignment_expression "pIVar3 = this->input_argument_->lib_" identifier = (field_expression "this->input_argument_->lib_" (field_expression "this->input_argument_" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (this->input_argument_->is_file_ == false) {\n    if (pIVar3 == (Input_file_lib *)0x0) {\n      ret._M_dataplus._M_p = (pointer)&ret.field_2;\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&ret,"Read_symbols group (");\n      if (this->input_argument_->is_file_ != false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */\n        do_gold_unreachable("../../gold/options.h",0x830,"group");\n      }\n      pIVar5 = this->input_argument_->group_;\n      pIVar4 = (pIVar5->files_).\n               super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n               _M_impl._M_start;\n      if ((pIVar5->files_).\n          super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n          _M_finish != pIVar4) {\n        cVar1 = pIVar4->is_file_;\n        while( true ) {\n          if (cVar1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            do_gold_unreachable("../../gold/options.h",0x828,"file");\n          }\n          pIVar12 = pIVar4 + 1;\n          pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p;\n          sVar8 = strlen(pcVar14);\n          if (0x7fffffffffffffff - ret._M_string_length < sVar8) {\n                    /* WARNING: Subroutine does not return */\n            std::__throw_length_error("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          std::string::_M_append((string *)&ret,pcVar14,sVar8);\n          sVar7 = ret._M_string_length;\n          if ((pIVar5->files_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish == pIVar12) break;\n          uVar13 = ret._M_string_length + 1;\n          uVar11 = ret.field_2._M_allocated_capacity;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)ret._M_dataplus._M_p == &ret.field_2) {\n            uVar11 = 0xf;\n          }\n          if (uVar11 < uVar13) {\n            std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);\n          }\n          ret._M_dataplus._M_p[sVar7] = ' ';\n          ret._M_dataplus._M_p[uVar13] = '\0';\n          cVar1 = pIVar12->is_file_;\n          pIVar4 = pIVar12;\n          ret._M_string_length = uVar13;\n        }\n      }\n      sVar7 = ret._M_string_length;\n      _Var6._M_p = ret._M_dataplus._M_p;\n      paVar10 = &__return_storage_ptr__->field_2;\n      (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n      if ((ret._M_dataplus._M_p + ret._M_string_length != (pointer)0x0) &&\n         (ret._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */\n        std::__throw_logic_error("basic_string::_M_construct null not valid");\n      }\n      __dnew = ret._M_string_length;\n      if (ret._M_string_length < 0x10) {\n        if (ret._M_string_length == 1) {\n          (__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;\n        }\n        else if (ret._M_string_length != 0) goto LAB_0040fb81;\n      }\n      else {\n                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */\n        paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0);\n        (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew;\nLAB_0040fb81:\n        memcpy(paVar10,_Var6._M_p,sVar7);\n        paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(__return_storage_ptr__->_M_dataplus)._M_p;\n      }\n      __return_storage_ptr__->_M_string_length = __dnew;\n      paVar10->_M_local_buf[__dnew] = '\0';\n                    /* try { // try from 0040fb0c to 0040fb10 has its CatchHandler @ 0040fcc4 */\n      std::string::_M_replace_aux\n                ((string *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')');\n      goto LAB_0040f851;\n    }\n  }\n  else if (pIVar3 == (Input_file_lib *)0x0) {\n    ret._M_dataplus._M_p = (pointer)&ret.field_2;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&ret,"Read_symbols ");\n    pIVar9 = this->input_argument_;\n    if (pIVar9->is_file_ == false) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }\n    IVar2 = (pIVar9->file_).type_;\n    uVar13 = 0x7fffffffffffffff - ret._M_string_length;\n    if (IVar2 == INPUT_FILE_TYPE_LIBRARY) {\n      if (uVar13 < 2) {\n                    /* WARNING: Subroutine does not return */\n        std::__throw_length_error("basic_string::append");\n      }\n                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */\n      std::string::_M_append((string *)&ret,"-l",2);\n    }\n    else {\n      if (IVar2 != INPUT_FILE_TYPE_SEARCHED_FILE) goto LAB_0040f8db;\n      if (uVar13 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        std::__throw_length_error("basic_string::append");\n      }\n      std::string::_M_append((string *)&ret,"-l:",3);\n    }\n    pIVar9 = this->input_argument_;\n    if (pIVar9->is_file_ == false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }\n    uVar13 = 0x7fffffffffffffff - ret._M_string_length;\nLAB_0040f8db:\n    pcVar14 = (pIVar9->file_).name_._M_dataplus._M_p;\n    sVar8 = strlen(pcVar14);\n    if (sVar8 <= uVar13) {\n                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */\n      std::string::_M_append((string *)&ret,pcVar14,sVar8);\n      (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2) {\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n        *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = ret.field_2._8_8_;\n      }\n      else {\n        (__return_storage_ptr__->_M_dataplus)._M_p = ret._M_dataplus._M_p;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n      }\n      __return_storage_ptr__->_M_string_length = ret._M_string_length;\n      return __return_storage_ptr__;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fca7 to 0040fcab has its CatchHandler @ 0040fccc */\n    std::__throw_length_error("basic_string::append");\n  }" if (parenthesized_expression "(this->input_argument_->is_file_ == false)" ( (binary_expression "this->input_argument_->is_file_ == false" (field_expression "this->input_argument_->is_file_" (field_expression "this->input_argument_" identifier -> field_identifier) -> field_identifier) == false) )) (compound_statement "{\n    if (pIVar3 == (Input_file_lib *)0x0) {\n      ret._M_dataplus._M_p = (pointer)&ret.field_2;\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&ret,"Read_symbols group (");\n      if (this->input_argument_->is_file_ != false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */\n        do_gold_unreachable("../../gold/options.h",0x830,"group");\n      }\n      pIVar5 = this->input_argument_->group_;\n      pIVar4 = (pIVar5->files_).\n               super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n               _M_impl._M_start;\n      if ((pIVar5->files_).\n          super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n          _M_finish != pIVar4) {\n        cVar1 = pIVar4->is_file_;\n        while( true ) {\n          if (cVar1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            do_gold_unreachable("../../gold/options.h",0x828,"file");\n          }\n          pIVar12 = pIVar4 + 1;\n          pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p;\n          sVar8 = strlen(pcVar14);\n          if (0x7fffffffffffffff - ret._M_string_length < sVar8) {\n                    /* WARNING: Subroutine does not return */\n            std::__throw_length_error("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          std::string::_M_append((string *)&ret,pcVar14,sVar8);\n          sVar7 = ret._M_string_length;\n          if ((pIVar5->files_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish == pIVar12) break;\n          uVar13 = ret._M_string_length + 1;\n          uVar11 = ret.field_2._M_allocated_capacity;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)ret._M_dataplus._M_p == &ret.field_2) {\n            uVar11 = 0xf;\n          }\n          if (uVar11 < uVar13) {\n            std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);\n          }\n          ret._M_dataplus._M_p[sVar7] = ' ';\n          ret._M_dataplus._M_p[uVar13] = '\0';\n          cVar1 = pIVar12->is_file_;\n          pIVar4 = pIVar12;\n          ret._M_string_length = uVar13;\n        }\n      }\n      sVar7 = ret._M_string_length;\n      _Var6._M_p = ret._M_dataplus._M_p;\n      paVar10 = &__return_storage_ptr__->field_2;\n      (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n      if ((ret._M_dataplus._M_p + ret._M_string_length != (pointer)0x0) &&\n         (ret._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */\n        std::__throw_logic_error("basic_string::_M_construct null not valid");\n      }\n      __dnew = ret._M_string_length;\n      if (ret._M_string_length < 0x10) {\n        if (ret._M_string_length == 1) {\n          (__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;\n        }\n        else if (ret._M_string_length != 0) goto LAB_0040fb81;\n      }\n      else {\n                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */\n        paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0);\n        (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew;\nLAB_0040fb81:\n        memcpy(paVar10,_Var6._M_p,sVar7);\n        paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(__return_storage_ptr__->_M_dataplus)._M_p;\n      }\n      __return_storage_ptr__->_M_string_length = __dnew;\n      paVar10->_M_local_buf[__dnew] = '\0';\n                    /* try { // try from 0040fb0c to 0040fb10 has its CatchHandler @ 0040fcc4 */\n      std::string::_M_replace_aux\n                ((string *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')');\n      goto LAB_0040f851;\n    }\n  }" { (if_statement "if (pIVar3 == (Input_file_lib *)0x0) {\n      ret._M_dataplus._M_p = (pointer)&ret.field_2;\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&ret,"Read_symbols group (");\n      if (this->input_argument_->is_file_ != false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */\n        do_gold_unreachable("../../gold/options.h",0x830,"group");\n      }\n      pIVar5 = this->input_argument_->group_;\n      pIVar4 = (pIVar5->files_).\n               super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n               _M_impl._M_start;\n      if ((pIVar5->files_).\n          super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n          _M_finish != pIVar4) {\n        cVar1 = pIVar4->is_file_;\n        while( true ) {\n          if (cVar1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            do_gold_unreachable("../../gold/options.h",0x828,"file");\n          }\n          pIVar12 = pIVar4 + 1;\n          pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p;\n          sVar8 = strlen(pcVar14);\n          if (0x7fffffffffffffff - ret._M_string_length < sVar8) {\n                    /* WARNING: Subroutine does not return */\n            std::__throw_length_error("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          std::string::_M_append((string *)&ret,pcVar14,sVar8);\n          sVar7 = ret._M_string_length;\n          if ((pIVar5->files_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish == pIVar12) break;\n          uVar13 = ret._M_string_length + 1;\n          uVar11 = ret.field_2._M_allocated_capacity;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)ret._M_dataplus._M_p == &ret.field_2) {\n            uVar11 = 0xf;\n          }\n          if (uVar11 < uVar13) {\n            std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);\n          }\n          ret._M_dataplus._M_p[sVar7] = ' ';\n          ret._M_dataplus._M_p[uVar13] = '\0';\n          cVar1 = pIVar12->is_file_;\n          pIVar4 = pIVar12;\n          ret._M_string_length = uVar13;\n        }\n      }\n      sVar7 = ret._M_string_length;\n      _Var6._M_p = ret._M_dataplus._M_p;\n      paVar10 = &__return_storage_ptr__->field_2;\n      (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n      if ((ret._M_dataplus._M_p + ret._M_string_length != (pointer)0x0) &&\n         (ret._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */\n        std::__throw_logic_error("basic_string::_M_construct null not valid");\n      }\n      __dnew = ret._M_string_length;\n      if (ret._M_string_length < 0x10) {\n        if (ret._M_string_length == 1) {\n          (__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;\n        }\n        else if (ret._M_string_length != 0) goto LAB_0040fb81;\n      }\n      else {\n                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */\n        paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0);\n        (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew;\nLAB_0040fb81:\n        memcpy(paVar10,_Var6._M_p,sVar7);\n        paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(__return_storage_ptr__->_M_dataplus)._M_p;\n      }\n      __return_storage_ptr__->_M_string_length = __dnew;\n      paVar10->_M_local_buf[__dnew] = '\0';\n                    /* try { // try from 0040fb0c to 0040fb10 has its CatchHandler @ 0040fcc4 */\n      std::string::_M_replace_aux\n                ((string *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')');\n      goto LAB_0040f851;\n    }" if (parenthesized_expression "(pIVar3 == (Input_file_lib *)0x0)" ( (binary_expression "pIVar3 == (Input_file_lib *)0x0" identifier == (cast_expression "(Input_file_lib *)0x0" ( (type_descriptor "Input_file_lib *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ret._M_dataplus._M_p = (pointer)&ret.field_2;\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&ret,"Read_symbols group (");\n      if (this->input_argument_->is_file_ != false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */\n        do_gold_unreachable("../../gold/options.h",0x830,"group");\n      }\n      pIVar5 = this->input_argument_->group_;\n      pIVar4 = (pIVar5->files_).\n               super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n               _M_impl._M_start;\n      if ((pIVar5->files_).\n          super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n          _M_finish != pIVar4) {\n        cVar1 = pIVar4->is_file_;\n        while( true ) {\n          if (cVar1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            do_gold_unreachable("../../gold/options.h",0x828,"file");\n          }\n          pIVar12 = pIVar4 + 1;\n          pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p;\n          sVar8 = strlen(pcVar14);\n          if (0x7fffffffffffffff - ret._M_string_length < sVar8) {\n                    /* WARNING: Subroutine does not return */\n            std::__throw_length_error("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          std::string::_M_append((string *)&ret,pcVar14,sVar8);\n          sVar7 = ret._M_string_length;\n          if ((pIVar5->files_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish == pIVar12) break;\n          uVar13 = ret._M_string_length + 1;\n          uVar11 = ret.field_2._M_allocated_capacity;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)ret._M_dataplus._M_p == &ret.field_2) {\n            uVar11 = 0xf;\n          }\n          if (uVar11 < uVar13) {\n            std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);\n          }\n          ret._M_dataplus._M_p[sVar7] = ' ';\n          ret._M_dataplus._M_p[uVar13] = '\0';\n          cVar1 = pIVar12->is_file_;\n          pIVar4 = pIVar12;\n          ret._M_string_length = uVar13;\n        }\n      }\n      sVar7 = ret._M_string_length;\n      _Var6._M_p = ret._M_dataplus._M_p;\n      paVar10 = &__return_storage_ptr__->field_2;\n      (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n      if ((ret._M_dataplus._M_p + ret._M_string_length != (pointer)0x0) &&\n         (ret._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */\n        std::__throw_logic_error("basic_string::_M_construct null not valid");\n      }\n      __dnew = ret._M_string_length;\n      if (ret._M_string_length < 0x10) {\n        if (ret._M_string_length == 1) {\n          (__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;\n        }\n        else if (ret._M_string_length != 0) goto LAB_0040fb81;\n      }\n      else {\n                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */\n        paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0);\n        (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew;\nLAB_0040fb81:\n        memcpy(paVar10,_Var6._M_p,sVar7);\n        paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(__return_storage_ptr__->_M_dataplus)._M_p;\n      }\n      __return_storage_ptr__->_M_string_length = __dnew;\n      paVar10->_M_local_buf[__dnew] = '\0';\n                    /* try { // try from 0040fb0c to 0040fb10 has its CatchHandler @ 0040fcc4 */\n      std::string::_M_replace_aux\n                ((string *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')');\n      goto LAB_0040f851;\n    }" { (expression_statement "ret._M_dataplus._M_p = (pointer)&ret.field_2;" (assignment_expression "ret._M_dataplus._M_p = (pointer)&ret.field_2" (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&ret.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "ret.field_2" identifier . field_identifier))) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&ret,"Read_symbols group (");" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>(&ret,"Read_symbols group (");" (binary_expression "_M_construct<char_const*>(&ret,"Read_symbols group (")" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&ret,"Read_symbols group (")" ( (comma_expression "&ret,"Read_symbols group ("" (pointer_expression "&ret" & identifier) , (string_literal ""Read_symbols group ("" " string_content ")) ))) ;)) (if_statement "if (this->input_argument_->is_file_ != false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */\n        do_gold_unreachable("../../gold/options.h",0x830,"group");\n      }" if (parenthesized_expression "(this->input_argument_->is_file_ != false)" ( (binary_expression "this->input_argument_->is_file_ != false" (field_expression "this->input_argument_->is_file_" (field_expression "this->input_argument_" identifier -> field_identifier) -> field_identifier) != false) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */\n        do_gold_unreachable("../../gold/options.h",0x830,"group");\n      }" { comment comment (expression_statement "do_gold_unreachable("../../gold/options.h",0x830,"group");" (call_expression "do_gold_unreachable("../../gold/options.h",0x830,"group")" identifier (argument_list "("../../gold/options.h",0x830,"group")" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (string_literal ""group"" " string_content ") ))) ;) })) (expression_statement "pIVar5 = this->input_argument_->group_;" (assignment_expression "pIVar5 = this->input_argument_->group_" identifier = (field_expression "this->input_argument_->group_" (field_expression "this->input_argument_" identifier -> field_identifier) -> field_identifier)) ;) (ERROR "pIVar4 = (pIVar5->files_).\n               super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "pIVar4 = (pIVar5->files_).\n               super__Vector_base<gold::Input_argument,_std" (assignment_expression "pIVar4 = (pIVar5->files_).\n               super__Vector_base<gold" identifier = (binary_expression "(pIVar5->files_).\n               super__Vector_base<gold" (field_expression "(pIVar5->files_).\n               super__Vector_base" (parenthesized_expression "(pIVar5->files_)" ( (field_expression "pIVar5->files_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Input_argument>_>.\n               _M_impl._M_start;" (field_expression "Input_argument>_>.\n               _M_impl._M_start" (field_expression "Input_argument>_>.\n               _M_impl" (binary_expression "Input_argument>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((pIVar5->files_).\n          super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n          _M_finish != pIVar4) {\n        cVar1 = pIVar4->is_file_;\n        while( true ) {\n          if (cVar1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            do_gold_unreachable("../../gold/options.h",0x828,"file");\n          }\n          pIVar12 = pIVar4 + 1;\n          pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p;\n          sVar8 = strlen(pcVar14);\n          if (0x7fffffffffffffff - ret._M_string_length < sVar8) {\n                    /* WARNING: Subroutine does not return */\n            std::__throw_length_error("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          std::string::_M_append((string *)&ret,pcVar14,sVar8);\n          sVar7 = ret._M_string_length;\n          if ((pIVar5->files_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish == pIVar12) break;\n          uVar13 = ret._M_string_length + 1;\n          uVar11 = ret.field_2._M_allocated_capacity;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)ret._M_dataplus._M_p == &ret.field_2) {\n            uVar11 = 0xf;\n          }\n          if (uVar11 < uVar13) {\n            std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);\n          }\n          ret._M_dataplus._M_p[sVar7] = ' ';\n          ret._M_dataplus._M_p[uVar13] = '\0';\n          cVar1 = pIVar12->is_file_;\n          pIVar4 = pIVar12;\n          ret._M_string_length = uVar13;\n        }\n      }" if (parenthesized_expression "((pIVar5->files_).\n          super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n          _M_finish != pIVar4)" ( (ERROR "(pIVar5->files_).\n          super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "(pIVar5->files_).\n          super__Vector_base<gold::Input_argument,_std" (binary_expression "(pIVar5->files_).\n          super__Vector_base<gold" (field_expression "(pIVar5->files_).\n          super__Vector_base" (parenthesized_expression "(pIVar5->files_)" ( (field_expression "pIVar5->files_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Input_argument>_>._M_impl.\n          _M_finish != pIVar4" (field_expression "Input_argument>_>._M_impl.\n          _M_finish" (field_expression "Input_argument>_>._M_impl" (binary_expression "Input_argument>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) (compound_statement "{\n        cVar1 = pIVar4->is_file_;\n        while( true ) {\n          if (cVar1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            do_gold_unreachable("../../gold/options.h",0x828,"file");\n          }\n          pIVar12 = pIVar4 + 1;\n          pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p;\n          sVar8 = strlen(pcVar14);\n          if (0x7fffffffffffffff - ret._M_string_length < sVar8) {\n                    /* WARNING: Subroutine does not return */\n            std::__throw_length_error("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          std::string::_M_append((string *)&ret,pcVar14,sVar8);\n          sVar7 = ret._M_string_length;\n          if ((pIVar5->files_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish == pIVar12) break;\n          uVar13 = ret._M_string_length + 1;\n          uVar11 = ret.field_2._M_allocated_capacity;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)ret._M_dataplus._M_p == &ret.field_2) {\n            uVar11 = 0xf;\n          }\n          if (uVar11 < uVar13) {\n            std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);\n          }\n          ret._M_dataplus._M_p[sVar7] = ' ';\n          ret._M_dataplus._M_p[uVar13] = '\0';\n          cVar1 = pIVar12->is_file_;\n          pIVar4 = pIVar12;\n          ret._M_string_length = uVar13;\n        }\n      }" { (expression_statement "cVar1 = pIVar4->is_file_;" (assignment_expression "cVar1 = pIVar4->is_file_" identifier = (field_expression "pIVar4->is_file_" identifier -> field_identifier)) ;) (while_statement "while( true ) {\n          if (cVar1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            do_gold_unreachable("../../gold/options.h",0x828,"file");\n          }\n          pIVar12 = pIVar4 + 1;\n          pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p;\n          sVar8 = strlen(pcVar14);\n          if (0x7fffffffffffffff - ret._M_string_length < sVar8) {\n                    /* WARNING: Subroutine does not return */\n            std::__throw_length_error("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          std::string::_M_append((string *)&ret,pcVar14,sVar8);\n          sVar7 = ret._M_string_length;\n          if ((pIVar5->files_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish == pIVar12) break;\n          uVar13 = ret._M_string_length + 1;\n          uVar11 = ret.field_2._M_allocated_capacity;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)ret._M_dataplus._M_p == &ret.field_2) {\n            uVar11 = 0xf;\n          }\n          if (uVar11 < uVar13) {\n            std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);\n          }\n          ret._M_dataplus._M_p[sVar7] = ' ';\n          ret._M_dataplus._M_p[uVar13] = '\0';\n          cVar1 = pIVar12->is_file_;\n          pIVar4 = pIVar12;\n          ret._M_string_length = uVar13;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if (cVar1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            do_gold_unreachable("../../gold/options.h",0x828,"file");\n          }\n          pIVar12 = pIVar4 + 1;\n          pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p;\n          sVar8 = strlen(pcVar14);\n          if (0x7fffffffffffffff - ret._M_string_length < sVar8) {\n                    /* WARNING: Subroutine does not return */\n            std::__throw_length_error("basic_string::append");\n          }\n                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */\n          std::string::_M_append((string *)&ret,pcVar14,sVar8);\n          sVar7 = ret._M_string_length;\n          if ((pIVar5->files_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish == pIVar12) break;\n          uVar13 = ret._M_string_length + 1;\n          uVar11 = ret.field_2._M_allocated_capacity;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)ret._M_dataplus._M_p == &ret.field_2) {\n            uVar11 = 0xf;\n          }\n          if (uVar11 < uVar13) {\n            std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);\n          }\n          ret._M_dataplus._M_p[sVar7] = ' ';\n          ret._M_dataplus._M_p[uVar13] = '\0';\n          cVar1 = pIVar12->is_file_;\n          pIVar4 = pIVar12;\n          ret._M_string_length = uVar13;\n        }" { (if_statement "if (cVar1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            do_gold_unreachable("../../gold/options.h",0x828,"file");\n          }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */\n            do_gold_unreachable("../../gold/options.h",0x828,"file");\n          }" { comment comment (expression_statement "do_gold_unreachable("../../gold/options.h",0x828,"file");" (call_expression "do_gold_unreachable("../../gold/options.h",0x828,"file")" identifier (argument_list "("../../gold/options.h",0x828,"file")" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (string_literal ""file"" " string_content ") ))) ;) })) (expression_statement "pIVar12 = pIVar4 + 1;" (assignment_expression "pIVar12 = pIVar4 + 1" identifier = (binary_expression "pIVar4 + 1" identifier + number_literal)) ;) (expression_statement "pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p;" (assignment_expression "pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p" identifier = (field_expression "(pIVar4->file_).name_._M_dataplus._M_p" (field_expression "(pIVar4->file_).name_._M_dataplus" (field_expression "(pIVar4->file_).name_" (parenthesized_expression "(pIVar4->file_)" ( (field_expression "pIVar4->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "sVar8 = strlen(pcVar14);" (assignment_expression "sVar8 = strlen(pcVar14)" identifier = (call_expression "strlen(pcVar14)" identifier (argument_list "(pcVar14)" ( identifier )))) ;) (if_statement "if (0x7fffffffffffffff - ret._M_string_length < sVar8) {\n                    /* WARNING: Subroutine does not return */\n            std::__throw_length_error("basic_string::append");\n          }" if (parenthesized_expression "(0x7fffffffffffffff - ret._M_string_length < sVar8)" ( (binary_expression "0x7fffffffffffffff - ret._M_string_length < sVar8" (binary_expression "0x7fffffffffffffff - ret._M_string_length" number_literal - (field_expression "ret._M_string_length" identifier . field_identifier)) < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            std::__throw_length_error("basic_string::append");\n          }" { comment (labeled_statement "std::__throw_length_error("basic_string::append");" statement_identifier : (ERROR ":" :) (expression_statement "__throw_length_error("basic_string::append");" (call_expression "__throw_length_error("basic_string::append")" identifier (argument_list "("basic_string::append")" ( (string_literal ""basic_string::append"" " string_content ") ))) ;)) })) comment (labeled_statement "std::string::_M_append((string *)&ret,pcVar14,sVar8);" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_append((string *)&ret,pcVar14,sVar8);" statement_identifier : (ERROR ":" :) (expression_statement "_M_append((string *)&ret,pcVar14,sVar8);" (call_expression "_M_append((string *)&ret,pcVar14,sVar8)" identifier (argument_list "((string *)&ret,pcVar14,sVar8)" ( (cast_expression "(string *)&ret" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ret" & identifier)) , identifier , identifier ))) ;))) (expression_statement "sVar7 = ret._M_string_length;" (assignment_expression "sVar7 = ret._M_string_length" identifier = (field_expression "ret._M_string_length" identifier . field_identifier)) ;) (if_statement "if ((pIVar5->files_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish == pIVar12) break;" if (parenthesized_expression "((pIVar5->files_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n              _M_impl._M_finish == pIVar12)" ( (ERROR "(pIVar5->files_).\n              super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "(pIVar5->files_).\n              super__Vector_base<gold::Input_argument,_std" (binary_expression "(pIVar5->files_).\n              super__Vector_base<gold" (field_expression "(pIVar5->files_).\n              super__Vector_base" (parenthesized_expression "(pIVar5->files_)" ( (field_expression "pIVar5->files_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Input_argument>_>.\n              _M_impl._M_finish == pIVar12" (field_expression "Input_argument>_>.\n              _M_impl._M_finish" (field_expression "Input_argument>_>.\n              _M_impl" (binary_expression "Input_argument>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = ret._M_string_length + 1;" (assignment_expression "uVar13 = ret._M_string_length + 1" identifier = (binary_expression "ret._M_string_length + 1" (field_expression "ret._M_string_length" identifier . field_identifier) + number_literal)) ;) (expression_statement "uVar11 = ret.field_2._M_allocated_capacity;" (assignment_expression "uVar11 = ret.field_2._M_allocated_capacity" identifier = (field_expression "ret.field_2._M_allocated_capacity" (field_expression "ret.field_2" identifier . field_identifier) . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)ret._M_dataplus._M_p == &ret.field_2) {\n            uVar11 = 0xf;\n          }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)ret._M_dataplus._M_p == &ret.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)ret._M_dataplus._M_p == &ret.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n               *)ret._M_dataplus._M_p == &ret.field_2" (binary_expression "allocator<char>_>_9\n               *)ret._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n               *)ret._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier))) == (pointer_expression "&ret.field_2" & (field_expression "ret.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n            uVar11 = 0xf;\n          }" { (expression_statement "uVar11 = 0xf;" (assignment_expression "uVar11 = 0xf" identifier = number_literal) ;) })) (if_statement "if (uVar11 < uVar13) {\n            std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);\n          }" if (parenthesized_expression "(uVar11 < uVar13)" ( (binary_expression "uVar11 < uVar13" identifier < identifier) )) (compound_statement "{\n            std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);\n          }" { (labeled_statement "std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);" statement_identifier : (ERROR ":" :) (expression_statement "_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);" (call_expression "_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1)" identifier (argument_list "((string *)&ret,ret._M_string_length,0,(char *)0x0,1)" ( (cast_expression "(string *)&ret" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ret" & identifier)) , (field_expression "ret._M_string_length" identifier . field_identifier) , number_literal , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;))) })) (expression_statement "ret._M_dataplus._M_p[sVar7] = ' ';" (assignment_expression "ret._M_dataplus._M_p[sVar7] = ' '" (subscript_expression "ret._M_dataplus._M_p[sVar7]" (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier) [ identifier ]) = (char_literal "' '" ' character ')) ;) (expression_statement "ret._M_dataplus._M_p[uVar13] = '\0';" (assignment_expression "ret._M_dataplus._M_p[uVar13] = '\0'" (subscript_expression "ret._M_dataplus._M_p[uVar13]" (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier) [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar1 = pIVar12->is_file_;" (assignment_expression "cVar1 = pIVar12->is_file_" identifier = (field_expression "pIVar12->is_file_" identifier -> field_identifier)) ;) (expression_statement "pIVar4 = pIVar12;" (assignment_expression "pIVar4 = pIVar12" identifier = identifier) ;) (expression_statement "ret._M_string_length = uVar13;" (assignment_expression "ret._M_string_length = uVar13" (field_expression "ret._M_string_length" identifier . field_identifier) = identifier) ;) })) })) (expression_statement "sVar7 = ret._M_string_length;" (assignment_expression "sVar7 = ret._M_string_length" identifier = (field_expression "ret._M_string_length" identifier . field_identifier)) ;) (expression_statement "_Var6._M_p = ret._M_dataplus._M_p;" (assignment_expression "_Var6._M_p = ret._M_dataplus._M_p" (field_expression "_Var6._M_p" identifier . field_identifier) = (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (expression_statement "paVar10 = &__return_storage_ptr__->field_2;" (assignment_expression "paVar10 = &__return_storage_ptr__->field_2" identifier = (pointer_expression "&__return_storage_ptr__->field_2" & (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier))) ;) (expression_statement "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;" (assignment_expression "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10" (field_expression "(__return_storage_ptr__->_M_dataplus)._M_p" (parenthesized_expression "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar10" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if ((ret._M_dataplus._M_p + ret._M_string_length != (pointer)0x0) &&\n         (ret._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */\n        std::__throw_logic_error("basic_string::_M_construct null not valid");\n      }" if (parenthesized_expression "((ret._M_dataplus._M_p + ret._M_string_length != (pointer)0x0) &&\n         (ret._M_dataplus._M_p == (pointer)0x0))" ( (binary_expression "(ret._M_dataplus._M_p + ret._M_string_length != (pointer)0x0) &&\n         (ret._M_dataplus._M_p == (pointer)0x0)" (parenthesized_expression "(ret._M_dataplus._M_p + ret._M_string_length != (pointer)0x0)" ( (binary_expression "ret._M_dataplus._M_p + ret._M_string_length != (pointer)0x0" (binary_expression "ret._M_dataplus._M_p + ret._M_string_length" (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier) + (field_expression "ret._M_string_length" identifier . field_identifier)) != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) && (parenthesized_expression "(ret._M_dataplus._M_p == (pointer)0x0)" ( (binary_expression "ret._M_dataplus._M_p == (pointer)0x0" (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier) == (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */\n        std::__throw_logic_error("basic_string::_M_construct null not valid");\n      }" { comment comment (labeled_statement "std::__throw_logic_error("basic_string::_M_construct null not valid");" statement_identifier : (ERROR ":" :) (expression_statement "__throw_logic_error("basic_string::_M_construct null not valid");" (call_expression "__throw_logic_error("basic_string::_M_construct null not valid")" identifier (argument_list "("basic_string::_M_construct null not valid")" ( (string_literal ""basic_string::_M_construct null not valid"" " string_content ") ))) ;)) })) (expression_statement "__dnew = ret._M_string_length;" (assignment_expression "__dnew = ret._M_string_length" identifier = (field_expression "ret._M_string_length" identifier . field_identifier)) ;) (if_statement "if (ret._M_string_length < 0x10) {\n        if (ret._M_string_length == 1) {\n          (__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;\n        }\n        else if (ret._M_string_length != 0) goto LAB_0040fb81;\n      }\n      else {\n                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */\n        paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0);\n        (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew;\nLAB_0040fb81:\n        memcpy(paVar10,_Var6._M_p,sVar7);\n        paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(__return_storage_ptr__->_M_dataplus)._M_p;\n      }" if (parenthesized_expression "(ret._M_string_length < 0x10)" ( (binary_expression "ret._M_string_length < 0x10" (field_expression "ret._M_string_length" identifier . field_identifier) < number_literal) )) (compound_statement "{\n        if (ret._M_string_length == 1) {\n          (__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;\n        }\n        else if (ret._M_string_length != 0) goto LAB_0040fb81;\n      }" { (if_statement "if (ret._M_string_length == 1) {\n          (__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;\n        }\n        else if (ret._M_string_length != 0) goto LAB_0040fb81;" if (parenthesized_expression "(ret._M_string_length == 1)" ( (binary_expression "ret._M_string_length == 1" (field_expression "ret._M_string_length" identifier . field_identifier) == number_literal) )) (compound_statement "{\n          (__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;\n        }" { (expression_statement "(__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;" (assignment_expression "(__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p" (subscript_expression "(__return_storage_ptr__->field_2)._M_local_buf[0]" (field_expression "(__return_storage_ptr__->field_2)._M_local_buf" (parenthesized_expression "(__return_storage_ptr__->field_2)" ( (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (pointer_expression "*ret._M_dataplus._M_p" * (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier))) ;) }) (else_clause "else if (ret._M_string_length != 0) goto LAB_0040fb81;" else (if_statement "if (ret._M_string_length != 0) goto LAB_0040fb81;" if (parenthesized_expression "(ret._M_string_length != 0)" ( (binary_expression "ret._M_string_length != 0" (field_expression "ret._M_string_length" identifier . field_identifier) != number_literal) )) (goto_statement "goto LAB_0040fb81;" goto statement_identifier ;)))) }) (else_clause "else {\n                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */\n        paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0);\n        (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew;\nLAB_0040fb81:\n        memcpy(paVar10,_Var6._M_p,sVar7);\n        paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(__return_storage_ptr__->_M_dataplus)._M_p;\n      }" else (compound_statement "{\n                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */\n        paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0);\n        (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew;\nLAB_0040fb81:\n        memcpy(paVar10,_Var6._M_p,sVar7);\n        paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(__return_storage_ptr__->_M_dataplus)._M_p;\n      }" { comment (expression_statement "paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0);" (assignment_expression "paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0)" identifier = (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)std::string::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_9\n                   *)std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                   *)std" identifier * (ERROR ")" )) identifier)) : : identifier : :) (call_expression "_M_create((string *)__return_storage_ptr__,&__dnew,0)" identifier (argument_list "((string *)__return_storage_ptr__,&__dnew,0)" ( (cast_expression "(string *)__return_storage_ptr__" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&__dnew" & identifier) , number_literal ))) ))) ;) (expression_statement "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;" (assignment_expression "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10" (field_expression "(__return_storage_ptr__->_M_dataplus)._M_p" (parenthesized_expression "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar10" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "(__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew;" (assignment_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew" (field_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity" (parenthesized_expression "(__return_storage_ptr__->field_2)" ( (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (labeled_statement "LAB_0040fb81:\n        memcpy(paVar10,_Var6._M_p,sVar7);" statement_identifier : (expression_statement "memcpy(paVar10,_Var6._M_p,sVar7);" (call_expression "memcpy(paVar10,_Var6._M_p,sVar7)" identifier (argument_list "(paVar10,_Var6._M_p,sVar7)" ( identifier , (field_expression "_Var6._M_p" identifier . field_identifier) , identifier ))) ;)) (expression_statement "paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(__return_storage_ptr__->_M_dataplus)._M_p;" (assignment_expression "paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(__return_storage_ptr__->_M_dataplus)._M_p" identifier = (field_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(__return_storage_ptr__->_M_dataplus)._M_p" (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(__return_storage_ptr__->_M_dataplus)" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) (argument_list "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) ))) . field_identifier)) ;) }))) (expression_statement "__return_storage_ptr__->_M_string_length = __dnew;" (assignment_expression "__return_storage_ptr__->_M_string_length = __dnew" (field_expression "__return_storage_ptr__->_M_string_length" identifier -> field_identifier) = identifier) ;) (expression_statement "paVar10->_M_local_buf[__dnew] = '\0';" (assignment_expression "paVar10->_M_local_buf[__dnew] = '\0'" (subscript_expression "paVar10->_M_local_buf[__dnew]" (field_expression "paVar10->_M_local_buf" identifier -> field_identifier) [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) comment (labeled_statement "std::string::_M_replace_aux\n                ((string *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')');" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_replace_aux\n                ((string *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')');" statement_identifier : (ERROR ":" :) (expression_statement "_M_replace_aux\n                ((string *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')');" (call_expression "_M_replace_aux\n                ((string *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')')" identifier (argument_list "((string *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')')" ( (cast_expression "(string *)__return_storage_ptr__" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (field_expression "__return_storage_ptr__->_M_string_length" identifier -> field_identifier) , number_literal , number_literal , (char_literal "')'" ' character ') ))) ;))) (goto_statement "goto LAB_0040f851;" goto statement_identifier ;) })) }) (else_clause "else if (pIVar3 == (Input_file_lib *)0x0) {\n    ret._M_dataplus._M_p = (pointer)&ret.field_2;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&ret,"Read_symbols ");\n    pIVar9 = this->input_argument_;\n    if (pIVar9->is_file_ == false) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }\n    IVar2 = (pIVar9->file_).type_;\n    uVar13 = 0x7fffffffffffffff - ret._M_string_length;\n    if (IVar2 == INPUT_FILE_TYPE_LIBRARY) {\n      if (uVar13 < 2) {\n                    /* WARNING: Subroutine does not return */\n        std::__throw_length_error("basic_string::append");\n      }\n                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */\n      std::string::_M_append((string *)&ret,"-l",2);\n    }\n    else {\n      if (IVar2 != INPUT_FILE_TYPE_SEARCHED_FILE) goto LAB_0040f8db;\n      if (uVar13 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        std::__throw_length_error("basic_string::append");\n      }\n      std::string::_M_append((string *)&ret,"-l:",3);\n    }\n    pIVar9 = this->input_argument_;\n    if (pIVar9->is_file_ == false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }\n    uVar13 = 0x7fffffffffffffff - ret._M_string_length;\nLAB_0040f8db:\n    pcVar14 = (pIVar9->file_).name_._M_dataplus._M_p;\n    sVar8 = strlen(pcVar14);\n    if (sVar8 <= uVar13) {\n                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */\n      std::string::_M_append((string *)&ret,pcVar14,sVar8);\n      (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2) {\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n        *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = ret.field_2._8_8_;\n      }\n      else {\n        (__return_storage_ptr__->_M_dataplus)._M_p = ret._M_dataplus._M_p;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n      }\n      __return_storage_ptr__->_M_string_length = ret._M_string_length;\n      return __return_storage_ptr__;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fca7 to 0040fcab has its CatchHandler @ 0040fccc */\n    std::__throw_length_error("basic_string::append");\n  }" else (if_statement "if (pIVar3 == (Input_file_lib *)0x0) {\n    ret._M_dataplus._M_p = (pointer)&ret.field_2;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&ret,"Read_symbols ");\n    pIVar9 = this->input_argument_;\n    if (pIVar9->is_file_ == false) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }\n    IVar2 = (pIVar9->file_).type_;\n    uVar13 = 0x7fffffffffffffff - ret._M_string_length;\n    if (IVar2 == INPUT_FILE_TYPE_LIBRARY) {\n      if (uVar13 < 2) {\n                    /* WARNING: Subroutine does not return */\n        std::__throw_length_error("basic_string::append");\n      }\n                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */\n      std::string::_M_append((string *)&ret,"-l",2);\n    }\n    else {\n      if (IVar2 != INPUT_FILE_TYPE_SEARCHED_FILE) goto LAB_0040f8db;\n      if (uVar13 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        std::__throw_length_error("basic_string::append");\n      }\n      std::string::_M_append((string *)&ret,"-l:",3);\n    }\n    pIVar9 = this->input_argument_;\n    if (pIVar9->is_file_ == false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }\n    uVar13 = 0x7fffffffffffffff - ret._M_string_length;\nLAB_0040f8db:\n    pcVar14 = (pIVar9->file_).name_._M_dataplus._M_p;\n    sVar8 = strlen(pcVar14);\n    if (sVar8 <= uVar13) {\n                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */\n      std::string::_M_append((string *)&ret,pcVar14,sVar8);\n      (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2) {\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n        *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = ret.field_2._8_8_;\n      }\n      else {\n        (__return_storage_ptr__->_M_dataplus)._M_p = ret._M_dataplus._M_p;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n      }\n      __return_storage_ptr__->_M_string_length = ret._M_string_length;\n      return __return_storage_ptr__;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fca7 to 0040fcab has its CatchHandler @ 0040fccc */\n    std::__throw_length_error("basic_string::append");\n  }" if (parenthesized_expression "(pIVar3 == (Input_file_lib *)0x0)" ( (binary_expression "pIVar3 == (Input_file_lib *)0x0" identifier == (cast_expression "(Input_file_lib *)0x0" ( (type_descriptor "Input_file_lib *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ret._M_dataplus._M_p = (pointer)&ret.field_2;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&ret,"Read_symbols ");\n    pIVar9 = this->input_argument_;\n    if (pIVar9->is_file_ == false) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }\n    IVar2 = (pIVar9->file_).type_;\n    uVar13 = 0x7fffffffffffffff - ret._M_string_length;\n    if (IVar2 == INPUT_FILE_TYPE_LIBRARY) {\n      if (uVar13 < 2) {\n                    /* WARNING: Subroutine does not return */\n        std::__throw_length_error("basic_string::append");\n      }\n                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */\n      std::string::_M_append((string *)&ret,"-l",2);\n    }\n    else {\n      if (IVar2 != INPUT_FILE_TYPE_SEARCHED_FILE) goto LAB_0040f8db;\n      if (uVar13 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        std::__throw_length_error("basic_string::append");\n      }\n      std::string::_M_append((string *)&ret,"-l:",3);\n    }\n    pIVar9 = this->input_argument_;\n    if (pIVar9->is_file_ == false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }\n    uVar13 = 0x7fffffffffffffff - ret._M_string_length;\nLAB_0040f8db:\n    pcVar14 = (pIVar9->file_).name_._M_dataplus._M_p;\n    sVar8 = strlen(pcVar14);\n    if (sVar8 <= uVar13) {\n                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */\n      std::string::_M_append((string *)&ret,pcVar14,sVar8);\n      (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2) {\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n        *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = ret.field_2._8_8_;\n      }\n      else {\n        (__return_storage_ptr__->_M_dataplus)._M_p = ret._M_dataplus._M_p;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n      }\n      __return_storage_ptr__->_M_string_length = ret._M_string_length;\n      return __return_storage_ptr__;\n    }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fca7 to 0040fcab has its CatchHandler @ 0040fccc */\n    std::__throw_length_error("basic_string::append");\n  }" { (expression_statement "ret._M_dataplus._M_p = (pointer)&ret.field_2;" (assignment_expression "ret._M_dataplus._M_p = (pointer)&ret.field_2" (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&ret.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "ret.field_2" identifier . field_identifier))) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&ret,"Read_symbols ");" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>(&ret,"Read_symbols ");" (binary_expression "_M_construct<char_const*>(&ret,"Read_symbols ")" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&ret,"Read_symbols ")" ( (comma_expression "&ret,"Read_symbols "" (pointer_expression "&ret" & identifier) , (string_literal ""Read_symbols "" " string_content ")) ))) ;)) (expression_statement "pIVar9 = this->input_argument_;" (assignment_expression "pIVar9 = this->input_argument_" identifier = (field_expression "this->input_argument_" identifier -> field_identifier)) ;) (if_statement "if (pIVar9->is_file_ == false) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }" if (parenthesized_expression "(pIVar9->is_file_ == false)" ( (binary_expression "pIVar9->is_file_ == false" (field_expression "pIVar9->is_file_" identifier -> field_identifier) == false) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/options.h",0x828,"file");" (call_expression "do_gold_unreachable("../../gold/options.h",0x828,"file")" identifier (argument_list "("../../gold/options.h",0x828,"file")" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (string_literal ""file"" " string_content ") ))) ;) })) (expression_statement "IVar2 = (pIVar9->file_).type_;" (assignment_expression "IVar2 = (pIVar9->file_).type_" identifier = (field_expression "(pIVar9->file_).type_" (parenthesized_expression "(pIVar9->file_)" ( (field_expression "pIVar9->file_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar13 = 0x7fffffffffffffff - ret._M_string_length;" (assignment_expression "uVar13 = 0x7fffffffffffffff - ret._M_string_length" identifier = (binary_expression "0x7fffffffffffffff - ret._M_string_length" number_literal - (field_expression "ret._M_string_length" identifier . field_identifier))) ;) (if_statement "if (IVar2 == INPUT_FILE_TYPE_LIBRARY) {\n      if (uVar13 < 2) {\n                    /* WARNING: Subroutine does not return */\n        std::__throw_length_error("basic_string::append");\n      }\n                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */\n      std::string::_M_append((string *)&ret,"-l",2);\n    }\n    else {\n      if (IVar2 != INPUT_FILE_TYPE_SEARCHED_FILE) goto LAB_0040f8db;\n      if (uVar13 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        std::__throw_length_error("basic_string::append");\n      }\n      std::string::_M_append((string *)&ret,"-l:",3);\n    }" if (parenthesized_expression "(IVar2 == INPUT_FILE_TYPE_LIBRARY)" ( (binary_expression "IVar2 == INPUT_FILE_TYPE_LIBRARY" identifier == identifier) )) (compound_statement "{\n      if (uVar13 < 2) {\n                    /* WARNING: Subroutine does not return */\n        std::__throw_length_error("basic_string::append");\n      }\n                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */\n      std::string::_M_append((string *)&ret,"-l",2);\n    }" { (if_statement "if (uVar13 < 2) {\n                    /* WARNING: Subroutine does not return */\n        std::__throw_length_error("basic_string::append");\n      }" if (parenthesized_expression "(uVar13 < 2)" ( (binary_expression "uVar13 < 2" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        std::__throw_length_error("basic_string::append");\n      }" { comment (labeled_statement "std::__throw_length_error("basic_string::append");" statement_identifier : (ERROR ":" :) (expression_statement "__throw_length_error("basic_string::append");" (call_expression "__throw_length_error("basic_string::append")" identifier (argument_list "("basic_string::append")" ( (string_literal ""basic_string::append"" " string_content ") ))) ;)) })) comment (labeled_statement "std::string::_M_append((string *)&ret,"-l",2);" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_append((string *)&ret,"-l",2);" statement_identifier : (ERROR ":" :) (expression_statement "_M_append((string *)&ret,"-l",2);" (call_expression "_M_append((string *)&ret,"-l",2)" identifier (argument_list "((string *)&ret,"-l",2)" ( (cast_expression "(string *)&ret" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ret" & identifier)) , (string_literal ""-l"" " string_content ") , number_literal ))) ;))) }) (else_clause "else {\n      if (IVar2 != INPUT_FILE_TYPE_SEARCHED_FILE) goto LAB_0040f8db;\n      if (uVar13 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        std::__throw_length_error("basic_string::append");\n      }\n      std::string::_M_append((string *)&ret,"-l:",3);\n    }" else (compound_statement "{\n      if (IVar2 != INPUT_FILE_TYPE_SEARCHED_FILE) goto LAB_0040f8db;\n      if (uVar13 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        std::__throw_length_error("basic_string::append");\n      }\n      std::string::_M_append((string *)&ret,"-l:",3);\n    }" { (if_statement "if (IVar2 != INPUT_FILE_TYPE_SEARCHED_FILE) goto LAB_0040f8db;" if (parenthesized_expression "(IVar2 != INPUT_FILE_TYPE_SEARCHED_FILE)" ( (binary_expression "IVar2 != INPUT_FILE_TYPE_SEARCHED_FILE" identifier != identifier) )) (goto_statement "goto LAB_0040f8db;" goto statement_identifier ;)) (if_statement "if (uVar13 < 3) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        std::__throw_length_error("basic_string::append");\n      }" if (parenthesized_expression "(uVar13 < 3)" ( (binary_expression "uVar13 < 3" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */\n        std::__throw_length_error("basic_string::append");\n      }" { comment comment (labeled_statement "std::__throw_length_error("basic_string::append");" statement_identifier : (ERROR ":" :) (expression_statement "__throw_length_error("basic_string::append");" (call_expression "__throw_length_error("basic_string::append")" identifier (argument_list "("basic_string::append")" ( (string_literal ""basic_string::append"" " string_content ") ))) ;)) })) (labeled_statement "std::string::_M_append((string *)&ret,"-l:",3);" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_append((string *)&ret,"-l:",3);" statement_identifier : (ERROR ":" :) (expression_statement "_M_append((string *)&ret,"-l:",3);" (call_expression "_M_append((string *)&ret,"-l:",3)" identifier (argument_list "((string *)&ret,"-l:",3)" ( (cast_expression "(string *)&ret" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ret" & identifier)) , (string_literal ""-l:"" " string_content ") , number_literal ))) ;))) }))) (expression_statement "pIVar9 = this->input_argument_;" (assignment_expression "pIVar9 = this->input_argument_" identifier = (field_expression "this->input_argument_" identifier -> field_identifier)) ;) (if_statement "if (pIVar9->is_file_ == false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }" if (parenthesized_expression "(pIVar9->is_file_ == false)" ( (binary_expression "pIVar9->is_file_ == false" (field_expression "pIVar9->is_file_" identifier -> field_identifier) == false) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */\n      do_gold_unreachable("../../gold/options.h",0x828,"file");\n    }" { comment comment (expression_statement "do_gold_unreachable("../../gold/options.h",0x828,"file");" (call_expression "do_gold_unreachable("../../gold/options.h",0x828,"file")" identifier (argument_list "("../../gold/options.h",0x828,"file")" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (string_literal ""file"" " string_content ") ))) ;) })) (expression_statement "uVar13 = 0x7fffffffffffffff - ret._M_string_length;" (assignment_expression "uVar13 = 0x7fffffffffffffff - ret._M_string_length" identifier = (binary_expression "0x7fffffffffffffff - ret._M_string_length" number_literal - (field_expression "ret._M_string_length" identifier . field_identifier))) ;) (labeled_statement "LAB_0040f8db:\n    pcVar14 = (pIVar9->file_).name_._M_dataplus._M_p;" statement_identifier : (expression_statement "pcVar14 = (pIVar9->file_).name_._M_dataplus._M_p;" (assignment_expression "pcVar14 = (pIVar9->file_).name_._M_dataplus._M_p" identifier = (field_expression "(pIVar9->file_).name_._M_dataplus._M_p" (field_expression "(pIVar9->file_).name_._M_dataplus" (field_expression "(pIVar9->file_).name_" (parenthesized_expression "(pIVar9->file_)" ( (field_expression "pIVar9->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;)) (expression_statement "sVar8 = strlen(pcVar14);" (assignment_expression "sVar8 = strlen(pcVar14)" identifier = (call_expression "strlen(pcVar14)" identifier (argument_list "(pcVar14)" ( identifier )))) ;) (if_statement "if (sVar8 <= uVar13) {\n                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */\n      std::string::_M_append((string *)&ret,pcVar14,sVar8);\n      (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2) {\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n        *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = ret.field_2._8_8_;\n      }\n      else {\n        (__return_storage_ptr__->_M_dataplus)._M_p = ret._M_dataplus._M_p;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n      }\n      __return_storage_ptr__->_M_string_length = ret._M_string_length;\n      return __return_storage_ptr__;\n    }" if (parenthesized_expression "(sVar8 <= uVar13)" ( (binary_expression "sVar8 <= uVar13" identifier <= identifier) )) (compound_statement "{\n                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */\n      std::string::_M_append((string *)&ret,pcVar14,sVar8);\n      (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2) {\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n        *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = ret.field_2._8_8_;\n      }\n      else {\n        (__return_storage_ptr__->_M_dataplus)._M_p = ret._M_dataplus._M_p;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n      }\n      __return_storage_ptr__->_M_string_length = ret._M_string_length;\n      return __return_storage_ptr__;\n    }" { comment (labeled_statement "std::string::_M_append((string *)&ret,pcVar14,sVar8);" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_append((string *)&ret,pcVar14,sVar8);" statement_identifier : (ERROR ":" :) (expression_statement "_M_append((string *)&ret,pcVar14,sVar8);" (call_expression "_M_append((string *)&ret,pcVar14,sVar8)" identifier (argument_list "((string *)&ret,pcVar14,sVar8)" ( (cast_expression "(string *)&ret" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ret" & identifier)) , identifier , identifier ))) ;))) (expression_statement "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;" (assignment_expression "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2" (field_expression "(__return_storage_ptr__->_M_dataplus)._M_p" (parenthesized_expression "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(pointer)&__return_storage_ptr__->field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2) {\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n        *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = ret.field_2._8_8_;\n      }\n      else {\n        (__return_storage_ptr__->_M_dataplus)._M_p = ret._M_dataplus._M_p;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n      }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2" (binary_expression "allocator<char>_>_9\n           *)ret._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)ret._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier))) == (pointer_expression "&ret.field_2" & (field_expression "ret.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n        *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = ret.field_2._8_8_;\n      }" { (expression_statement "(__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;" (assignment_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity" (field_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity" (parenthesized_expression "(__return_storage_ptr__->field_2)" ( (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier) )) . field_identifier) = (field_expression "ret.field_2._M_allocated_capacity" (field_expression "ret.field_2" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = ret.field_2._8_8_;" (assignment_expression "*(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = ret.field_2._8_8_" (pointer_expression "*(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8)" * (cast_expression "(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&__return_storage_ptr__->field_2 + 8)" ( (binary_expression "(long)&__return_storage_ptr__->field_2 + 8" (cast_expression "(long)&__return_storage_ptr__->field_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&__return_storage_ptr__->field_2" & (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier))) + number_literal) )))) = (field_expression "ret.field_2._8_8_" (field_expression "ret.field_2" identifier . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n        (__return_storage_ptr__->_M_dataplus)._M_p = ret._M_dataplus._M_p;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n      }" else (compound_statement "{\n        (__return_storage_ptr__->_M_dataplus)._M_p = ret._M_dataplus._M_p;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;\n      }" { (expression_statement "(__return_storage_ptr__->_M_dataplus)._M_p = ret._M_dataplus._M_p;" (assignment_expression "(__return_storage_ptr__->_M_dataplus)._M_p = ret._M_dataplus._M_p" (field_expression "(__return_storage_ptr__->_M_dataplus)._M_p" (parenthesized_expression "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) )) . field_identifier) = (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (expression_statement "(__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;" (assignment_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity" (field_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity" (parenthesized_expression "(__return_storage_ptr__->field_2)" ( (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier) )) . field_identifier) = (field_expression "ret.field_2._M_allocated_capacity" (field_expression "ret.field_2" identifier . field_identifier) . field_identifier)) ;) }))) (expression_statement "__return_storage_ptr__->_M_string_length = ret._M_string_length;" (assignment_expression "__return_storage_ptr__->_M_string_length = ret._M_string_length" (field_expression "__return_storage_ptr__->_M_string_length" identifier -> field_identifier) = (field_expression "ret._M_string_length" identifier . field_identifier)) ;) (return_statement "return __return_storage_ptr__;" return identifier ;) })) comment comment (labeled_statement "std::__throw_length_error("basic_string::append");" statement_identifier : (ERROR ":" :) (expression_statement "__throw_length_error("basic_string::append");" (call_expression "__throw_length_error("basic_string::append")" identifier (argument_list "("basic_string::append")" ( (string_literal ""basic_string::append"" " string_content ") ))) ;)) })))) (expression_statement "ret._M_dataplus._M_p = (pointer)&ret.field_2;" (assignment_expression "ret._M_dataplus._M_p = (pointer)&ret.field_2" (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&ret.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "ret.field_2" identifier . field_identifier))) ;) (expression_statement "pcVar14 = "Read_symbols lib (";" (assignment_expression "pcVar14 = "Read_symbols lib ("" identifier = (string_literal ""Read_symbols lib ("" " string_content ")) ;) (expression_statement "pIVar9 = (Input_argument *)&ret;" (assignment_expression "pIVar9 = (Input_argument *)&ret" identifier = (cast_expression "(Input_argument *)&ret" ( (type_descriptor "Input_argument *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ret" & identifier))) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>();" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>();" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*>()" * > ( )) ;)) (if_statement "if (this->input_argument_->is_file_ != false) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/options.h",0x83f,"lib");\n  }" if (parenthesized_expression "(this->input_argument_->is_file_ != false)" ( (binary_expression "this->input_argument_->is_file_ != false" (field_expression "this->input_argument_->is_file_" (field_expression "this->input_argument_" identifier -> field_identifier) -> field_identifier) != false) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/options.h",0x83f,"lib");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/options.h",0x83f,"lib");" (call_expression "do_gold_unreachable("../../gold/options.h",0x83f,"lib")" identifier (argument_list "("../../gold/options.h",0x83f,"lib")" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (string_literal ""lib"" " string_content ") ))) ;) })) (expression_statement "pIVar3 = this->input_argument_->lib_;" (assignment_expression "pIVar3 = this->input_argument_->lib_" identifier = (field_expression "this->input_argument_->lib_" (field_expression "this->input_argument_" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (pIVar3 == (Input_file_lib *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc77 to 0040fc9f has its CatchHandler @ 0040fcbc */\n    Input_argument::lib(pIVar9,(Input_argument *)pcVar14);\n  }" if (parenthesized_expression "(pIVar3 == (Input_file_lib *)0x0)" ( (binary_expression "pIVar3 == (Input_file_lib *)0x0" identifier == (cast_expression "(Input_file_lib *)0x0" ( (type_descriptor "Input_file_lib *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fc77 to 0040fc9f has its CatchHandler @ 0040fcbc */\n    Input_argument::lib(pIVar9,(Input_argument *)pcVar14);\n  }" { comment comment (labeled_statement "Input_argument::lib(pIVar9,(Input_argument *)pcVar14);" statement_identifier : (ERROR ":" :) (expression_statement "lib(pIVar9,(Input_argument *)pcVar14);" (call_expression "lib(pIVar9,(Input_argument *)pcVar14)" identifier (argument_list "(pIVar9,(Input_argument *)pcVar14)" ( identifier , (cast_expression "(Input_argument *)pcVar14" ( (type_descriptor "Input_argument *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) })) (ERROR "pIVar4 = (pIVar3->files_).\n           super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "pIVar4 = (pIVar3->files_).\n           super__Vector_base<gold::Input_argument,_std" (assignment_expression "pIVar4 = (pIVar3->files_).\n           super__Vector_base<gold" identifier = (binary_expression "(pIVar3->files_).\n           super__Vector_base<gold" (field_expression "(pIVar3->files_).\n           super__Vector_base" (parenthesized_expression "(pIVar3->files_)" ( (field_expression "pIVar3->files_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Input_argument>_>._M_impl.\n           _M_start;" (field_expression "Input_argument>_>._M_impl.\n           _M_start" (field_expression "Input_argument>_>._M_impl" (binary_expression "Input_argument>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (pIVar4 != (pIVar3->files_).\n                super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                _M_impl._M_finish) {\n    cVar1 = pIVar4->is_file_;\n    while( true ) {\n      if (cVar1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/options.h",0x828,"file");\n      }\n      pIVar12 = pIVar4 + 1;\n      pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p;\n      sVar8 = strlen(pcVar14);\n      if (0x7fffffffffffffff - ret._M_string_length < sVar8) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */\n        std::__throw_length_error("basic_string::append");\n      }\n                    /* try { // try from 0040f780 to 0040f7c0 has its CatchHandler @ 0040fcbc */\n      std::string::_M_append((string *)&ret,pcVar14,sVar8);\n      sVar7 = ret._M_string_length;\n      if ((pIVar3->files_).\n          super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n          _M_finish == pIVar12) break;\n      uVar13 = ret._M_string_length + 1;\n      uVar11 = ret.field_2._M_allocated_capacity;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2) {\n        uVar11 = 0xf;\n      }\n      if (uVar11 < uVar13) {\n        std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);\n      }\n      ret._M_dataplus._M_p[sVar7] = ' ';\n      ret._M_dataplus._M_p[uVar13] = '\0';\n      cVar1 = pIVar12->is_file_;\n      pIVar4 = pIVar12;\n      ret._M_string_length = uVar13;\n    }\n  }" if (parenthesized_expression "(pIVar4 != (pIVar3->files_).\n                super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>.\n                _M_impl._M_finish)" ( (ERROR "pIVar4 != (pIVar3->files_).\n                super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "pIVar4 != (pIVar3->files_).\n                super__Vector_base<gold::Input_argument,_std" (binary_expression "pIVar4 != (pIVar3->files_).\n                super__Vector_base<gold" identifier != (binary_expression "(pIVar3->files_).\n                super__Vector_base<gold" (field_expression "(pIVar3->files_).\n                super__Vector_base" (parenthesized_expression "(pIVar3->files_)" ( (field_expression "pIVar3->files_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (field_expression "Input_argument>_>.\n                _M_impl._M_finish" (field_expression "Input_argument>_>.\n                _M_impl" (binary_expression "Input_argument>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    cVar1 = pIVar4->is_file_;\n    while( true ) {\n      if (cVar1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/options.h",0x828,"file");\n      }\n      pIVar12 = pIVar4 + 1;\n      pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p;\n      sVar8 = strlen(pcVar14);\n      if (0x7fffffffffffffff - ret._M_string_length < sVar8) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */\n        std::__throw_length_error("basic_string::append");\n      }\n                    /* try { // try from 0040f780 to 0040f7c0 has its CatchHandler @ 0040fcbc */\n      std::string::_M_append((string *)&ret,pcVar14,sVar8);\n      sVar7 = ret._M_string_length;\n      if ((pIVar3->files_).\n          super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n          _M_finish == pIVar12) break;\n      uVar13 = ret._M_string_length + 1;\n      uVar11 = ret.field_2._M_allocated_capacity;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2) {\n        uVar11 = 0xf;\n      }\n      if (uVar11 < uVar13) {\n        std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);\n      }\n      ret._M_dataplus._M_p[sVar7] = ' ';\n      ret._M_dataplus._M_p[uVar13] = '\0';\n      cVar1 = pIVar12->is_file_;\n      pIVar4 = pIVar12;\n      ret._M_string_length = uVar13;\n    }\n  }" { (expression_statement "cVar1 = pIVar4->is_file_;" (assignment_expression "cVar1 = pIVar4->is_file_" identifier = (field_expression "pIVar4->is_file_" identifier -> field_identifier)) ;) (while_statement "while( true ) {\n      if (cVar1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/options.h",0x828,"file");\n      }\n      pIVar12 = pIVar4 + 1;\n      pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p;\n      sVar8 = strlen(pcVar14);\n      if (0x7fffffffffffffff - ret._M_string_length < sVar8) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */\n        std::__throw_length_error("basic_string::append");\n      }\n                    /* try { // try from 0040f780 to 0040f7c0 has its CatchHandler @ 0040fcbc */\n      std::string::_M_append((string *)&ret,pcVar14,sVar8);\n      sVar7 = ret._M_string_length;\n      if ((pIVar3->files_).\n          super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n          _M_finish == pIVar12) break;\n      uVar13 = ret._M_string_length + 1;\n      uVar11 = ret.field_2._M_allocated_capacity;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2) {\n        uVar11 = 0xf;\n      }\n      if (uVar11 < uVar13) {\n        std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);\n      }\n      ret._M_dataplus._M_p[sVar7] = ' ';\n      ret._M_dataplus._M_p[uVar13] = '\0';\n      cVar1 = pIVar12->is_file_;\n      pIVar4 = pIVar12;\n      ret._M_string_length = uVar13;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (cVar1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/options.h",0x828,"file");\n      }\n      pIVar12 = pIVar4 + 1;\n      pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p;\n      sVar8 = strlen(pcVar14);\n      if (0x7fffffffffffffff - ret._M_string_length < sVar8) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */\n        std::__throw_length_error("basic_string::append");\n      }\n                    /* try { // try from 0040f780 to 0040f7c0 has its CatchHandler @ 0040fcbc */\n      std::string::_M_append((string *)&ret,pcVar14,sVar8);\n      sVar7 = ret._M_string_length;\n      if ((pIVar3->files_).\n          super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n          _M_finish == pIVar12) break;\n      uVar13 = ret._M_string_length + 1;\n      uVar11 = ret.field_2._M_allocated_capacity;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2) {\n        uVar11 = 0xf;\n      }\n      if (uVar11 < uVar13) {\n        std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);\n      }\n      ret._M_dataplus._M_p[sVar7] = ' ';\n      ret._M_dataplus._M_p[uVar13] = '\0';\n      cVar1 = pIVar12->is_file_;\n      pIVar4 = pIVar12;\n      ret._M_string_length = uVar13;\n    }" { (if_statement "if (cVar1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/options.h",0x828,"file");\n      }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/options.h",0x828,"file");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/options.h",0x828,"file");" (call_expression "do_gold_unreachable("../../gold/options.h",0x828,"file")" identifier (argument_list "("../../gold/options.h",0x828,"file")" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (string_literal ""file"" " string_content ") ))) ;) })) (expression_statement "pIVar12 = pIVar4 + 1;" (assignment_expression "pIVar12 = pIVar4 + 1" identifier = (binary_expression "pIVar4 + 1" identifier + number_literal)) ;) (expression_statement "pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p;" (assignment_expression "pcVar14 = (pIVar4->file_).name_._M_dataplus._M_p" identifier = (field_expression "(pIVar4->file_).name_._M_dataplus._M_p" (field_expression "(pIVar4->file_).name_._M_dataplus" (field_expression "(pIVar4->file_).name_" (parenthesized_expression "(pIVar4->file_)" ( (field_expression "pIVar4->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "sVar8 = strlen(pcVar14);" (assignment_expression "sVar8 = strlen(pcVar14)" identifier = (call_expression "strlen(pcVar14)" identifier (argument_list "(pcVar14)" ( identifier )))) ;) (if_statement "if (0x7fffffffffffffff - ret._M_string_length < sVar8) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */\n        std::__throw_length_error("basic_string::append");\n      }" if (parenthesized_expression "(0x7fffffffffffffff - ret._M_string_length < sVar8)" ( (binary_expression "0x7fffffffffffffff - ret._M_string_length < sVar8" (binary_expression "0x7fffffffffffffff - ret._M_string_length" number_literal - (field_expression "ret._M_string_length" identifier . field_identifier)) < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */\n        std::__throw_length_error("basic_string::append");\n      }" { comment comment (labeled_statement "std::__throw_length_error("basic_string::append");" statement_identifier : (ERROR ":" :) (expression_statement "__throw_length_error("basic_string::append");" (call_expression "__throw_length_error("basic_string::append")" identifier (argument_list "("basic_string::append")" ( (string_literal ""basic_string::append"" " string_content ") ))) ;)) })) comment (labeled_statement "std::string::_M_append((string *)&ret,pcVar14,sVar8);" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_append((string *)&ret,pcVar14,sVar8);" statement_identifier : (ERROR ":" :) (expression_statement "_M_append((string *)&ret,pcVar14,sVar8);" (call_expression "_M_append((string *)&ret,pcVar14,sVar8)" identifier (argument_list "((string *)&ret,pcVar14,sVar8)" ( (cast_expression "(string *)&ret" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ret" & identifier)) , identifier , identifier ))) ;))) (expression_statement "sVar7 = ret._M_string_length;" (assignment_expression "sVar7 = ret._M_string_length" identifier = (field_expression "ret._M_string_length" identifier . field_identifier)) ;) (if_statement "if ((pIVar3->files_).\n          super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n          _M_finish == pIVar12) break;" if (parenthesized_expression "((pIVar3->files_).\n          super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>._M_impl.\n          _M_finish == pIVar12)" ( (ERROR "(pIVar3->files_).\n          super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "(pIVar3->files_).\n          super__Vector_base<gold::Input_argument,_std" (binary_expression "(pIVar3->files_).\n          super__Vector_base<gold" (field_expression "(pIVar3->files_).\n          super__Vector_base" (parenthesized_expression "(pIVar3->files_)" ( (field_expression "pIVar3->files_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Input_argument>_>._M_impl.\n          _M_finish == pIVar12" (field_expression "Input_argument>_>._M_impl.\n          _M_finish" (field_expression "Input_argument>_>._M_impl" (binary_expression "Input_argument>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = ret._M_string_length + 1;" (assignment_expression "uVar13 = ret._M_string_length + 1" identifier = (binary_expression "ret._M_string_length + 1" (field_expression "ret._M_string_length" identifier . field_identifier) + number_literal)) ;) (expression_statement "uVar11 = ret.field_2._M_allocated_capacity;" (assignment_expression "uVar11 = ret.field_2._M_allocated_capacity" identifier = (field_expression "ret.field_2._M_allocated_capacity" (field_expression "ret.field_2" identifier . field_identifier) . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2) {\n        uVar11 = 0xf;\n      }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n           *)ret._M_dataplus._M_p == &ret.field_2" (binary_expression "allocator<char>_>_9\n           *)ret._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)ret._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier))) == (pointer_expression "&ret.field_2" & (field_expression "ret.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n        uVar11 = 0xf;\n      }" { (expression_statement "uVar11 = 0xf;" (assignment_expression "uVar11 = 0xf" identifier = number_literal) ;) })) (if_statement "if (uVar11 < uVar13) {\n        std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);\n      }" if (parenthesized_expression "(uVar11 < uVar13)" ( (binary_expression "uVar11 < uVar13" identifier < identifier) )) (compound_statement "{\n        std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);\n      }" { (labeled_statement "std::string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);" statement_identifier : (ERROR ":" :) (expression_statement "_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1);" (call_expression "_M_mutate((string *)&ret,ret._M_string_length,0,(char *)0x0,1)" identifier (argument_list "((string *)&ret,ret._M_string_length,0,(char *)0x0,1)" ( (cast_expression "(string *)&ret" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ret" & identifier)) , (field_expression "ret._M_string_length" identifier . field_identifier) , number_literal , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;))) })) (expression_statement "ret._M_dataplus._M_p[sVar7] = ' ';" (assignment_expression "ret._M_dataplus._M_p[sVar7] = ' '" (subscript_expression "ret._M_dataplus._M_p[sVar7]" (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier) [ identifier ]) = (char_literal "' '" ' character ')) ;) (expression_statement "ret._M_dataplus._M_p[uVar13] = '\0';" (assignment_expression "ret._M_dataplus._M_p[uVar13] = '\0'" (subscript_expression "ret._M_dataplus._M_p[uVar13]" (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier) [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar1 = pIVar12->is_file_;" (assignment_expression "cVar1 = pIVar12->is_file_" identifier = (field_expression "pIVar12->is_file_" identifier -> field_identifier)) ;) (expression_statement "pIVar4 = pIVar12;" (assignment_expression "pIVar4 = pIVar12" identifier = identifier) ;) (expression_statement "ret._M_string_length = uVar13;" (assignment_expression "ret._M_string_length = uVar13" (field_expression "ret._M_string_length" identifier . field_identifier) = identifier) ;) })) })) (expression_statement "sVar7 = ret._M_string_length;" (assignment_expression "sVar7 = ret._M_string_length" identifier = (field_expression "ret._M_string_length" identifier . field_identifier)) ;) (expression_statement "_Var6._M_p = ret._M_dataplus._M_p;" (assignment_expression "_Var6._M_p = ret._M_dataplus._M_p" (field_expression "_Var6._M_p" identifier . field_identifier) = (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (expression_statement "paVar10 = &__return_storage_ptr__->field_2;" (assignment_expression "paVar10 = &__return_storage_ptr__->field_2" identifier = (pointer_expression "&__return_storage_ptr__->field_2" & (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier))) ;) (expression_statement "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;" (assignment_expression "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10" (field_expression "(__return_storage_ptr__->_M_dataplus)._M_p" (parenthesized_expression "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar10" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if ((ret._M_dataplus._M_p + ret._M_string_length != (pointer)0x0) &&\n     (ret._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    std::__throw_logic_error("basic_string::_M_construct null not valid");\n  }" if (parenthesized_expression "((ret._M_dataplus._M_p + ret._M_string_length != (pointer)0x0) &&\n     (ret._M_dataplus._M_p == (pointer)0x0))" ( (binary_expression "(ret._M_dataplus._M_p + ret._M_string_length != (pointer)0x0) &&\n     (ret._M_dataplus._M_p == (pointer)0x0)" (parenthesized_expression "(ret._M_dataplus._M_p + ret._M_string_length != (pointer)0x0)" ( (binary_expression "ret._M_dataplus._M_p + ret._M_string_length != (pointer)0x0" (binary_expression "ret._M_dataplus._M_p + ret._M_string_length" (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier) + (field_expression "ret._M_string_length" identifier . field_identifier)) != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) && (parenthesized_expression "(ret._M_dataplus._M_p == (pointer)0x0)" ( (binary_expression "ret._M_dataplus._M_p == (pointer)0x0" (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier) == (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    std::__throw_logic_error("basic_string::_M_construct null not valid");\n  }" { comment (labeled_statement "std::__throw_logic_error("basic_string::_M_construct null not valid");" statement_identifier : (ERROR ":" :) (expression_statement "__throw_logic_error("basic_string::_M_construct null not valid");" (call_expression "__throw_logic_error("basic_string::_M_construct null not valid")" identifier (argument_list "("basic_string::_M_construct null not valid")" ( (string_literal ""basic_string::_M_construct null not valid"" " string_content ") ))) ;)) })) (expression_statement "__dnew = ret._M_string_length;" (assignment_expression "__dnew = ret._M_string_length" identifier = (field_expression "ret._M_string_length" identifier . field_identifier)) ;) (if_statement "if (ret._M_string_length < 0x10) {\n    if (ret._M_string_length == 1) {\n      (__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;\n    }\n    else if (ret._M_string_length != 0) goto LAB_0040f970;\n  }\n  else {\n                    /* try { // try from 0040f95f to 0040f963 has its CatchHandler @ 0040fcbc */\n    paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0);\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n    (__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew;\nLAB_0040f970:\n    memcpy(paVar10,_Var6._M_p,sVar7);\n    paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)(__return_storage_ptr__->_M_dataplus)._M_p;\n  }" if (parenthesized_expression "(ret._M_string_length < 0x10)" ( (binary_expression "ret._M_string_length < 0x10" (field_expression "ret._M_string_length" identifier . field_identifier) < number_literal) )) (compound_statement "{\n    if (ret._M_string_length == 1) {\n      (__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;\n    }\n    else if (ret._M_string_length != 0) goto LAB_0040f970;\n  }" { (if_statement "if (ret._M_string_length == 1) {\n      (__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;\n    }\n    else if (ret._M_string_length != 0) goto LAB_0040f970;" if (parenthesized_expression "(ret._M_string_length == 1)" ( (binary_expression "ret._M_string_length == 1" (field_expression "ret._M_string_length" identifier . field_identifier) == number_literal) )) (compound_statement "{\n      (__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;\n    }" { (expression_statement "(__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;" (assignment_expression "(__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p" (subscript_expression "(__return_storage_ptr__->field_2)._M_local_buf[0]" (field_expression "(__return_storage_ptr__->field_2)._M_local_buf" (parenthesized_expression "(__return_storage_ptr__->field_2)" ( (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (pointer_expression "*ret._M_dataplus._M_p" * (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier))) ;) }) (else_clause "else if (ret._M_string_length != 0) goto LAB_0040f970;" else (if_statement "if (ret._M_string_length != 0) goto LAB_0040f970;" if (parenthesized_expression "(ret._M_string_length != 0)" ( (binary_expression "ret._M_string_length != 0" (field_expression "ret._M_string_length" identifier . field_identifier) != number_literal) )) (goto_statement "goto LAB_0040f970;" goto statement_identifier ;)))) }) (else_clause "else {\n                    /* try { // try from 0040f95f to 0040f963 has its CatchHandler @ 0040fcbc */\n    paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0);\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n    (__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew;\nLAB_0040f970:\n    memcpy(paVar10,_Var6._M_p,sVar7);\n    paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)(__return_storage_ptr__->_M_dataplus)._M_p;\n  }" else (compound_statement "{\n                    /* try { // try from 0040f95f to 0040f963 has its CatchHandler @ 0040fcbc */\n    paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0);\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;\n    (__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew;\nLAB_0040f970:\n    memcpy(paVar10,_Var6._M_p,sVar7);\n    paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)(__return_storage_ptr__->_M_dataplus)._M_p;\n  }" { comment (expression_statement "paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0);" (assignment_expression "paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0)" identifier = (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)std::string::_M_create((string *)__return_storage_ptr__,&__dnew,0)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)std::string::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_9\n               *)std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n               *)std" identifier * (ERROR ")" )) identifier)) : : identifier : :) (call_expression "_M_create((string *)__return_storage_ptr__,&__dnew,0)" identifier (argument_list "((string *)__return_storage_ptr__,&__dnew,0)" ( (cast_expression "(string *)__return_storage_ptr__" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&__dnew" & identifier) , number_literal ))) ))) ;) (expression_statement "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10;" (assignment_expression "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)paVar10" (field_expression "(__return_storage_ptr__->_M_dataplus)._M_p" (parenthesized_expression "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar10" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "(__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew;" (assignment_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew" (field_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity" (parenthesized_expression "(__return_storage_ptr__->field_2)" ( (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (labeled_statement "LAB_0040f970:\n    memcpy(paVar10,_Var6._M_p,sVar7);" statement_identifier : (expression_statement "memcpy(paVar10,_Var6._M_p,sVar7);" (call_expression "memcpy(paVar10,_Var6._M_p,sVar7)" identifier (argument_list "(paVar10,_Var6._M_p,sVar7)" ( identifier , (field_expression "_Var6._M_p" identifier . field_identifier) , identifier ))) ;)) (expression_statement "paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)(__return_storage_ptr__->_M_dataplus)._M_p;" (assignment_expression "paVar10 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)(__return_storage_ptr__->_M_dataplus)._M_p" identifier = (field_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)(__return_storage_ptr__->_M_dataplus)._M_p" (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)(__return_storage_ptr__->_M_dataplus)" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) (argument_list "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) ))) . field_identifier)) ;) }))) (expression_statement "__return_storage_ptr__->_M_string_length = __dnew;" (assignment_expression "__return_storage_ptr__->_M_string_length = __dnew" (field_expression "__return_storage_ptr__->_M_string_length" identifier -> field_identifier) = identifier) ;) (expression_statement "paVar10->_M_local_buf[__dnew] = '\0';" (assignment_expression "paVar10->_M_local_buf[__dnew] = '\0'" (subscript_expression "paVar10->_M_local_buf[__dnew]" (field_expression "paVar10->_M_local_buf" identifier -> field_identifier) [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) comment (labeled_statement "std::string::_M_replace_aux\n            ((string *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')');" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_replace_aux\n            ((string *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')');" statement_identifier : (ERROR ":" :) (expression_statement "_M_replace_aux\n            ((string *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')');" (call_expression "_M_replace_aux\n            ((string *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')')" identifier (argument_list "((string *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')')" ( (cast_expression "(string *)__return_storage_ptr__" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (field_expression "__return_storage_ptr__->_M_string_length" identifier -> field_identifier) , number_literal , number_literal , (char_literal "')'" ' character ') ))) ;))) (labeled_statement "LAB_0040f851:\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)ret._M_dataplus._M_p != &ret.field_2) {\n    operator_delete(ret._M_dataplus._M_p);\n  }" statement_identifier : (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)ret._M_dataplus._M_p != &ret.field_2) {\n    operator_delete(ret._M_dataplus._M_p);\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)ret._M_dataplus._M_p != &ret.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)ret._M_dataplus._M_p != &ret.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)ret._M_dataplus._M_p != &ret.field_2" (binary_expression "allocator<char>_>_9\n       *)ret._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)ret._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier))) != (pointer_expression "&ret.field_2" & (field_expression "ret.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n    operator_delete(ret._M_dataplus._M_p);\n  }" { (expression_statement "operator_delete(ret._M_dataplus._M_p);" (call_expression "operator_delete(ret._M_dataplus._M_p)" identifier (argument_list "(ret._M_dataplus._M_p)" ( (field_expression "ret._M_dataplus._M_p" (field_expression "ret._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) }))) (return_statement "return __return_storage_ptr__;" return identifier ;) }))
(translation_unit "long * FUN_0040f6a0(long *param_1,long param_2)\n\n{\n  ulong uVar1;\n  char cVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  ulong *puVar5;\n  size_t sVar6;\n  char *pcVar7;\n  long *plVar8;\n  ulong uVar9;\n  char *pcVar10;\n  ulong uVar11;\n  ulong local_60;\n  ulong *local_58;\n  ulong local_50;\n  ulong local_48;\n  long lStack_40;\n  \n  lVar3 = *(long *)(*(char **)(param_2 + 0x68) + 0x70);\n  if (**(char **)(param_2 + 0x68) == '\0') {\n    if (lVar3 == 0) {\n      local_58 = &local_48;\n      FUN_001a61c0(&local_58,"Read_symbols group (");\n      if (**(char **)(param_2 + 0x68) != '\0') {\n                    \n                    \n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }\n      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);\n      pcVar7 = (char *)*puVar4;\n      if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }\n      uVar11 = local_50;\n      puVar5 = local_58;\n      plVar8 = param_1 + 2;\n      *param_1 = (long)plVar8;\n      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    \n                    \n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }\n      local_60 = local_50;\n      if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    \n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }\n      param_1[1] = local_60;\n      *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    \n      FUN_004a59d0(param_1,param_1[1],0,1,0x29);\n      goto LAB_0040f851;\n    }\n  }\n  else if (lVar3 == 0) {\n    local_58 = &local_48;\n    FUN_001a61c0(&local_58,"Read_symbols ");\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\n    if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\nLAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);\n    sVar6 = strlen(pcVar7);\n    if (sVar6 <= uVar11) {\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }\n                    \n                    \n    FUN_004dcc70("basic_string::append");\n  }\n  local_58 = &local_48;\n  FUN_001a61c0(&local_58,"Read_symbols lib (");\n  if (**(char **)(param_2 + 0x68) != '\0') {\nLAB_0040fc7c:\n                    \n    FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);\n  }\n  puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70);\n  if (puVar4 == (undefined8 *)0x0) {\n                    \n    FUN_0040d630();\n    goto LAB_0040fc7c;\n  }\n  pcVar7 = (char *)*puVar4;\n  if (pcVar7 != (char *)puVar4[1]) {\n    cVar2 = *pcVar7;\n    while( true ) {\n      if (cVar2 == '\0') {\n                    \n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }\n      pcVar10 = pcVar7 + 0x80;\n      pcVar7 = *(char **)(pcVar7 + 8);\n      sVar6 = strlen(pcVar7);\n      if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      uVar11 = local_50;\n      if ((char *)puVar4[1] == pcVar10) break;\n      uVar1 = local_50 + 1;\n      uVar9 = local_48;\n      if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }\n      if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }\n      *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n      *(undefined1 *)((long)local_58 + uVar1) = 0;\n      cVar2 = *pcVar10;\n      pcVar7 = pcVar10;\n      local_50 = uVar1;\n    }\n  }\n  uVar11 = local_50;\n  puVar5 = local_58;\n  plVar8 = param_1 + 2;\n  *param_1 = (long)plVar8;\n  if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) && (local_58 == (ulong *)0x0)\n     ) {\n                    \n    FUN_004dcbb0("basic_string::_M_construct null not valid");\n  }\n  local_60 = local_50;\n  if (local_50 < 0x10) {\n    if (local_50 == 1) {\n      *(char *)(param_1 + 2) = (char)*local_58;\n    }\n    else if (local_50 != 0) goto LAB_0040f970;\n  }\n  else {\n                    \n    plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n    *param_1 = (long)plVar8;\n    param_1[2] = local_60;\nLAB_0040f970:\n    memcpy(plVar8,puVar5,uVar11);\n    plVar8 = (long *)*param_1;\n  }\n  param_1[1] = local_60;\n  *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    \n  FUN_004a59d0(param_1,param_1[1],0,1,0x29);\nLAB_0040f851:\n  if (local_58 != &local_48) {\n    FUN_0049e340();\n  }\n  return param_1;\n}\n\n" (function_definition "long * FUN_0040f6a0(long *param_1,long param_2)\n\n{\n  ulong uVar1;\n  char cVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  ulong *puVar5;\n  size_t sVar6;\n  char *pcVar7;\n  long *plVar8;\n  ulong uVar9;\n  char *pcVar10;\n  ulong uVar11;\n  ulong local_60;\n  ulong *local_58;\n  ulong local_50;\n  ulong local_48;\n  long lStack_40;\n  \n  lVar3 = *(long *)(*(char **)(param_2 + 0x68) + 0x70);\n  if (**(char **)(param_2 + 0x68) == '\0') {\n    if (lVar3 == 0) {\n      local_58 = &local_48;\n      FUN_001a61c0(&local_58,"Read_symbols group (");\n      if (**(char **)(param_2 + 0x68) != '\0') {\n                    \n                    \n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }\n      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);\n      pcVar7 = (char *)*puVar4;\n      if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }\n      uVar11 = local_50;\n      puVar5 = local_58;\n      plVar8 = param_1 + 2;\n      *param_1 = (long)plVar8;\n      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    \n                    \n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }\n      local_60 = local_50;\n      if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    \n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }\n      param_1[1] = local_60;\n      *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    \n      FUN_004a59d0(param_1,param_1[1],0,1,0x29);\n      goto LAB_0040f851;\n    }\n  }\n  else if (lVar3 == 0) {\n    local_58 = &local_48;\n    FUN_001a61c0(&local_58,"Read_symbols ");\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\n    if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\nLAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);\n    sVar6 = strlen(pcVar7);\n    if (sVar6 <= uVar11) {\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }\n                    \n                    \n    FUN_004dcc70("basic_string::append");\n  }\n  local_58 = &local_48;\n  FUN_001a61c0(&local_58,"Read_symbols lib (");\n  if (**(char **)(param_2 + 0x68) != '\0') {\nLAB_0040fc7c:\n                    \n    FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);\n  }\n  puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70);\n  if (puVar4 == (undefined8 *)0x0) {\n                    \n    FUN_0040d630();\n    goto LAB_0040fc7c;\n  }\n  pcVar7 = (char *)*puVar4;\n  if (pcVar7 != (char *)puVar4[1]) {\n    cVar2 = *pcVar7;\n    while( true ) {\n      if (cVar2 == '\0') {\n                    \n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }\n      pcVar10 = pcVar7 + 0x80;\n      pcVar7 = *(char **)(pcVar7 + 8);\n      sVar6 = strlen(pcVar7);\n      if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      uVar11 = local_50;\n      if ((char *)puVar4[1] == pcVar10) break;\n      uVar1 = local_50 + 1;\n      uVar9 = local_48;\n      if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }\n      if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }\n      *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n      *(undefined1 *)((long)local_58 + uVar1) = 0;\n      cVar2 = *pcVar10;\n      pcVar7 = pcVar10;\n      local_50 = uVar1;\n    }\n  }\n  uVar11 = local_50;\n  puVar5 = local_58;\n  plVar8 = param_1 + 2;\n  *param_1 = (long)plVar8;\n  if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) && (local_58 == (ulong *)0x0)\n     ) {\n                    \n    FUN_004dcbb0("basic_string::_M_construct null not valid");\n  }\n  local_60 = local_50;\n  if (local_50 < 0x10) {\n    if (local_50 == 1) {\n      *(char *)(param_1 + 2) = (char)*local_58;\n    }\n    else if (local_50 != 0) goto LAB_0040f970;\n  }\n  else {\n                    \n    plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n    *param_1 = (long)plVar8;\n    param_1[2] = local_60;\nLAB_0040f970:\n    memcpy(plVar8,puVar5,uVar11);\n    plVar8 = (long *)*param_1;\n  }\n  param_1[1] = local_60;\n  *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    \n  FUN_004a59d0(param_1,param_1[1],0,1,0x29);\nLAB_0040f851:\n  if (local_58 != &local_48) {\n    FUN_0049e340();\n  }\n  return param_1;\n}" (sized_type_specifier "long" long) (pointer_declarator "* FUN_0040f6a0(long *param_1,long param_2)" * (function_declarator "FUN_0040f6a0(long *param_1,long param_2)" identifier (parameter_list "(long *param_1,long param_2)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) )))) (compound_statement "{\n  ulong uVar1;\n  char cVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  ulong *puVar5;\n  size_t sVar6;\n  char *pcVar7;\n  long *plVar8;\n  ulong uVar9;\n  char *pcVar10;\n  ulong uVar11;\n  ulong local_60;\n  ulong *local_58;\n  ulong local_50;\n  ulong local_48;\n  long lStack_40;\n  \n  lVar3 = *(long *)(*(char **)(param_2 + 0x68) + 0x70);\n  if (**(char **)(param_2 + 0x68) == '\0') {\n    if (lVar3 == 0) {\n      local_58 = &local_48;\n      FUN_001a61c0(&local_58,"Read_symbols group (");\n      if (**(char **)(param_2 + 0x68) != '\0') {\n                    \n                    \n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }\n      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);\n      pcVar7 = (char *)*puVar4;\n      if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }\n      uVar11 = local_50;\n      puVar5 = local_58;\n      plVar8 = param_1 + 2;\n      *param_1 = (long)plVar8;\n      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    \n                    \n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }\n      local_60 = local_50;\n      if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    \n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }\n      param_1[1] = local_60;\n      *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    \n      FUN_004a59d0(param_1,param_1[1],0,1,0x29);\n      goto LAB_0040f851;\n    }\n  }\n  else if (lVar3 == 0) {\n    local_58 = &local_48;\n    FUN_001a61c0(&local_58,"Read_symbols ");\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\n    if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\nLAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);\n    sVar6 = strlen(pcVar7);\n    if (sVar6 <= uVar11) {\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }\n                    \n                    \n    FUN_004dcc70("basic_string::append");\n  }\n  local_58 = &local_48;\n  FUN_001a61c0(&local_58,"Read_symbols lib (");\n  if (**(char **)(param_2 + 0x68) != '\0') {\nLAB_0040fc7c:\n                    \n    FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);\n  }\n  puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70);\n  if (puVar4 == (undefined8 *)0x0) {\n                    \n    FUN_0040d630();\n    goto LAB_0040fc7c;\n  }\n  pcVar7 = (char *)*puVar4;\n  if (pcVar7 != (char *)puVar4[1]) {\n    cVar2 = *pcVar7;\n    while( true ) {\n      if (cVar2 == '\0') {\n                    \n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }\n      pcVar10 = pcVar7 + 0x80;\n      pcVar7 = *(char **)(pcVar7 + 8);\n      sVar6 = strlen(pcVar7);\n      if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      uVar11 = local_50;\n      if ((char *)puVar4[1] == pcVar10) break;\n      uVar1 = local_50 + 1;\n      uVar9 = local_48;\n      if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }\n      if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }\n      *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n      *(undefined1 *)((long)local_58 + uVar1) = 0;\n      cVar2 = *pcVar10;\n      pcVar7 = pcVar10;\n      local_50 = uVar1;\n    }\n  }\n  uVar11 = local_50;\n  puVar5 = local_58;\n  plVar8 = param_1 + 2;\n  *param_1 = (long)plVar8;\n  if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) && (local_58 == (ulong *)0x0)\n     ) {\n                    \n    FUN_004dcbb0("basic_string::_M_construct null not valid");\n  }\n  local_60 = local_50;\n  if (local_50 < 0x10) {\n    if (local_50 == 1) {\n      *(char *)(param_1 + 2) = (char)*local_58;\n    }\n    else if (local_50 != 0) goto LAB_0040f970;\n  }\n  else {\n                    \n    plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n    *param_1 = (long)plVar8;\n    param_1[2] = local_60;\nLAB_0040f970:\n    memcpy(plVar8,puVar5,uVar11);\n    plVar8 = (long *)*param_1;\n  }\n  param_1[1] = local_60;\n  *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    \n  FUN_004a59d0(param_1,param_1[1],0,1,0x29);\nLAB_0040f851:\n  if (local_58 != &local_48) {\n    FUN_0049e340();\n  }\n  return param_1;\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "ulong *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "long *plVar8;" (sized_type_specifier "long" long) (pointer_declarator "*plVar8" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "ulong local_60;" type_identifier identifier ;) (declaration "ulong *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "ulong local_50;" type_identifier identifier ;) (declaration "ulong local_48;" type_identifier identifier ;) (declaration "long lStack_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar3 = *(long *)(*(char **)(param_2 + 0x68) + 0x70);" (assignment_expression "lVar3 = *(long *)(*(char **)(param_2 + 0x68) + 0x70)" identifier = (pointer_expression "*(long *)(*(char **)(param_2 + 0x68) + 0x70)" * (cast_expression "(long *)(*(char **)(param_2 + 0x68) + 0x70)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(char **)(param_2 + 0x68) + 0x70)" ( (binary_expression "*(char **)(param_2 + 0x68) + 0x70" (pointer_expression "*(char **)(param_2 + 0x68)" * (cast_expression "(char **)(param_2 + 0x68)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x68)" ( (binary_expression "param_2 + 0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (**(char **)(param_2 + 0x68) == '\0') {\n    if (lVar3 == 0) {\n      local_58 = &local_48;\n      FUN_001a61c0(&local_58,"Read_symbols group (");\n      if (**(char **)(param_2 + 0x68) != '\0') {\n                    \n                    \n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }\n      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);\n      pcVar7 = (char *)*puVar4;\n      if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }\n      uVar11 = local_50;\n      puVar5 = local_58;\n      plVar8 = param_1 + 2;\n      *param_1 = (long)plVar8;\n      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    \n                    \n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }\n      local_60 = local_50;\n      if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    \n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }\n      param_1[1] = local_60;\n      *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    \n      FUN_004a59d0(param_1,param_1[1],0,1,0x29);\n      goto LAB_0040f851;\n    }\n  }\n  else if (lVar3 == 0) {\n    local_58 = &local_48;\n    FUN_001a61c0(&local_58,"Read_symbols ");\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\n    if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\nLAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);\n    sVar6 = strlen(pcVar7);\n    if (sVar6 <= uVar11) {\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }\n                    \n                    \n    FUN_004dcc70("basic_string::append");\n  }" if (parenthesized_expression "(**(char **)(param_2 + 0x68) == '\0')" ( (binary_expression "**(char **)(param_2 + 0x68) == '\0'" (pointer_expression "**(char **)(param_2 + 0x68)" * (pointer_expression "*(char **)(param_2 + 0x68)" * (cast_expression "(char **)(param_2 + 0x68)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x68)" ( (binary_expression "param_2 + 0x68" identifier + number_literal) ))))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (lVar3 == 0) {\n      local_58 = &local_48;\n      FUN_001a61c0(&local_58,"Read_symbols group (");\n      if (**(char **)(param_2 + 0x68) != '\0') {\n                    \n                    \n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }\n      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);\n      pcVar7 = (char *)*puVar4;\n      if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }\n      uVar11 = local_50;\n      puVar5 = local_58;\n      plVar8 = param_1 + 2;\n      *param_1 = (long)plVar8;\n      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    \n                    \n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }\n      local_60 = local_50;\n      if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    \n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }\n      param_1[1] = local_60;\n      *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    \n      FUN_004a59d0(param_1,param_1[1],0,1,0x29);\n      goto LAB_0040f851;\n    }\n  }" { (if_statement "if (lVar3 == 0) {\n      local_58 = &local_48;\n      FUN_001a61c0(&local_58,"Read_symbols group (");\n      if (**(char **)(param_2 + 0x68) != '\0') {\n                    \n                    \n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }\n      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);\n      pcVar7 = (char *)*puVar4;\n      if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }\n      uVar11 = local_50;\n      puVar5 = local_58;\n      plVar8 = param_1 + 2;\n      *param_1 = (long)plVar8;\n      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    \n                    \n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }\n      local_60 = local_50;\n      if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    \n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }\n      param_1[1] = local_60;\n      *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    \n      FUN_004a59d0(param_1,param_1[1],0,1,0x29);\n      goto LAB_0040f851;\n    }" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      local_58 = &local_48;\n      FUN_001a61c0(&local_58,"Read_symbols group (");\n      if (**(char **)(param_2 + 0x68) != '\0') {\n                    \n                    \n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }\n      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);\n      pcVar7 = (char *)*puVar4;\n      if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }\n      uVar11 = local_50;\n      puVar5 = local_58;\n      plVar8 = param_1 + 2;\n      *param_1 = (long)plVar8;\n      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    \n                    \n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }\n      local_60 = local_50;\n      if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    \n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }\n      param_1[1] = local_60;\n      *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    \n      FUN_004a59d0(param_1,param_1[1],0,1,0x29);\n      goto LAB_0040f851;\n    }" { (expression_statement "local_58 = &local_48;" (assignment_expression "local_58 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "FUN_001a61c0(&local_58,"Read_symbols group (");" (call_expression "FUN_001a61c0(&local_58,"Read_symbols group (")" identifier (argument_list "(&local_58,"Read_symbols group (")" ( (pointer_expression "&local_58" & identifier) , (string_literal ""Read_symbols group ("" " string_content ") ))) ;) (if_statement "if (**(char **)(param_2 + 0x68) != '\0') {\n                    \n                    \n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }" if (parenthesized_expression "(**(char **)(param_2 + 0x68) != '\0')" ( (binary_expression "**(char **)(param_2 + 0x68) != '\0'" (pointer_expression "**(char **)(param_2 + 0x68)" * (pointer_expression "*(char **)(param_2 + 0x68)" * (cast_expression "(char **)(param_2 + 0x68)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x68)" ( (binary_expression "param_2 + 0x68" identifier + number_literal) ))))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n                    \n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }" { (expression_statement "FUN_00352af0("../../gold/options.h",0x830,"group");" (call_expression "FUN_00352af0("../../gold/options.h",0x830,"group")" identifier (argument_list "("../../gold/options.h",0x830,"group")" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (string_literal ""group"" " string_content ") ))) ;) })) (expression_statement "puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);" (assignment_expression "puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68)" identifier = (pointer_expression "*(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68)" * (cast_expression "(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(char **)(param_2 + 0x68) + 0x68)" ( (binary_expression "*(char **)(param_2 + 0x68) + 0x68" (pointer_expression "*(char **)(param_2 + 0x68)" * (cast_expression "(char **)(param_2 + 0x68)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x68)" ( (binary_expression "param_2 + 0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pcVar7 = (char *)*puVar4;" (assignment_expression "pcVar7 = (char *)*puVar4" identifier = (cast_expression "(char *)*puVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (if_statement "if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }" if (parenthesized_expression "((char *)puVar4[1] != pcVar7)" ( (binary_expression "(char *)puVar4[1] != pcVar7" (cast_expression "(char *)puVar4[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ])) != identifier) )) (compound_statement "{\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }" { (expression_statement "cVar2 = *pcVar7;" (assignment_expression "cVar2 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (while_statement "while( true ) {\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }" { (if_statement "if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }" { (expression_statement "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);" (call_expression "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db)" identifier (argument_list "("../../gold/options.h",0x828,&DAT_0057d4db)" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (pointer_expression "&DAT_0057d4db" & identifier) ))) ;) })) (expression_statement "pcVar10 = pcVar7 + 0x80;" (assignment_expression "pcVar10 = pcVar7 + 0x80" identifier = (binary_expression "pcVar7 + 0x80" identifier + number_literal)) ;) (expression_statement "pcVar7 = *(char **)(pcVar7 + 8);" (assignment_expression "pcVar7 = *(char **)(pcVar7 + 8)" identifier = (pointer_expression "*(char **)(pcVar7 + 8)" * (cast_expression "(char **)(pcVar7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar7 + 8)" ( (binary_expression "pcVar7 + 8" identifier + number_literal) ))))) ;) (expression_statement "sVar6 = strlen(pcVar7);" (assignment_expression "sVar6 = strlen(pcVar7)" identifier = (call_expression "strlen(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (if_statement "if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }" if (parenthesized_expression "(0x7fffffffffffffff - local_50 < sVar6)" ( (binary_expression "0x7fffffffffffffff - local_50 < sVar6" (binary_expression "0x7fffffffffffffff - local_50" number_literal - identifier) < identifier) )) (compound_statement "{\n                    \n            FUN_004dcc70("basic_string::append");\n          }" { (expression_statement "FUN_004dcc70("basic_string::append");" (call_expression "FUN_004dcc70("basic_string::append")" identifier (argument_list "("basic_string::append")" ( (string_literal ""basic_string::append"" " string_content ") ))) ;) })) (expression_statement "FUN_004a65c0(&local_58,pcVar7,sVar6);" (call_expression "FUN_004a65c0(&local_58,pcVar7,sVar6)" identifier (argument_list "(&local_58,pcVar7,sVar6)" ( (pointer_expression "&local_58" & identifier) , identifier , identifier ))) ;) (expression_statement "uVar11 = local_50;" (assignment_expression "uVar11 = local_50" identifier = identifier) ;) (if_statement "if ((char *)puVar4[1] == pcVar10) break;" if (parenthesized_expression "((char *)puVar4[1] == pcVar10)" ( (binary_expression "(char *)puVar4[1] == pcVar10" (cast_expression "(char *)puVar4[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ])) == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar1 = local_50 + 1;" (assignment_expression "uVar1 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;) (expression_statement "uVar9 = local_48;" (assignment_expression "uVar9 = local_48" identifier = identifier) ;) (if_statement "if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }" if (parenthesized_expression "(local_58 == &local_48)" ( (binary_expression "local_58 == &local_48" identifier == (pointer_expression "&local_48" & identifier)) )) (compound_statement "{\n            uVar9 = 0xf;\n          }" { (expression_statement "uVar9 = 0xf;" (assignment_expression "uVar9 = 0xf" identifier = number_literal) ;) })) (if_statement "if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }" if (parenthesized_expression "(uVar9 < uVar1)" ( (binary_expression "uVar9 < uVar1" identifier < identifier) )) (compound_statement "{\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }" { (expression_statement "FUN_004a5030(&local_58,local_50,0,0,1);" (call_expression "FUN_004a5030(&local_58,local_50,0,0,1)" identifier (argument_list "(&local_58,local_50,0,0,1)" ( (pointer_expression "&local_58" & identifier) , identifier , number_literal , number_literal , number_literal ))) ;) })) (expression_statement "*(undefined1 *)((long)local_58 + uVar11) = 0x20;" (assignment_expression "*(undefined1 *)((long)local_58 + uVar11) = 0x20" (pointer_expression "*(undefined1 *)((long)local_58 + uVar11)" * (cast_expression "(undefined1 *)((long)local_58 + uVar11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + uVar11)" ( (binary_expression "(long)local_58 + uVar11" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)local_58 + uVar1) = 0;" (assignment_expression "*(undefined1 *)((long)local_58 + uVar1) = 0" (pointer_expression "*(undefined1 *)((long)local_58 + uVar1)" * (cast_expression "(undefined1 *)((long)local_58 + uVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + uVar1)" ( (binary_expression "(long)local_58 + uVar1" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "cVar2 = *pcVar10;" (assignment_expression "cVar2 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (expression_statement "pcVar7 = pcVar10;" (assignment_expression "pcVar7 = pcVar10" identifier = identifier) ;) (expression_statement "local_50 = uVar1;" (assignment_expression "local_50 = uVar1" identifier = identifier) ;) })) })) (expression_statement "uVar11 = local_50;" (assignment_expression "uVar11 = local_50" identifier = identifier) ;) (expression_statement "puVar5 = local_58;" (assignment_expression "puVar5 = local_58" identifier = identifier) ;) (expression_statement "plVar8 = param_1 + 2;" (assignment_expression "plVar8 = param_1 + 2" identifier = (binary_expression "param_1 + 2" identifier + number_literal)) ;) (expression_statement "*param_1 = (long)plVar8;" (assignment_expression "*param_1 = (long)plVar8" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)plVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (if_statement "if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    \n                    \n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }" if (parenthesized_expression "(((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0))" ( (binary_expression "((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)" (parenthesized_expression "((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0)" ( (binary_expression "(undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0" (cast_expression "(undefined1 *)((long)local_58 + local_50)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + local_50)" ( (binary_expression "(long)local_58 + local_50" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_58 == (ulong *)0x0)" ( (binary_expression "local_58 == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                    \n                    \n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }" { (expression_statement "FUN_004dcbb0("basic_string::_M_construct null not valid");" (call_expression "FUN_004dcbb0("basic_string::_M_construct null not valid")" identifier (argument_list "("basic_string::_M_construct null not valid")" ( (string_literal ""basic_string::_M_construct null not valid"" " string_content ") ))) ;) })) (expression_statement "local_60 = local_50;" (assignment_expression "local_60 = local_50" identifier = identifier) ;) (if_statement "if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    \n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }" if (parenthesized_expression "(local_50 < 0x10)" ( (binary_expression "local_50 < 0x10" identifier < number_literal) )) (compound_statement "{\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }" { (if_statement "if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;" if (parenthesized_expression "(local_50 == 1)" ( (binary_expression "local_50 == 1" identifier == number_literal) )) (compound_statement "{\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }" { (expression_statement "*(char *)(param_1 + 2) = (char)*local_58;" (assignment_expression "*(char *)(param_1 + 2) = (char)*local_58" (pointer_expression "*(char *)(param_1 + 2)" * (cast_expression "(char *)(param_1 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) = (cast_expression "(char)*local_58" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*local_58" * identifier))) ;) }) (else_clause "else if (local_50 != 0) goto LAB_0040fb81;" else (if_statement "if (local_50 != 0) goto LAB_0040fb81;" if (parenthesized_expression "(local_50 != 0)" ( (binary_expression "local_50 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0040fb81;" goto statement_identifier ;)))) }) (else_clause "else {\n                    \n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }" else (compound_statement "{\n                    \n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }" { (expression_statement "plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);" (assignment_expression "plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0)" identifier = (cast_expression "(long *)FUN_004a4c70(param_1,&local_60,0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_004a4c70(param_1,&local_60,0)" identifier (argument_list "(param_1,&local_60,0)" ( identifier , (pointer_expression "&local_60" & identifier) , number_literal ))))) ;) (expression_statement "*param_1 = (long)plVar8;" (assignment_expression "*param_1 = (long)plVar8" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)plVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "param_1[2] = local_60;" (assignment_expression "param_1[2] = local_60" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);" statement_identifier : (expression_statement "memcpy(plVar8,puVar5,uVar11);" (call_expression "memcpy(plVar8,puVar5,uVar11)" identifier (argument_list "(plVar8,puVar5,uVar11)" ( identifier , identifier , identifier ))) ;)) (expression_statement "plVar8 = (long *)*param_1;" (assignment_expression "plVar8 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) }))) (expression_statement "param_1[1] = local_60;" (assignment_expression "param_1[1] = local_60" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((long)plVar8 + local_60) = 0;" (assignment_expression "*(undefined1 *)((long)plVar8 + local_60) = 0" (pointer_expression "*(undefined1 *)((long)plVar8 + local_60)" * (cast_expression "(undefined1 *)((long)plVar8 + local_60)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar8 + local_60)" ( (binary_expression "(long)plVar8 + local_60" (cast_expression "(long)plVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "FUN_004a59d0(param_1,param_1[1],0,1,0x29);" (call_expression "FUN_004a59d0(param_1,param_1[1],0,1,0x29)" identifier (argument_list "(param_1,param_1[1],0,1,0x29)" ( identifier , (subscript_expression "param_1[1]" identifier [ number_literal ]) , number_literal , number_literal , number_literal ))) ;) (goto_statement "goto LAB_0040f851;" goto statement_identifier ;) })) }) (else_clause "else if (lVar3 == 0) {\n    local_58 = &local_48;\n    FUN_001a61c0(&local_58,"Read_symbols ");\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\n    if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\nLAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);\n    sVar6 = strlen(pcVar7);\n    if (sVar6 <= uVar11) {\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }\n                    \n                    \n    FUN_004dcc70("basic_string::append");\n  }" else (if_statement "if (lVar3 == 0) {\n    local_58 = &local_48;\n    FUN_001a61c0(&local_58,"Read_symbols ");\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\n    if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\nLAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);\n    sVar6 = strlen(pcVar7);\n    if (sVar6 <= uVar11) {\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }\n                    \n                    \n    FUN_004dcc70("basic_string::append");\n  }" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    local_58 = &local_48;\n    FUN_001a61c0(&local_58,"Read_symbols ");\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\n    if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\nLAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);\n    sVar6 = strlen(pcVar7);\n    if (sVar6 <= uVar11) {\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }\n                    \n                    \n    FUN_004dcc70("basic_string::append");\n  }" { (expression_statement "local_58 = &local_48;" (assignment_expression "local_58 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "FUN_001a61c0(&local_58,"Read_symbols ");" (call_expression "FUN_001a61c0(&local_58,"Read_symbols ")" identifier (argument_list "(&local_58,"Read_symbols ")" ( (pointer_expression "&local_58" & identifier) , (string_literal ""Read_symbols "" " string_content ") ))) ;) (expression_statement "pcVar7 = *(char **)(param_2 + 0x68);" (assignment_expression "pcVar7 = *(char **)(param_2 + 0x68)" identifier = (pointer_expression "*(char **)(param_2 + 0x68)" * (cast_expression "(char **)(param_2 + 0x68)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x68)" ( (binary_expression "param_2 + 0x68" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar7 == '\0') {\n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }" if (parenthesized_expression "(*pcVar7 == '\0')" ( (binary_expression "*pcVar7 == '\0'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }" { (expression_statement "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);" (call_expression "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db)" identifier (argument_list "("../../gold/options.h",0x828,&DAT_0057d4db)" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (pointer_expression "&DAT_0057d4db" & identifier) ))) ;) })) (expression_statement "uVar11 = 0x7fffffffffffffff - local_50;" (assignment_expression "uVar11 = 0x7fffffffffffffff - local_50" identifier = (binary_expression "0x7fffffffffffffff - local_50" number_literal - identifier)) ;) (if_statement "if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }" if (parenthesized_expression "(*(int *)(pcVar7 + 0x28) == 1)" ( (binary_expression "*(int *)(pcVar7 + 0x28) == 1" (pointer_expression "*(int *)(pcVar7 + 0x28)" * (cast_expression "(int *)(pcVar7 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x28)" ( (binary_expression "pcVar7 + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (uVar11 < 2) {\n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }" { (if_statement "if (uVar11 < 2) {\n                    \n        FUN_004dcc70("basic_string::append");\n      }" if (parenthesized_expression "(uVar11 < 2)" ( (binary_expression "uVar11 < 2" identifier < number_literal) )) (compound_statement "{\n                    \n        FUN_004dcc70("basic_string::append");\n      }" { (expression_statement "FUN_004dcc70("basic_string::append");" (call_expression "FUN_004dcc70("basic_string::append")" identifier (argument_list "("basic_string::append")" ( (string_literal ""basic_string::append"" " string_content ") ))) ;) })) (expression_statement "FUN_004a65c0(&local_58,&DAT_0056d435,2);" (call_expression "FUN_004a65c0(&local_58,&DAT_0056d435,2)" identifier (argument_list "(&local_58,&DAT_0056d435,2)" ( (pointer_expression "&local_58" & identifier) , (pointer_expression "&DAT_0056d435" & identifier) , number_literal ))) ;) }) (else_clause "else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }" else (compound_statement "{\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }" { (if_statement "if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;" if (parenthesized_expression "(*(int *)(pcVar7 + 0x28) != 2)" ( (binary_expression "*(int *)(pcVar7 + 0x28) != 2" (pointer_expression "*(int *)(pcVar7 + 0x28)" * (cast_expression "(int *)(pcVar7 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x28)" ( (binary_expression "pcVar7 + 0x28" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0040f8db;" goto statement_identifier ;)) (if_statement "if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }" if (parenthesized_expression "(uVar11 < 3)" ( (binary_expression "uVar11 < 3" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }" { (expression_statement "FUN_004dcc70("basic_string::append");" (call_expression "FUN_004dcc70("basic_string::append")" identifier (argument_list "("basic_string::append")" ( (string_literal ""basic_string::append"" " string_content ") ))) ;) })) (expression_statement "FUN_004a65c0(&local_58,&DAT_0057d35e,3);" (call_expression "FUN_004a65c0(&local_58,&DAT_0057d35e,3)" identifier (argument_list "(&local_58,&DAT_0057d35e,3)" ( (pointer_expression "&local_58" & identifier) , (pointer_expression "&DAT_0057d35e" & identifier) , number_literal ))) ;) }))) (expression_statement "pcVar7 = *(char **)(param_2 + 0x68);" (assignment_expression "pcVar7 = *(char **)(param_2 + 0x68)" identifier = (pointer_expression "*(char **)(param_2 + 0x68)" * (cast_expression "(char **)(param_2 + 0x68)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x68)" ( (binary_expression "param_2 + 0x68" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar7 == '\0') {\n                    \n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }" if (parenthesized_expression "(*pcVar7 == '\0')" ( (binary_expression "*pcVar7 == '\0'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }" { (expression_statement "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);" (call_expression "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db)" identifier (argument_list "("../../gold/options.h",0x828,&DAT_0057d4db)" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (pointer_expression "&DAT_0057d4db" & identifier) ))) ;) })) (expression_statement "uVar11 = 0x7fffffffffffffff - local_50;" (assignment_expression "uVar11 = 0x7fffffffffffffff - local_50" identifier = (binary_expression "0x7fffffffffffffff - local_50" number_literal - identifier)) ;) (labeled_statement "LAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);" statement_identifier : (expression_statement "pcVar7 = *(char **)(pcVar7 + 8);" (assignment_expression "pcVar7 = *(char **)(pcVar7 + 8)" identifier = (pointer_expression "*(char **)(pcVar7 + 8)" * (cast_expression "(char **)(pcVar7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar7 + 8)" ( (binary_expression "pcVar7 + 8" identifier + number_literal) ))))) ;)) (expression_statement "sVar6 = strlen(pcVar7);" (assignment_expression "sVar6 = strlen(pcVar7)" identifier = (call_expression "strlen(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (if_statement "if (sVar6 <= uVar11) {\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }" if (parenthesized_expression "(sVar6 <= uVar11)" ( (binary_expression "sVar6 <= uVar11" identifier <= identifier) )) (compound_statement "{\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }" { (expression_statement "FUN_004a65c0(&local_58,pcVar7,sVar6);" (call_expression "FUN_004a65c0(&local_58,pcVar7,sVar6)" identifier (argument_list "(&local_58,pcVar7,sVar6)" ( (pointer_expression "&local_58" & identifier) , identifier , identifier ))) ;) (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)(param_1 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (if_statement "if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }" if (parenthesized_expression "(local_58 == &local_48)" ( (binary_expression "local_58 == &local_48" identifier == (pointer_expression "&local_48" & identifier)) )) (compound_statement "{\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }" { (expression_statement "param_1[2] = local_48;" (assignment_expression "param_1[2] = local_48" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = lStack_40;" (assignment_expression "param_1[3] = lStack_40" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }" else (compound_statement "{\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }" { (expression_statement "*param_1 = (long)local_58;" (assignment_expression "*param_1 = (long)local_58" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "param_1[2] = local_48;" (assignment_expression "param_1[2] = local_48" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "param_1[1] = local_50;" (assignment_expression "param_1[1] = local_50" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "FUN_004dcc70("basic_string::append");" (call_expression "FUN_004dcc70("basic_string::append")" identifier (argument_list "("basic_string::append")" ( (string_literal ""basic_string::append"" " string_content ") ))) ;) })))) (expression_statement "local_58 = &local_48;" (assignment_expression "local_58 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "FUN_001a61c0(&local_58,"Read_symbols lib (");" (call_expression "FUN_001a61c0(&local_58,"Read_symbols lib (")" identifier (argument_list "(&local_58,"Read_symbols lib (")" ( (pointer_expression "&local_58" & identifier) , (string_literal ""Read_symbols lib ("" " string_content ") ))) ;) (if_statement "if (**(char **)(param_2 + 0x68) != '\0') {\nLAB_0040fc7c:\n                    \n    FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);\n  }" if (parenthesized_expression "(**(char **)(param_2 + 0x68) != '\0')" ( (binary_expression "**(char **)(param_2 + 0x68) != '\0'" (pointer_expression "**(char **)(param_2 + 0x68)" * (pointer_expression "*(char **)(param_2 + 0x68)" * (cast_expression "(char **)(param_2 + 0x68)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x68)" ( (binary_expression "param_2 + 0x68" identifier + number_literal) ))))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0040fc7c:\n                    \n    FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);\n  }" { (labeled_statement "LAB_0040fc7c:\n                    \n    FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);" statement_identifier : (expression_statement "FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);" (call_expression "FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c)" identifier (argument_list "("../../gold/options.h",0x83f,&DAT_0057d49c)" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (pointer_expression "&DAT_0057d49c" & identifier) ))) ;)) })) (expression_statement "puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70);" (assignment_expression "puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70)" identifier = (pointer_expression "*(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70)" * (cast_expression "(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(char **)(param_2 + 0x68) + 0x70)" ( (binary_expression "*(char **)(param_2 + 0x68) + 0x70" (pointer_expression "*(char **)(param_2 + 0x68)" * (cast_expression "(char **)(param_2 + 0x68)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x68)" ( (binary_expression "param_2 + 0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (puVar4 == (undefined8 *)0x0) {\n                    \n    FUN_0040d630();\n    goto LAB_0040fc7c;\n  }" if (parenthesized_expression "(puVar4 == (undefined8 *)0x0)" ( (binary_expression "puVar4 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    FUN_0040d630();\n    goto LAB_0040fc7c;\n  }" { (expression_statement "FUN_0040d630();" (call_expression "FUN_0040d630()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0040fc7c;" goto statement_identifier ;) })) (expression_statement "pcVar7 = (char *)*puVar4;" (assignment_expression "pcVar7 = (char *)*puVar4" identifier = (cast_expression "(char *)*puVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (if_statement "if (pcVar7 != (char *)puVar4[1]) {\n    cVar2 = *pcVar7;\n    while( true ) {\n      if (cVar2 == '\0') {\n                    \n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }\n      pcVar10 = pcVar7 + 0x80;\n      pcVar7 = *(char **)(pcVar7 + 8);\n      sVar6 = strlen(pcVar7);\n      if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      uVar11 = local_50;\n      if ((char *)puVar4[1] == pcVar10) break;\n      uVar1 = local_50 + 1;\n      uVar9 = local_48;\n      if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }\n      if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }\n      *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n      *(undefined1 *)((long)local_58 + uVar1) = 0;\n      cVar2 = *pcVar10;\n      pcVar7 = pcVar10;\n      local_50 = uVar1;\n    }\n  }" if (parenthesized_expression "(pcVar7 != (char *)puVar4[1])" ( (binary_expression "pcVar7 != (char *)puVar4[1]" identifier != (cast_expression "(char *)puVar4[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) )) (compound_statement "{\n    cVar2 = *pcVar7;\n    while( true ) {\n      if (cVar2 == '\0') {\n                    \n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }\n      pcVar10 = pcVar7 + 0x80;\n      pcVar7 = *(char **)(pcVar7 + 8);\n      sVar6 = strlen(pcVar7);\n      if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      uVar11 = local_50;\n      if ((char *)puVar4[1] == pcVar10) break;\n      uVar1 = local_50 + 1;\n      uVar9 = local_48;\n      if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }\n      if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }\n      *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n      *(undefined1 *)((long)local_58 + uVar1) = 0;\n      cVar2 = *pcVar10;\n      pcVar7 = pcVar10;\n      local_50 = uVar1;\n    }\n  }" { (expression_statement "cVar2 = *pcVar7;" (assignment_expression "cVar2 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (while_statement "while( true ) {\n      if (cVar2 == '\0') {\n                    \n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }\n      pcVar10 = pcVar7 + 0x80;\n      pcVar7 = *(char **)(pcVar7 + 8);\n      sVar6 = strlen(pcVar7);\n      if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      uVar11 = local_50;\n      if ((char *)puVar4[1] == pcVar10) break;\n      uVar1 = local_50 + 1;\n      uVar9 = local_48;\n      if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }\n      if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }\n      *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n      *(undefined1 *)((long)local_58 + uVar1) = 0;\n      cVar2 = *pcVar10;\n      pcVar7 = pcVar10;\n      local_50 = uVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (cVar2 == '\0') {\n                    \n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }\n      pcVar10 = pcVar7 + 0x80;\n      pcVar7 = *(char **)(pcVar7 + 8);\n      sVar6 = strlen(pcVar7);\n      if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      uVar11 = local_50;\n      if ((char *)puVar4[1] == pcVar10) break;\n      uVar1 = local_50 + 1;\n      uVar9 = local_48;\n      if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }\n      if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }\n      *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n      *(undefined1 *)((long)local_58 + uVar1) = 0;\n      cVar2 = *pcVar10;\n      pcVar7 = pcVar10;\n      local_50 = uVar1;\n    }" { (if_statement "if (cVar2 == '\0') {\n                    \n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }" { (expression_statement "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);" (call_expression "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db)" identifier (argument_list "("../../gold/options.h",0x828,&DAT_0057d4db)" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (pointer_expression "&DAT_0057d4db" & identifier) ))) ;) })) (expression_statement "pcVar10 = pcVar7 + 0x80;" (assignment_expression "pcVar10 = pcVar7 + 0x80" identifier = (binary_expression "pcVar7 + 0x80" identifier + number_literal)) ;) (expression_statement "pcVar7 = *(char **)(pcVar7 + 8);" (assignment_expression "pcVar7 = *(char **)(pcVar7 + 8)" identifier = (pointer_expression "*(char **)(pcVar7 + 8)" * (cast_expression "(char **)(pcVar7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar7 + 8)" ( (binary_expression "pcVar7 + 8" identifier + number_literal) ))))) ;) (expression_statement "sVar6 = strlen(pcVar7);" (assignment_expression "sVar6 = strlen(pcVar7)" identifier = (call_expression "strlen(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (if_statement "if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }" if (parenthesized_expression "(0x7fffffffffffffff - local_50 < sVar6)" ( (binary_expression "0x7fffffffffffffff - local_50 < sVar6" (binary_expression "0x7fffffffffffffff - local_50" number_literal - identifier) < identifier) )) (compound_statement "{\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }" { (expression_statement "FUN_004dcc70("basic_string::append");" (call_expression "FUN_004dcc70("basic_string::append")" identifier (argument_list "("basic_string::append")" ( (string_literal ""basic_string::append"" " string_content ") ))) ;) })) (expression_statement "FUN_004a65c0(&local_58,pcVar7,sVar6);" (call_expression "FUN_004a65c0(&local_58,pcVar7,sVar6)" identifier (argument_list "(&local_58,pcVar7,sVar6)" ( (pointer_expression "&local_58" & identifier) , identifier , identifier ))) ;) (expression_statement "uVar11 = local_50;" (assignment_expression "uVar11 = local_50" identifier = identifier) ;) (if_statement "if ((char *)puVar4[1] == pcVar10) break;" if (parenthesized_expression "((char *)puVar4[1] == pcVar10)" ( (binary_expression "(char *)puVar4[1] == pcVar10" (cast_expression "(char *)puVar4[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ])) == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar1 = local_50 + 1;" (assignment_expression "uVar1 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;) (expression_statement "uVar9 = local_48;" (assignment_expression "uVar9 = local_48" identifier = identifier) ;) (if_statement "if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }" if (parenthesized_expression "(local_58 == &local_48)" ( (binary_expression "local_58 == &local_48" identifier == (pointer_expression "&local_48" & identifier)) )) (compound_statement "{\n        uVar9 = 0xf;\n      }" { (expression_statement "uVar9 = 0xf;" (assignment_expression "uVar9 = 0xf" identifier = number_literal) ;) })) (if_statement "if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }" if (parenthesized_expression "(uVar9 < uVar1)" ( (binary_expression "uVar9 < uVar1" identifier < identifier) )) (compound_statement "{\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }" { (expression_statement "FUN_004a5030(&local_58,local_50,0,0,1);" (call_expression "FUN_004a5030(&local_58,local_50,0,0,1)" identifier (argument_list "(&local_58,local_50,0,0,1)" ( (pointer_expression "&local_58" & identifier) , identifier , number_literal , number_literal , number_literal ))) ;) })) (expression_statement "*(undefined1 *)((long)local_58 + uVar11) = 0x20;" (assignment_expression "*(undefined1 *)((long)local_58 + uVar11) = 0x20" (pointer_expression "*(undefined1 *)((long)local_58 + uVar11)" * (cast_expression "(undefined1 *)((long)local_58 + uVar11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + uVar11)" ( (binary_expression "(long)local_58 + uVar11" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)local_58 + uVar1) = 0;" (assignment_expression "*(undefined1 *)((long)local_58 + uVar1) = 0" (pointer_expression "*(undefined1 *)((long)local_58 + uVar1)" * (cast_expression "(undefined1 *)((long)local_58 + uVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + uVar1)" ( (binary_expression "(long)local_58 + uVar1" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "cVar2 = *pcVar10;" (assignment_expression "cVar2 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (expression_statement "pcVar7 = pcVar10;" (assignment_expression "pcVar7 = pcVar10" identifier = identifier) ;) (expression_statement "local_50 = uVar1;" (assignment_expression "local_50 = uVar1" identifier = identifier) ;) })) })) (expression_statement "uVar11 = local_50;" (assignment_expression "uVar11 = local_50" identifier = identifier) ;) (expression_statement "puVar5 = local_58;" (assignment_expression "puVar5 = local_58" identifier = identifier) ;) (expression_statement "plVar8 = param_1 + 2;" (assignment_expression "plVar8 = param_1 + 2" identifier = (binary_expression "param_1 + 2" identifier + number_literal)) ;) (expression_statement "*param_1 = (long)plVar8;" (assignment_expression "*param_1 = (long)plVar8" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)plVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (if_statement "if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) && (local_58 == (ulong *)0x0)\n     ) {\n                    \n    FUN_004dcbb0("basic_string::_M_construct null not valid");\n  }" if (parenthesized_expression "(((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) && (local_58 == (ulong *)0x0)\n     )" ( (binary_expression "((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) && (local_58 == (ulong *)0x0)" (parenthesized_expression "((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0)" ( (binary_expression "(undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0" (cast_expression "(undefined1 *)((long)local_58 + local_50)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_58 + local_50)" ( (binary_expression "(long)local_58 + local_50" (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_58 == (ulong *)0x0)" ( (binary_expression "local_58 == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                    \n    FUN_004dcbb0("basic_string::_M_construct null not valid");\n  }" { (expression_statement "FUN_004dcbb0("basic_string::_M_construct null not valid");" (call_expression "FUN_004dcbb0("basic_string::_M_construct null not valid")" identifier (argument_list "("basic_string::_M_construct null not valid")" ( (string_literal ""basic_string::_M_construct null not valid"" " string_content ") ))) ;) })) (expression_statement "local_60 = local_50;" (assignment_expression "local_60 = local_50" identifier = identifier) ;) (if_statement "if (local_50 < 0x10) {\n    if (local_50 == 1) {\n      *(char *)(param_1 + 2) = (char)*local_58;\n    }\n    else if (local_50 != 0) goto LAB_0040f970;\n  }\n  else {\n                    \n    plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n    *param_1 = (long)plVar8;\n    param_1[2] = local_60;\nLAB_0040f970:\n    memcpy(plVar8,puVar5,uVar11);\n    plVar8 = (long *)*param_1;\n  }" if (parenthesized_expression "(local_50 < 0x10)" ( (binary_expression "local_50 < 0x10" identifier < number_literal) )) (compound_statement "{\n    if (local_50 == 1) {\n      *(char *)(param_1 + 2) = (char)*local_58;\n    }\n    else if (local_50 != 0) goto LAB_0040f970;\n  }" { (if_statement "if (local_50 == 1) {\n      *(char *)(param_1 + 2) = (char)*local_58;\n    }\n    else if (local_50 != 0) goto LAB_0040f970;" if (parenthesized_expression "(local_50 == 1)" ( (binary_expression "local_50 == 1" identifier == number_literal) )) (compound_statement "{\n      *(char *)(param_1 + 2) = (char)*local_58;\n    }" { (expression_statement "*(char *)(param_1 + 2) = (char)*local_58;" (assignment_expression "*(char *)(param_1 + 2) = (char)*local_58" (pointer_expression "*(char *)(param_1 + 2)" * (cast_expression "(char *)(param_1 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) = (cast_expression "(char)*local_58" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*local_58" * identifier))) ;) }) (else_clause "else if (local_50 != 0) goto LAB_0040f970;" else (if_statement "if (local_50 != 0) goto LAB_0040f970;" if (parenthesized_expression "(local_50 != 0)" ( (binary_expression "local_50 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0040f970;" goto statement_identifier ;)))) }) (else_clause "else {\n                    \n    plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n    *param_1 = (long)plVar8;\n    param_1[2] = local_60;\nLAB_0040f970:\n    memcpy(plVar8,puVar5,uVar11);\n    plVar8 = (long *)*param_1;\n  }" else (compound_statement "{\n                    \n    plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n    *param_1 = (long)plVar8;\n    param_1[2] = local_60;\nLAB_0040f970:\n    memcpy(plVar8,puVar5,uVar11);\n    plVar8 = (long *)*param_1;\n  }" { (expression_statement "plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);" (assignment_expression "plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0)" identifier = (cast_expression "(long *)FUN_004a4c70(param_1,&local_60,0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_004a4c70(param_1,&local_60,0)" identifier (argument_list "(param_1,&local_60,0)" ( identifier , (pointer_expression "&local_60" & identifier) , number_literal ))))) ;) (expression_statement "*param_1 = (long)plVar8;" (assignment_expression "*param_1 = (long)plVar8" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)plVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "param_1[2] = local_60;" (assignment_expression "param_1[2] = local_60" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_0040f970:\n    memcpy(plVar8,puVar5,uVar11);" statement_identifier : (expression_statement "memcpy(plVar8,puVar5,uVar11);" (call_expression "memcpy(plVar8,puVar5,uVar11)" identifier (argument_list "(plVar8,puVar5,uVar11)" ( identifier , identifier , identifier ))) ;)) (expression_statement "plVar8 = (long *)*param_1;" (assignment_expression "plVar8 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) }))) (expression_statement "param_1[1] = local_60;" (assignment_expression "param_1[1] = local_60" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((long)plVar8 + local_60) = 0;" (assignment_expression "*(undefined1 *)((long)plVar8 + local_60) = 0" (pointer_expression "*(undefined1 *)((long)plVar8 + local_60)" * (cast_expression "(undefined1 *)((long)plVar8 + local_60)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar8 + local_60)" ( (binary_expression "(long)plVar8 + local_60" (cast_expression "(long)plVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "FUN_004a59d0(param_1,param_1[1],0,1,0x29);" (call_expression "FUN_004a59d0(param_1,param_1[1],0,1,0x29)" identifier (argument_list "(param_1,param_1[1],0,1,0x29)" ( identifier , (subscript_expression "param_1[1]" identifier [ number_literal ]) , number_literal , number_literal , number_literal ))) ;) (labeled_statement "LAB_0040f851:\n  if (local_58 != &local_48) {\n    FUN_0049e340();\n  }" statement_identifier : (if_statement "if (local_58 != &local_48) {\n    FUN_0049e340();\n  }" if (parenthesized_expression "(local_58 != &local_48)" ( (binary_expression "local_58 != &local_48" identifier != (pointer_expression "&local_48" & identifier)) )) (compound_statement "{\n    FUN_0049e340();\n  }" { (expression_statement "FUN_0049e340();" (call_expression "FUN_0049e340()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return param_1;" return identifier ;) })))
(translation_unit (function_definition (sized_type_specifier long) (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (string_literal " string_content ") ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (pointer_expression & IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression LIT - IDENT) < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , LIT , LIT , LIT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , LIT , LIT , LIT ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (pointer_expression & IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression LIT - 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 { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT ))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (pointer_expression & IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression LIT - IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (string_literal " string_content ") ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) != (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (pointer_expression & IDENT) ))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (pointer_expression & IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression LIT - IDENT) < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , LIT , LIT , LIT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , LIT , LIT , LIT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "long * FUN_0040f6a0(long *param_1,long param_2)\n\n{\n  ulong uVar1;\n  char cVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  ulong *puVar5;\n  size_t sVar6;\n  char *pcVar7;\n  long *plVar8;\n  ulong uVar9;\n  char *pcVar10;\n  ulong uVar11;\n  ulong local_60;\n  ulong *local_58;\n  ulong local_50;\n  ulong local_48;\n  long lStack_40;\n  \n  lVar3 = *(long *)(*(char **)(param_2 + 0x68) + 0x70);\n  if (**(char **)(param_2 + 0x68) == '\0') {\n    if (lVar3 == 0) {\n      local_58 = &local_48;\n      FUN_001a61c0(&local_58,"Read_symbols group (");\n      if (**(char **)(param_2 + 0x68) != '\0') {\n                    \n                    \n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }\n      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);\n      pcVar7 = (char *)*puVar4;\n      if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }\n      uVar11 = local_50;\n      puVar5 = local_58;\n      plVar8 = param_1 + 2;\n      *param_1 = (long)plVar8;\n      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    \n                    \n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }\n      local_60 = local_50;\n      if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    \n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }\n      param_1[1] = local_60;\n      *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    \n      FUN_004a59d0(param_1,param_1[1],0,1,0x29);\n      goto LAB_0040f851;\n    }\n  }\n  else if (lVar3 == 0) {\n    local_58 = &local_48;\n    FUN_001a61c0(&local_58,"Read_symbols ");\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\n    if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\nLAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);\n    sVar6 = strlen(pcVar7);\n    if (sVar6 <= uVar11) {\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }\n                    \n                    \n    FUN_004dcc70("basic_string::append");\n  }\n  local_58 = &local_48;\n  FUN_001a61c0(&local_58,"Read_symbols lib (");\n  if (**(char **)(param_2 + 0x68) != '\0') {\nLAB_0040fc7c:\n                    \n    FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);\n  }\n  puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70);\n  if (puVar4 == (undefined8 *)0x0) {\n                    \n    FUN_0040d630();\n    goto LAB_0040fc7c;\n  }\n  pcVar7 = (char *)*puVar4;\n  if (pcVar7 != (char *)puVar4[1]) {\n    cVar2 = *pcVar7;\n    while( true ) {\n      if (cVar2 == '\0') {\n                    \n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }\n      pcVar10 = pcVar7 + 0x80;\n      pcVar7 = *(char **)(pcVar7 + 8);\n      sVar6 = strlen(pcVar7);\n      if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      uVar11 = local_50;\n      if ((char *)puVar4[1] == pcVar10) break;\n      uVar1 = local_50 + 1;\n      uVar9 = local_48;\n      if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }\n      if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }\n      *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n      *(undefined1 *)((long)local_58 + uVar1) = 0;\n      cVar2 = *pcVar10;\n      pcVar7 = pcVar10;\n      local_50 = uVar1;\n    }\n  }\n  uVar11 = local_50;\n  puVar5 = local_58;\n  plVar8 = param_1 + 2;\n  *param_1 = (long)plVar8;\n  if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) && (local_58 == (ulong *)0x0)\n     ) {\n                    \n    FUN_004dcbb0("basic_string::_M_construct null not valid");\n  }\n  local_60 = local_50;\n  if (local_50 < 0x10) {\n    if (local_50 == 1) {\n      *(char *)(param_1 + 2) = (char)*local_58;\n    }\n    else if (local_50 != 0) goto LAB_0040f970;\n  }\n  else {\n                    \n    plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n    *param_1 = (long)plVar8;\n    param_1[2] = local_60;\nLAB_0040f970:\n    memcpy(plVar8,puVar5,uVar11);\n    plVar8 = (long *)*param_1;\n  }\n  param_1[1] = local_60;\n  *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    \n  FUN_004a59d0(param_1,param_1[1],0,1,0x29);\nLAB_0040f851:\n  if (local_58 != &local_48) {\n    FUN_0049e340();\n  }\n  return param_1;\n}" (sized_type_specifier "long" (long "long")) (pointer_declarator "* FUN_0040f6a0(long *param_1,long param_2)" (* "*") (function_declarator "FUN_0040f6a0(long *param_1,long param_2)" (identifier "FUN_0040f6a0") (parameter_list "(long *param_1,long param_2)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) () ")")))) (compound_statement "{\n  ulong uVar1;\n  char cVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  ulong *puVar5;\n  size_t sVar6;\n  char *pcVar7;\n  long *plVar8;\n  ulong uVar9;\n  char *pcVar10;\n  ulong uVar11;\n  ulong local_60;\n  ulong *local_58;\n  ulong local_50;\n  ulong local_48;\n  long lStack_40;\n  \n  lVar3 = *(long *)(*(char **)(param_2 + 0x68) + 0x70);\n  if (**(char **)(param_2 + 0x68) == '\0') {\n    if (lVar3 == 0) {\n      local_58 = &local_48;\n      FUN_001a61c0(&local_58,"Read_symbols group (");\n      if (**(char **)(param_2 + 0x68) != '\0') {\n                    \n                    \n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }\n      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);\n      pcVar7 = (char *)*puVar4;\n      if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }\n      uVar11 = local_50;\n      puVar5 = local_58;\n      plVar8 = param_1 + 2;\n      *param_1 = (long)plVar8;\n      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    \n                    \n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }\n      local_60 = local_50;\n      if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    \n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }\n      param_1[1] = local_60;\n      *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    \n      FUN_004a59d0(param_1,param_1[1],0,1,0x29);\n      goto LAB_0040f851;\n    }\n  }\n  else if (lVar3 == 0) {\n    local_58 = &local_48;\n    FUN_001a61c0(&local_58,"Read_symbols ");\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\n    if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\nLAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);\n    sVar6 = strlen(pcVar7);\n    if (sVar6 <= uVar11) {\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }\n                    \n                    \n    FUN_004dcc70("basic_string::append");\n  }\n  local_58 = &local_48;\n  FUN_001a61c0(&local_58,"Read_symbols lib (");\n  if (**(char **)(param_2 + 0x68) != '\0') {\nLAB_0040fc7c:\n                    \n    FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);\n  }\n  puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70);\n  if (puVar4 == (undefined8 *)0x0) {\n                    \n    FUN_0040d630();\n    goto LAB_0040fc7c;\n  }\n  pcVar7 = (char *)*puVar4;\n  if (pcVar7 != (char *)puVar4[1]) {\n    cVar2 = *pcVar7;\n    while( true ) {\n      if (cVar2 == '\0') {\n                    \n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }\n      pcVar10 = pcVar7 + 0x80;\n      pcVar7 = *(char **)(pcVar7 + 8);\n      sVar6 = strlen(pcVar7);\n      if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      uVar11 = local_50;\n      if ((char *)puVar4[1] == pcVar10) break;\n      uVar1 = local_50 + 1;\n      uVar9 = local_48;\n      if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }\n      if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }\n      *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n      *(undefined1 *)((long)local_58 + uVar1) = 0;\n      cVar2 = *pcVar10;\n      pcVar7 = pcVar10;\n      local_50 = uVar1;\n    }\n  }\n  uVar11 = local_50;\n  puVar5 = local_58;\n  plVar8 = param_1 + 2;\n  *param_1 = (long)plVar8;\n  if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) && (local_58 == (ulong *)0x0)\n     ) {\n                    \n    FUN_004dcbb0("basic_string::_M_construct null not valid");\n  }\n  local_60 = local_50;\n  if (local_50 < 0x10) {\n    if (local_50 == 1) {\n      *(char *)(param_1 + 2) = (char)*local_58;\n    }\n    else if (local_50 != 0) goto LAB_0040f970;\n  }\n  else {\n                    \n    plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n    *param_1 = (long)plVar8;\n    param_1[2] = local_60;\nLAB_0040f970:\n    memcpy(plVar8,puVar5,uVar11);\n    plVar8 = (long *)*param_1;\n  }\n  param_1[1] = local_60;\n  *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    \n  FUN_004a59d0(param_1,param_1[1],0,1,0x29);\nLAB_0040f851:\n  if (local_58 != &local_48) {\n    FUN_0049e340();\n  }\n  return param_1;\n}" ({ "{") (declaration "ulong uVar1;" (type_identifier "ulong") (identifier "uVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "undefined8 *puVar4;" (type_identifier "undefined8") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "ulong *puVar5;" (type_identifier "ulong") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "size_t sVar6;" (primitive_type "size_t") (identifier "sVar6") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "long *plVar8;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar8" (* "*") (identifier "plVar8")) (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "ulong uVar11;" (type_identifier "ulong") (identifier "uVar11") (; ";")) (declaration "ulong local_60;" (type_identifier "ulong") (identifier "local_60") (; ";")) (declaration "ulong *local_58;" (type_identifier "ulong") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "ulong local_50;" (type_identifier "ulong") (identifier "local_50") (; ";")) (declaration "ulong local_48;" (type_identifier "ulong") (identifier "local_48") (; ";")) (declaration "long lStack_40;" (sized_type_specifier "long" (long "long")) (identifier "lStack_40") (; ";")) (expression_statement "lVar3 = *(long *)(*(char **)(param_2 + 0x68) + 0x70);" (assignment_expression "lVar3 = *(long *)(*(char **)(param_2 + 0x68) + 0x70)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(*(char **)(param_2 + 0x68) + 0x70)" (* "*") (cast_expression "(long *)(*(char **)(param_2 + 0x68) + 0x70)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(char **)(param_2 + 0x68) + 0x70)" (( "(") (binary_expression "*(char **)(param_2 + 0x68) + 0x70" (pointer_expression "*(char **)(param_2 + 0x68)" (* "*") (cast_expression "(char **)(param_2 + 0x68)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x68)" (( "(") (binary_expression "param_2 + 0x68" (identifier "param_2") (+ "+") (number_literal "0x68")) () ")")))) (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (if_statement "if (**(char **)(param_2 + 0x68) == '\0') {\n    if (lVar3 == 0) {\n      local_58 = &local_48;\n      FUN_001a61c0(&local_58,"Read_symbols group (");\n      if (**(char **)(param_2 + 0x68) != '\0') {\n                    \n                    \n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }\n      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);\n      pcVar7 = (char *)*puVar4;\n      if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }\n      uVar11 = local_50;\n      puVar5 = local_58;\n      plVar8 = param_1 + 2;\n      *param_1 = (long)plVar8;\n      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    \n                    \n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }\n      local_60 = local_50;\n      if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    \n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }\n      param_1[1] = local_60;\n      *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    \n      FUN_004a59d0(param_1,param_1[1],0,1,0x29);\n      goto LAB_0040f851;\n    }\n  }\n  else if (lVar3 == 0) {\n    local_58 = &local_48;\n    FUN_001a61c0(&local_58,"Read_symbols ");\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\n    if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\nLAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);\n    sVar6 = strlen(pcVar7);\n    if (sVar6 <= uVar11) {\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }\n                    \n                    \n    FUN_004dcc70("basic_string::append");\n  }" (if "if") (parenthesized_expression "(**(char **)(param_2 + 0x68) == '\0')" (( "(") (binary_expression "**(char **)(param_2 + 0x68) == '\0'" (pointer_expression "**(char **)(param_2 + 0x68)" (* "*") (pointer_expression "*(char **)(param_2 + 0x68)" (* "*") (cast_expression "(char **)(param_2 + 0x68)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x68)" (( "(") (binary_expression "param_2 + 0x68" (identifier "param_2") (+ "+") (number_literal "0x68")) () ")"))))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    if (lVar3 == 0) {\n      local_58 = &local_48;\n      FUN_001a61c0(&local_58,"Read_symbols group (");\n      if (**(char **)(param_2 + 0x68) != '\0') {\n                    \n                    \n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }\n      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);\n      pcVar7 = (char *)*puVar4;\n      if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }\n      uVar11 = local_50;\n      puVar5 = local_58;\n      plVar8 = param_1 + 2;\n      *param_1 = (long)plVar8;\n      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    \n                    \n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }\n      local_60 = local_50;\n      if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    \n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }\n      param_1[1] = local_60;\n      *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    \n      FUN_004a59d0(param_1,param_1[1],0,1,0x29);\n      goto LAB_0040f851;\n    }\n  }" ({ "{") (if_statement "if (lVar3 == 0) {\n      local_58 = &local_48;\n      FUN_001a61c0(&local_58,"Read_symbols group (");\n      if (**(char **)(param_2 + 0x68) != '\0') {\n                    \n                    \n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }\n      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);\n      pcVar7 = (char *)*puVar4;\n      if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }\n      uVar11 = local_50;\n      puVar5 = local_58;\n      plVar8 = param_1 + 2;\n      *param_1 = (long)plVar8;\n      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    \n                    \n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }\n      local_60 = local_50;\n      if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    \n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }\n      param_1[1] = local_60;\n      *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    \n      FUN_004a59d0(param_1,param_1[1],0,1,0x29);\n      goto LAB_0040f851;\n    }" (if "if") (parenthesized_expression "(lVar3 == 0)" (( "(") (binary_expression "lVar3 == 0" (identifier "lVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_58 = &local_48;\n      FUN_001a61c0(&local_58,"Read_symbols group (");\n      if (**(char **)(param_2 + 0x68) != '\0') {\n                    \n                    \n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }\n      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);\n      pcVar7 = (char *)*puVar4;\n      if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }\n      uVar11 = local_50;\n      puVar5 = local_58;\n      plVar8 = param_1 + 2;\n      *param_1 = (long)plVar8;\n      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    \n                    \n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }\n      local_60 = local_50;\n      if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    \n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }\n      param_1[1] = local_60;\n      *(undefined1 *)((long)plVar8 + local_60) = 0;\n                    \n      FUN_004a59d0(param_1,param_1[1],0,1,0x29);\n      goto LAB_0040f851;\n    }" ({ "{") (expression_statement "local_58 = &local_48;" (assignment_expression "local_58 = &local_48" (identifier "local_58") (= "=") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) (; ";")) (expression_statement "FUN_001a61c0(&local_58,"Read_symbols group (");" (call_expression "FUN_001a61c0(&local_58,"Read_symbols group (")" (identifier "FUN_001a61c0") (argument_list "(&local_58,"Read_symbols group (")" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (string_literal ""Read_symbols group ("" (" """) (string_content "Read_symbols group (") (" """)) () ")"))) (; ";")) (if_statement "if (**(char **)(param_2 + 0x68) != '\0') {\n                    \n                    \n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }" (if "if") (parenthesized_expression "(**(char **)(param_2 + 0x68) != '\0')" (( "(") (binary_expression "**(char **)(param_2 + 0x68) != '\0'" (pointer_expression "**(char **)(param_2 + 0x68)" (* "*") (pointer_expression "*(char **)(param_2 + 0x68)" (* "*") (cast_expression "(char **)(param_2 + 0x68)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x68)" (( "(") (binary_expression "param_2 + 0x68" (identifier "param_2") (+ "+") (number_literal "0x68")) () ")"))))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n                    \n        FUN_00352af0("../../gold/options.h",0x830,"group");\n      }" ({ "{") (expression_statement "FUN_00352af0("../../gold/options.h",0x830,"group");" (call_expression "FUN_00352af0("../../gold/options.h",0x830,"group")" (identifier "FUN_00352af0") (argument_list "("../../gold/options.h",0x830,"group")" (( "(") (string_literal ""../../gold/options.h"" (" """) (string_content "../../gold/options.h") (" """)) (, ",") (number_literal "0x830") (, ",") (string_literal ""group"" (" """) (string_content "group") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);" (assignment_expression "puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68)" (* "*") (cast_expression "(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(char **)(param_2 + 0x68) + 0x68)" (( "(") (binary_expression "*(char **)(param_2 + 0x68) + 0x68" (pointer_expression "*(char **)(param_2 + 0x68)" (* "*") (cast_expression "(char **)(param_2 + 0x68)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x68)" (( "(") (binary_expression "param_2 + 0x68" (identifier "param_2") (+ "+") (number_literal "0x68")) () ")")))) (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (expression_statement "pcVar7 = (char *)*puVar4;" (assignment_expression "pcVar7 = (char *)*puVar4" (identifier "pcVar7") (= "=") (cast_expression "(char *)*puVar4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")))) (; ";")) (if_statement "if ((char *)puVar4[1] != pcVar7) {\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }" (if "if") (parenthesized_expression "((char *)puVar4[1] != pcVar7)" (( "(") (binary_expression "(char *)puVar4[1] != pcVar7" (cast_expression "(char *)puVar4[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (identifier "pcVar7")) () ")")) (compound_statement "{\n        cVar2 = *pcVar7;\n        while( true ) {\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }\n      }" ({ "{") (expression_statement "cVar2 = *pcVar7;" (assignment_expression "cVar2 = *pcVar7" (identifier "cVar2") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (while_statement "while( true ) {\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }\n          pcVar10 = pcVar7 + 0x80;\n          pcVar7 = *(char **)(pcVar7 + 8);\n          sVar6 = strlen(pcVar7);\n          if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }\n                    \n          FUN_004a65c0(&local_58,pcVar7,sVar6);\n          uVar11 = local_50;\n          if ((char *)puVar4[1] == pcVar10) break;\n          uVar1 = local_50 + 1;\n          uVar9 = local_48;\n          if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }\n          if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }\n          *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n          *(undefined1 *)((long)local_58 + uVar1) = 0;\n          cVar2 = *pcVar10;\n          pcVar7 = pcVar10;\n          local_50 = uVar1;\n        }" ({ "{") (if_statement "if (cVar2 == '\0') {\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n                    \n            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n          }" ({ "{") (expression_statement "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);" (call_expression "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db)" (identifier "FUN_00352af0") (argument_list "("../../gold/options.h",0x828,&DAT_0057d4db)" (( "(") (string_literal ""../../gold/options.h"" (" """) (string_content "../../gold/options.h") (" """)) (, ",") (number_literal "0x828") (, ",") (pointer_expression "&DAT_0057d4db" (& "&") (identifier "DAT_0057d4db")) () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar10 = pcVar7 + 0x80;" (assignment_expression "pcVar10 = pcVar7 + 0x80" (identifier "pcVar10") (= "=") (binary_expression "pcVar7 + 0x80" (identifier "pcVar7") (+ "+") (number_literal "0x80"))) (; ";")) (expression_statement "pcVar7 = *(char **)(pcVar7 + 8);" (assignment_expression "pcVar7 = *(char **)(pcVar7 + 8)" (identifier "pcVar7") (= "=") (pointer_expression "*(char **)(pcVar7 + 8)" (* "*") (cast_expression "(char **)(pcVar7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar7 + 8)" (( "(") (binary_expression "pcVar7 + 8" (identifier "pcVar7") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "sVar6 = strlen(pcVar7);" (assignment_expression "sVar6 = strlen(pcVar7)" (identifier "sVar6") (= "=") (call_expression "strlen(pcVar7)" (identifier "strlen") (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")")))) (; ";")) (if_statement "if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n            FUN_004dcc70("basic_string::append");\n          }" (if "if") (parenthesized_expression "(0x7fffffffffffffff - local_50 < sVar6)" (( "(") (binary_expression "0x7fffffffffffffff - local_50 < sVar6" (binary_expression "0x7fffffffffffffff - local_50" (number_literal "0x7fffffffffffffff") (- "-") (identifier "local_50")) (< "<") (identifier "sVar6")) () ")")) (compound_statement "{\n                    \n            FUN_004dcc70("basic_string::append");\n          }" ({ "{") (expression_statement "FUN_004dcc70("basic_string::append");" (call_expression "FUN_004dcc70("basic_string::append")" (identifier "FUN_004dcc70") (argument_list "("basic_string::append")" (( "(") (string_literal ""basic_string::append"" (" """) (string_content "basic_string::append") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_004a65c0(&local_58,pcVar7,sVar6);" (call_expression "FUN_004a65c0(&local_58,pcVar7,sVar6)" (identifier "FUN_004a65c0") (argument_list "(&local_58,pcVar7,sVar6)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "pcVar7") (, ",") (identifier "sVar6") () ")"))) (; ";")) (expression_statement "uVar11 = local_50;" (assignment_expression "uVar11 = local_50" (identifier "uVar11") (= "=") (identifier "local_50")) (; ";")) (if_statement "if ((char *)puVar4[1] == pcVar10) break;" (if "if") (parenthesized_expression "((char *)puVar4[1] == pcVar10)" (( "(") (binary_expression "(char *)puVar4[1] == pcVar10" (cast_expression "(char *)puVar4[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) (== "==") (identifier "pcVar10")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar1 = local_50 + 1;" (assignment_expression "uVar1 = local_50 + 1" (identifier "uVar1") (= "=") (binary_expression "local_50 + 1" (identifier "local_50") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar9 = local_48;" (assignment_expression "uVar9 = local_48" (identifier "uVar9") (= "=") (identifier "local_48")) (; ";")) (if_statement "if (local_58 == &local_48) {\n            uVar9 = 0xf;\n          }" (if "if") (parenthesized_expression "(local_58 == &local_48)" (( "(") (binary_expression "local_58 == &local_48" (identifier "local_58") (== "==") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) () ")")) (compound_statement "{\n            uVar9 = 0xf;\n          }" ({ "{") (expression_statement "uVar9 = 0xf;" (assignment_expression "uVar9 = 0xf" (identifier "uVar9") (= "=") (number_literal "0xf")) (; ";")) (} "}"))) (if_statement "if (uVar9 < uVar1) {\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }" (if "if") (parenthesized_expression "(uVar9 < uVar1)" (( "(") (binary_expression "uVar9 < uVar1" (identifier "uVar9") (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n            FUN_004a5030(&local_58,local_50,0,0,1);\n          }" ({ "{") (expression_statement "FUN_004a5030(&local_58,local_50,0,0,1);" (call_expression "FUN_004a5030(&local_58,local_50,0,0,1)" (identifier "FUN_004a5030") (argument_list "(&local_58,local_50,0,0,1)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "local_50") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((long)local_58 + uVar11) = 0x20;" (assignment_expression "*(undefined1 *)((long)local_58 + uVar11) = 0x20" (pointer_expression "*(undefined1 *)((long)local_58 + uVar11)" (* "*") (cast_expression "(undefined1 *)((long)local_58 + uVar11)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_58 + uVar11)" (( "(") (binary_expression "(long)local_58 + uVar11" (cast_expression "(long)local_58" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_58")) (+ "+") (identifier "uVar11")) () ")")))) (= "=") (number_literal "0x20")) (; ";")) (expression_statement "*(undefined1 *)((long)local_58 + uVar1) = 0;" (assignment_expression "*(undefined1 *)((long)local_58 + uVar1) = 0" (pointer_expression "*(undefined1 *)((long)local_58 + uVar1)" (* "*") (cast_expression "(undefined1 *)((long)local_58 + uVar1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_58 + uVar1)" (( "(") (binary_expression "(long)local_58 + uVar1" (cast_expression "(long)local_58" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_58")) (+ "+") (identifier "uVar1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar2 = *pcVar10;" (assignment_expression "cVar2 = *pcVar10" (identifier "cVar2") (= "=") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10"))) (; ";")) (expression_statement "pcVar7 = pcVar10;" (assignment_expression "pcVar7 = pcVar10" (identifier "pcVar7") (= "=") (identifier "pcVar10")) (; ";")) (expression_statement "local_50 = uVar1;" (assignment_expression "local_50 = uVar1" (identifier "local_50") (= "=") (identifier "uVar1")) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar11 = local_50;" (assignment_expression "uVar11 = local_50" (identifier "uVar11") (= "=") (identifier "local_50")) (; ";")) (expression_statement "puVar5 = local_58;" (assignment_expression "puVar5 = local_58" (identifier "puVar5") (= "=") (identifier "local_58")) (; ";")) (expression_statement "plVar8 = param_1 + 2;" (assignment_expression "plVar8 = param_1 + 2" (identifier "plVar8") (= "=") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*param_1 = (long)plVar8;" (assignment_expression "*param_1 = (long)plVar8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(long)plVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar8"))) (; ";")) (if_statement "if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)) {\n                    \n                    \n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }" (if "if") (parenthesized_expression "(((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0))" (( "(") (binary_expression "((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&\n         (local_58 == (ulong *)0x0)" (parenthesized_expression "((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0)" (( "(") (binary_expression "(undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0" (cast_expression "(undefined1 *)((long)local_58 + local_50)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_58 + local_50)" (( "(") (binary_expression "(long)local_58 + local_50" (cast_expression "(long)local_58" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_58")) (+ "+") (identifier "local_50")) () ")"))) (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_58 == (ulong *)0x0)" (( "(") (binary_expression "local_58 == (ulong *)0x0" (identifier "local_58") (== "==") (cast_expression "(ulong *)0x0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n                    \n                    \n        FUN_004dcbb0("basic_string::_M_construct null not valid");\n      }" ({ "{") (expression_statement "FUN_004dcbb0("basic_string::_M_construct null not valid");" (call_expression "FUN_004dcbb0("basic_string::_M_construct null not valid")" (identifier "FUN_004dcbb0") (argument_list "("basic_string::_M_construct null not valid")" (( "(") (string_literal ""basic_string::_M_construct null not valid"" (" """) (string_content "basic_string::_M_construct null not valid") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "local_60 = local_50;" (assignment_expression "local_60 = local_50" (identifier "local_60") (= "=") (identifier "local_50")) (; ";")) (if_statement "if (local_50 < 0x10) {\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }\n      else {\n                    \n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }" (if "if") (parenthesized_expression "(local_50 < 0x10)" (( "(") (binary_expression "local_50 < 0x10" (identifier "local_50") (< "<") (number_literal "0x10")) () ")")) (compound_statement "{\n        if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;\n      }" ({ "{") (if_statement "if (local_50 == 1) {\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }\n        else if (local_50 != 0) goto LAB_0040fb81;" (if "if") (parenthesized_expression "(local_50 == 1)" (( "(") (binary_expression "local_50 == 1" (identifier "local_50") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          *(char *)(param_1 + 2) = (char)*local_58;\n        }" ({ "{") (expression_statement "*(char *)(param_1 + 2) = (char)*local_58;" (assignment_expression "*(char *)(param_1 + 2) = (char)*local_58" (pointer_expression "*(char *)(param_1 + 2)" (* "*") (cast_expression "(char *)(param_1 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (= "=") (cast_expression "(char)*local_58" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*local_58" (* "*") (identifier "local_58")))) (; ";")) (} "}")) (else_clause "else if (local_50 != 0) goto LAB_0040fb81;" (else "else") (if_statement "if (local_50 != 0) goto LAB_0040fb81;" (if "if") (parenthesized_expression "(local_50 != 0)" (( "(") (binary_expression "local_50 != 0" (identifier "local_50") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0040fb81;" (goto "goto") (statement_identifier "LAB_0040fb81") (; ";"))))) (} "}")) (else_clause "else {\n                    \n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }" (else "else") (compound_statement "{\n                    \n        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n        *param_1 = (long)plVar8;\n        param_1[2] = local_60;\nLAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);\n        plVar8 = (long *)*param_1;\n      }" ({ "{") (expression_statement "plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);" (assignment_expression "plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0)" (identifier "plVar8") (= "=") (cast_expression "(long *)FUN_004a4c70(param_1,&local_60,0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_004a4c70(param_1,&local_60,0)" (identifier "FUN_004a4c70") (argument_list "(param_1,&local_60,0)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_60" (& "&") (identifier "local_60")) (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "*param_1 = (long)plVar8;" (assignment_expression "*param_1 = (long)plVar8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(long)plVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar8"))) (; ";")) (expression_statement "param_1[2] = local_60;" (assignment_expression "param_1[2] = local_60" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_60")) (; ";")) (labeled_statement "LAB_0040fb81:\n        memcpy(plVar8,puVar5,uVar11);" (statement_identifier "LAB_0040fb81") (: ":") (expression_statement "memcpy(plVar8,puVar5,uVar11);" (call_expression "memcpy(plVar8,puVar5,uVar11)" (identifier "memcpy") (argument_list "(plVar8,puVar5,uVar11)" (( "(") (identifier "plVar8") (, ",") (identifier "puVar5") (, ",") (identifier "uVar11") () ")"))) (; ";"))) (expression_statement "plVar8 = (long *)*param_1;" (assignment_expression "plVar8 = (long *)*param_1" (identifier "plVar8") (= "=") (cast_expression "(long *)*param_1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (} "}")))) (expression_statement "param_1[1] = local_60;" (assignment_expression "param_1[1] = local_60" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_60")) (; ";")) (expression_statement "*(undefined1 *)((long)plVar8 + local_60) = 0;" (assignment_expression "*(undefined1 *)((long)plVar8 + local_60) = 0" (pointer_expression "*(undefined1 *)((long)plVar8 + local_60)" (* "*") (cast_expression "(undefined1 *)((long)plVar8 + local_60)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar8 + local_60)" (( "(") (binary_expression "(long)plVar8 + local_60" (cast_expression "(long)plVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar8")) (+ "+") (identifier "local_60")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_004a59d0(param_1,param_1[1],0,1,0x29);" (call_expression "FUN_004a59d0(param_1,param_1[1],0,1,0x29)" (identifier "FUN_004a59d0") (argument_list "(param_1,param_1[1],0,1,0x29)" (( "(") (identifier "param_1") (, ",") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "0x29") () ")"))) (; ";")) (goto_statement "goto LAB_0040f851;" (goto "goto") (statement_identifier "LAB_0040f851") (; ";")) (} "}"))) (} "}")) (else_clause "else if (lVar3 == 0) {\n    local_58 = &local_48;\n    FUN_001a61c0(&local_58,"Read_symbols ");\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\n    if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\nLAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);\n    sVar6 = strlen(pcVar7);\n    if (sVar6 <= uVar11) {\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }\n                    \n                    \n    FUN_004dcc70("basic_string::append");\n  }" (else "else") (if_statement "if (lVar3 == 0) {\n    local_58 = &local_48;\n    FUN_001a61c0(&local_58,"Read_symbols ");\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\n    if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\nLAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);\n    sVar6 = strlen(pcVar7);\n    if (sVar6 <= uVar11) {\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }\n                    \n                    \n    FUN_004dcc70("basic_string::append");\n  }" (if "if") (parenthesized_expression "(lVar3 == 0)" (( "(") (binary_expression "lVar3 == 0" (identifier "lVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_58 = &local_48;\n    FUN_001a61c0(&local_58,"Read_symbols ");\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\n    if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }\n    pcVar7 = *(char **)(param_2 + 0x68);\n    if (*pcVar7 == '\0') {\n                    \n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }\n    uVar11 = 0x7fffffffffffffff - local_50;\nLAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);\n    sVar6 = strlen(pcVar7);\n    if (sVar6 <= uVar11) {\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }\n                    \n                    \n    FUN_004dcc70("basic_string::append");\n  }" ({ "{") (expression_statement "local_58 = &local_48;" (assignment_expression "local_58 = &local_48" (identifier "local_58") (= "=") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) (; ";")) (expression_statement "FUN_001a61c0(&local_58,"Read_symbols ");" (call_expression "FUN_001a61c0(&local_58,"Read_symbols ")" (identifier "FUN_001a61c0") (argument_list "(&local_58,"Read_symbols ")" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (string_literal ""Read_symbols "" (" """) (string_content "Read_symbols ") (" """)) () ")"))) (; ";")) (expression_statement "pcVar7 = *(char **)(param_2 + 0x68);" (assignment_expression "pcVar7 = *(char **)(param_2 + 0x68)" (identifier "pcVar7") (= "=") (pointer_expression "*(char **)(param_2 + 0x68)" (* "*") (cast_expression "(char **)(param_2 + 0x68)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x68)" (( "(") (binary_expression "param_2 + 0x68" (identifier "param_2") (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (if_statement "if (*pcVar7 == '\0') {\n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }" (if "if") (parenthesized_expression "(*pcVar7 == '\0')" (( "(") (binary_expression "*pcVar7 == '\0'" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }" ({ "{") (expression_statement "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);" (call_expression "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db)" (identifier "FUN_00352af0") (argument_list "("../../gold/options.h",0x828,&DAT_0057d4db)" (( "(") (string_literal ""../../gold/options.h"" (" """) (string_content "../../gold/options.h") (" """)) (, ",") (number_literal "0x828") (, ",") (pointer_expression "&DAT_0057d4db" (& "&") (identifier "DAT_0057d4db")) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar11 = 0x7fffffffffffffff - local_50;" (assignment_expression "uVar11 = 0x7fffffffffffffff - local_50" (identifier "uVar11") (= "=") (binary_expression "0x7fffffffffffffff - local_50" (number_literal "0x7fffffffffffffff") (- "-") (identifier "local_50"))) (; ";")) (if_statement "if (*(int *)(pcVar7 + 0x28) == 1) {\n      if (uVar11 < 2) {\n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }\n    else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }" (if "if") (parenthesized_expression "(*(int *)(pcVar7 + 0x28) == 1)" (( "(") (binary_expression "*(int *)(pcVar7 + 0x28) == 1" (pointer_expression "*(int *)(pcVar7 + 0x28)" (* "*") (cast_expression "(int *)(pcVar7 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 0x28)" (( "(") (binary_expression "pcVar7 + 0x28" (identifier "pcVar7") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      if (uVar11 < 2) {\n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,&DAT_0056d435,2);\n    }" ({ "{") (if_statement "if (uVar11 < 2) {\n                    \n        FUN_004dcc70("basic_string::append");\n      }" (if "if") (parenthesized_expression "(uVar11 < 2)" (( "(") (binary_expression "uVar11 < 2" (identifier "uVar11") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n                    \n        FUN_004dcc70("basic_string::append");\n      }" ({ "{") (expression_statement "FUN_004dcc70("basic_string::append");" (call_expression "FUN_004dcc70("basic_string::append")" (identifier "FUN_004dcc70") (argument_list "("basic_string::append")" (( "(") (string_literal ""basic_string::append"" (" """) (string_content "basic_string::append") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_004a65c0(&local_58,&DAT_0056d435,2);" (call_expression "FUN_004a65c0(&local_58,&DAT_0056d435,2)" (identifier "FUN_004a65c0") (argument_list "(&local_58,&DAT_0056d435,2)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (pointer_expression "&DAT_0056d435" (& "&") (identifier "DAT_0056d435")) (, ",") (number_literal "2") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }" (else "else") (compound_statement "{\n      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;\n      if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n      FUN_004a65c0(&local_58,&DAT_0057d35e,3);\n    }" ({ "{") (if_statement "if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;" (if "if") (parenthesized_expression "(*(int *)(pcVar7 + 0x28) != 2)" (( "(") (binary_expression "*(int *)(pcVar7 + 0x28) != 2" (pointer_expression "*(int *)(pcVar7 + 0x28)" (* "*") (cast_expression "(int *)(pcVar7 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 0x28)" (( "(") (binary_expression "pcVar7 + 0x28" (identifier "pcVar7") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "2")) () ")")) (goto_statement "goto LAB_0040f8db;" (goto "goto") (statement_identifier "LAB_0040f8db") (; ";"))) (if_statement "if (uVar11 < 3) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }" (if "if") (parenthesized_expression "(uVar11 < 3)" (( "(") (binary_expression "uVar11 < 3" (identifier "uVar11") (< "<") (number_literal "3")) () ")")) (compound_statement "{\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }" ({ "{") (expression_statement "FUN_004dcc70("basic_string::append");" (call_expression "FUN_004dcc70("basic_string::append")" (identifier "FUN_004dcc70") (argument_list "("basic_string::append")" (( "(") (string_literal ""basic_string::append"" (" """) (string_content "basic_string::append") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_004a65c0(&local_58,&DAT_0057d35e,3);" (call_expression "FUN_004a65c0(&local_58,&DAT_0057d35e,3)" (identifier "FUN_004a65c0") (argument_list "(&local_58,&DAT_0057d35e,3)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (pointer_expression "&DAT_0057d35e" (& "&") (identifier "DAT_0057d35e")) (, ",") (number_literal "3") () ")"))) (; ";")) (} "}")))) (expression_statement "pcVar7 = *(char **)(param_2 + 0x68);" (assignment_expression "pcVar7 = *(char **)(param_2 + 0x68)" (identifier "pcVar7") (= "=") (pointer_expression "*(char **)(param_2 + 0x68)" (* "*") (cast_expression "(char **)(param_2 + 0x68)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x68)" (( "(") (binary_expression "param_2 + 0x68" (identifier "param_2") (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (if_statement "if (*pcVar7 == '\0') {\n                    \n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }" (if "if") (parenthesized_expression "(*pcVar7 == '\0')" (( "(") (binary_expression "*pcVar7 == '\0'" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n                    \n      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n    }" ({ "{") (expression_statement "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);" (call_expression "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db)" (identifier "FUN_00352af0") (argument_list "("../../gold/options.h",0x828,&DAT_0057d4db)" (( "(") (string_literal ""../../gold/options.h"" (" """) (string_content "../../gold/options.h") (" """)) (, ",") (number_literal "0x828") (, ",") (pointer_expression "&DAT_0057d4db" (& "&") (identifier "DAT_0057d4db")) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar11 = 0x7fffffffffffffff - local_50;" (assignment_expression "uVar11 = 0x7fffffffffffffff - local_50" (identifier "uVar11") (= "=") (binary_expression "0x7fffffffffffffff - local_50" (number_literal "0x7fffffffffffffff") (- "-") (identifier "local_50"))) (; ";")) (labeled_statement "LAB_0040f8db:\n    pcVar7 = *(char **)(pcVar7 + 8);" (statement_identifier "LAB_0040f8db") (: ":") (expression_statement "pcVar7 = *(char **)(pcVar7 + 8);" (assignment_expression "pcVar7 = *(char **)(pcVar7 + 8)" (identifier "pcVar7") (= "=") (pointer_expression "*(char **)(pcVar7 + 8)" (* "*") (cast_expression "(char **)(pcVar7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar7 + 8)" (( "(") (binary_expression "pcVar7 + 8" (identifier "pcVar7") (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (expression_statement "sVar6 = strlen(pcVar7);" (assignment_expression "sVar6 = strlen(pcVar7)" (identifier "sVar6") (= "=") (call_expression "strlen(pcVar7)" (identifier "strlen") (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")")))) (; ";")) (if_statement "if (sVar6 <= uVar11) {\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }" (if "if") (parenthesized_expression "(sVar6 <= uVar11)" (( "(") (binary_expression "sVar6 <= uVar11" (identifier "sVar6") (<= "<=") (identifier "uVar11")) () ")")) (compound_statement "{\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      *param_1 = (long)(param_1 + 2);\n      if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }\n      param_1[1] = local_50;\n      return param_1;\n    }" ({ "{") (expression_statement "FUN_004a65c0(&local_58,pcVar7,sVar6);" (call_expression "FUN_004a65c0(&local_58,pcVar7,sVar6)" (identifier "FUN_004a65c0") (argument_list "(&local_58,pcVar7,sVar6)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "pcVar7") (, ",") (identifier "sVar6") () ")"))) (; ";")) (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(long)(param_1 + 2)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (; ";")) (if_statement "if (local_58 == &local_48) {\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }\n      else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }" (if "if") (parenthesized_expression "(local_58 == &local_48)" (( "(") (binary_expression "local_58 == &local_48" (identifier "local_58") (== "==") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) () ")")) (compound_statement "{\n        param_1[2] = local_48;\n        param_1[3] = lStack_40;\n      }" ({ "{") (expression_statement "param_1[2] = local_48;" (assignment_expression "param_1[2] = local_48" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "param_1[3] = lStack_40;" (assignment_expression "param_1[3] = lStack_40" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "lStack_40")) (; ";")) (} "}")) (else_clause "else {\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }" (else "else") (compound_statement "{\n        *param_1 = (long)local_58;\n        param_1[2] = local_48;\n      }" ({ "{") (expression_statement "*param_1 = (long)local_58;" (assignment_expression "*param_1 = (long)local_58" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(long)local_58" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_58"))) (; ";")) (expression_statement "param_1[2] = local_48;" (assignment_expression "param_1[2] = local_48" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_48")) (; ";")) (} "}")))) (expression_statement "param_1[1] = local_50;" (assignment_expression "param_1[1] = local_50" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_50")) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (expression_statement "FUN_004dcc70("basic_string::append");" (call_expression "FUN_004dcc70("basic_string::append")" (identifier "FUN_004dcc70") (argument_list "("basic_string::append")" (( "(") (string_literal ""basic_string::append"" (" """) (string_content "basic_string::append") (" """)) () ")"))) (; ";")) (} "}"))))) (expression_statement "local_58 = &local_48;" (assignment_expression "local_58 = &local_48" (identifier "local_58") (= "=") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) (; ";")) (expression_statement "FUN_001a61c0(&local_58,"Read_symbols lib (");" (call_expression "FUN_001a61c0(&local_58,"Read_symbols lib (")" (identifier "FUN_001a61c0") (argument_list "(&local_58,"Read_symbols lib (")" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (string_literal ""Read_symbols lib ("" (" """) (string_content "Read_symbols lib (") (" """)) () ")"))) (; ";")) (if_statement "if (**(char **)(param_2 + 0x68) != '\0') {\nLAB_0040fc7c:\n                    \n    FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);\n  }" (if "if") (parenthesized_expression "(**(char **)(param_2 + 0x68) != '\0')" (( "(") (binary_expression "**(char **)(param_2 + 0x68) != '\0'" (pointer_expression "**(char **)(param_2 + 0x68)" (* "*") (pointer_expression "*(char **)(param_2 + 0x68)" (* "*") (cast_expression "(char **)(param_2 + 0x68)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x68)" (( "(") (binary_expression "param_2 + 0x68" (identifier "param_2") (+ "+") (number_literal "0x68")) () ")"))))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0040fc7c:\n                    \n    FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);\n  }" ({ "{") (labeled_statement "LAB_0040fc7c:\n                    \n    FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);" (statement_identifier "LAB_0040fc7c") (: ":") (expression_statement "FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);" (call_expression "FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c)" (identifier "FUN_00352af0") (argument_list "("../../gold/options.h",0x83f,&DAT_0057d49c)" (( "(") (string_literal ""../../gold/options.h"" (" """) (string_content "../../gold/options.h") (" """)) (, ",") (number_literal "0x83f") (, ",") (pointer_expression "&DAT_0057d49c" (& "&") (identifier "DAT_0057d49c")) () ")"))) (; ";"))) (} "}"))) (expression_statement "puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70);" (assignment_expression "puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70)" (* "*") (cast_expression "(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(char **)(param_2 + 0x68) + 0x70)" (( "(") (binary_expression "*(char **)(param_2 + 0x68) + 0x70" (pointer_expression "*(char **)(param_2 + 0x68)" (* "*") (cast_expression "(char **)(param_2 + 0x68)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x68)" (( "(") (binary_expression "param_2 + 0x68" (identifier "param_2") (+ "+") (number_literal "0x68")) () ")")))) (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (if_statement "if (puVar4 == (undefined8 *)0x0) {\n                    \n    FUN_0040d630();\n    goto LAB_0040fc7c;\n  }" (if "if") (parenthesized_expression "(puVar4 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar4 == (undefined8 *)0x0" (identifier "puVar4") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    FUN_0040d630();\n    goto LAB_0040fc7c;\n  }" ({ "{") (expression_statement "FUN_0040d630();" (call_expression "FUN_0040d630()" (identifier "FUN_0040d630") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0040fc7c;" (goto "goto") (statement_identifier "LAB_0040fc7c") (; ";")) (} "}"))) (expression_statement "pcVar7 = (char *)*puVar4;" (assignment_expression "pcVar7 = (char *)*puVar4" (identifier "pcVar7") (= "=") (cast_expression "(char *)*puVar4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")))) (; ";")) (if_statement "if (pcVar7 != (char *)puVar4[1]) {\n    cVar2 = *pcVar7;\n    while( true ) {\n      if (cVar2 == '\0') {\n                    \n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }\n      pcVar10 = pcVar7 + 0x80;\n      pcVar7 = *(char **)(pcVar7 + 8);\n      sVar6 = strlen(pcVar7);\n      if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      uVar11 = local_50;\n      if ((char *)puVar4[1] == pcVar10) break;\n      uVar1 = local_50 + 1;\n      uVar9 = local_48;\n      if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }\n      if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }\n      *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n      *(undefined1 *)((long)local_58 + uVar1) = 0;\n      cVar2 = *pcVar10;\n      pcVar7 = pcVar10;\n      local_50 = uVar1;\n    }\n  }" (if "if") (parenthesized_expression "(pcVar7 != (char *)puVar4[1])" (( "(") (binary_expression "pcVar7 != (char *)puVar4[1]" (identifier "pcVar7") (!= "!=") (cast_expression "(char *)puVar4[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n    cVar2 = *pcVar7;\n    while( true ) {\n      if (cVar2 == '\0') {\n                    \n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }\n      pcVar10 = pcVar7 + 0x80;\n      pcVar7 = *(char **)(pcVar7 + 8);\n      sVar6 = strlen(pcVar7);\n      if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      uVar11 = local_50;\n      if ((char *)puVar4[1] == pcVar10) break;\n      uVar1 = local_50 + 1;\n      uVar9 = local_48;\n      if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }\n      if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }\n      *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n      *(undefined1 *)((long)local_58 + uVar1) = 0;\n      cVar2 = *pcVar10;\n      pcVar7 = pcVar10;\n      local_50 = uVar1;\n    }\n  }" ({ "{") (expression_statement "cVar2 = *pcVar7;" (assignment_expression "cVar2 = *pcVar7" (identifier "cVar2") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (while_statement "while( true ) {\n      if (cVar2 == '\0') {\n                    \n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }\n      pcVar10 = pcVar7 + 0x80;\n      pcVar7 = *(char **)(pcVar7 + 8);\n      sVar6 = strlen(pcVar7);\n      if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      uVar11 = local_50;\n      if ((char *)puVar4[1] == pcVar10) break;\n      uVar1 = local_50 + 1;\n      uVar9 = local_48;\n      if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }\n      if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }\n      *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n      *(undefined1 *)((long)local_58 + uVar1) = 0;\n      cVar2 = *pcVar10;\n      pcVar7 = pcVar10;\n      local_50 = uVar1;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      if (cVar2 == '\0') {\n                    \n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }\n      pcVar10 = pcVar7 + 0x80;\n      pcVar7 = *(char **)(pcVar7 + 8);\n      sVar6 = strlen(pcVar7);\n      if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }\n                    \n      FUN_004a65c0(&local_58,pcVar7,sVar6);\n      uVar11 = local_50;\n      if ((char *)puVar4[1] == pcVar10) break;\n      uVar1 = local_50 + 1;\n      uVar9 = local_48;\n      if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }\n      if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }\n      *(undefined1 *)((long)local_58 + uVar11) = 0x20;\n      *(undefined1 *)((long)local_58 + uVar1) = 0;\n      cVar2 = *pcVar10;\n      pcVar7 = pcVar10;\n      local_50 = uVar1;\n    }" ({ "{") (if_statement "if (cVar2 == '\0') {\n                    \n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);\n      }" ({ "{") (expression_statement "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);" (call_expression "FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db)" (identifier "FUN_00352af0") (argument_list "("../../gold/options.h",0x828,&DAT_0057d4db)" (( "(") (string_literal ""../../gold/options.h"" (" """) (string_content "../../gold/options.h") (" """)) (, ",") (number_literal "0x828") (, ",") (pointer_expression "&DAT_0057d4db" (& "&") (identifier "DAT_0057d4db")) () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar10 = pcVar7 + 0x80;" (assignment_expression "pcVar10 = pcVar7 + 0x80" (identifier "pcVar10") (= "=") (binary_expression "pcVar7 + 0x80" (identifier "pcVar7") (+ "+") (number_literal "0x80"))) (; ";")) (expression_statement "pcVar7 = *(char **)(pcVar7 + 8);" (assignment_expression "pcVar7 = *(char **)(pcVar7 + 8)" (identifier "pcVar7") (= "=") (pointer_expression "*(char **)(pcVar7 + 8)" (* "*") (cast_expression "(char **)(pcVar7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar7 + 8)" (( "(") (binary_expression "pcVar7 + 8" (identifier "pcVar7") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "sVar6 = strlen(pcVar7);" (assignment_expression "sVar6 = strlen(pcVar7)" (identifier "sVar6") (= "=") (call_expression "strlen(pcVar7)" (identifier "strlen") (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")")))) (; ";")) (if_statement "if (0x7fffffffffffffff - local_50 < sVar6) {\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }" (if "if") (parenthesized_expression "(0x7fffffffffffffff - local_50 < sVar6)" (( "(") (binary_expression "0x7fffffffffffffff - local_50 < sVar6" (binary_expression "0x7fffffffffffffff - local_50" (number_literal "0x7fffffffffffffff") (- "-") (identifier "local_50")) (< "<") (identifier "sVar6")) () ")")) (compound_statement "{\n                    \n                    \n        FUN_004dcc70("basic_string::append");\n      }" ({ "{") (expression_statement "FUN_004dcc70("basic_string::append");" (call_expression "FUN_004dcc70("basic_string::append")" (identifier "FUN_004dcc70") (argument_list "("basic_string::append")" (( "(") (string_literal ""basic_string::append"" (" """) (string_content "basic_string::append") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_004a65c0(&local_58,pcVar7,sVar6);" (call_expression "FUN_004a65c0(&local_58,pcVar7,sVar6)" (identifier "FUN_004a65c0") (argument_list "(&local_58,pcVar7,sVar6)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "pcVar7") (, ",") (identifier "sVar6") () ")"))) (; ";")) (expression_statement "uVar11 = local_50;" (assignment_expression "uVar11 = local_50" (identifier "uVar11") (= "=") (identifier "local_50")) (; ";")) (if_statement "if ((char *)puVar4[1] == pcVar10) break;" (if "if") (parenthesized_expression "((char *)puVar4[1] == pcVar10)" (( "(") (binary_expression "(char *)puVar4[1] == pcVar10" (cast_expression "(char *)puVar4[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) (== "==") (identifier "pcVar10")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar1 = local_50 + 1;" (assignment_expression "uVar1 = local_50 + 1" (identifier "uVar1") (= "=") (binary_expression "local_50 + 1" (identifier "local_50") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar9 = local_48;" (assignment_expression "uVar9 = local_48" (identifier "uVar9") (= "=") (identifier "local_48")) (; ";")) (if_statement "if (local_58 == &local_48) {\n        uVar9 = 0xf;\n      }" (if "if") (parenthesized_expression "(local_58 == &local_48)" (( "(") (binary_expression "local_58 == &local_48" (identifier "local_58") (== "==") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) () ")")) (compound_statement "{\n        uVar9 = 0xf;\n      }" ({ "{") (expression_statement "uVar9 = 0xf;" (assignment_expression "uVar9 = 0xf" (identifier "uVar9") (= "=") (number_literal "0xf")) (; ";")) (} "}"))) (if_statement "if (uVar9 < uVar1) {\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }" (if "if") (parenthesized_expression "(uVar9 < uVar1)" (( "(") (binary_expression "uVar9 < uVar1" (identifier "uVar9") (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n        FUN_004a5030(&local_58,local_50,0,0,1);\n      }" ({ "{") (expression_statement "FUN_004a5030(&local_58,local_50,0,0,1);" (call_expression "FUN_004a5030(&local_58,local_50,0,0,1)" (identifier "FUN_004a5030") (argument_list "(&local_58,local_50,0,0,1)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "local_50") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((long)local_58 + uVar11) = 0x20;" (assignment_expression "*(undefined1 *)((long)local_58 + uVar11) = 0x20" (pointer_expression "*(undefined1 *)((long)local_58 + uVar11)" (* "*") (cast_expression "(undefined1 *)((long)local_58 + uVar11)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_58 + uVar11)" (( "(") (binary_expression "(long)local_58 + uVar11" (cast_expression "(long)local_58" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_58")) (+ "+") (identifier "uVar11")) () ")")))) (= "=") (number_literal "0x20")) (; ";")) (expression_statement "*(undefined1 *)((long)local_58 + uVar1) = 0;" (assignment_expression "*(undefined1 *)((long)local_58 + uVar1) = 0" (pointer_expression "*(undefined1 *)((long)local_58 + uVar1)" (* "*") (cast_expression "(undefined1 *)((long)local_58 + uVar1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_58 + uVar1)" (( "(") (binary_expression "(long)local_58 + uVar1" (cast_expression "(long)local_58" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_58")) (+ "+") (identifier "uVar1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar2 = *pcVar10;" (assignment_expression "cVar2 = *pcVar10" (identifier "cVar2") (= "=") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10"))) (; ";")) (expression_statement "pcVar7 = pcVar10;" (assignment_expression "pcVar7 = pcVar10" (identifier "pcVar7") (= "=") (identifier "pcVar10")) (; ";")) (expression_statement "local_50 = uVar1;" (assignment_expression "local_50 = uVar1" (identifier "local_50") (= "=") (identifier "uVar1")) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar11 = local_50;" (assignment_expression "uVar11 = local_50" (identifier "uVar11") (= "=") (identifier "local_50")) (; ";")) (expression_statement "puVar5 = local_58;" (assignment_expression "puVar5 = local_58" (identifier "puVar5") (= "=") (identifier "local_58")) (; ";")) (expression_statement "plVar8 = param_1 + 2;" (assignment_expression "plVar8 = param_1 + 2" (identifier "plVar8") (= "=") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*param_1 = (long)plVar8;" (assignment_expression "*param_1 = (long)plVar8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(long)plVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar8"))) (; ";")) (if_statement "if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) && (local_58 == (ulong *)0x0)\n     ) {\n                    \n    FUN_004dcbb0("basic_string::_M_construct null not valid");\n  }" (if "if") (parenthesized_expression "(((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) && (local_58 == (ulong *)0x0)\n     )" (( "(") (binary_expression "((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) && (local_58 == (ulong *)0x0)" (parenthesized_expression "((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0)" (( "(") (binary_expression "(undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0" (cast_expression "(undefined1 *)((long)local_58 + local_50)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_58 + local_50)" (( "(") (binary_expression "(long)local_58 + local_50" (cast_expression "(long)local_58" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_58")) (+ "+") (identifier "local_50")) () ")"))) (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_58 == (ulong *)0x0)" (( "(") (binary_expression "local_58 == (ulong *)0x0" (identifier "local_58") (== "==") (cast_expression "(ulong *)0x0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n                    \n    FUN_004dcbb0("basic_string::_M_construct null not valid");\n  }" ({ "{") (expression_statement "FUN_004dcbb0("basic_string::_M_construct null not valid");" (call_expression "FUN_004dcbb0("basic_string::_M_construct null not valid")" (identifier "FUN_004dcbb0") (argument_list "("basic_string::_M_construct null not valid")" (( "(") (string_literal ""basic_string::_M_construct null not valid"" (" """) (string_content "basic_string::_M_construct null not valid") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "local_60 = local_50;" (assignment_expression "local_60 = local_50" (identifier "local_60") (= "=") (identifier "local_50")) (; ";")) (if_statement "if (local_50 < 0x10) {\n    if (local_50 == 1) {\n      *(char *)(param_1 + 2) = (char)*local_58;\n    }\n    else if (local_50 != 0) goto LAB_0040f970;\n  }\n  else {\n                    \n    plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n    *param_1 = (long)plVar8;\n    param_1[2] = local_60;\nLAB_0040f970:\n    memcpy(plVar8,puVar5,uVar11);\n    plVar8 = (long *)*param_1;\n  }" (if "if") (parenthesized_expression "(local_50 < 0x10)" (( "(") (binary_expression "local_50 < 0x10" (identifier "local_50") (< "<") (number_literal "0x10")) () ")")) (compound_statement "{\n    if (local_50 == 1) {\n      *(char *)(param_1 + 2) = (char)*local_58;\n    }\n    else if (local_50 != 0) goto LAB_0040f970;\n  }" ({ "{") (if_statement "if (local_50 == 1) {\n      *(char *)(param_1 + 2) = (char)*local_58;\n    }\n    else if (local_50 != 0) goto LAB_0040f970;" (if "if") (parenthesized_expression "(local_50 == 1)" (( "(") (binary_expression "local_50 == 1" (identifier "local_50") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      *(char *)(param_1 + 2) = (char)*local_58;\n    }" ({ "{") (expression_statement "*(char *)(param_1 + 2) = (char)*local_58;" (assignment_expression "*(char *)(param_1 + 2) = (char)*local_58" (pointer_expression "*(char *)(param_1 + 2)" (* "*") (cast_expression "(char *)(param_1 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (= "=") (cast_expression "(char)*local_58" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*local_58" (* "*") (identifier "local_58")))) (; ";")) (} "}")) (else_clause "else if (local_50 != 0) goto LAB_0040f970;" (else "else") (if_statement "if (local_50 != 0) goto LAB_0040f970;" (if "if") (parenthesized_expression "(local_50 != 0)" (( "(") (binary_expression "local_50 != 0" (identifier "local_50") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0040f970;" (goto "goto") (statement_identifier "LAB_0040f970") (; ";"))))) (} "}")) (else_clause "else {\n                    \n    plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n    *param_1 = (long)plVar8;\n    param_1[2] = local_60;\nLAB_0040f970:\n    memcpy(plVar8,puVar5,uVar11);\n    plVar8 = (long *)*param_1;\n  }" (else "else") (compound_statement "{\n                    \n    plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);\n    *param_1 = (long)plVar8;\n    param_1[2] = local_60;\nLAB_0040f970:\n    memcpy(plVar8,puVar5,uVar11);\n    plVar8 = (long *)*param_1;\n  }" ({ "{") (expression_statement "plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);" (assignment_expression "plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0)" (identifier "plVar8") (= "=") (cast_expression "(long *)FUN_004a4c70(param_1,&local_60,0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_004a4c70(param_1,&local_60,0)" (identifier "FUN_004a4c70") (argument_list "(param_1,&local_60,0)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_60" (& "&") (identifier "local_60")) (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "*param_1 = (long)plVar8;" (assignment_expression "*param_1 = (long)plVar8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(long)plVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar8"))) (; ";")) (expression_statement "param_1[2] = local_60;" (assignment_expression "param_1[2] = local_60" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_60")) (; ";")) (labeled_statement "LAB_0040f970:\n    memcpy(plVar8,puVar5,uVar11);" (statement_identifier "LAB_0040f970") (: ":") (expression_statement "memcpy(plVar8,puVar5,uVar11);" (call_expression "memcpy(plVar8,puVar5,uVar11)" (identifier "memcpy") (argument_list "(plVar8,puVar5,uVar11)" (( "(") (identifier "plVar8") (, ",") (identifier "puVar5") (, ",") (identifier "uVar11") () ")"))) (; ";"))) (expression_statement "plVar8 = (long *)*param_1;" (assignment_expression "plVar8 = (long *)*param_1" (identifier "plVar8") (= "=") (cast_expression "(long *)*param_1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (} "}")))) (expression_statement "param_1[1] = local_60;" (assignment_expression "param_1[1] = local_60" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_60")) (; ";")) (expression_statement "*(undefined1 *)((long)plVar8 + local_60) = 0;" (assignment_expression "*(undefined1 *)((long)plVar8 + local_60) = 0" (pointer_expression "*(undefined1 *)((long)plVar8 + local_60)" (* "*") (cast_expression "(undefined1 *)((long)plVar8 + local_60)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar8 + local_60)" (( "(") (binary_expression "(long)plVar8 + local_60" (cast_expression "(long)plVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar8")) (+ "+") (identifier "local_60")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_004a59d0(param_1,param_1[1],0,1,0x29);" (call_expression "FUN_004a59d0(param_1,param_1[1],0,1,0x29)" (identifier "FUN_004a59d0") (argument_list "(param_1,param_1[1],0,1,0x29)" (( "(") (identifier "param_1") (, ",") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "0x29") () ")"))) (; ";")) (labeled_statement "LAB_0040f851:\n  if (local_58 != &local_48) {\n    FUN_0049e340();\n  }" (statement_identifier "LAB_0040f851") (: ":") (if_statement "if (local_58 != &local_48) {\n    FUN_0049e340();\n  }" (if "if") (parenthesized_expression "(local_58 != &local_48)" (( "(") (binary_expression "local_58 != &local_48" (identifier "local_58") (!= "!=") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) () ")")) (compound_statement "{\n    FUN_0049e340();\n  }" ({ "{") (expression_statement "FUN_0049e340();" (call_expression "FUN_0049e340()" (identifier "FUN_0049e340") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: string get_name(Read_symbols * this) */

type_10 * __thiscall gold::Read_symbols::get_name(type_10 *__return_storage_ptr__,Read_symbols *this)

{
  char var_11;
  type_1 var_24;
  type_2 *var_6;
  type_3 var_10;
  type_4 *pIVar5;
  type_5 _Var6;
  type_6 sVar7;
  size_t var_13;
  type_7 *pIVar9;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_5;
  type_8 var_17;
  type_3 var_16;
  type_9 var_18;
  char *pcVar14;
  type_6 __dnew;
  type_10 ret;
  
  var_6 = this->input_argument_->lib_;
  if (this->input_argument_->is_file_ == false) {
    if (var_6 == (type_2 *)0x0) {
      ret._M_dataplus._M_p = (type_3)&ret.field_2;
      std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
      var_7<var_8*>(&ret,"Read_symbols group (");
      if (this->input_argument_->is_file_ != false) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */
        var_9("../../gold/options.h",0x830,"group");
      }
      pIVar5 = this->input_argument_->group_;
      var_10 = (pIVar5->files_).
               super__Vector_base<gold::type_7,_std::var_1<gold::type_7>var_3>.
               _M_impl._M_start;
      if ((pIVar5->files_).
          super__Vector_base<gold::type_7,_std::var_1<gold::type_7>var_3>._M_impl.
          _M_finish != var_10) {
        var_11 = var_10->is_file_;
        while( true ) {
          if (var_11 == '\0') {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */
            var_9("../../gold/options.h",0x828,"file");
          }
          var_16 = var_10 + 1;
          pcVar14 = (var_10->file_).name_._M_dataplus._M_p;
          var_13 = var_12(pcVar14);
          if (0x7fffffffffffffff - ret._M_string_length < var_13) {
                    /* WARNING: Subroutine does not return */
            std::var_14("basic_string::append");
          }
                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */
          std::string::var_15((type_10 *)&ret,pcVar14,var_13);
          sVar7 = ret._M_string_length;
          if ((pIVar5->files_).
              super__Vector_base<gold::type_7,_std::var_1<gold::type_7>var_3>.
              _M_impl._M_finish == var_16) break;
          var_18 = ret._M_string_length + 1;
          var_17 = ret.field_2._M_allocated_capacity;
          if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
               *)ret._M_dataplus._M_p == &ret.field_2) {
            var_17 = 0xf;
          }
          if (var_17 < var_18) {
            std::string::var_19((type_10 *)&ret,ret._M_string_length,0,(char *)0x0,1);
          }
          ret._M_dataplus._M_p[sVar7] = ' ';
          ret._M_dataplus._M_p[var_18] = '\0';
          var_11 = var_16->is_file_;
          var_10 = var_16;
          ret._M_string_length = var_18;
        }
      }
      sVar7 = ret._M_string_length;
      _Var6._M_p = ret._M_dataplus._M_p;
      var_5 = &__return_storage_ptr__->field_2;
      (__return_storage_ptr__->_M_dataplus)._M_p = (type_3)var_5;
      if ((ret._M_dataplus._M_p + ret._M_string_length != (type_3)0x0) &&
         (ret._M_dataplus._M_p == (type_3)0x0)) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */
        std::var_20("basic_string::_M_construct null not valid");
      }
      __dnew = ret._M_string_length;
      if (ret._M_string_length < 0x10) {
        if (ret._M_string_length == 1) {
          (__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;
        }
        else if (ret._M_string_length != 0) goto LAB_0040fb81;
      }
      else {
                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */
        var_5 = (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                   *)std::type_10::var_21((type_10 *)__return_storage_ptr__,&__dnew,0);
        (__return_storage_ptr__->_M_dataplus)._M_p = (type_3)var_5;
        (__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew;
LAB_0040fb81:
        var_22(var_5,_Var6._M_p,sVar7);
        var_5 = (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                   *)(__return_storage_ptr__->_M_dataplus)._M_p;
      }
      __return_storage_ptr__->_M_string_length = __dnew;
      var_5->_M_local_buf[__dnew] = '\0';
                    /* try { // try from 0040fb0c to 0040fb10 has its CatchHandler @ 0040fcc4 */
      std::string::var_23
                ((type_10 *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')');
      goto LAB_0040f851;
    }
  }
  else if (var_6 == (type_2 *)0x0) {
    ret._M_dataplus._M_p = (type_3)&ret.field_2;
    std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
    var_7<var_8*>(&ret,"Read_symbols ");
    pIVar9 = this->input_argument_;
    if (pIVar9->is_file_ == false) {
                    /* WARNING: Subroutine does not return */
      var_9("../../gold/options.h",0x828,"file");
    }
    var_24 = (pIVar9->file_).type_;
    var_18 = 0x7fffffffffffffff - ret._M_string_length;
    if (var_24 == var_25) {
      if (var_18 < 2) {
                    /* WARNING: Subroutine does not return */
        std::var_14("basic_string::append");
      }
                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */
      std::string::var_15((type_10 *)&ret,"-l",2);
    }
    else {
      if (var_24 != var_26) goto LAB_0040f8db;
      if (var_18 < 3) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */
        std::var_14("basic_string::append");
      }
      std::string::var_15((type_10 *)&ret,"-l:",3);
    }
    pIVar9 = this->input_argument_;
    if (pIVar9->is_file_ == false) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */
      var_9("../../gold/options.h",0x828,"file");
    }
    var_18 = 0x7fffffffffffffff - ret._M_string_length;
LAB_0040f8db:
    pcVar14 = (pIVar9->file_).name_._M_dataplus._M_p;
    var_13 = var_12(pcVar14);
    if (var_13 <= var_18) {
                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */
      std::string::var_15((type_10 *)&ret,pcVar14,var_13);
      (__return_storage_ptr__->_M_dataplus)._M_p = (type_3)&__return_storage_ptr__->field_2;
      if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
           *)ret._M_dataplus._M_p == &ret.field_2) {
        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;
        *(type_8 *)((long)&__return_storage_ptr__->field_2 + 8) = ret.field_2._8_8_;
      }
      else {
        (__return_storage_ptr__->_M_dataplus)._M_p = ret._M_dataplus._M_p;
        (__return_storage_ptr__->field_2)._M_allocated_capacity = ret.field_2._M_allocated_capacity;
      }
      __return_storage_ptr__->_M_string_length = ret._M_string_length;
      return __return_storage_ptr__;
    }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fca7 to 0040fcab has its CatchHandler @ 0040fccc */
    std::var_14("basic_string::append");
  }
  ret._M_dataplus._M_p = (type_3)&ret.field_2;
  pcVar14 = "Read_symbols lib (";
  pIVar9 = (type_7 *)&ret;
  std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
  var_7<var_8*>();
  if (this->input_argument_->is_file_ != false) {
                    /* WARNING: Subroutine does not return */
    var_9("../../gold/options.h",0x83f,"lib");
  }
  var_6 = this->input_argument_->lib_;
  if (var_6 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fc77 to 0040fc9f has its CatchHandler @ 0040fcbc */
    Input_argument::var_27(pIVar9,(type_7 *)pcVar14);
  }
  var_10 = (var_6->files_).
           super__Vector_base<gold::type_7,_std::var_1<gold::type_7>var_3>._M_impl.
           _M_start;
  if (var_10 != (var_6->files_).
                super__Vector_base<gold::type_7,_std::var_1<gold::type_7>var_3>.
                _M_impl._M_finish) {
    var_11 = var_10->is_file_;
    while( true ) {
      if (var_11 == '\0') {
                    /* WARNING: Subroutine does not return */
        var_9("../../gold/options.h",0x828,"file");
      }
      var_16 = var_10 + 1;
      pcVar14 = (var_10->file_).name_._M_dataplus._M_p;
      var_13 = var_12(pcVar14);
      if (0x7fffffffffffffff - ret._M_string_length < var_13) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */
        std::var_14("basic_string::append");
      }
                    /* try { // try from 0040f780 to 0040f7c0 has its CatchHandler @ 0040fcbc */
      std::string::var_15((type_10 *)&ret,pcVar14,var_13);
      sVar7 = ret._M_string_length;
      if ((var_6->files_).
          super__Vector_base<gold::type_7,_std::var_1<gold::type_7>var_3>._M_impl.
          _M_finish == var_16) break;
      var_18 = ret._M_string_length + 1;
      var_17 = ret.field_2._M_allocated_capacity;
      if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
           *)ret._M_dataplus._M_p == &ret.field_2) {
        var_17 = 0xf;
      }
      if (var_17 < var_18) {
        std::string::var_19((type_10 *)&ret,ret._M_string_length,0,(char *)0x0,1);
      }
      ret._M_dataplus._M_p[sVar7] = ' ';
      ret._M_dataplus._M_p[var_18] = '\0';
      var_11 = var_16->is_file_;
      var_10 = var_16;
      ret._M_string_length = var_18;
    }
  }
  sVar7 = ret._M_string_length;
  _Var6._M_p = ret._M_dataplus._M_p;
  var_5 = &__return_storage_ptr__->field_2;
  (__return_storage_ptr__->_M_dataplus)._M_p = (type_3)var_5;
  if ((ret._M_dataplus._M_p + ret._M_string_length != (type_3)0x0) &&
     (ret._M_dataplus._M_p == (type_3)0x0)) {
                    /* WARNING: Subroutine does not return */
    std::var_20("basic_string::_M_construct null not valid");
  }
  __dnew = ret._M_string_length;
  if (ret._M_string_length < 0x10) {
    if (ret._M_string_length == 1) {
      (__return_storage_ptr__->field_2)._M_local_buf[0] = *ret._M_dataplus._M_p;
    }
    else if (ret._M_string_length != 0) goto LAB_0040f970;
  }
  else {
                    /* try { // try from 0040f95f to 0040f963 has its CatchHandler @ 0040fcbc */
    var_5 = (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
               *)std::type_10::var_21((type_10 *)__return_storage_ptr__,&__dnew,0);
    (__return_storage_ptr__->_M_dataplus)._M_p = (type_3)var_5;
    (__return_storage_ptr__->field_2)._M_allocated_capacity = __dnew;
LAB_0040f970:
    var_22(var_5,_Var6._M_p,sVar7);
    var_5 = (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
               *)(__return_storage_ptr__->_M_dataplus)._M_p;
  }
  __return_storage_ptr__->_M_string_length = __dnew;
  var_5->_M_local_buf[__dnew] = '\0';
                    /* try { // try from 0040f84c to 0040f850 has its CatchHandler @ 0040fcac */
  std::string::var_23
            ((type_10 *)__return_storage_ptr__,__return_storage_ptr__->_M_string_length,0,1,')');
LAB_0040f851:
  if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
       *)ret._M_dataplus._M_p != &ret.field_2) {
    var_28(ret._M_dataplus._M_p);
  }
  return __return_storage_ptr__;
}


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

long * MASKED(long *param_1,long param_2)

{
  ulong uVar1;
  char cVar2;
  long lVar3;
  undefined8 *puVar4;
  ulong *puVar5;
  size_t sVar6;
  char *pcVar7;
  long *plVar8;
  ulong uVar9;
  char *pcVar10;
  ulong uVar11;
  ulong local_60;
  ulong *local_58;
  ulong local_50;
  ulong local_48;
  long lStack_40;
  
  lVar3 = *(long *)(*(char **)(param_2 + 0x68) + 0x70);
  if (**(char **)(param_2 + 0x68) == '\0') {
    if (lVar3 == 0) {
      local_58 = &local_48;
      FUN_001a61c0(&local_58,"Read_symbols group (");
      if (**(char **)(param_2 + 0x68) != '\0') {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fc72 to 0040fc76 has its CatchHandler @ 0040fcb4 */
        FUN_00352af0("../../gold/options.h",0x830,"group");
      }
      puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x68);
      pcVar7 = (char *)*puVar4;
      if ((char *)puVar4[1] != pcVar7) {
        cVar2 = *pcVar7;
        while( true ) {
          if (cVar2 == '\0') {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fbfa to 0040fc0a has its CatchHandler @ 0040fcb4 */
            FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);
          }
          pcVar10 = pcVar7 + 0x80;
          pcVar7 = *(char **)(pcVar7 + 8);
          sVar6 = strlen(pcVar7);
          if (0x7fffffffffffffff - local_50 < sVar6) {
                    /* WARNING: Subroutine does not return */
            FUN_004dcc70("basic_string::append");
          }
                    /* try { // try from 0040fa30 to 0040fa70 has its CatchHandler @ 0040fcb4 */
          FUN_004a65c0(&local_58,pcVar7,sVar6);
          uVar11 = local_50;
          if ((char *)puVar4[1] == pcVar10) break;
          uVar1 = local_50 + 1;
          uVar9 = local_48;
          if (local_58 == &local_48) {
            uVar9 = 0xf;
          }
          if (uVar9 < uVar1) {
            FUN_004a5030(&local_58,local_50,0,0,1);
          }
          *(undefined1 *)((long)local_58 + uVar11) = 0x20;
          *(undefined1 *)((long)local_58 + uVar1) = 0;
          cVar2 = *pcVar10;
          pcVar7 = pcVar10;
          local_50 = uVar1;
        }
      }
      uVar11 = local_50;
      puVar5 = local_58;
      plVar8 = param_1 + 2;
      *param_1 = (long)plVar8;
      if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) &&
         (local_58 == (ulong *)0x0)) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fc36 to 0040fc3a has its CatchHandler @ 0040fcb4 */
        FUN_004dcbb0("basic_string::_M_construct null not valid");
      }
      local_60 = local_50;
      if (local_50 < 0x10) {
        if (local_50 == 1) {
          *(char *)(param_1 + 2) = (char)*local_58;
        }
        else if (local_50 != 0) goto LAB_0040fb81;
      }
      else {
                    /* try { // try from 0040fbb0 to 0040fbb4 has its CatchHandler @ 0040fcb4 */
        plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);
        *param_1 = (long)plVar8;
        param_1[2] = local_60;
LAB_0040fb81:
        memcpy(plVar8,puVar5,uVar11);
        plVar8 = (long *)*param_1;
      }
      param_1[1] = local_60;
      *(undefined1 *)((long)plVar8 + local_60) = 0;
                    /* try { // try from 0040fb0c to 0040fb10 has its CatchHandler @ 0040fcc4 */
      FUN_004a59d0(param_1,param_1[1],0,1,0x29);
      goto LAB_0040f851;
    }
  }
  else if (lVar3 == 0) {
    local_58 = &local_48;
    FUN_001a61c0(&local_58,"Read_symbols ");
    pcVar7 = *(char **)(param_2 + 0x68);
    if (*pcVar7 == '\0') {
                    /* WARNING: Subroutine does not return */
      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);
    }
    uVar11 = 0x7fffffffffffffff - local_50;
    if (*(int *)(pcVar7 + 0x28) == 1) {
      if (uVar11 < 2) {
                    /* WARNING: Subroutine does not return */
        FUN_004dcc70("basic_string::append");
      }
                    /* try { // try from 0040fb2f to 0040fb72 has its CatchHandler @ 0040fccc */
      FUN_004a65c0(&local_58,&DAT_0056d435,2);
    }
    else {
      if (*(int *)(pcVar7 + 0x28) != 2) goto LAB_0040f8db;
      if (uVar11 < 3) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fc12 to 0040fc2e has its CatchHandler @ 0040fccc */
        FUN_004dcc70("basic_string::append");
      }
      FUN_004a65c0(&local_58,&DAT_0057d35e,3);
    }
    pcVar7 = *(char **)(param_2 + 0x68);
    if (*pcVar7 == '\0') {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fc4e to 0040fc5e has its CatchHandler @ 0040fccc */
      FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);
    }
    uVar11 = 0x7fffffffffffffff - local_50;
LAB_0040f8db:
    pcVar7 = *(char **)(pcVar7 + 8);
    sVar6 = strlen(pcVar7);
    if (sVar6 <= uVar11) {
                    /* try { // try from 0040f8f9 to 0040f8fd has its CatchHandler @ 0040fccc */
      FUN_004a65c0(&local_58,pcVar7,sVar6);
      *param_1 = (long)(param_1 + 2);
      if (local_58 == &local_48) {
        param_1[2] = local_48;
        param_1[3] = lStack_40;
      }
      else {
        *param_1 = (long)local_58;
        param_1[2] = local_48;
      }
      param_1[1] = local_50;
      return param_1;
    }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fca7 to 0040fcab has its CatchHandler @ 0040fccc */
    FUN_004dcc70("basic_string::append");
  }
  local_58 = &local_48;
  FUN_001a61c0(&local_58,"Read_symbols lib (");
  if (**(char **)(param_2 + 0x68) != '\0') {
LAB_0040fc7c:
                    /* WARNING: Subroutine does not return */
    FUN_00352af0("../../gold/options.h",0x83f,&DAT_0057d49c);
  }
  puVar4 = *(undefined8 **)(*(char **)(param_2 + 0x68) + 0x70);
  if (puVar4 == (undefined8 *)0x0) {
                    /* try { // try from 0040fc77 to 0040fc9f has its CatchHandler @ 0040fcbc */
    FUN_0040d630();
    goto LAB_0040fc7c;
  }
  pcVar7 = (char *)*puVar4;
  if (pcVar7 != (char *)puVar4[1]) {
    cVar2 = *pcVar7;
    while( true ) {
      if (cVar2 == '\0') {
                    /* WARNING: Subroutine does not return */
        FUN_00352af0("../../gold/options.h",0x828,&DAT_0057d4db);
      }
      pcVar10 = pcVar7 + 0x80;
      pcVar7 = *(char **)(pcVar7 + 8);
      sVar6 = strlen(pcVar7);
      if (0x7fffffffffffffff - local_50 < sVar6) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0040fbca to 0040fbe6 has its CatchHandler @ 0040fcbc */
        FUN_004dcc70("basic_string::append");
      }
                    /* try { // try from 0040f780 to 0040f7c0 has its CatchHandler @ 0040fcbc */
      FUN_004a65c0(&local_58,pcVar7,sVar6);
      uVar11 = local_50;
      if ((char *)puVar4[1] == pcVar10) break;
      uVar1 = local_50 + 1;
      uVar9 = local_48;
      if (local_58 == &local_48) {
        uVar9 = 0xf;
      }
      if (uVar9 < uVar1) {
        FUN_004a5030(&local_58,local_50,0,0,1);
      }
      *(undefined1 *)((long)local_58 + uVar11) = 0x20;
      *(undefined1 *)((long)local_58 + uVar1) = 0;
      cVar2 = *pcVar10;
      pcVar7 = pcVar10;
      local_50 = uVar1;
    }
  }
  uVar11 = local_50;
  puVar5 = local_58;
  plVar8 = param_1 + 2;
  *param_1 = (long)plVar8;
  if (((undefined1 *)((long)local_58 + local_50) != (undefined1 *)0x0) && (local_58 == (ulong *)0x0)
     ) {
                    /* WARNING: Subroutine does not return */
    FUN_004dcbb0("basic_string::_M_construct null not valid");
  }
  local_60 = local_50;
  if (local_50 < 0x10) {
    if (local_50 == 1) {
      *(char *)(param_1 + 2) = (char)*local_58;
    }
    else if (local_50 != 0) goto LAB_0040f970;
  }
  else {
                    /* try { // try from 0040f95f to 0040f963 has its CatchHandler @ 0040fcbc */
    plVar8 = (long *)FUN_004a4c70(param_1,&local_60,0);
    *param_1 = (long)plVar8;
    param_1[2] = local_60;
LAB_0040f970:
    memcpy(plVar8,puVar5,uVar11);
    plVar8 = (long *)*param_1;
  }
  param_1[1] = local_60;
  *(undefined1 *)((long)plVar8 + local_60) = 0;
                    /* try { // try from 0040f84c to 0040f850 has its CatchHandler @ 0040fcac */
  FUN_004a59d0(param_1,param_1[1],0,1,0x29);
LAB_0040f851:
  if (local_58 != &local_48) {
    FUN_0049e340();
  }
  return param_1;
}

