
/* DWARF original prototype: void register_option(One_option * this) */

void __thiscall gold::options::One_option::register_option(One_option *this)

{
  undefined *puVar1;
  uint uVar2;
  mapped_type *ppOVar3;
  int *piVar4;
  One_option *this_00;
  iterator __position;
  undefined4 uVar5;
  undefined *puVar6;
  int iVar7;
  One_option *local_18 [3];
  
  puVar6 = PTR__environ_00433318;
  __position._M_current = *(One_option ***)(PTR__environ_00433318 + -0x3928);
  local_18[0] = this;
  if (__position._M_current == *(One_option ***)(PTR__environ_00433318 + -0x3924)) {
    std::vector<const_gold::options::One_option*,_std::allocator<const_gold::options::One_option*>_>
    ::_M_realloc_insert<const_gold::options::One_option*>
              ((vector<const_gold::options::One_option*,_std::allocator<const_gold::options::One_option*>_>
                *)(PTR__environ_00433318 + -0x392c),__position,local_18);
  }
  else {
    *__position._M_current = this;
    *(One_option ***)(puVar6 + -0x3928) = __position._M_current + 1;
  }
  puVar6 = PTR__environ_00433318;
  if (*(int *)(PTR__environ_00433318 + -0x3930) == 0) {
    piVar4 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);
    piVar4[1] = 1;
    *(int **)(puVar6 + -0x3930) = piVar4;
    *piVar4 = (int)(piVar4 + 6);
    puVar1 = PTR_s_alize_xindex_004323b4;
    piVar4[2] = 0;
    piVar4[3] = 0;
    iVar7 = *(int *)(puVar1 + -0x636c);
    piVar4[5] = 0;
    piVar4[6] = 0;
    piVar4[4] = iVar7;
  }
  if ((this->longname)._M_string_length != 0) {
    ppOVar3 = std::__detail::
              _Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>
              ::operator[](*(_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>
                             **)(puVar6 + -0x3930),&this->longname);
    *ppOVar3 = this;
  }
  uVar2 = (uint)this->shortname;
  uVar5 = 0x56;
  if (uVar2 < 0x80) {
    if (uVar2 != 0) {
      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {
        uVar5 = 0x59;
        goto LAB_0017001c;
      }
      *(One_option **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = this;
    }
    return;
  }
LAB_0017001c:
  this_00 = (One_option *)(PTR_s_alize_xindex_004323b4 + 0x6d8);
  puVar6 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)(this_00,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140);
  if (*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0') {
    return;
  }
  register_option(this_00);
  return;
}



void FUN_0016fefc(string *param_1)

{
  undefined *puVar1;
  uint uVar2;
  int *piVar3;
  undefined4 *puVar4;
  undefined4 uVar5;
  undefined *puVar6;
  int iVar7;
  string *local_18 [3];
  
  puVar6 = PTR__environ_00433318;
  puVar4 = *(undefined4 **)(PTR__environ_00433318 + -0x3928);
  local_18[0] = param_1;
  if (puVar4 == *(undefined4 **)(PTR__environ_00433318 + -0x3924)) {
    std::vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>::
    _M_realloc_insert<gold::options::One_option_const*>
              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>
                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);
  }
  else {
    *puVar4 = param_1;
    *(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;
  }
  puVar6 = PTR__environ_00433318;
  if (*(int *)(PTR__environ_00433318 + -0x3930) == 0) {
    piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);
    piVar3[1] = 1;
    *(int **)(puVar6 + -0x3930) = piVar3;
    *piVar3 = (int)(piVar3 + 6);
    puVar1 = PTR_s_alize_xindex_004323b4;
    piVar3[2] = 0;
    piVar3[3] = 0;
    iVar7 = *(int *)(puVar1 + -0x636c);
    piVar3[5] = 0;
    piVar3[6] = 0;
    piVar3[4] = iVar7;
  }
  if (*(int *)(param_1 + 4) != 0) {
    puVar4 = (undefined4 *)
             std::__detail::
             _Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>
             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>
                            **)(puVar6 + -0x3930),param_1);
    *puVar4 = param_1;
  }
  uVar2 = (uint)(char)param_1[0x1c];
  uVar5 = 0x56;
  if (uVar2 < 0x80) {
    if (uVar2 != 0) {
      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {
        uVar5 = 0x59;
        goto LAB_0017001c;
      }
      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;
    }
    return;
  }
LAB_0017001c:
  puVar6 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)
            (PTR_s_alize_xindex_004323b4 + 0x6d8,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140);
  if (*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0') {
    return;
  }
  FUN_0016fefc();
  return;
}


lui gp,0x2d
addiu gp,gp,-0x5d2c
addu gp,gp,t9
addiu sp,sp,-0x30
sw s0,0x24(sp)
or s0,a0,zero
sw a0,0x18(sp)
lw a0,-0x6eb8(gp)
sw gp,0x10(sp)
sw ra,0x2c(sp)
addiu a0,a0,-0x392c
sw s1,0x28(sp)
lw a1,0x4(a0)
lw v0,0x8(a0)
beq a1,v0,0x00170004
_addiu v0,a1,0x4
sw s0,0x0(a1)
sw v0,0x4(a0)
lw s1,-0x6eb8(gp)
lw v0,-0x3930(s1)
beq v0,zero,0x0016ffc4
_lw t9,-0x7e94(gp)
lw v0,0x4(s0)
bne v0,zero,0x0016ffac
_lw t9,-0x6e5c(gp)
lb v0,0x1c(s0)
sltiu v1,v0,0x80
beq v1,zero,0x0017001c
_li a1,0x56
beq v0,zero,0x0016ff9c
_lw ra,0x2c(sp)
lw v1,-0x6eb8(gp)
sll v0,v0,0x2
addiu v1,v1,-0x3b30
addu v0,v0,v1
lw v1,0x0(v0)
bne v1,zero,0x00170018
_nop
sw s0,0x0(v0)
lw ra,0x2c(sp)
lw s1,0x28(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x30
or a1,s0,zero
bal 0x00181158
_lw a0,-0x3930(s1)
lw gp,0x10(sp)
b 0x0016ff60
_sw s0,0x0(v0)
jalr t9
_li a0,0x1c
li v1,0x1
lw gp,0x10(sp)
addiu a0,v0,0x18
sw v1,0x4(v0)
sw v0,-0x3930(s1)
sw a0,0x0(v0)
lw v1,-0x7e1c(gp)
sw zero,0x8(v0)
sw zero,0xc(v0)
lwc1 f0,-0x636c(v1)
sw zero,0x14(v0)
sw zero,0x18(v0)
b 0x0016ff54
_swc1 f0,0x10(v0)
lw t9,-0x6e58(gp)
bal 0x00180418
_addiu a2,sp,0x18
b 0x0016ff44
_lw gp,0x10(sp)
li a1,0x59
lw a2,-0x7e1c(gp)
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x5140
jalr t9
_addiu a0,a0,0x6d8
(translation_unit "void FUN_0016fefc(string *param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  int iVar7;\n  string *local_18 [3];\n  \n  puVar6 = PTR__environ_00433318;\n  puVar4 = *(undefined4 **)(PTR__environ_00433318 + -0x3928);\n  local_18[0] = param_1;\n  if (puVar4 == *(undefined4 **)(PTR__environ_00433318 + -0x3924)) {\n    std::vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);\n  }\n  else {\n    *puVar4 = param_1;\n    *(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;\n  }\n  puVar6 = PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x3930) == 0) {\n    piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);\n    piVar3[1] = 1;\n    *(int **)(puVar6 + -0x3930) = piVar3;\n    *piVar3 = (int)(piVar3 + 6);\n    puVar1 = PTR_s_alize_xindex_004323b4;\n    piVar3[2] = 0;\n    piVar3[3] = 0;\n    iVar7 = *(int *)(puVar1 + -0x636c);\n    piVar3[5] = 0;\n    piVar3[6] = 0;\n    piVar3[4] = iVar7;\n  }\n  if (*(int *)(param_1 + 4) != 0) {\n    puVar4 = (undefined4 *)\n             std::__detail::\n             _Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);\n    *puVar4 = param_1;\n  }\n  uVar2 = (uint)(char)param_1[0x1c];\n  uVar5 = 0x56;\n  if (uVar2 < 0x80) {\n    if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;\n    }\n    return;\n  }\nLAB_0017001c:\n  puVar6 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + 0x6d8,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140);\n  if (*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0') {\n    return;\n  }\n  FUN_0016fefc();\n  return;\n}\n\n" (function_definition "void FUN_0016fefc(string *param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  int iVar7;\n  string *local_18 [3];\n  \n  puVar6 = PTR__environ_00433318;\n  puVar4 = *(undefined4 **)(PTR__environ_00433318 + -0x3928);\n  local_18[0] = param_1;\n  if (puVar4 == *(undefined4 **)(PTR__environ_00433318 + -0x3924)) {\n    std::vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);\n  }\n  else {\n    *puVar4 = param_1;\n    *(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;\n  }\n  puVar6 = PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x3930) == 0) {\n    piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);\n    piVar3[1] = 1;\n    *(int **)(puVar6 + -0x3930) = piVar3;\n    *piVar3 = (int)(piVar3 + 6);\n    puVar1 = PTR_s_alize_xindex_004323b4;\n    piVar3[2] = 0;\n    piVar3[3] = 0;\n    iVar7 = *(int *)(puVar1 + -0x636c);\n    piVar3[5] = 0;\n    piVar3[6] = 0;\n    piVar3[4] = iVar7;\n  }\n  if (*(int *)(param_1 + 4) != 0) {\n    puVar4 = (undefined4 *)\n             std::__detail::\n             _Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);\n    *puVar4 = param_1;\n  }\n  uVar2 = (uint)(char)param_1[0x1c];\n  uVar5 = 0x56;\n  if (uVar2 < 0x80) {\n    if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;\n    }\n    return;\n  }\nLAB_0017001c:\n  puVar6 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + 0x6d8,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140);\n  if (*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0') {\n    return;\n  }\n  FUN_0016fefc();\n  return;\n}" primitive_type (function_declarator "FUN_0016fefc(string *param_1)" identifier (parameter_list "(string *param_1)" ( (parameter_declaration "string *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  int iVar7;\n  string *local_18 [3];\n  \n  puVar6 = PTR__environ_00433318;\n  puVar4 = *(undefined4 **)(PTR__environ_00433318 + -0x3928);\n  local_18[0] = param_1;\n  if (puVar4 == *(undefined4 **)(PTR__environ_00433318 + -0x3924)) {\n    std::vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);\n  }\n  else {\n    *puVar4 = param_1;\n    *(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;\n  }\n  puVar6 = PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x3930) == 0) {\n    piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);\n    piVar3[1] = 1;\n    *(int **)(puVar6 + -0x3930) = piVar3;\n    *piVar3 = (int)(piVar3 + 6);\n    puVar1 = PTR_s_alize_xindex_004323b4;\n    piVar3[2] = 0;\n    piVar3[3] = 0;\n    iVar7 = *(int *)(puVar1 + -0x636c);\n    piVar3[5] = 0;\n    piVar3[6] = 0;\n    piVar3[4] = iVar7;\n  }\n  if (*(int *)(param_1 + 4) != 0) {\n    puVar4 = (undefined4 *)\n             std::__detail::\n             _Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);\n    *puVar4 = param_1;\n  }\n  uVar2 = (uint)(char)param_1[0x1c];\n  uVar5 = 0x56;\n  if (uVar2 < 0x80) {\n    if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;\n    }\n    return;\n  }\nLAB_0017001c:\n  puVar6 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + 0x6d8,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140);\n  if (*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0') {\n    return;\n  }\n  FUN_0016fefc();\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "string *local_18 [3];" type_identifier (pointer_declarator "*local_18 [3]" * (array_declarator "local_18 [3]" identifier [ number_literal ])) ;) (expression_statement "puVar6 = PTR__environ_00433318;" (assignment_expression "puVar6 = PTR__environ_00433318" identifier = identifier) ;) (expression_statement "puVar4 = *(undefined4 **)(PTR__environ_00433318 + -0x3928);" (assignment_expression "puVar4 = *(undefined4 **)(PTR__environ_00433318 + -0x3928)" identifier = (pointer_expression "*(undefined4 **)(PTR__environ_00433318 + -0x3928)" * (cast_expression "(undefined4 **)(PTR__environ_00433318 + -0x3928)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR__environ_00433318 + -0x3928)" ( (binary_expression "PTR__environ_00433318 + -0x3928" identifier + number_literal) ))))) ;) (expression_statement "local_18[0] = param_1;" (assignment_expression "local_18[0] = param_1" (subscript_expression "local_18[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar4 == *(undefined4 **)(PTR__environ_00433318 + -0x3924)) {\n    std::vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);\n  }\n  else {\n    *puVar4 = param_1;\n    *(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;\n  }" if (parenthesized_expression "(puVar4 == *(undefined4 **)(PTR__environ_00433318 + -0x3924))" ( (binary_expression "puVar4 == *(undefined4 **)(PTR__environ_00433318 + -0x3924)" identifier == (pointer_expression "*(undefined4 **)(PTR__environ_00433318 + -0x3924)" * (cast_expression "(undefined4 **)(PTR__environ_00433318 + -0x3924)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR__environ_00433318 + -0x3924)" ( (binary_expression "PTR__environ_00433318 + -0x3924" identifier + number_literal) ))))) )) (compound_statement "{\n    std::vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);\n  }" { (labeled_statement "std::vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);" statement_identifier (ERROR "::vector<gold::options::One_option_const*,std::allocator<gold:" : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "options::One_option_const*,std" identifier (ERROR "::One_option_const*" : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "options::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);" statement_identifier (ERROR "::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold:" : : identifier * >> : : (binary_expression "_M_realloc_insert<gold" identifier < identifier) : : identifier (ERROR "::One_option_const*" : : identifier *) > ( ( (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "options::One_option_const*,std" identifier (ERROR "::One_option_const*" : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (expression_statement "options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);" (comma_expression "options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18" (binary_expression "options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c" identifier (ERROR "::One_option_const*" : : identifier *) >> (binary_expression "*)(PTR__environ_00433318 + -0x392c" (pointer_expression "*)(PTR__environ_00433318" * (ERROR ")(" ) () identifier) + number_literal)) (ERROR ")" )) , (comma_expression "puVar4,local_18" identifier , identifier)) (ERROR ")" )) ;))) }) (else_clause "else {\n    *puVar4 = param_1;\n    *(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;\n  }" else (compound_statement "{\n    *puVar4 = param_1;\n    *(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;\n  }" { (expression_statement "*puVar4 = param_1;" (assignment_expression "*puVar4 = param_1" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "*(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;" (assignment_expression "*(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1" (pointer_expression "*(undefined4 **)(puVar6 + -0x3928)" * (cast_expression "(undefined4 **)(puVar6 + -0x3928)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x3928)" ( (binary_expression "puVar6 + -0x3928" identifier + number_literal) )))) = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) }))) (expression_statement "puVar6 = PTR__environ_00433318;" (assignment_expression "puVar6 = PTR__environ_00433318" identifier = identifier) ;) (if_statement "if (*(int *)(PTR__environ_00433318 + -0x3930) == 0) {\n    piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);\n    piVar3[1] = 1;\n    *(int **)(puVar6 + -0x3930) = piVar3;\n    *piVar3 = (int)(piVar3 + 6);\n    puVar1 = PTR_s_alize_xindex_004323b4;\n    piVar3[2] = 0;\n    piVar3[3] = 0;\n    iVar7 = *(int *)(puVar1 + -0x636c);\n    piVar3[5] = 0;\n    piVar3[6] = 0;\n    piVar3[4] = iVar7;\n  }" if (parenthesized_expression "(*(int *)(PTR__environ_00433318 + -0x3930) == 0)" ( (binary_expression "*(int *)(PTR__environ_00433318 + -0x3930) == 0" (pointer_expression "*(int *)(PTR__environ_00433318 + -0x3930)" * (cast_expression "(int *)(PTR__environ_00433318 + -0x3930)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__environ_00433318 + -0x3930)" ( (binary_expression "PTR__environ_00433318 + -0x3930" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);\n    piVar3[1] = 1;\n    *(int **)(puVar6 + -0x3930) = piVar3;\n    *piVar3 = (int)(piVar3 + 6);\n    puVar1 = PTR_s_alize_xindex_004323b4;\n    piVar3[2] = 0;\n    piVar3[3] = 0;\n    iVar7 = *(int *)(puVar1 + -0x636c);\n    piVar3[5] = 0;\n    piVar3[6] = 0;\n    piVar3[4] = iVar7;\n  }" { (expression_statement "piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);" (assignment_expression "piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c)" identifier = (cast_expression "(int *)(*(code *)PTR_operator_new_0043233c)(0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_0043233c)(0x1c)" (parenthesized_expression "(*(code *)PTR_operator_new_0043233c)" ( (pointer_expression "*(code *)PTR_operator_new_0043233c" * (cast_expression "(code *)PTR_operator_new_0043233c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x1c)" ( number_literal ))))) ;) (expression_statement "piVar3[1] = 1;" (assignment_expression "piVar3[1] = 1" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(puVar6 + -0x3930) = piVar3;" (assignment_expression "*(int **)(puVar6 + -0x3930) = piVar3" (pointer_expression "*(int **)(puVar6 + -0x3930)" * (cast_expression "(int **)(puVar6 + -0x3930)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x3930)" ( (binary_expression "puVar6 + -0x3930" identifier + number_literal) )))) = identifier) ;) (expression_statement "*piVar3 = (int)(piVar3 + 6);" (assignment_expression "*piVar3 = (int)(piVar3 + 6)" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)(piVar3 + 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) ;) (expression_statement "puVar1 = PTR_s_alize_xindex_004323b4;" (assignment_expression "puVar1 = PTR_s_alize_xindex_004323b4" identifier = identifier) ;) (expression_statement "piVar3[2] = 0;" (assignment_expression "piVar3[2] = 0" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[3] = 0;" (assignment_expression "piVar3[3] = 0" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = *(int *)(puVar1 + -0x636c);" (assignment_expression "iVar7 = *(int *)(puVar1 + -0x636c)" identifier = (pointer_expression "*(int *)(puVar1 + -0x636c)" * (cast_expression "(int *)(puVar1 + -0x636c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x636c)" ( (binary_expression "puVar1 + -0x636c" identifier + number_literal) ))))) ;) (expression_statement "piVar3[5] = 0;" (assignment_expression "piVar3[5] = 0" (subscript_expression "piVar3[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[6] = 0;" (assignment_expression "piVar3[6] = 0" (subscript_expression "piVar3[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[4] = iVar7;" (assignment_expression "piVar3[4] = iVar7" (subscript_expression "piVar3[4]" identifier [ number_literal ]) = identifier) ;) })) (if_statement "if (*(int *)(param_1 + 4) != 0) {\n    puVar4 = (undefined4 *)\n             std::__detail::\n             _Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);\n    *puVar4 = param_1;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 4) != 0)" ( (binary_expression "*(int *)(param_1 + 4) != 0" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    puVar4 = (undefined4 *)\n             std::__detail::\n             _Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);\n    *puVar4 = param_1;\n  }" { (ERROR "puVar4 = (undefined4 *)\n             std::" (assignment_expression "puVar4 = (undefined4 *)\n             std" identifier = (cast_expression "(undefined4 *)\n             std" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "__detail::\n             _Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" statement_identifier (ERROR "::\n             _Map_base<std::string,std::pair<std::string_const,gold:" : : (binary_expression "_Map_base<std" identifier < identifier) : : (comma_expression "string,std" identifier , identifier) : : (binary_expression "pair<std" identifier < identifier) : : (comma_expression "string_const,gold" identifier , identifier) :) : (labeled_statement "options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" statement_identifier (ERROR "::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std:" : : (comma_expression "One_option*>,std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<std" identifier < identifier) : : (comma_expression "string_const,gold" identifier , identifier) : : (comma_expression "options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std" identifier (ERROR "::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>" : : (comma_expression "One_option*>>,std" identifier (ERROR "*>>" * >>) , identifier) : : (comma_expression "__detail::_Select1st,std::equal_to<std::string>,std" identifier (ERROR "::_Select1st,std::equal_to<std::string>" : : (comma_expression "_Select1st,std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : identifier >) , identifier) : : (binary_expression "hash<std" identifier < identifier) : : identifier >) , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" statement_identifier (ERROR "::_Mod_range_hashing,std:" : : (comma_expression "_Mod_range_hashing,std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" statement_identifier (ERROR "::_Default_ranged_hash,std:" : : (comma_expression "_Default_ranged_hash,std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" statement_identifier (ERROR "::_Prime_rehash_policy,std:" : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" (comma_expression "_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1)" false , (binary_expression "true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1)" (binary_expression "true>,true" true > (ERROR "," ,) true) > (ERROR "::" : :) (call_expression "operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1)" (subscript_expression "operator[]" identifier [ identifier ]) (argument_list "(*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1)" ( (pointer_expression "*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930)" * (call_expression "(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930)" (parenthesized_expression "(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)" ( (ERROR "_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::" (comma_expression "_Map_base<std::string,std" (binary_expression "_Map_base<std" identifier < identifier) (ERROR "::string" : : identifier) , identifier) : : (binary_expression "pair<std" identifier < identifier) : : (comma_expression "string_const,gold" identifier , identifier) : : identifier : : (comma_expression "One_option*>,std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<std" identifier < identifier) : : (comma_expression "string_const,gold" identifier , identifier) : : identifier : : (comma_expression "One_option*>>,std" identifier (ERROR "*>>" * >>) , identifier) : : identifier : : (comma_expression "_Select1st,std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "string>,std" identifier > (ERROR "," ,) identifier) : : (binary_expression "hash<std" identifier < identifier) : : (binary_expression "string>,std" identifier > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Mod_range_hashing,std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,false,true>,true>\n                            **" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "false,true>,true>\n                            **" false , (binary_expression "true>,true>\n                            **" (binary_expression "true>,true" true > (ERROR "," ,) true) > (pointer_expression "**" * (pointer_expression "*" * identifier))))) )) (argument_list "(puVar6 + -0x3930)" ( (binary_expression "puVar6 + -0x3930" identifier + number_literal) )))) , identifier )))))) ;))))))) (expression_statement "*puVar4 = param_1;" (assignment_expression "*puVar4 = param_1" (pointer_expression "*puVar4" * identifier) = identifier) ;) })) (expression_statement "uVar2 = (uint)(char)param_1[0x1c];" (assignment_expression "uVar2 = (uint)(char)param_1[0x1c]" identifier = (cast_expression "(uint)(char)param_1[0x1c]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)param_1[0x1c]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[0x1c]" identifier [ number_literal ])))) ;) (expression_statement "uVar5 = 0x56;" (assignment_expression "uVar5 = 0x56" identifier = number_literal) ;) (if_statement "if (uVar2 < 0x80) {\n    if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;\n    }\n    return;\n  }" if (parenthesized_expression "(uVar2 < 0x80)" ( (binary_expression "uVar2 < 0x80" identifier < number_literal) )) (compound_statement "{\n    if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;\n    }\n    return;\n  }" { (if_statement "if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;\n    }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;\n    }" { (if_statement "if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }" if (parenthesized_expression "(*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0)" ( (binary_expression "*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0" (pointer_expression "*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" * (cast_expression "(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" ( (binary_expression "PTR__environ_00433318 + uVar2 * 4 + -0x3b30" (binary_expression "PTR__environ_00433318 + uVar2 * 4" identifier + (binary_expression "uVar2 * 4" identifier * number_literal)) + number_literal) )))) != number_literal) )) (compound_statement "{\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }" { (expression_statement "uVar5 = 0x59;" (assignment_expression "uVar5 = 0x59" identifier = number_literal) ;) (goto_statement "goto LAB_0017001c;" goto statement_identifier ;) })) (expression_statement "*(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;" (assignment_expression "*(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1" (pointer_expression "*(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" * (cast_expression "(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" ( (binary_expression "PTR__environ_00433318 + uVar2 * 4 + -0x3b30" (binary_expression "PTR__environ_00433318 + uVar2 * 4" identifier + (binary_expression "uVar2 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) })) (return_statement "return;" return ;) })) (labeled_statement "LAB_0017001c:\n  puVar6 = PTR_do_gold_unreachable_004323c4;" statement_identifier : (expression_statement "puVar6 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar6 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;)) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + 0x6d8,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + 0x6d8,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + 0x6d8,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + 0x6d8" identifier + number_literal) , identifier , (binary_expression "PTR_s_alize_xindex_004323b4 + 0x5140" identifier + number_literal) ))) ;) (if_statement "if (*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0') {\n    return;\n  }" if (parenthesized_expression "(*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0')" ( (binary_expression "*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0'" (pointer_expression "*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920)" * (cast_expression "(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar6 + 0x2c32e4) + -0x3920)" ( (binary_expression "*(int *)(puVar6 + 0x2c32e4) + -0x3920" (pointer_expression "*(int *)(puVar6 + 0x2c32e4)" * (cast_expression "(int *)(puVar6 + 0x2c32e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x2c32e4)" ( (binary_expression "puVar6 + 0x2c32e4" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_0016fefc();" (call_expression "FUN_0016fefc()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: void register_option(One_option * this) */\n\nvoid __thiscall gold::options::One_option::register_option(One_option *this)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  mapped_type *ppOVar3;\n  int *piVar4;\n  One_option *this_00;\n  iterator __position;\n  undefined4 uVar5;\n  undefined *puVar6;\n  int iVar7;\n  One_option *local_18 [3];\n  \n  puVar6 = PTR__environ_00433318;\n  __position._M_current = *(One_option ***)(PTR__environ_00433318 + -0x3928);\n  local_18[0] = this;\n  if (__position._M_current == *(One_option ***)(PTR__environ_00433318 + -0x3924)) {\n    std::vector<const_gold::options::One_option*,_std::allocator<const_gold::options::One_option*>_>\n    ::_M_realloc_insert<const_gold::options::One_option*>\n              ((vector<const_gold::options::One_option*,_std::allocator<const_gold::options::One_option*>_>\n                *)(PTR__environ_00433318 + -0x392c),__position,local_18);\n  }\n  else {\n    *__position._M_current = this;\n    *(One_option ***)(puVar6 + -0x3928) = __position._M_current + 1;\n  }\n  puVar6 = PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x3930) == 0) {\n    piVar4 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);\n    piVar4[1] = 1;\n    *(int **)(puVar6 + -0x3930) = piVar4;\n    *piVar4 = (int)(piVar4 + 6);\n    puVar1 = PTR_s_alize_xindex_004323b4;\n    piVar4[2] = 0;\n    piVar4[3] = 0;\n    iVar7 = *(int *)(puVar1 + -0x636c);\n    piVar4[5] = 0;\n    piVar4[6] = 0;\n    piVar4[4] = iVar7;\n  }\n  if ((this->longname)._M_string_length != 0) {\n    ppOVar3 = std::__detail::\n              _Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n              ::operator[](*(_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                             **)(puVar6 + -0x3930),&this->longname);\n    *ppOVar3 = this;\n  }\n  uVar2 = (uint)this->shortname;\n  uVar5 = 0x56;\n  if (uVar2 < 0x80) {\n    if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(One_option **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = this;\n    }\n    return;\n  }\nLAB_0017001c:\n  this_00 = (One_option *)(PTR_s_alize_xindex_004323b4 + 0x6d8);\n  puVar6 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(this_00,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140);\n  if (*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0') {\n    return;\n  }\n  register_option(this_00);\n  return;\n}\n\n" comment (function_definition "void __thiscall gold::options::One_option::register_option(One_option *this)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  mapped_type *ppOVar3;\n  int *piVar4;\n  One_option *this_00;\n  iterator __position;\n  undefined4 uVar5;\n  undefined *puVar6;\n  int iVar7;\n  One_option *local_18 [3];\n  \n  puVar6 = PTR__environ_00433318;\n  __position._M_current = *(One_option ***)(PTR__environ_00433318 + -0x3928);\n  local_18[0] = this;\n  if (__position._M_current == *(One_option ***)(PTR__environ_00433318 + -0x3924)) {\n    std::vector<const_gold::options::One_option*,_std::allocator<const_gold::options::One_option*>_>\n    ::_M_realloc_insert<const_gold::options::One_option*>\n              ((vector<const_gold::options::One_option*,_std::allocator<const_gold::options::One_option*>_>\n                *)(PTR__environ_00433318 + -0x392c),__position,local_18);\n  }\n  else {\n    *__position._M_current = this;\n    *(One_option ***)(puVar6 + -0x3928) = __position._M_current + 1;\n  }\n  puVar6 = PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x3930) == 0) {\n    piVar4 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);\n    piVar4[1] = 1;\n    *(int **)(puVar6 + -0x3930) = piVar4;\n    *piVar4 = (int)(piVar4 + 6);\n    puVar1 = PTR_s_alize_xindex_004323b4;\n    piVar4[2] = 0;\n    piVar4[3] = 0;\n    iVar7 = *(int *)(puVar1 + -0x636c);\n    piVar4[5] = 0;\n    piVar4[6] = 0;\n    piVar4[4] = iVar7;\n  }\n  if ((this->longname)._M_string_length != 0) {\n    ppOVar3 = std::__detail::\n              _Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n              ::operator[](*(_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                             **)(puVar6 + -0x3930),&this->longname);\n    *ppOVar3 = this;\n  }\n  uVar2 = (uint)this->shortname;\n  uVar5 = 0x56;\n  if (uVar2 < 0x80) {\n    if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(One_option **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = this;\n    }\n    return;\n  }\nLAB_0017001c:\n  this_00 = (One_option *)(PTR_s_alize_xindex_004323b4 + 0x6d8);\n  puVar6 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(this_00,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140);\n  if (*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0') {\n    return;\n  }\n  register_option(this_00);\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::options::One_option::" identifier : : identifier : : identifier : :) (function_declarator "register_option(One_option *this)" identifier (parameter_list "(One_option *this)" ( (parameter_declaration "One_option *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  mapped_type *ppOVar3;\n  int *piVar4;\n  One_option *this_00;\n  iterator __position;\n  undefined4 uVar5;\n  undefined *puVar6;\n  int iVar7;\n  One_option *local_18 [3];\n  \n  puVar6 = PTR__environ_00433318;\n  __position._M_current = *(One_option ***)(PTR__environ_00433318 + -0x3928);\n  local_18[0] = this;\n  if (__position._M_current == *(One_option ***)(PTR__environ_00433318 + -0x3924)) {\n    std::vector<const_gold::options::One_option*,_std::allocator<const_gold::options::One_option*>_>\n    ::_M_realloc_insert<const_gold::options::One_option*>\n              ((vector<const_gold::options::One_option*,_std::allocator<const_gold::options::One_option*>_>\n                *)(PTR__environ_00433318 + -0x392c),__position,local_18);\n  }\n  else {\n    *__position._M_current = this;\n    *(One_option ***)(puVar6 + -0x3928) = __position._M_current + 1;\n  }\n  puVar6 = PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x3930) == 0) {\n    piVar4 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);\n    piVar4[1] = 1;\n    *(int **)(puVar6 + -0x3930) = piVar4;\n    *piVar4 = (int)(piVar4 + 6);\n    puVar1 = PTR_s_alize_xindex_004323b4;\n    piVar4[2] = 0;\n    piVar4[3] = 0;\n    iVar7 = *(int *)(puVar1 + -0x636c);\n    piVar4[5] = 0;\n    piVar4[6] = 0;\n    piVar4[4] = iVar7;\n  }\n  if ((this->longname)._M_string_length != 0) {\n    ppOVar3 = std::__detail::\n              _Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n              ::operator[](*(_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                             **)(puVar6 + -0x3930),&this->longname);\n    *ppOVar3 = this;\n  }\n  uVar2 = (uint)this->shortname;\n  uVar5 = 0x56;\n  if (uVar2 < 0x80) {\n    if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(One_option **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = this;\n    }\n    return;\n  }\nLAB_0017001c:\n  this_00 = (One_option *)(PTR_s_alize_xindex_004323b4 + 0x6d8);\n  puVar6 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(this_00,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140);\n  if (*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0') {\n    return;\n  }\n  register_option(this_00);\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "mapped_type *ppOVar3;" type_identifier (pointer_declarator "*ppOVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "One_option *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "iterator __position;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "One_option *local_18 [3];" type_identifier (pointer_declarator "*local_18 [3]" * (array_declarator "local_18 [3]" identifier [ number_literal ])) ;) (expression_statement "puVar6 = PTR__environ_00433318;" (assignment_expression "puVar6 = PTR__environ_00433318" identifier = identifier) ;) (expression_statement "__position._M_current = *(One_option ***)(PTR__environ_00433318 + -0x3928);" (assignment_expression "__position._M_current = *(One_option ***)(PTR__environ_00433318 + -0x3928)" (field_expression "__position._M_current" identifier . field_identifier) = (pointer_expression "*(One_option ***)(PTR__environ_00433318 + -0x3928)" * (cast_expression "(One_option ***)(PTR__environ_00433318 + -0x3928)" ( (type_descriptor "One_option ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(PTR__environ_00433318 + -0x3928)" ( (binary_expression "PTR__environ_00433318 + -0x3928" identifier + number_literal) ))))) ;) (expression_statement "local_18[0] = this;" (assignment_expression "local_18[0] = this" (subscript_expression "local_18[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (__position._M_current == *(One_option ***)(PTR__environ_00433318 + -0x3924)) {\n    std::vector<const_gold::options::One_option*,_std::allocator<const_gold::options::One_option*>_>\n    ::_M_realloc_insert<const_gold::options::One_option*>\n              ((vector<const_gold::options::One_option*,_std::allocator<const_gold::options::One_option*>_>\n                *)(PTR__environ_00433318 + -0x392c),__position,local_18);\n  }\n  else {\n    *__position._M_current = this;\n    *(One_option ***)(puVar6 + -0x3928) = __position._M_current + 1;\n  }" if (parenthesized_expression "(__position._M_current == *(One_option ***)(PTR__environ_00433318 + -0x3924))" ( (binary_expression "__position._M_current == *(One_option ***)(PTR__environ_00433318 + -0x3924)" (field_expression "__position._M_current" identifier . field_identifier) == (pointer_expression "*(One_option ***)(PTR__environ_00433318 + -0x3924)" * (cast_expression "(One_option ***)(PTR__environ_00433318 + -0x3924)" ( (type_descriptor "One_option ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(PTR__environ_00433318 + -0x3924)" ( (binary_expression "PTR__environ_00433318 + -0x3924" identifier + number_literal) ))))) )) (compound_statement "{\n    std::vector<const_gold::options::One_option*,_std::allocator<const_gold::options::One_option*>_>\n    ::_M_realloc_insert<const_gold::options::One_option*>\n              ((vector<const_gold::options::One_option*,_std::allocator<const_gold::options::One_option*>_>\n                *)(PTR__environ_00433318 + -0x392c),__position,local_18);\n  }" { (labeled_statement "std::vector<const_gold::options::One_option*,_std::allocator<const_gold::options::One_option*>_>\n    ::_M_realloc_insert<const_gold::options::One_option*>\n              ((vector<const_gold::options::One_option*,_std::allocator<const_gold::options::One_option*>_>\n                *)(PTR__environ_00433318 + -0x392c),__position,local_18);" statement_identifier (ERROR "::vector<const_gold::options::One_option*,_std::allocator<const_gold::options::One_option*>_>\n    ::_M_realloc_insert<const_gold::options::One_option*>\n              ((vector<const_gold::options::One_option*,_std::allocator<const_gold:" : : (binary_expression "vector<const_gold" identifier < identifier) : : (comma_expression "options::One_option*,_std" identifier (ERROR "::One_option*" : : identifier *) , identifier) : : (binary_expression "allocator<const_gold" identifier < identifier) : : (binary_expression "options::One_option*>_" identifier (ERROR "::One_option*" : : identifier *) > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) : : identifier (ERROR "::One_option*" : : identifier *) > ( ( (binary_expression "vector<const_gold" identifier < identifier) : : (comma_expression "options::One_option*,_std" identifier (ERROR "::One_option*" : : identifier *) , identifier) : : (binary_expression "allocator<const_gold" identifier < identifier) :) : (expression_statement "options::One_option*>_>\n                *)(PTR__environ_00433318 + -0x392c),__position,local_18);" (comma_expression "options::One_option*>_>\n                *)(PTR__environ_00433318 + -0x392c),__position,local_18" (binary_expression "options::One_option*>_>\n                *)(PTR__environ_00433318 + -0x392c" (binary_expression "options::One_option*>_" identifier (ERROR "::One_option*" : : identifier *) > identifier) > (binary_expression "*)(PTR__environ_00433318 + -0x392c" (pointer_expression "*)(PTR__environ_00433318" * (ERROR ")(" ) () identifier) + number_literal)) (ERROR ")" )) , (comma_expression "__position,local_18" identifier , identifier)) (ERROR ")" )) ;)) }) (else_clause "else {\n    *__position._M_current = this;\n    *(One_option ***)(puVar6 + -0x3928) = __position._M_current + 1;\n  }" else (compound_statement "{\n    *__position._M_current = this;\n    *(One_option ***)(puVar6 + -0x3928) = __position._M_current + 1;\n  }" { (expression_statement "*__position._M_current = this;" (assignment_expression "*__position._M_current = this" (pointer_expression "*__position._M_current" * (field_expression "__position._M_current" identifier . field_identifier)) = identifier) ;) (expression_statement "*(One_option ***)(puVar6 + -0x3928) = __position._M_current + 1;" (assignment_expression "*(One_option ***)(puVar6 + -0x3928) = __position._M_current + 1" (pointer_expression "*(One_option ***)(puVar6 + -0x3928)" * (cast_expression "(One_option ***)(puVar6 + -0x3928)" ( (type_descriptor "One_option ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar6 + -0x3928)" ( (binary_expression "puVar6 + -0x3928" identifier + number_literal) )))) = (binary_expression "__position._M_current + 1" (field_expression "__position._M_current" identifier . field_identifier) + number_literal)) ;) }))) (expression_statement "puVar6 = PTR__environ_00433318;" (assignment_expression "puVar6 = PTR__environ_00433318" identifier = identifier) ;) (if_statement "if (*(int *)(PTR__environ_00433318 + -0x3930) == 0) {\n    piVar4 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);\n    piVar4[1] = 1;\n    *(int **)(puVar6 + -0x3930) = piVar4;\n    *piVar4 = (int)(piVar4 + 6);\n    puVar1 = PTR_s_alize_xindex_004323b4;\n    piVar4[2] = 0;\n    piVar4[3] = 0;\n    iVar7 = *(int *)(puVar1 + -0x636c);\n    piVar4[5] = 0;\n    piVar4[6] = 0;\n    piVar4[4] = iVar7;\n  }" if (parenthesized_expression "(*(int *)(PTR__environ_00433318 + -0x3930) == 0)" ( (binary_expression "*(int *)(PTR__environ_00433318 + -0x3930) == 0" (pointer_expression "*(int *)(PTR__environ_00433318 + -0x3930)" * (cast_expression "(int *)(PTR__environ_00433318 + -0x3930)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__environ_00433318 + -0x3930)" ( (binary_expression "PTR__environ_00433318 + -0x3930" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    piVar4 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);\n    piVar4[1] = 1;\n    *(int **)(puVar6 + -0x3930) = piVar4;\n    *piVar4 = (int)(piVar4 + 6);\n    puVar1 = PTR_s_alize_xindex_004323b4;\n    piVar4[2] = 0;\n    piVar4[3] = 0;\n    iVar7 = *(int *)(puVar1 + -0x636c);\n    piVar4[5] = 0;\n    piVar4[6] = 0;\n    piVar4[4] = iVar7;\n  }" { (expression_statement "piVar4 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);" (assignment_expression "piVar4 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c)" identifier = (cast_expression "(int *)(*(code *)PTR_operator_new_0043233c)(0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_0043233c)(0x1c)" (parenthesized_expression "(*(code *)PTR_operator_new_0043233c)" ( (pointer_expression "*(code *)PTR_operator_new_0043233c" * (cast_expression "(code *)PTR_operator_new_0043233c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x1c)" ( number_literal ))))) ;) (expression_statement "piVar4[1] = 1;" (assignment_expression "piVar4[1] = 1" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(puVar6 + -0x3930) = piVar4;" (assignment_expression "*(int **)(puVar6 + -0x3930) = piVar4" (pointer_expression "*(int **)(puVar6 + -0x3930)" * (cast_expression "(int **)(puVar6 + -0x3930)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x3930)" ( (binary_expression "puVar6 + -0x3930" identifier + number_literal) )))) = identifier) ;) (expression_statement "*piVar4 = (int)(piVar4 + 6);" (assignment_expression "*piVar4 = (int)(piVar4 + 6)" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)(piVar4 + 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar4 + 6)" ( (binary_expression "piVar4 + 6" identifier + number_literal) )))) ;) (expression_statement "puVar1 = PTR_s_alize_xindex_004323b4;" (assignment_expression "puVar1 = PTR_s_alize_xindex_004323b4" identifier = identifier) ;) (expression_statement "piVar4[2] = 0;" (assignment_expression "piVar4[2] = 0" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4[3] = 0;" (assignment_expression "piVar4[3] = 0" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = *(int *)(puVar1 + -0x636c);" (assignment_expression "iVar7 = *(int *)(puVar1 + -0x636c)" identifier = (pointer_expression "*(int *)(puVar1 + -0x636c)" * (cast_expression "(int *)(puVar1 + -0x636c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x636c)" ( (binary_expression "puVar1 + -0x636c" identifier + number_literal) ))))) ;) (expression_statement "piVar4[5] = 0;" (assignment_expression "piVar4[5] = 0" (subscript_expression "piVar4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4[6] = 0;" (assignment_expression "piVar4[6] = 0" (subscript_expression "piVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4[4] = iVar7;" (assignment_expression "piVar4[4] = iVar7" (subscript_expression "piVar4[4]" identifier [ number_literal ]) = identifier) ;) })) (if_statement "if ((this->longname)._M_string_length != 0) {\n    ppOVar3 = std::__detail::\n              _Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n              ::operator[](*(_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                             **)(puVar6 + -0x3930),&this->longname);\n    *ppOVar3 = this;\n  }" if (parenthesized_expression "((this->longname)._M_string_length != 0)" ( (binary_expression "(this->longname)._M_string_length != 0" (field_expression "(this->longname)._M_string_length" (parenthesized_expression "(this->longname)" ( (field_expression "this->longname" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n    ppOVar3 = std::__detail::\n              _Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n              ::operator[](*(_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                             **)(puVar6 + -0x3930),&this->longname);\n    *ppOVar3 = this;\n  }" { (ERROR "ppOVar3 = std::__detail::\n              _Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::" (assignment_expression "ppOVar3 = std" identifier = identifier) : : (comma_expression "__detail::\n              _Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std" identifier (ERROR "::\n              _Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>" : : (binary_expression "_Map_base<std" identifier < identifier) : : (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) >) , identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (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>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold" identifier (ERROR "::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>" : : (comma_expression "One_option*>,_std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (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) >) , identifier) : : (binary_expression "options::One_option*>_>,_std" (binary_expression "options::One_option*>_" identifier (ERROR "::One_option*" : : identifier *) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std" identifier (ERROR "::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>" : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (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>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) >) , identifier) : : (binary_expression "hash<std" identifier < identifier) : : (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>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n              ::operator[](*(_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                             **)(puVar6 + -0x3930),&this->longname);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n              ::operator[](*(_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                             **)(puVar6 + -0x3930),&this->longname);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n              ::operator[](*(_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                             **)(puVar6 + -0x3930),&this->longname);" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_false,_true>,_true>\n              ::operator[](*(_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                             **)(puVar6 + -0x3930),&this->longname);" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_false,_true>,_true>\n              ::operator[](*(_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                             **)(puVar6 + -0x3930),&this->longname);" (comma_expression "_Hashtable_traits<true,_false,_true>,_true>\n              ::operator[](*(_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                             **)(puVar6 + -0x3930),&this->longname)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>,_true>\n              ::operator[](*(_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                             **)(puVar6 + -0x3930),&this->longname)" identifier , (binary_expression "_true>,_true>\n              ::operator[](*(_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                             **)(puVar6 + -0x3930),&this->longname)" (binary_expression "_true>,_true" identifier > (ERROR "," ,) identifier) > (ERROR "::" : :) (call_expression "operator[](*(_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                             **)(puVar6 + -0x3930),&this->longname)" (subscript_expression "operator[]" identifier [ identifier ]) (argument_list "(*(_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                             **)(puVar6 + -0x3930),&this->longname)" ( (pointer_expression "*(_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                             **)(puVar6 + -0x3930)" * (call_expression "(_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                             **)(puVar6 + -0x3930)" (parenthesized_expression "(_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                             **)" ( (ERROR "_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::options::One_option*>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Map_base<std::__cxx11::basic_string<char,_std" (binary_expression "_Map_base<std::__cxx11::basic_string<char" (binary_expression "_Map_base<std" identifier < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "One_option*>,_std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (binary_expression "One_option*>_>,_std" (binary_expression "One_option*>_" identifier * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "hash<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_false,_true>,_true>\n                             **" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>,_true>\n                             **" identifier , (binary_expression "_true>,_true>\n                             **" (binary_expression "_true>,_true" identifier > (ERROR "," ,) identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))))) )) (argument_list "(puVar6 + -0x3930)" ( (binary_expression "puVar6 + -0x3930" identifier + number_literal) )))) , (pointer_expression "&this->longname" & (field_expression "this->longname" identifier -> field_identifier)) )))))) ;))))) (expression_statement "*ppOVar3 = this;" (assignment_expression "*ppOVar3 = this" (pointer_expression "*ppOVar3" * identifier) = identifier) ;) })) (expression_statement "uVar2 = (uint)this->shortname;" (assignment_expression "uVar2 = (uint)this->shortname" identifier = (cast_expression "(uint)this->shortname" ( (type_descriptor "uint" type_identifier) ) (field_expression "this->shortname" identifier -> field_identifier))) ;) (expression_statement "uVar5 = 0x56;" (assignment_expression "uVar5 = 0x56" identifier = number_literal) ;) (if_statement "if (uVar2 < 0x80) {\n    if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(One_option **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = this;\n    }\n    return;\n  }" if (parenthesized_expression "(uVar2 < 0x80)" ( (binary_expression "uVar2 < 0x80" identifier < number_literal) )) (compound_statement "{\n    if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(One_option **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = this;\n    }\n    return;\n  }" { (if_statement "if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(One_option **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = this;\n    }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(One_option **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = this;\n    }" { (if_statement "if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }" if (parenthesized_expression "(*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0)" ( (binary_expression "*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0" (pointer_expression "*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" * (cast_expression "(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" ( (binary_expression "PTR__environ_00433318 + uVar2 * 4 + -0x3b30" (binary_expression "PTR__environ_00433318 + uVar2 * 4" identifier + (binary_expression "uVar2 * 4" identifier * number_literal)) + number_literal) )))) != number_literal) )) (compound_statement "{\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }" { (expression_statement "uVar5 = 0x59;" (assignment_expression "uVar5 = 0x59" identifier = number_literal) ;) (goto_statement "goto LAB_0017001c;" goto statement_identifier ;) })) (expression_statement "*(One_option **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = this;" (assignment_expression "*(One_option **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = this" (pointer_expression "*(One_option **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" * (cast_expression "(One_option **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" ( (type_descriptor "One_option **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" ( (binary_expression "PTR__environ_00433318 + uVar2 * 4 + -0x3b30" (binary_expression "PTR__environ_00433318 + uVar2 * 4" identifier + (binary_expression "uVar2 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) })) (return_statement "return;" return ;) })) (labeled_statement "LAB_0017001c:\n  this_00 = (One_option *)(PTR_s_alize_xindex_004323b4 + 0x6d8);" statement_identifier : (expression_statement "this_00 = (One_option *)(PTR_s_alize_xindex_004323b4 + 0x6d8);" (assignment_expression "this_00 = (One_option *)(PTR_s_alize_xindex_004323b4 + 0x6d8)" identifier = (cast_expression "(One_option *)(PTR_s_alize_xindex_004323b4 + 0x6d8)" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + 0x6d8)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + 0x6d8" identifier + number_literal) )))) ;)) (expression_statement "puVar6 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar6 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(this_00,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(this_00,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this_00,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140)" ( identifier , identifier , (binary_expression "PTR_s_alize_xindex_004323b4 + 0x5140" identifier + number_literal) ))) ;) (if_statement "if (*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0') {\n    return;\n  }" if (parenthesized_expression "(*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0')" ( (binary_expression "*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0'" (pointer_expression "*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920)" * (cast_expression "(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar6 + 0x2c32e4) + -0x3920)" ( (binary_expression "*(int *)(puVar6 + 0x2c32e4) + -0x3920" (pointer_expression "*(int *)(puVar6 + 0x2c32e4)" * (cast_expression "(int *)(puVar6 + 0x2c32e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x2c32e4)" ( (binary_expression "puVar6 + 0x2c32e4" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "register_option(this_00);" (call_expression "register_option(this_00)" identifier (argument_list "(this_00)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0016fefc(string *param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  int iVar7;\n  string *local_18 [3];\n  \n  puVar6 = PTR__environ_00433318;\n  puVar4 = *(undefined4 **)(PTR__environ_00433318 + -0x3928);\n  local_18[0] = param_1;\n  if (puVar4 == *(undefined4 **)(PTR__environ_00433318 + -0x3924)) {\n    std::vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);\n  }\n  else {\n    *puVar4 = param_1;\n    *(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;\n  }\n  puVar6 = PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x3930) == 0) {\n    piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);\n    piVar3[1] = 1;\n    *(int **)(puVar6 + -0x3930) = piVar3;\n    *piVar3 = (int)(piVar3 + 6);\n    puVar1 = PTR_s_alize_xindex_004323b4;\n    piVar3[2] = 0;\n    piVar3[3] = 0;\n    iVar7 = *(int *)(puVar1 + -0x636c);\n    piVar3[5] = 0;\n    piVar3[6] = 0;\n    piVar3[4] = iVar7;\n  }\n  if (*(int *)(param_1 + 4) != 0) {\n    puVar4 = (undefined4 *)\n             std::__detail::\n             _Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);\n    *puVar4 = param_1;\n  }\n  uVar2 = (uint)(char)param_1[0x1c];\n  uVar5 = 0x56;\n  if (uVar2 < 0x80) {\n    if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;\n    }\n    return;\n  }\nLAB_0017001c:\n  puVar6 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + 0x6d8,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140);\n  if (*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0') {\n    return;\n  }\n  FUN_0016fefc();\n  return;\n}\n\n" (function_definition "void FUN_0016fefc(string *param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  int iVar7;\n  string *local_18 [3];\n  \n  puVar6 = PTR__environ_00433318;\n  puVar4 = *(undefined4 **)(PTR__environ_00433318 + -0x3928);\n  local_18[0] = param_1;\n  if (puVar4 == *(undefined4 **)(PTR__environ_00433318 + -0x3924)) {\n    std::vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);\n  }\n  else {\n    *puVar4 = param_1;\n    *(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;\n  }\n  puVar6 = PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x3930) == 0) {\n    piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);\n    piVar3[1] = 1;\n    *(int **)(puVar6 + -0x3930) = piVar3;\n    *piVar3 = (int)(piVar3 + 6);\n    puVar1 = PTR_s_alize_xindex_004323b4;\n    piVar3[2] = 0;\n    piVar3[3] = 0;\n    iVar7 = *(int *)(puVar1 + -0x636c);\n    piVar3[5] = 0;\n    piVar3[6] = 0;\n    piVar3[4] = iVar7;\n  }\n  if (*(int *)(param_1 + 4) != 0) {\n    puVar4 = (undefined4 *)\n             std::__detail::\n             _Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);\n    *puVar4 = param_1;\n  }\n  uVar2 = (uint)(char)param_1[0x1c];\n  uVar5 = 0x56;\n  if (uVar2 < 0x80) {\n    if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;\n    }\n    return;\n  }\nLAB_0017001c:\n  puVar6 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + 0x6d8,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140);\n  if (*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0') {\n    return;\n  }\n  FUN_0016fefc();\n  return;\n}" primitive_type (function_declarator "FUN_0016fefc(string *param_1)" identifier (parameter_list "(string *param_1)" ( (parameter_declaration "string *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  int iVar7;\n  string *local_18 [3];\n  \n  puVar6 = PTR__environ_00433318;\n  puVar4 = *(undefined4 **)(PTR__environ_00433318 + -0x3928);\n  local_18[0] = param_1;\n  if (puVar4 == *(undefined4 **)(PTR__environ_00433318 + -0x3924)) {\n    std::vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);\n  }\n  else {\n    *puVar4 = param_1;\n    *(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;\n  }\n  puVar6 = PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x3930) == 0) {\n    piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);\n    piVar3[1] = 1;\n    *(int **)(puVar6 + -0x3930) = piVar3;\n    *piVar3 = (int)(piVar3 + 6);\n    puVar1 = PTR_s_alize_xindex_004323b4;\n    piVar3[2] = 0;\n    piVar3[3] = 0;\n    iVar7 = *(int *)(puVar1 + -0x636c);\n    piVar3[5] = 0;\n    piVar3[6] = 0;\n    piVar3[4] = iVar7;\n  }\n  if (*(int *)(param_1 + 4) != 0) {\n    puVar4 = (undefined4 *)\n             std::__detail::\n             _Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);\n    *puVar4 = param_1;\n  }\n  uVar2 = (uint)(char)param_1[0x1c];\n  uVar5 = 0x56;\n  if (uVar2 < 0x80) {\n    if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;\n    }\n    return;\n  }\nLAB_0017001c:\n  puVar6 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + 0x6d8,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140);\n  if (*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0') {\n    return;\n  }\n  FUN_0016fefc();\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "string *local_18 [3];" type_identifier (pointer_declarator "*local_18 [3]" * (array_declarator "local_18 [3]" identifier [ number_literal ])) ;) (expression_statement "puVar6 = PTR__environ_00433318;" (assignment_expression "puVar6 = PTR__environ_00433318" identifier = identifier) ;) (expression_statement "puVar4 = *(undefined4 **)(PTR__environ_00433318 + -0x3928);" (assignment_expression "puVar4 = *(undefined4 **)(PTR__environ_00433318 + -0x3928)" identifier = (pointer_expression "*(undefined4 **)(PTR__environ_00433318 + -0x3928)" * (cast_expression "(undefined4 **)(PTR__environ_00433318 + -0x3928)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR__environ_00433318 + -0x3928)" ( (binary_expression "PTR__environ_00433318 + -0x3928" identifier + number_literal) ))))) ;) (expression_statement "local_18[0] = param_1;" (assignment_expression "local_18[0] = param_1" (subscript_expression "local_18[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar4 == *(undefined4 **)(PTR__environ_00433318 + -0x3924)) {\n    std::vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);\n  }\n  else {\n    *puVar4 = param_1;\n    *(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;\n  }" if (parenthesized_expression "(puVar4 == *(undefined4 **)(PTR__environ_00433318 + -0x3924))" ( (binary_expression "puVar4 == *(undefined4 **)(PTR__environ_00433318 + -0x3924)" identifier == (pointer_expression "*(undefined4 **)(PTR__environ_00433318 + -0x3924)" * (cast_expression "(undefined4 **)(PTR__environ_00433318 + -0x3924)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR__environ_00433318 + -0x3924)" ( (binary_expression "PTR__environ_00433318 + -0x3924" identifier + number_literal) ))))) )) (compound_statement "{\n    std::vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);\n  }" { (labeled_statement "std::vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);" statement_identifier (ERROR "::vector<gold::options::One_option_const*,std::allocator<gold:" : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "options::One_option_const*,std" identifier (ERROR "::One_option_const*" : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "options::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);" statement_identifier (ERROR "::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold:" : : identifier * >> : : (binary_expression "_M_realloc_insert<gold" identifier < identifier) : : identifier (ERROR "::One_option_const*" : : identifier *) > ( ( (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "options::One_option_const*,std" identifier (ERROR "::One_option_const*" : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (expression_statement "options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);" (comma_expression "options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18" (binary_expression "options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c" identifier (ERROR "::One_option_const*" : : identifier *) >> (binary_expression "*)(PTR__environ_00433318 + -0x392c" (pointer_expression "*)(PTR__environ_00433318" * (ERROR ")(" ) () identifier) + number_literal)) (ERROR ")" )) , (comma_expression "puVar4,local_18" identifier , identifier)) (ERROR ")" )) ;))) }) (else_clause "else {\n    *puVar4 = param_1;\n    *(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;\n  }" else (compound_statement "{\n    *puVar4 = param_1;\n    *(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;\n  }" { (expression_statement "*puVar4 = param_1;" (assignment_expression "*puVar4 = param_1" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "*(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;" (assignment_expression "*(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1" (pointer_expression "*(undefined4 **)(puVar6 + -0x3928)" * (cast_expression "(undefined4 **)(puVar6 + -0x3928)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x3928)" ( (binary_expression "puVar6 + -0x3928" identifier + number_literal) )))) = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) }))) (expression_statement "puVar6 = PTR__environ_00433318;" (assignment_expression "puVar6 = PTR__environ_00433318" identifier = identifier) ;) (if_statement "if (*(int *)(PTR__environ_00433318 + -0x3930) == 0) {\n    piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);\n    piVar3[1] = 1;\n    *(int **)(puVar6 + -0x3930) = piVar3;\n    *piVar3 = (int)(piVar3 + 6);\n    puVar1 = PTR_s_alize_xindex_004323b4;\n    piVar3[2] = 0;\n    piVar3[3] = 0;\n    iVar7 = *(int *)(puVar1 + -0x636c);\n    piVar3[5] = 0;\n    piVar3[6] = 0;\n    piVar3[4] = iVar7;\n  }" if (parenthesized_expression "(*(int *)(PTR__environ_00433318 + -0x3930) == 0)" ( (binary_expression "*(int *)(PTR__environ_00433318 + -0x3930) == 0" (pointer_expression "*(int *)(PTR__environ_00433318 + -0x3930)" * (cast_expression "(int *)(PTR__environ_00433318 + -0x3930)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__environ_00433318 + -0x3930)" ( (binary_expression "PTR__environ_00433318 + -0x3930" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);\n    piVar3[1] = 1;\n    *(int **)(puVar6 + -0x3930) = piVar3;\n    *piVar3 = (int)(piVar3 + 6);\n    puVar1 = PTR_s_alize_xindex_004323b4;\n    piVar3[2] = 0;\n    piVar3[3] = 0;\n    iVar7 = *(int *)(puVar1 + -0x636c);\n    piVar3[5] = 0;\n    piVar3[6] = 0;\n    piVar3[4] = iVar7;\n  }" { (expression_statement "piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);" (assignment_expression "piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c)" identifier = (cast_expression "(int *)(*(code *)PTR_operator_new_0043233c)(0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_0043233c)(0x1c)" (parenthesized_expression "(*(code *)PTR_operator_new_0043233c)" ( (pointer_expression "*(code *)PTR_operator_new_0043233c" * (cast_expression "(code *)PTR_operator_new_0043233c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x1c)" ( number_literal ))))) ;) (expression_statement "piVar3[1] = 1;" (assignment_expression "piVar3[1] = 1" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(puVar6 + -0x3930) = piVar3;" (assignment_expression "*(int **)(puVar6 + -0x3930) = piVar3" (pointer_expression "*(int **)(puVar6 + -0x3930)" * (cast_expression "(int **)(puVar6 + -0x3930)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x3930)" ( (binary_expression "puVar6 + -0x3930" identifier + number_literal) )))) = identifier) ;) (expression_statement "*piVar3 = (int)(piVar3 + 6);" (assignment_expression "*piVar3 = (int)(piVar3 + 6)" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)(piVar3 + 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar3 + 6)" ( (binary_expression "piVar3 + 6" identifier + number_literal) )))) ;) (expression_statement "puVar1 = PTR_s_alize_xindex_004323b4;" (assignment_expression "puVar1 = PTR_s_alize_xindex_004323b4" identifier = identifier) ;) (expression_statement "piVar3[2] = 0;" (assignment_expression "piVar3[2] = 0" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[3] = 0;" (assignment_expression "piVar3[3] = 0" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = *(int *)(puVar1 + -0x636c);" (assignment_expression "iVar7 = *(int *)(puVar1 + -0x636c)" identifier = (pointer_expression "*(int *)(puVar1 + -0x636c)" * (cast_expression "(int *)(puVar1 + -0x636c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -0x636c)" ( (binary_expression "puVar1 + -0x636c" identifier + number_literal) ))))) ;) (expression_statement "piVar3[5] = 0;" (assignment_expression "piVar3[5] = 0" (subscript_expression "piVar3[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[6] = 0;" (assignment_expression "piVar3[6] = 0" (subscript_expression "piVar3[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[4] = iVar7;" (assignment_expression "piVar3[4] = iVar7" (subscript_expression "piVar3[4]" identifier [ number_literal ]) = identifier) ;) })) (if_statement "if (*(int *)(param_1 + 4) != 0) {\n    puVar4 = (undefined4 *)\n             std::__detail::\n             _Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);\n    *puVar4 = param_1;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 4) != 0)" ( (binary_expression "*(int *)(param_1 + 4) != 0" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    puVar4 = (undefined4 *)\n             std::__detail::\n             _Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);\n    *puVar4 = param_1;\n  }" { (ERROR "puVar4 = (undefined4 *)\n             std::" (assignment_expression "puVar4 = (undefined4 *)\n             std" identifier = (cast_expression "(undefined4 *)\n             std" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "__detail::\n             _Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" statement_identifier (ERROR "::\n             _Map_base<std::string,std::pair<std::string_const,gold:" : : (binary_expression "_Map_base<std" identifier < identifier) : : (comma_expression "string,std" identifier , identifier) : : (binary_expression "pair<std" identifier < identifier) : : (comma_expression "string_const,gold" identifier , identifier) :) : (labeled_statement "options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" statement_identifier (ERROR "::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std:" : : (comma_expression "One_option*>,std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<std" identifier < identifier) : : (comma_expression "string_const,gold" identifier , identifier) : : (comma_expression "options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std" identifier (ERROR "::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>" : : (comma_expression "One_option*>>,std" identifier (ERROR "*>>" * >>) , identifier) : : (comma_expression "__detail::_Select1st,std::equal_to<std::string>,std" identifier (ERROR "::_Select1st,std::equal_to<std::string>" : : (comma_expression "_Select1st,std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : identifier >) , identifier) : : (binary_expression "hash<std" identifier < identifier) : : identifier >) , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" statement_identifier (ERROR "::_Mod_range_hashing,std:" : : (comma_expression "_Mod_range_hashing,std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" statement_identifier (ERROR "::_Default_ranged_hash,std:" : : (comma_expression "_Default_ranged_hash,std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" statement_identifier (ERROR "::_Prime_rehash_policy,std:" : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" (comma_expression "_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1)" false , (binary_expression "true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1)" (binary_expression "true>,true" true > (ERROR "," ,) true) > (ERROR "::" : :) (call_expression "operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1)" (subscript_expression "operator[]" identifier [ identifier ]) (argument_list "(*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1)" ( (pointer_expression "*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930)" * (call_expression "(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930)" (parenthesized_expression "(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)" ( (ERROR "_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::" (comma_expression "_Map_base<std::string,std" (binary_expression "_Map_base<std" identifier < identifier) (ERROR "::string" : : identifier) , identifier) : : (binary_expression "pair<std" identifier < identifier) : : (comma_expression "string_const,gold" identifier , identifier) : : identifier : : (comma_expression "One_option*>,std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<std" identifier < identifier) : : (comma_expression "string_const,gold" identifier , identifier) : : identifier : : (comma_expression "One_option*>>,std" identifier (ERROR "*>>" * >>) , identifier) : : identifier : : (comma_expression "_Select1st,std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "string>,std" identifier > (ERROR "," ,) identifier) : : (binary_expression "hash<std" identifier < identifier) : : (binary_expression "string>,std" identifier > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Mod_range_hashing,std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,false,true>,true>\n                            **" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "false,true>,true>\n                            **" false , (binary_expression "true>,true>\n                            **" (binary_expression "true>,true" true > (ERROR "," ,) true) > (pointer_expression "**" * (pointer_expression "*" * identifier))))) )) (argument_list "(puVar6 + -0x3930)" ( (binary_expression "puVar6 + -0x3930" identifier + number_literal) )))) , identifier )))))) ;))))))) (expression_statement "*puVar4 = param_1;" (assignment_expression "*puVar4 = param_1" (pointer_expression "*puVar4" * identifier) = identifier) ;) })) (expression_statement "uVar2 = (uint)(char)param_1[0x1c];" (assignment_expression "uVar2 = (uint)(char)param_1[0x1c]" identifier = (cast_expression "(uint)(char)param_1[0x1c]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)param_1[0x1c]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[0x1c]" identifier [ number_literal ])))) ;) (expression_statement "uVar5 = 0x56;" (assignment_expression "uVar5 = 0x56" identifier = number_literal) ;) (if_statement "if (uVar2 < 0x80) {\n    if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;\n    }\n    return;\n  }" if (parenthesized_expression "(uVar2 < 0x80)" ( (binary_expression "uVar2 < 0x80" identifier < number_literal) )) (compound_statement "{\n    if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;\n    }\n    return;\n  }" { (if_statement "if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;\n    }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;\n    }" { (if_statement "if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }" if (parenthesized_expression "(*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0)" ( (binary_expression "*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0" (pointer_expression "*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" * (cast_expression "(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" ( (binary_expression "PTR__environ_00433318 + uVar2 * 4 + -0x3b30" (binary_expression "PTR__environ_00433318 + uVar2 * 4" identifier + (binary_expression "uVar2 * 4" identifier * number_literal)) + number_literal) )))) != number_literal) )) (compound_statement "{\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }" { (expression_statement "uVar5 = 0x59;" (assignment_expression "uVar5 = 0x59" identifier = number_literal) ;) (goto_statement "goto LAB_0017001c;" goto statement_identifier ;) })) (expression_statement "*(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;" (assignment_expression "*(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1" (pointer_expression "*(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" * (cast_expression "(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" ( (type_descriptor "string **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" ( (binary_expression "PTR__environ_00433318 + uVar2 * 4 + -0x3b30" (binary_expression "PTR__environ_00433318 + uVar2 * 4" identifier + (binary_expression "uVar2 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) })) (return_statement "return;" return ;) })) (labeled_statement "LAB_0017001c:\n  puVar6 = PTR_do_gold_unreachable_004323c4;" statement_identifier : (expression_statement "puVar6 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar6 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;)) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + 0x6d8,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + 0x6d8,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + 0x6d8,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + 0x6d8" identifier + number_literal) , identifier , (binary_expression "PTR_s_alize_xindex_004323b4 + 0x5140" identifier + number_literal) ))) ;) (if_statement "if (*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0') {\n    return;\n  }" if (parenthesized_expression "(*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0')" ( (binary_expression "*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0'" (pointer_expression "*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920)" * (cast_expression "(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar6 + 0x2c32e4) + -0x3920)" ( (binary_expression "*(int *)(puVar6 + 0x2c32e4) + -0x3920" (pointer_expression "*(int *)(puVar6 + 0x2c32e4)" * (cast_expression "(int *)(puVar6 + 0x2c32e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x2c32e4)" ( (binary_expression "puVar6 + 0x2c32e4" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_0016fefc();" (call_expression "FUN_0016fefc()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (labeled_statement statement_identifier (ERROR : : (binary_expression IDENT < IDENT) : : (comma_expression IDENT (ERROR : : IDENT *) , IDENT) : : (binary_expression IDENT < IDENT) :) : (labeled_statement statement_identifier (ERROR : : IDENT * >> : : (binary_expression IDENT < IDENT) : : IDENT (ERROR : : IDENT *) > ( ( (binary_expression IDENT < IDENT) : : (comma_expression IDENT (ERROR : : IDENT *) , IDENT) : : (binary_expression IDENT < IDENT) :) : (expression_statement (comma_expression (binary_expression IDENT (ERROR : : IDENT *) >> (binary_expression (pointer_expression * (ERROR ) () IDENT) + LIT)) (ERROR )) , (comma_expression IDENT , IDENT)) (ERROR )) ;))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ 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 { (ERROR (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) : :) (labeled_statement statement_identifier (ERROR : : (binary_expression IDENT < IDENT) : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT (ERROR * >) , IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression IDENT , IDENT) : : (comma_expression IDENT (ERROR : : (comma_expression IDENT (ERROR * >>) , IDENT) : : (comma_expression IDENT (ERROR : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) : : IDENT >) , IDENT) : : (binary_expression IDENT < IDENT) : : IDENT >) , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier : (ERROR :) (expression_statement (comma_expression (binary_expression IDENT < BOOL) , (comma_expression BOOL , (binary_expression (binary_expression BOOL > (ERROR ,) BOOL) > (ERROR : :) (call_expression (subscript_expression IDENT [ IDENT ]) (argument_list ( (pointer_expression * (call_expression (parenthesized_expression ( (ERROR (comma_expression (binary_expression IDENT < IDENT) (ERROR : : IDENT) , IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression IDENT , IDENT) : : IDENT : : (comma_expression IDENT (ERROR * >) , IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression IDENT , IDENT) : : IDENT : : (comma_expression IDENT (ERROR * >>) , IDENT) : : IDENT : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT > (ERROR ,) IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT > (ERROR ,) IDENT) : : IDENT : : (comma_expression IDENT , IDENT) : : IDENT : : (comma_expression IDENT , IDENT) : : IDENT : : (comma_expression IDENT , IDENT) : : IDENT : :) (comma_expression (binary_expression IDENT < BOOL) , (comma_expression BOOL , (binary_expression (binary_expression BOOL > (ERROR ,) BOOL) > (pointer_expression * (pointer_expression * IDENT))))) )) (argument_list ( (binary_expression IDENT + LIT) )))) , IDENT )))))) ;))))))) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) = IDENT) ;) })) (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0016fefc(string *param_1)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  int iVar7;\n  string *local_18 [3];\n  \n  puVar6 = PTR__environ_00433318;\n  puVar4 = *(undefined4 **)(PTR__environ_00433318 + -0x3928);\n  local_18[0] = param_1;\n  if (puVar4 == *(undefined4 **)(PTR__environ_00433318 + -0x3924)) {\n    std::vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);\n  }\n  else {\n    *puVar4 = param_1;\n    *(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;\n  }\n  puVar6 = PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x3930) == 0) {\n    piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);\n    piVar3[1] = 1;\n    *(int **)(puVar6 + -0x3930) = piVar3;\n    *piVar3 = (int)(piVar3 + 6);\n    puVar1 = PTR_s_alize_xindex_004323b4;\n    piVar3[2] = 0;\n    piVar3[3] = 0;\n    iVar7 = *(int *)(puVar1 + -0x636c);\n    piVar3[5] = 0;\n    piVar3[6] = 0;\n    piVar3[4] = iVar7;\n  }\n  if (*(int *)(param_1 + 4) != 0) {\n    puVar4 = (undefined4 *)\n             std::__detail::\n             _Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);\n    *puVar4 = param_1;\n  }\n  uVar2 = (uint)(char)param_1[0x1c];\n  uVar5 = 0x56;\n  if (uVar2 < 0x80) {\n    if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;\n    }\n    return;\n  }\nLAB_0017001c:\n  puVar6 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + 0x6d8,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140);\n  if (*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0') {\n    return;\n  }\n  FUN_0016fefc();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0016fefc(string *param_1)" (identifier "FUN_0016fefc") (parameter_list "(string *param_1)" (( "(") (parameter_declaration "string *param_1" (type_identifier "string") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  int iVar7;\n  string *local_18 [3];\n  \n  puVar6 = PTR__environ_00433318;\n  puVar4 = *(undefined4 **)(PTR__environ_00433318 + -0x3928);\n  local_18[0] = param_1;\n  if (puVar4 == *(undefined4 **)(PTR__environ_00433318 + -0x3924)) {\n    std::vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);\n  }\n  else {\n    *puVar4 = param_1;\n    *(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;\n  }\n  puVar6 = PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x3930) == 0) {\n    piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);\n    piVar3[1] = 1;\n    *(int **)(puVar6 + -0x3930) = piVar3;\n    *piVar3 = (int)(piVar3 + 6);\n    puVar1 = PTR_s_alize_xindex_004323b4;\n    piVar3[2] = 0;\n    piVar3[3] = 0;\n    iVar7 = *(int *)(puVar1 + -0x636c);\n    piVar3[5] = 0;\n    piVar3[6] = 0;\n    piVar3[4] = iVar7;\n  }\n  if (*(int *)(param_1 + 4) != 0) {\n    puVar4 = (undefined4 *)\n             std::__detail::\n             _Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);\n    *puVar4 = param_1;\n  }\n  uVar2 = (uint)(char)param_1[0x1c];\n  uVar5 = 0x56;\n  if (uVar2 < 0x80) {\n    if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;\n    }\n    return;\n  }\nLAB_0017001c:\n  puVar6 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + 0x6d8,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140);\n  if (*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0') {\n    return;\n  }\n  FUN_0016fefc();\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "string *local_18 [3];" (type_identifier "string") (pointer_declarator "*local_18 [3]" (* "*") (array_declarator "local_18 [3]" (identifier "local_18") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar6 = PTR__environ_00433318;" (assignment_expression "puVar6 = PTR__environ_00433318" (identifier "puVar6") (= "=") (identifier "PTR__environ_00433318")) (; ";")) (expression_statement "puVar4 = *(undefined4 **)(PTR__environ_00433318 + -0x3928);" (assignment_expression "puVar4 = *(undefined4 **)(PTR__environ_00433318 + -0x3928)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(PTR__environ_00433318 + -0x3928)" (* "*") (cast_expression "(undefined4 **)(PTR__environ_00433318 + -0x3928)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR__environ_00433318 + -0x3928)" (( "(") (binary_expression "PTR__environ_00433318 + -0x3928" (identifier "PTR__environ_00433318") (+ "+") (number_literal "-0x3928")) () ")"))))) (; ";")) (expression_statement "local_18[0] = param_1;" (assignment_expression "local_18[0] = param_1" (subscript_expression "local_18[0]" (identifier "local_18") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_1")) (; ";")) (if_statement "if (puVar4 == *(undefined4 **)(PTR__environ_00433318 + -0x3924)) {\n    std::vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);\n  }\n  else {\n    *puVar4 = param_1;\n    *(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;\n  }" (if "if") (parenthesized_expression "(puVar4 == *(undefined4 **)(PTR__environ_00433318 + -0x3924))" (( "(") (binary_expression "puVar4 == *(undefined4 **)(PTR__environ_00433318 + -0x3924)" (identifier "puVar4") (== "==") (pointer_expression "*(undefined4 **)(PTR__environ_00433318 + -0x3924)" (* "*") (cast_expression "(undefined4 **)(PTR__environ_00433318 + -0x3924)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR__environ_00433318 + -0x3924)" (( "(") (binary_expression "PTR__environ_00433318 + -0x3924" (identifier "PTR__environ_00433318") (+ "+") (number_literal "-0x3924")) () ")"))))) () ")")) (compound_statement "{\n    std::vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);\n  }" ({ "{") (labeled_statement "std::vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);" (statement_identifier "std") (ERROR "::vector<gold::options::One_option_const*,std::allocator<gold:" (: ":") (: ":") (binary_expression "vector<gold" (identifier "vector") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "options::One_option_const*,std" (identifier "options") (ERROR "::One_option_const*" (: ":") (: ":") (identifier "One_option_const") (* "*")) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "allocator<gold" (identifier "allocator") (< "<") (identifier "gold")) (: ":")) (: ":") (labeled_statement "options::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);" (statement_identifier "options") (ERROR "::One_option_const*>>::\n    _M_realloc_insert<gold::options::One_option_const*>\n              ((vector<gold::options::One_option_const*,std::allocator<gold:" (: ":") (: ":") (identifier "One_option_const") (* "*") (>> ">>") (: ":") (: ":") (binary_expression "_M_realloc_insert<gold" (identifier "_M_realloc_insert") (< "<") (identifier "gold")) (: ":") (: ":") (identifier "options") (ERROR "::One_option_const*" (: ":") (: ":") (identifier "One_option_const") (* "*")) (> ">") (( "(") (( "(") (binary_expression "vector<gold" (identifier "vector") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "options::One_option_const*,std" (identifier "options") (ERROR "::One_option_const*" (: ":") (: ":") (identifier "One_option_const") (* "*")) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "allocator<gold" (identifier "allocator") (< "<") (identifier "gold")) (: ":")) (: ":") (expression_statement "options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);" (comma_expression "options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18" (binary_expression "options::One_option_const*>>\n                *)(PTR__environ_00433318 + -0x392c" (identifier "options") (ERROR "::One_option_const*" (: ":") (: ":") (identifier "One_option_const") (* "*")) (>> ">>") (binary_expression "*)(PTR__environ_00433318 + -0x392c" (pointer_expression "*)(PTR__environ_00433318" (* "*") (ERROR ")(" () ")") (( "(")) (identifier "PTR__environ_00433318")) (+ "+") (number_literal "-0x392c"))) (ERROR ")" () ")")) (, ",") (comma_expression "puVar4,local_18" (identifier "puVar4") (, ",") (identifier "local_18"))) (ERROR ")" () ")")) (; ";")))) (} "}")) (else_clause "else {\n    *puVar4 = param_1;\n    *(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;\n  }" (else "else") (compound_statement "{\n    *puVar4 = param_1;\n    *(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;\n  }" ({ "{") (expression_statement "*puVar4 = param_1;" (assignment_expression "*puVar4 = param_1" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;" (assignment_expression "*(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1" (pointer_expression "*(undefined4 **)(puVar6 + -0x3928)" (* "*") (cast_expression "(undefined4 **)(puVar6 + -0x3928)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar6 + -0x3928)" (( "(") (binary_expression "puVar6 + -0x3928" (identifier "puVar6") (+ "+") (number_literal "-0x3928")) () ")")))) (= "=") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "puVar6 = PTR__environ_00433318;" (assignment_expression "puVar6 = PTR__environ_00433318" (identifier "puVar6") (= "=") (identifier "PTR__environ_00433318")) (; ";")) (if_statement "if (*(int *)(PTR__environ_00433318 + -0x3930) == 0) {\n    piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);\n    piVar3[1] = 1;\n    *(int **)(puVar6 + -0x3930) = piVar3;\n    *piVar3 = (int)(piVar3 + 6);\n    puVar1 = PTR_s_alize_xindex_004323b4;\n    piVar3[2] = 0;\n    piVar3[3] = 0;\n    iVar7 = *(int *)(puVar1 + -0x636c);\n    piVar3[5] = 0;\n    piVar3[6] = 0;\n    piVar3[4] = iVar7;\n  }" (if "if") (parenthesized_expression "(*(int *)(PTR__environ_00433318 + -0x3930) == 0)" (( "(") (binary_expression "*(int *)(PTR__environ_00433318 + -0x3930) == 0" (pointer_expression "*(int *)(PTR__environ_00433318 + -0x3930)" (* "*") (cast_expression "(int *)(PTR__environ_00433318 + -0x3930)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR__environ_00433318 + -0x3930)" (( "(") (binary_expression "PTR__environ_00433318 + -0x3930" (identifier "PTR__environ_00433318") (+ "+") (number_literal "-0x3930")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);\n    piVar3[1] = 1;\n    *(int **)(puVar6 + -0x3930) = piVar3;\n    *piVar3 = (int)(piVar3 + 6);\n    puVar1 = PTR_s_alize_xindex_004323b4;\n    piVar3[2] = 0;\n    piVar3[3] = 0;\n    iVar7 = *(int *)(puVar1 + -0x636c);\n    piVar3[5] = 0;\n    piVar3[6] = 0;\n    piVar3[4] = iVar7;\n  }" ({ "{") (expression_statement "piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);" (assignment_expression "piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c)" (identifier "piVar3") (= "=") (cast_expression "(int *)(*(code *)PTR_operator_new_0043233c)(0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_0043233c)(0x1c)" (parenthesized_expression "(*(code *)PTR_operator_new_0043233c)" (( "(") (pointer_expression "*(code *)PTR_operator_new_0043233c" (* "*") (cast_expression "(code *)PTR_operator_new_0043233c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_0043233c"))) () ")")) (argument_list "(0x1c)" (( "(") (number_literal "0x1c") () ")"))))) (; ";")) (expression_statement "piVar3[1] = 1;" (assignment_expression "piVar3[1] = 1" (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(int **)(puVar6 + -0x3930) = piVar3;" (assignment_expression "*(int **)(puVar6 + -0x3930) = piVar3" (pointer_expression "*(int **)(puVar6 + -0x3930)" (* "*") (cast_expression "(int **)(puVar6 + -0x3930)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar6 + -0x3930)" (( "(") (binary_expression "puVar6 + -0x3930" (identifier "puVar6") (+ "+") (number_literal "-0x3930")) () ")")))) (= "=") (identifier "piVar3")) (; ";")) (expression_statement "*piVar3 = (int)(piVar3 + 6);" (assignment_expression "*piVar3 = (int)(piVar3 + 6)" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (cast_expression "(int)(piVar3 + 6)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar3 + 6)" (( "(") (binary_expression "piVar3 + 6" (identifier "piVar3") (+ "+") (number_literal "6")) () ")")))) (; ";")) (expression_statement "puVar1 = PTR_s_alize_xindex_004323b4;" (assignment_expression "puVar1 = PTR_s_alize_xindex_004323b4" (identifier "puVar1") (= "=") (identifier "PTR_s_alize_xindex_004323b4")) (; ";")) (expression_statement "piVar3[2] = 0;" (assignment_expression "piVar3[2] = 0" (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar3[3] = 0;" (assignment_expression "piVar3[3] = 0" (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = *(int *)(puVar1 + -0x636c);" (assignment_expression "iVar7 = *(int *)(puVar1 + -0x636c)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(puVar1 + -0x636c)" (* "*") (cast_expression "(int *)(puVar1 + -0x636c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -0x636c)" (( "(") (binary_expression "puVar1 + -0x636c" (identifier "puVar1") (+ "+") (number_literal "-0x636c")) () ")"))))) (; ";")) (expression_statement "piVar3[5] = 0;" (assignment_expression "piVar3[5] = 0" (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar3[6] = 0;" (assignment_expression "piVar3[6] = 0" (subscript_expression "piVar3[6]" (identifier "piVar3") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar3[4] = iVar7;" (assignment_expression "piVar3[4] = iVar7" (subscript_expression "piVar3[4]" (identifier "piVar3") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 4) != 0) {\n    puVar4 = (undefined4 *)\n             std::__detail::\n             _Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);\n    *puVar4 = param_1;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 4) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 4) != 0" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    puVar4 = (undefined4 *)\n             std::__detail::\n             _Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);\n    *puVar4 = param_1;\n  }" ({ "{") (ERROR "puVar4 = (undefined4 *)\n             std::" (assignment_expression "puVar4 = (undefined4 *)\n             std" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)\n             std" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "std"))) (: ":") (: ":")) (labeled_statement "__detail::\n             _Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" (statement_identifier "__detail") (ERROR "::\n             _Map_base<std::string,std::pair<std::string_const,gold:" (: ":") (: ":") (binary_expression "_Map_base<std" (identifier "_Map_base") (< "<") (identifier "std")) (: ":") (: ":") (comma_expression "string,std" (identifier "string") (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "pair<std" (identifier "pair") (< "<") (identifier "std")) (: ":") (: ":") (comma_expression "string_const,gold" (identifier "string_const") (, ",") (identifier "gold")) (: ":")) (: ":") (labeled_statement "options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" (statement_identifier "options") (ERROR "::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std:" (: ":") (: ":") (comma_expression "One_option*>,std" (identifier "One_option") (ERROR "*>" (* "*") (> ">")) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "allocator<std" (identifier "allocator") (< "<") (identifier "std")) (: ":") (: ":") (binary_expression "pair<std" (identifier "pair") (< "<") (identifier "std")) (: ":") (: ":") (comma_expression "string_const,gold" (identifier "string_const") (, ",") (identifier "gold")) (: ":") (: ":") (comma_expression "options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std" (identifier "options") (ERROR "::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>" (: ":") (: ":") (comma_expression "One_option*>>,std" (identifier "One_option") (ERROR "*>>" (* "*") (>> ">>")) (, ",") (identifier "std")) (: ":") (: ":") (comma_expression "__detail::_Select1st,std::equal_to<std::string>,std" (identifier "__detail") (ERROR "::_Select1st,std::equal_to<std::string>" (: ":") (: ":") (comma_expression "_Select1st,std" (identifier "_Select1st") (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "equal_to<std" (identifier "equal_to") (< "<") (identifier "std")) (: ":") (: ":") (identifier "string") (> ">")) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "hash<std" (identifier "hash") (< "<") (identifier "std")) (: ":") (: ":") (identifier "string") (> ">")) (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" (statement_identifier "__detail") (ERROR "::_Mod_range_hashing,std:" (: ":") (: ":") (comma_expression "_Mod_range_hashing,std" (identifier "_Mod_range_hashing") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" (statement_identifier "__detail") (ERROR "::_Default_ranged_hash,std:" (: ":") (: ":") (comma_expression "_Default_ranged_hash,std" (identifier "_Default_ranged_hash") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" (statement_identifier "__detail") (ERROR "::_Prime_rehash_policy,std:" (: ":") (: ":") (comma_expression "_Prime_rehash_policy,std" (identifier "_Prime_rehash_policy") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" (statement_identifier "__detail") (: ":") (ERROR ":" (: ":")) (expression_statement "_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1);" (comma_expression "_Hashtable_traits<true,false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1)" (binary_expression "_Hashtable_traits<true" (identifier "_Hashtable_traits") (< "<") (true "true")) (, ",") (comma_expression "false,true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1)" (false "false") (, ",") (binary_expression "true>,true>\n             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1)" (binary_expression "true>,true" (true "true") (> ">") (ERROR "," (, ",")) (true "true")) (> ">") (ERROR "::" (: ":") (: ":")) (call_expression "operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1)" (subscript_expression "operator[]" (identifier "operator") ([ "[") (identifier "") (] "]")) (argument_list "(*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930),param_1)" (( "(") (pointer_expression "*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930)" (* "*") (call_expression "(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)(puVar6 + -0x3930)" (parenthesized_expression "(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>\n                            **)" (( "(") (ERROR "_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::" (comma_expression "_Map_base<std::string,std" (binary_expression "_Map_base<std" (identifier "_Map_base") (< "<") (identifier "std")) (ERROR "::string" (: ":") (: ":") (identifier "string")) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "pair<std" (identifier "pair") (< "<") (identifier "std")) (: ":") (: ":") (comma_expression "string_const,gold" (identifier "string_const") (, ",") (identifier "gold")) (: ":") (: ":") (identifier "options") (: ":") (: ":") (comma_expression "One_option*>,std" (identifier "One_option") (ERROR "*>" (* "*") (> ">")) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "allocator<std" (identifier "allocator") (< "<") (identifier "std")) (: ":") (: ":") (binary_expression "pair<std" (identifier "pair") (< "<") (identifier "std")) (: ":") (: ":") (comma_expression "string_const,gold" (identifier "string_const") (, ",") (identifier "gold")) (: ":") (: ":") (identifier "options") (: ":") (: ":") (comma_expression "One_option*>>,std" (identifier "One_option") (ERROR "*>>" (* "*") (>> ">>")) (, ",") (identifier "std")) (: ":") (: ":") (identifier "__detail") (: ":") (: ":") (comma_expression "_Select1st,std" (identifier "_Select1st") (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "equal_to<std" (identifier "equal_to") (< "<") (identifier "std")) (: ":") (: ":") (binary_expression "string>,std" (identifier "string") (> ">") (ERROR "," (, ",")) (identifier "std")) (: ":") (: ":") (binary_expression "hash<std" (identifier "hash") (< "<") (identifier "std")) (: ":") (: ":") (binary_expression "string>,std" (identifier "string") (> ">") (ERROR "," (, ",")) (identifier "std")) (: ":") (: ":") (identifier "__detail") (: ":") (: ":") (comma_expression "_Mod_range_hashing,std" (identifier "_Mod_range_hashing") (, ",") (identifier "std")) (: ":") (: ":") (identifier "__detail") (: ":") (: ":") (comma_expression "_Default_ranged_hash,std" (identifier "_Default_ranged_hash") (, ",") (identifier "std")) (: ":") (: ":") (identifier "__detail") (: ":") (: ":") (comma_expression "_Prime_rehash_policy,std" (identifier "_Prime_rehash_policy") (, ",") (identifier "std")) (: ":") (: ":") (identifier "__detail") (: ":") (: ":")) (comma_expression "_Hashtable_traits<true,false,true>,true>\n                            **" (binary_expression "_Hashtable_traits<true" (identifier "_Hashtable_traits") (< "<") (true "true")) (, ",") (comma_expression "false,true>,true>\n                            **" (false "false") (, ",") (binary_expression "true>,true>\n                            **" (binary_expression "true>,true" (true "true") (> ">") (ERROR "," (, ",")) (true "true")) (> ">") (pointer_expression "**" (* "*") (pointer_expression "*" (* "*") (identifier "")))))) () ")")) (argument_list "(puVar6 + -0x3930)" (( "(") (binary_expression "puVar6 + -0x3930" (identifier "puVar6") (+ "+") (number_literal "-0x3930")) () ")")))) (, ",") (identifier "param_1") () ")")))))) (; ";")))))))) (expression_statement "*puVar4 = param_1;" (assignment_expression "*puVar4 = param_1" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (identifier "param_1")) (; ";")) (} "}"))) (expression_statement "uVar2 = (uint)(char)param_1[0x1c];" (assignment_expression "uVar2 = (uint)(char)param_1[0x1c]" (identifier "uVar2") (= "=") (cast_expression "(uint)(char)param_1[0x1c]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(char)param_1[0x1c]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_1[0x1c]" (identifier "param_1") ([ "[") (number_literal "0x1c") (] "]"))))) (; ";")) (expression_statement "uVar5 = 0x56;" (assignment_expression "uVar5 = 0x56" (identifier "uVar5") (= "=") (number_literal "0x56")) (; ";")) (if_statement "if (uVar2 < 0x80) {\n    if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(uVar2 < 0x80)" (( "(") (binary_expression "uVar2 < 0x80" (identifier "uVar2") (< "<") (number_literal "0x80")) () ")")) (compound_statement "{\n    if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;\n    }\n    return;\n  }" ({ "{") (if_statement "if (uVar2 != 0) {\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;\n    }" (if "if") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }\n      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;\n    }" ({ "{") (if_statement "if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }" (if "if") (parenthesized_expression "(*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0)" (( "(") (binary_expression "*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0" (pointer_expression "*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" (* "*") (cast_expression "(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" (( "(") (binary_expression "PTR__environ_00433318 + uVar2 * 4 + -0x3b30" (binary_expression "PTR__environ_00433318 + uVar2 * 4" (identifier "PTR__environ_00433318") (+ "+") (binary_expression "uVar2 * 4" (identifier "uVar2") (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x3b30")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar5 = 0x59;\n        goto LAB_0017001c;\n      }" ({ "{") (expression_statement "uVar5 = 0x59;" (assignment_expression "uVar5 = 0x59" (identifier "uVar5") (= "=") (number_literal "0x59")) (; ";")) (goto_statement "goto LAB_0017001c;" (goto "goto") (statement_identifier "LAB_0017001c") (; ";")) (} "}"))) (expression_statement "*(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;" (assignment_expression "*(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1" (pointer_expression "*(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" (* "*") (cast_expression "(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" (( "(") (type_descriptor "string **" (type_identifier "string") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR__environ_00433318 + uVar2 * 4 + -0x3b30)" (( "(") (binary_expression "PTR__environ_00433318 + uVar2 * 4 + -0x3b30" (binary_expression "PTR__environ_00433318 + uVar2 * 4" (identifier "PTR__environ_00433318") (+ "+") (binary_expression "uVar2 * 4" (identifier "uVar2") (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x3b30")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_0017001c:\n  puVar6 = PTR_do_gold_unreachable_004323c4;" (statement_identifier "LAB_0017001c") (: ":") (expression_statement "puVar6 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar6 = PTR_do_gold_unreachable_004323c4" (identifier "puVar6") (= "=") (identifier "PTR_do_gold_unreachable_004323c4")) (; ";"))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + 0x6d8,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_s_alize_xindex_004323b4 + 0x6d8,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_s_alize_xindex_004323b4 + 0x6d8,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + 0x6d8" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "0x6d8")) (, ",") (identifier "uVar5") (, ",") (binary_expression "PTR_s_alize_xindex_004323b4 + 0x5140" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "0x5140")) () ")"))) (; ";")) (if_statement "if (*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0') {\n    return;\n  }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0'" (pointer_expression "*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920)" (* "*") (cast_expression "(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar6 + 0x2c32e4) + -0x3920)" (( "(") (binary_expression "*(int *)(puVar6 + 0x2c32e4) + -0x3920" (pointer_expression "*(int *)(puVar6 + 0x2c32e4)" (* "*") (cast_expression "(int *)(puVar6 + 0x2c32e4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0x2c32e4)" (( "(") (binary_expression "puVar6 + 0x2c32e4" (identifier "puVar6") (+ "+") (number_literal "0x2c32e4")) () ")")))) (+ "+") (number_literal "-0x3920")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0016fefc();" (call_expression "FUN_0016fefc()" (identifier "FUN_0016fefc") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original prototype: void register_option(One_option * this) */

void __thiscall gold::var_2::type_1::function_1(type_1 *this)

{
  type_2 *var_6;
  type_3 var_9;
  type_4 *ppOVar3;
  int *var_5;
  type_1 *this_00;
  type_5 __position;
  type_6 uVar5;
  type_2 *var_4;
  int iVar7;
  type_1 *local_18 [3];
  
  var_4 = var_1;
  __position._M_current = *(type_1 ***)(var_1 + -0x3928);
  local_18[0] = this;
  if (__position._M_current == *(type_1 ***)(var_1 + -0x3924)) {
    std::vector<const_gold::var_2::type_1*,_std::allocator<const_gold::var_2::type_1*>var_3>
    ::_M_realloc_insert<const_gold::var_2::type_1*>
              ((vector<const_gold::var_2::type_1*,_std::allocator<const_gold::var_2::type_1*>var_3>
                *)(var_1 + -0x392c),__position,local_18);
  }
  else {
    *__position._M_current = this;
    *(type_1 ***)(var_4 + -0x3928) = __position._M_current + 1;
  }
  var_4 = var_1;
  if (*(int *)(var_1 + -0x3930) == 0) {
    var_5 = (int *)(*(type_7 *)PTR_operator_new_0043233c)(0x1c);
    var_5[1] = 1;
    *(int **)(var_4 + -0x3930) = var_5;
    *var_5 = (int)(var_5 + 6);
    var_6 = var_10;
    var_5[2] = 0;
    var_5[3] = 0;
    iVar7 = *(int *)(var_6 + -0x636c);
    var_5[5] = 0;
    var_5[6] = 0;
    var_5[4] = iVar7;
  }
  if ((this->longname)._M_string_length != 0) {
    ppOVar3 = std::__detail::
              _Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>var_3>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>var_3>,_gold::var_2::type_1*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>var_3>,_gold::var_2::type_1*>var_3>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>var_3>var_3>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>var_3>var_3>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_7<true,_false,var_8>,var_8>
              ::operator[](*(_Map_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>var_3>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>var_3>,_gold::var_2::type_1*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>var_3>,_gold::var_2::type_1*>var_3>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>var_3>var_3>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>var_3>var_3>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_7<true,_false,var_8>,var_8>
                             **)(var_4 + -0x3930),&this->longname);
    *ppOVar3 = this;
  }
  var_9 = (type_3)this->shortname;
  uVar5 = 0x56;
  if (var_9 < 0x80) {
    if (var_9 != 0) {
      if (*(int *)(var_1 + var_9 * 4 + -0x3b30) != 0) {
        uVar5 = 0x59;
        goto LAB_0017001c;
      }
      *(type_1 **)(var_1 + var_9 * 4 + -0x3b30) = this;
    }
    return;
  }
LAB_0017001c:
  this_00 = (type_1 *)(var_10 + 0x6d8);
  var_4 = PTR_do_gold_unreachable_004323c4;
  (*(type_7 *)PTR_do_gold_unreachable_004323c4)(this_00,uVar5,var_10 + 0x5140);
  if (*(char *)(*(int *)(var_4 + 0x2c32e4) + -0x3920) == '\0') {
    return;
  }
  function_1(this_00);
  return;
}


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

void MASKED(string *param_1)

{
  undefined *puVar1;
  uint uVar2;
  int *piVar3;
  undefined4 *puVar4;
  undefined4 uVar5;
  undefined *puVar6;
  int iVar7;
  string *local_18 [3];
  
  puVar6 = PTR__environ_00433318;
  puVar4 = *(undefined4 **)(PTR__environ_00433318 + -0x3928);
  local_18[0] = param_1;
  if (puVar4 == *(undefined4 **)(PTR__environ_00433318 + -0x3924)) {
    std::vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>::
    _M_realloc_insert<gold::options::One_option_const*>
              ((vector<gold::options::One_option_const*,std::allocator<gold::options::One_option_const*>>
                *)(PTR__environ_00433318 + -0x392c),puVar4,local_18);
  }
  else {
    *puVar4 = param_1;
    *(undefined4 **)(puVar6 + -0x3928) = puVar4 + 1;
  }
  puVar6 = PTR__environ_00433318;
  if (*(int *)(PTR__environ_00433318 + -0x3930) == 0) {
    piVar3 = (int *)(*(code *)PTR_operator_new_0043233c)(0x1c);
    piVar3[1] = 1;
    *(int **)(puVar6 + -0x3930) = piVar3;
    *piVar3 = (int)(piVar3 + 6);
    puVar1 = PTR_s_alize_xindex_004323b4;
    piVar3[2] = 0;
    piVar3[3] = 0;
    iVar7 = *(int *)(puVar1 + -0x636c);
    piVar3[5] = 0;
    piVar3[6] = 0;
    piVar3[4] = iVar7;
  }
  if (*(int *)(param_1 + 4) != 0) {
    puVar4 = (undefined4 *)
             std::__detail::
             _Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>
             ::operator[](*(_Map_base<std::string,std::pair<std::string_const,gold::options::One_option*>,std::allocator<std::pair<std::string_const,gold::options::One_option*>>,std::__detail::_Select1st,std::equal_to<std::string>,std::hash<std::string>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>,true>
                            **)(puVar6 + -0x3930),param_1);
    *puVar4 = param_1;
  }
  uVar2 = (uint)(char)param_1[0x1c];
  uVar5 = 0x56;
  if (uVar2 < 0x80) {
    if (uVar2 != 0) {
      if (*(int *)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) != 0) {
        uVar5 = 0x59;
        goto LAB_0017001c;
      }
      *(string **)(PTR__environ_00433318 + uVar2 * 4 + -0x3b30) = param_1;
    }
    return;
  }
LAB_0017001c:
  puVar6 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)
            (PTR_s_alize_xindex_004323b4 + 0x6d8,uVar5,PTR_s_alize_xindex_004323b4 + 0x5140);
  if (*(char *)(*(int *)(puVar6 + 0x2c32e4) + -0x3920) == '\0') {
    return;
  }
  MASKED();
  return;
}

