
/* DWARF original prototype: void visit_children_for_decls(Gdb_index_info_reader * this, Dwarf_die *
   parent) */

void __thiscall
gold::Gdb_index_info_reader::visit_children_for_decls(Gdb_index_info_reader *this,Dwarf_die *parent)

{
  long die_offset;
  Dwarf_die die;
  
  die_offset = Dwarf_die::child_offset(parent);
  while( true ) {
    if (die_offset == 0) {
      return;
    }
    Dwarf_die::Dwarf_die(&die,&this->super_Dwarf_info_reader,die_offset,parent);
    if ((die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0)) break;
                    /* try { // try from 002b7ed0 to 002b7edc has its CatchHandler @ 002b7f25 */
    visit_die_for_decls(this,&die,parent);
    die_offset = Dwarf_die::sibling_offset(&die);
    if (die.attributes_.
        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
        ._M_impl._M_start != (pointer)0x0) {
      operator_delete(die.attributes_.
                      super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
                      ._M_impl._M_start);
    }
  }
  if (die.attributes_.
      super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
      ._M_impl._M_start == (pointer)0x0) {
    return;
  }
  operator_delete(die.attributes_.
                  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
                  ._M_impl._M_start);
  return;
}



void FUN_002b7e80(undefined8 param_1,undefined8 param_2)

{
  long lVar1;
  undefined1 auStack_b8 [48];
  int *local_88;
  long local_80;
  
  lVar1 = FUN_0016bb40(param_2);
  while( true ) {
    if (lVar1 == 0) {
      return;
    }
    FUN_0016d590(auStack_b8,param_1,lVar1,param_2);
    if ((local_88 == (int *)0x0) || (*local_88 == 0)) break;
                    /* try { // try from 002b7ed0 to 002b7edc has its CatchHandler @ 002b7f25 */
    FUN_002b7dd0(param_1,auStack_b8,param_2);
    lVar1 = FUN_0016d710(auStack_b8);
    if (local_80 != 0) {
      FUN_002dac60();
    }
  }
  if (local_80 == 0) {
    return;
  }
  FUN_002dac60();
  return;
}


PUSH R13
MOV R13,RDI
MOV RDI,RSI
PUSH R12
MOV R12,RSI
PUSH RBP
PUSH RBX
SUB RSP,0x98
CALL 0x0016bb40
TEST RAX,RAX
JZ 0x002b7ef4
MOV RBX,RAX
MOV RBP,RSP
MOV RCX,R12
MOV RDX,RBX
MOV RSI,R13
MOV RDI,RBP
CALL 0x0016d590
MOV RAX,qword ptr [RSP + 0x30]
TEST RAX,RAX
JZ 0x002b7f08
MOV EAX,dword ptr [RAX]
TEST EAX,EAX
JZ 0x002b7f08
MOV RDX,R12
MOV RSI,RBP
MOV RDI,R13
CALL 0x002b7dd0
MOV RDI,RBP
CALL 0x0016d710
MOV RDI,qword ptr [RSP + 0x38]
MOV RBX,RAX
TEST RDI,RDI
JZ 0x002b7eef
CALL 0x002dac60
TEST RBX,RBX
JNZ 0x002b7ea6
ADD RSP,0x98
POP RBX
POP RBP
POP R12
POP R13
RET
MOV RDI,qword ptr [RSP + 0x38]
TEST RDI,RDI
JZ 0x002b7ef4
CALL 0x002dac60
ADD RSP,0x98
POP RBX
POP RBP
POP R12
POP R13
RET
(translation_unit "void FUN_002b7e80(undefined8 param_1,undefined8 param_2)\n\n{\n  long lVar1;\n  undefined1 auStack_b8 [48];\n  int *local_88;\n  long local_80;\n  \n  lVar1 = FUN_0016bb40(param_2);\n  while( true ) {\n    if (lVar1 == 0) {\n      return;\n    }\n    FUN_0016d590(auStack_b8,param_1,lVar1,param_2);\n    if ((local_88 == (int *)0x0) || (*local_88 == 0)) break;\n                    /* try { // try from 002b7ed0 to 002b7edc has its CatchHandler @ 002b7f25 */\n    FUN_002b7dd0(param_1,auStack_b8,param_2);\n    lVar1 = FUN_0016d710(auStack_b8);\n    if (local_80 != 0) {\n      FUN_002dac60();\n    }\n  }\n  if (local_80 == 0) {\n    return;\n  }\n  FUN_002dac60();\n  return;\n}\n\n" (function_definition "void FUN_002b7e80(undefined8 param_1,undefined8 param_2)\n\n{\n  long lVar1;\n  undefined1 auStack_b8 [48];\n  int *local_88;\n  long local_80;\n  \n  lVar1 = FUN_0016bb40(param_2);\n  while( true ) {\n    if (lVar1 == 0) {\n      return;\n    }\n    FUN_0016d590(auStack_b8,param_1,lVar1,param_2);\n    if ((local_88 == (int *)0x0) || (*local_88 == 0)) break;\n                    /* try { // try from 002b7ed0 to 002b7edc has its CatchHandler @ 002b7f25 */\n    FUN_002b7dd0(param_1,auStack_b8,param_2);\n    lVar1 = FUN_0016d710(auStack_b8);\n    if (local_80 != 0) {\n      FUN_002dac60();\n    }\n  }\n  if (local_80 == 0) {\n    return;\n  }\n  FUN_002dac60();\n  return;\n}" primitive_type (function_declarator "FUN_002b7e80(undefined8 param_1,undefined8 param_2)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) ))) (compound_statement "{\n  long lVar1;\n  undefined1 auStack_b8 [48];\n  int *local_88;\n  long local_80;\n  \n  lVar1 = FUN_0016bb40(param_2);\n  while( true ) {\n    if (lVar1 == 0) {\n      return;\n    }\n    FUN_0016d590(auStack_b8,param_1,lVar1,param_2);\n    if ((local_88 == (int *)0x0) || (*local_88 == 0)) break;\n                    /* try { // try from 002b7ed0 to 002b7edc has its CatchHandler @ 002b7f25 */\n    FUN_002b7dd0(param_1,auStack_b8,param_2);\n    lVar1 = FUN_0016d710(auStack_b8);\n    if (local_80 != 0) {\n      FUN_002dac60();\n    }\n  }\n  if (local_80 == 0) {\n    return;\n  }\n  FUN_002dac60();\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 auStack_b8 [48];" type_identifier (array_declarator "auStack_b8 [48]" identifier [ number_literal ]) ;) (declaration "int *local_88;" primitive_type (pointer_declarator "*local_88" * identifier) ;) (declaration "long local_80;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar1 = FUN_0016bb40(param_2);" (assignment_expression "lVar1 = FUN_0016bb40(param_2)" identifier = (call_expression "FUN_0016bb40(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (while_statement "while( true ) {\n    if (lVar1 == 0) {\n      return;\n    }\n    FUN_0016d590(auStack_b8,param_1,lVar1,param_2);\n    if ((local_88 == (int *)0x0) || (*local_88 == 0)) break;\n                    /* try { // try from 002b7ed0 to 002b7edc has its CatchHandler @ 002b7f25 */\n    FUN_002b7dd0(param_1,auStack_b8,param_2);\n    lVar1 = FUN_0016d710(auStack_b8);\n    if (local_80 != 0) {\n      FUN_002dac60();\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (lVar1 == 0) {\n      return;\n    }\n    FUN_0016d590(auStack_b8,param_1,lVar1,param_2);\n    if ((local_88 == (int *)0x0) || (*local_88 == 0)) break;\n                    /* try { // try from 002b7ed0 to 002b7edc has its CatchHandler @ 002b7f25 */\n    FUN_002b7dd0(param_1,auStack_b8,param_2);\n    lVar1 = FUN_0016d710(auStack_b8);\n    if (local_80 != 0) {\n      FUN_002dac60();\n    }\n  }" { (if_statement "if (lVar1 == 0) {\n      return;\n    }" if (parenthesized_expression "(lVar1 == 0)" ( (binary_expression "lVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "FUN_0016d590(auStack_b8,param_1,lVar1,param_2);" (call_expression "FUN_0016d590(auStack_b8,param_1,lVar1,param_2)" identifier (argument_list "(auStack_b8,param_1,lVar1,param_2)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if ((local_88 == (int *)0x0) || (*local_88 == 0)) break;" if (parenthesized_expression "((local_88 == (int *)0x0) || (*local_88 == 0))" ( (binary_expression "(local_88 == (int *)0x0) || (*local_88 == 0)" (parenthesized_expression "(local_88 == (int *)0x0)" ( (binary_expression "local_88 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*local_88 == 0)" ( (binary_expression "*local_88 == 0" (pointer_expression "*local_88" * identifier) == number_literal) ))) )) (break_statement "break;" break ;)) comment (expression_statement "FUN_002b7dd0(param_1,auStack_b8,param_2);" (call_expression "FUN_002b7dd0(param_1,auStack_b8,param_2)" identifier (argument_list "(param_1,auStack_b8,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "lVar1 = FUN_0016d710(auStack_b8);" (assignment_expression "lVar1 = FUN_0016d710(auStack_b8)" identifier = (call_expression "FUN_0016d710(auStack_b8)" identifier (argument_list "(auStack_b8)" ( identifier )))) ;) (if_statement "if (local_80 != 0) {\n      FUN_002dac60();\n    }" if (parenthesized_expression "(local_80 != 0)" ( (binary_expression "local_80 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_002dac60();\n    }" { (expression_statement "FUN_002dac60();" (call_expression "FUN_002dac60()" identifier (argument_list "()" ( ))) ;) })) })) (if_statement "if (local_80 == 0) {\n    return;\n  }" if (parenthesized_expression "(local_80 == 0)" ( (binary_expression "local_80 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_002dac60();" (call_expression "FUN_002dac60()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: void visit_children_for_decls(Gdb_index_info_reader * this, Dwarf_die *\n   parent) */\n\nvoid __thiscall\ngold::Gdb_index_info_reader::visit_children_for_decls(Gdb_index_info_reader *this,Dwarf_die *parent)\n\n{\n  long die_offset;\n  Dwarf_die die;\n  \n  die_offset = Dwarf_die::child_offset(parent);\n  while( true ) {\n    if (die_offset == 0) {\n      return;\n    }\n    Dwarf_die::Dwarf_die(&die,&this->super_Dwarf_info_reader,die_offset,parent);\n    if ((die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0)) break;\n                    /* try { // try from 002b7ed0 to 002b7edc has its CatchHandler @ 002b7f25 */\n    visit_die_for_decls(this,&die,parent);\n    die_offset = Dwarf_die::sibling_offset(&die);\n    if (die.attributes_.\n        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ._M_impl._M_start != (pointer)0x0) {\n      operator_delete(die.attributes_.\n                      super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                      ._M_impl._M_start);\n    }\n  }\n  if (die.attributes_.\n      super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n      ._M_impl._M_start == (pointer)0x0) {\n    return;\n  }\n  operator_delete(die.attributes_.\n                  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                  ._M_impl._M_start);\n  return;\n}\n\n" comment (function_definition "void __thiscall\ngold::Gdb_index_info_reader::visit_children_for_decls(Gdb_index_info_reader *this,Dwarf_die *parent)\n\n{\n  long die_offset;\n  Dwarf_die die;\n  \n  die_offset = Dwarf_die::child_offset(parent);\n  while( true ) {\n    if (die_offset == 0) {\n      return;\n    }\n    Dwarf_die::Dwarf_die(&die,&this->super_Dwarf_info_reader,die_offset,parent);\n    if ((die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0)) break;\n                    /* try { // try from 002b7ed0 to 002b7edc has its CatchHandler @ 002b7f25 */\n    visit_die_for_decls(this,&die,parent);\n    die_offset = Dwarf_die::sibling_offset(&die);\n    if (die.attributes_.\n        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ._M_impl._M_start != (pointer)0x0) {\n      operator_delete(die.attributes_.\n                      super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                      ._M_impl._M_start);\n    }\n  }\n  if (die.attributes_.\n      super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n      ._M_impl._M_start == (pointer)0x0) {\n    return;\n  }\n  operator_delete(die.attributes_.\n                  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                  ._M_impl._M_start);\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Gdb_index_info_reader::" identifier : : identifier : :) (function_declarator "visit_children_for_decls(Gdb_index_info_reader *this,Dwarf_die *parent)" identifier (parameter_list "(Gdb_index_info_reader *this,Dwarf_die *parent)" ( (parameter_declaration "Gdb_index_info_reader *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Dwarf_die *parent" type_identifier (pointer_declarator "*parent" * identifier)) ))) (compound_statement "{\n  long die_offset;\n  Dwarf_die die;\n  \n  die_offset = Dwarf_die::child_offset(parent);\n  while( true ) {\n    if (die_offset == 0) {\n      return;\n    }\n    Dwarf_die::Dwarf_die(&die,&this->super_Dwarf_info_reader,die_offset,parent);\n    if ((die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0)) break;\n                    /* try { // try from 002b7ed0 to 002b7edc has its CatchHandler @ 002b7f25 */\n    visit_die_for_decls(this,&die,parent);\n    die_offset = Dwarf_die::sibling_offset(&die);\n    if (die.attributes_.\n        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ._M_impl._M_start != (pointer)0x0) {\n      operator_delete(die.attributes_.\n                      super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                      ._M_impl._M_start);\n    }\n  }\n  if (die.attributes_.\n      super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n      ._M_impl._M_start == (pointer)0x0) {\n    return;\n  }\n  operator_delete(die.attributes_.\n                  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                  ._M_impl._M_start);\n  return;\n}" { (declaration "long die_offset;" (sized_type_specifier "long" long) identifier ;) (declaration "Dwarf_die die;" type_identifier identifier ;) (ERROR "die_offset = Dwarf_die::" (assignment_expression "die_offset = Dwarf_die" identifier = identifier) : :) (expression_statement "child_offset(parent);" (call_expression "child_offset(parent)" identifier (argument_list "(parent)" ( identifier ))) ;) (while_statement "while( true ) {\n    if (die_offset == 0) {\n      return;\n    }\n    Dwarf_die::Dwarf_die(&die,&this->super_Dwarf_info_reader,die_offset,parent);\n    if ((die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0)) break;\n                    /* try { // try from 002b7ed0 to 002b7edc has its CatchHandler @ 002b7f25 */\n    visit_die_for_decls(this,&die,parent);\n    die_offset = Dwarf_die::sibling_offset(&die);\n    if (die.attributes_.\n        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ._M_impl._M_start != (pointer)0x0) {\n      operator_delete(die.attributes_.\n                      super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                      ._M_impl._M_start);\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (die_offset == 0) {\n      return;\n    }\n    Dwarf_die::Dwarf_die(&die,&this->super_Dwarf_info_reader,die_offset,parent);\n    if ((die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0)) break;\n                    /* try { // try from 002b7ed0 to 002b7edc has its CatchHandler @ 002b7f25 */\n    visit_die_for_decls(this,&die,parent);\n    die_offset = Dwarf_die::sibling_offset(&die);\n    if (die.attributes_.\n        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ._M_impl._M_start != (pointer)0x0) {\n      operator_delete(die.attributes_.\n                      super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                      ._M_impl._M_start);\n    }\n  }" { (if_statement "if (die_offset == 0) {\n      return;\n    }" if (parenthesized_expression "(die_offset == 0)" ( (binary_expression "die_offset == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (labeled_statement "Dwarf_die::Dwarf_die(&die,&this->super_Dwarf_info_reader,die_offset,parent);" statement_identifier : (ERROR ":" :) (expression_statement "Dwarf_die(&die,&this->super_Dwarf_info_reader,die_offset,parent);" (call_expression "Dwarf_die(&die,&this->super_Dwarf_info_reader,die_offset,parent)" identifier (argument_list "(&die,&this->super_Dwarf_info_reader,die_offset,parent)" ( (pointer_expression "&die" & identifier) , (pointer_expression "&this->super_Dwarf_info_reader" & (field_expression "this->super_Dwarf_info_reader" identifier -> field_identifier)) , identifier , identifier ))) ;)) (if_statement "if ((die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0)) break;" if (parenthesized_expression "((die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0))" ( (binary_expression "(die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0)" (parenthesized_expression "(die.abbrev_code_ == (Abbrev_code *)0x0)" ( (binary_expression "die.abbrev_code_ == (Abbrev_code *)0x0" (field_expression "die.abbrev_code_" identifier . field_identifier) == (cast_expression "(Abbrev_code *)0x0" ( (type_descriptor "Abbrev_code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((die.abbrev_code_)->tag == 0)" ( (binary_expression "(die.abbrev_code_)->tag == 0" (field_expression "(die.abbrev_code_)->tag" (parenthesized_expression "(die.abbrev_code_)" ( (field_expression "die.abbrev_code_" identifier . field_identifier) )) -> field_identifier) == number_literal) ))) )) (break_statement "break;" break ;)) comment (expression_statement "visit_die_for_decls(this,&die,parent);" (call_expression "visit_die_for_decls(this,&die,parent)" identifier (argument_list "(this,&die,parent)" ( identifier , (pointer_expression "&die" & identifier) , identifier ))) ;) (ERROR "die_offset = Dwarf_die::" (assignment_expression "die_offset = Dwarf_die" identifier = identifier) : :) (expression_statement "sibling_offset(&die);" (call_expression "sibling_offset(&die)" identifier (argument_list "(&die)" ( (pointer_expression "&die" & identifier) ))) ;) (if_statement "if (die.attributes_.\n        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ._M_impl._M_start != (pointer)0x0) {\n      operator_delete(die.attributes_.\n                      super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                      ._M_impl._M_start);\n    }" if (parenthesized_expression "(die.attributes_.\n        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ._M_impl._M_start != (pointer)0x0)" ( (ERROR "die.attributes_.\n        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::" (comma_expression "die.attributes_.\n        super__Vector_base<gold::Dwarf_die::Attribute_value,_std" (binary_expression "die.attributes_.\n        super__Vector_base<gold" (field_expression "die.attributes_.\n        super__Vector_base" (field_expression "die.attributes_" identifier . field_identifier) . field_identifier) < identifier) (ERROR "::Dwarf_die::Attribute_value" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Attribute_value>_>\n        ._M_impl._M_start != (pointer)0x0" (field_expression "Attribute_value>_>\n        ._M_impl._M_start" (field_expression "Attribute_value>_>\n        ._M_impl" (binary_expression "Attribute_value>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n      operator_delete(die.attributes_.\n                      super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                      ._M_impl._M_start);\n    }" { (expression_statement "operator_delete(die.attributes_.\n                      super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                      ._M_impl._M_start);" (call_expression "operator_delete(die.attributes_.\n                      super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                      ._M_impl._M_start)" identifier (argument_list "(die.attributes_.\n                      super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                      ._M_impl._M_start)" ( (binary_expression "die.attributes_.\n                      super__Vector_base<gold" (field_expression "die.attributes_.\n                      super__Vector_base" (field_expression "die.attributes_" identifier . field_identifier) . field_identifier) < identifier) (ERROR "::Dwarf_die::Attribute_value" : : identifier : : identifier) , (ERROR "_std::allocator<gold::Dwarf_die::" identifier : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Attribute_value>_>\n                      ._M_impl._M_start" (field_expression "Attribute_value>_>\n                      ._M_impl" (binary_expression "Attribute_value>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ))) ;) })) })) (if_statement "if (die.attributes_.\n      super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n      ._M_impl._M_start == (pointer)0x0) {\n    return;\n  }" if (parenthesized_expression "(die.attributes_.\n      super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n      ._M_impl._M_start == (pointer)0x0)" ( (ERROR "die.attributes_.\n      super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::" (comma_expression "die.attributes_.\n      super__Vector_base<gold::Dwarf_die::Attribute_value,_std" (binary_expression "die.attributes_.\n      super__Vector_base<gold" (field_expression "die.attributes_.\n      super__Vector_base" (field_expression "die.attributes_" identifier . field_identifier) . field_identifier) < identifier) (ERROR "::Dwarf_die::Attribute_value" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Attribute_value>_>\n      ._M_impl._M_start == (pointer)0x0" (field_expression "Attribute_value>_>\n      ._M_impl._M_start" (field_expression "Attribute_value>_>\n      ._M_impl" (binary_expression "Attribute_value>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) == (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "operator_delete(die.attributes_.\n                  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                  ._M_impl._M_start);" (call_expression "operator_delete(die.attributes_.\n                  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                  ._M_impl._M_start)" identifier (argument_list "(die.attributes_.\n                  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                  ._M_impl._M_start)" ( (binary_expression "die.attributes_.\n                  super__Vector_base<gold" (field_expression "die.attributes_.\n                  super__Vector_base" (field_expression "die.attributes_" identifier . field_identifier) . field_identifier) < identifier) (ERROR "::Dwarf_die::Attribute_value" : : identifier : : identifier) , (ERROR "_std::allocator<gold::Dwarf_die::" identifier : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Attribute_value>_>\n                  ._M_impl._M_start" (field_expression "Attribute_value>_>\n                  ._M_impl" (binary_expression "Attribute_value>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_002b7e80(undefined8 param_1,undefined8 param_2)\n\n{\n  long lVar1;\n  undefined1 auStack_b8 [48];\n  int *local_88;\n  long local_80;\n  \n  lVar1 = FUN_0016bb40(param_2);\n  while( true ) {\n    if (lVar1 == 0) {\n      return;\n    }\n    FUN_0016d590(auStack_b8,param_1,lVar1,param_2);\n    if ((local_88 == (int *)0x0) || (*local_88 == 0)) break;\n                    \n    FUN_002b7dd0(param_1,auStack_b8,param_2);\n    lVar1 = FUN_0016d710(auStack_b8);\n    if (local_80 != 0) {\n      FUN_002dac60();\n    }\n  }\n  if (local_80 == 0) {\n    return;\n  }\n  FUN_002dac60();\n  return;\n}\n\n" (function_definition "void FUN_002b7e80(undefined8 param_1,undefined8 param_2)\n\n{\n  long lVar1;\n  undefined1 auStack_b8 [48];\n  int *local_88;\n  long local_80;\n  \n  lVar1 = FUN_0016bb40(param_2);\n  while( true ) {\n    if (lVar1 == 0) {\n      return;\n    }\n    FUN_0016d590(auStack_b8,param_1,lVar1,param_2);\n    if ((local_88 == (int *)0x0) || (*local_88 == 0)) break;\n                    \n    FUN_002b7dd0(param_1,auStack_b8,param_2);\n    lVar1 = FUN_0016d710(auStack_b8);\n    if (local_80 != 0) {\n      FUN_002dac60();\n    }\n  }\n  if (local_80 == 0) {\n    return;\n  }\n  FUN_002dac60();\n  return;\n}" primitive_type (function_declarator "FUN_002b7e80(undefined8 param_1,undefined8 param_2)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) ))) (compound_statement "{\n  long lVar1;\n  undefined1 auStack_b8 [48];\n  int *local_88;\n  long local_80;\n  \n  lVar1 = FUN_0016bb40(param_2);\n  while( true ) {\n    if (lVar1 == 0) {\n      return;\n    }\n    FUN_0016d590(auStack_b8,param_1,lVar1,param_2);\n    if ((local_88 == (int *)0x0) || (*local_88 == 0)) break;\n                    \n    FUN_002b7dd0(param_1,auStack_b8,param_2);\n    lVar1 = FUN_0016d710(auStack_b8);\n    if (local_80 != 0) {\n      FUN_002dac60();\n    }\n  }\n  if (local_80 == 0) {\n    return;\n  }\n  FUN_002dac60();\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 auStack_b8 [48];" type_identifier (array_declarator "auStack_b8 [48]" identifier [ number_literal ]) ;) (declaration "int *local_88;" primitive_type (pointer_declarator "*local_88" * identifier) ;) (declaration "long local_80;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar1 = FUN_0016bb40(param_2);" (assignment_expression "lVar1 = FUN_0016bb40(param_2)" identifier = (call_expression "FUN_0016bb40(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (while_statement "while( true ) {\n    if (lVar1 == 0) {\n      return;\n    }\n    FUN_0016d590(auStack_b8,param_1,lVar1,param_2);\n    if ((local_88 == (int *)0x0) || (*local_88 == 0)) break;\n                    \n    FUN_002b7dd0(param_1,auStack_b8,param_2);\n    lVar1 = FUN_0016d710(auStack_b8);\n    if (local_80 != 0) {\n      FUN_002dac60();\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (lVar1 == 0) {\n      return;\n    }\n    FUN_0016d590(auStack_b8,param_1,lVar1,param_2);\n    if ((local_88 == (int *)0x0) || (*local_88 == 0)) break;\n                    \n    FUN_002b7dd0(param_1,auStack_b8,param_2);\n    lVar1 = FUN_0016d710(auStack_b8);\n    if (local_80 != 0) {\n      FUN_002dac60();\n    }\n  }" { (if_statement "if (lVar1 == 0) {\n      return;\n    }" if (parenthesized_expression "(lVar1 == 0)" ( (binary_expression "lVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "FUN_0016d590(auStack_b8,param_1,lVar1,param_2);" (call_expression "FUN_0016d590(auStack_b8,param_1,lVar1,param_2)" identifier (argument_list "(auStack_b8,param_1,lVar1,param_2)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if ((local_88 == (int *)0x0) || (*local_88 == 0)) break;" if (parenthesized_expression "((local_88 == (int *)0x0) || (*local_88 == 0))" ( (binary_expression "(local_88 == (int *)0x0) || (*local_88 == 0)" (parenthesized_expression "(local_88 == (int *)0x0)" ( (binary_expression "local_88 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*local_88 == 0)" ( (binary_expression "*local_88 == 0" (pointer_expression "*local_88" * identifier) == number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "FUN_002b7dd0(param_1,auStack_b8,param_2);" (call_expression "FUN_002b7dd0(param_1,auStack_b8,param_2)" identifier (argument_list "(param_1,auStack_b8,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "lVar1 = FUN_0016d710(auStack_b8);" (assignment_expression "lVar1 = FUN_0016d710(auStack_b8)" identifier = (call_expression "FUN_0016d710(auStack_b8)" identifier (argument_list "(auStack_b8)" ( identifier )))) ;) (if_statement "if (local_80 != 0) {\n      FUN_002dac60();\n    }" if (parenthesized_expression "(local_80 != 0)" ( (binary_expression "local_80 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_002dac60();\n    }" { (expression_statement "FUN_002dac60();" (call_expression "FUN_002dac60()" identifier (argument_list "()" ( ))) ;) })) })) (if_statement "if (local_80 == 0) {\n    return;\n  }" if (parenthesized_expression "(local_80 == 0)" ( (binary_expression "local_80 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_002dac60();" (call_expression "FUN_002dac60()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) )) (break_statement break ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_002b7e80(undefined8 param_1,undefined8 param_2)\n\n{\n  long lVar1;\n  undefined1 auStack_b8 [48];\n  int *local_88;\n  long local_80;\n  \n  lVar1 = FUN_0016bb40(param_2);\n  while( true ) {\n    if (lVar1 == 0) {\n      return;\n    }\n    FUN_0016d590(auStack_b8,param_1,lVar1,param_2);\n    if ((local_88 == (int *)0x0) || (*local_88 == 0)) break;\n                    \n    FUN_002b7dd0(param_1,auStack_b8,param_2);\n    lVar1 = FUN_0016d710(auStack_b8);\n    if (local_80 != 0) {\n      FUN_002dac60();\n    }\n  }\n  if (local_80 == 0) {\n    return;\n  }\n  FUN_002dac60();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_002b7e80(undefined8 param_1,undefined8 param_2)" (identifier "FUN_002b7e80") (parameter_list "(undefined8 param_1,undefined8 param_2)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) () ")"))) (compound_statement "{\n  long lVar1;\n  undefined1 auStack_b8 [48];\n  int *local_88;\n  long local_80;\n  \n  lVar1 = FUN_0016bb40(param_2);\n  while( true ) {\n    if (lVar1 == 0) {\n      return;\n    }\n    FUN_0016d590(auStack_b8,param_1,lVar1,param_2);\n    if ((local_88 == (int *)0x0) || (*local_88 == 0)) break;\n                    \n    FUN_002b7dd0(param_1,auStack_b8,param_2);\n    lVar1 = FUN_0016d710(auStack_b8);\n    if (local_80 != 0) {\n      FUN_002dac60();\n    }\n  }\n  if (local_80 == 0) {\n    return;\n  }\n  FUN_002dac60();\n  return;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "undefined1 auStack_b8 [48];" (type_identifier "undefined1") (array_declarator "auStack_b8 [48]" (identifier "auStack_b8") ([ "[") (number_literal "48") (] "]")) (; ";")) (declaration "int *local_88;" (primitive_type "int") (pointer_declarator "*local_88" (* "*") (identifier "local_88")) (; ";")) (declaration "long local_80;" (sized_type_specifier "long" (long "long")) (identifier "local_80") (; ";")) (expression_statement "lVar1 = FUN_0016bb40(param_2);" (assignment_expression "lVar1 = FUN_0016bb40(param_2)" (identifier "lVar1") (= "=") (call_expression "FUN_0016bb40(param_2)" (identifier "FUN_0016bb40") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (while_statement "while( true ) {\n    if (lVar1 == 0) {\n      return;\n    }\n    FUN_0016d590(auStack_b8,param_1,lVar1,param_2);\n    if ((local_88 == (int *)0x0) || (*local_88 == 0)) break;\n                    \n    FUN_002b7dd0(param_1,auStack_b8,param_2);\n    lVar1 = FUN_0016d710(auStack_b8);\n    if (local_80 != 0) {\n      FUN_002dac60();\n    }\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    if (lVar1 == 0) {\n      return;\n    }\n    FUN_0016d590(auStack_b8,param_1,lVar1,param_2);\n    if ((local_88 == (int *)0x0) || (*local_88 == 0)) break;\n                    \n    FUN_002b7dd0(param_1,auStack_b8,param_2);\n    lVar1 = FUN_0016d710(auStack_b8);\n    if (local_80 != 0) {\n      FUN_002dac60();\n    }\n  }" ({ "{") (if_statement "if (lVar1 == 0) {\n      return;\n    }" (if "if") (parenthesized_expression "(lVar1 == 0)" (( "(") (binary_expression "lVar1 == 0" (identifier "lVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0016d590(auStack_b8,param_1,lVar1,param_2);" (call_expression "FUN_0016d590(auStack_b8,param_1,lVar1,param_2)" (identifier "FUN_0016d590") (argument_list "(auStack_b8,param_1,lVar1,param_2)" (( "(") (identifier "auStack_b8") (, ",") (identifier "param_1") (, ",") (identifier "lVar1") (, ",") (identifier "param_2") () ")"))) (; ";")) (if_statement "if ((local_88 == (int *)0x0) || (*local_88 == 0)) break;" (if "if") (parenthesized_expression "((local_88 == (int *)0x0) || (*local_88 == 0))" (( "(") (binary_expression "(local_88 == (int *)0x0) || (*local_88 == 0)" (parenthesized_expression "(local_88 == (int *)0x0)" (( "(") (binary_expression "local_88 == (int *)0x0" (identifier "local_88") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(*local_88 == 0)" (( "(") (binary_expression "*local_88 == 0" (pointer_expression "*local_88" (* "*") (identifier "local_88")) (== "==") (number_literal "0")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "FUN_002b7dd0(param_1,auStack_b8,param_2);" (call_expression "FUN_002b7dd0(param_1,auStack_b8,param_2)" (identifier "FUN_002b7dd0") (argument_list "(param_1,auStack_b8,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "auStack_b8") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "lVar1 = FUN_0016d710(auStack_b8);" (assignment_expression "lVar1 = FUN_0016d710(auStack_b8)" (identifier "lVar1") (= "=") (call_expression "FUN_0016d710(auStack_b8)" (identifier "FUN_0016d710") (argument_list "(auStack_b8)" (( "(") (identifier "auStack_b8") () ")")))) (; ";")) (if_statement "if (local_80 != 0) {\n      FUN_002dac60();\n    }" (if "if") (parenthesized_expression "(local_80 != 0)" (( "(") (binary_expression "local_80 != 0" (identifier "local_80") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_002dac60();\n    }" ({ "{") (expression_statement "FUN_002dac60();" (call_expression "FUN_002dac60()" (identifier "FUN_002dac60") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (local_80 == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_80 == 0)" (( "(") (binary_expression "local_80 == 0" (identifier "local_80") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_002dac60();" (call_expression "FUN_002dac60()" (identifier "FUN_002dac60") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original prototype: void visit_children_for_decls(Gdb_index_info_reader * this, Dwarf_die *
   parent) */

void __thiscall
var_8::type_1::function_1(type_1 *this,type_2 *parent)

{
  long var_2;
  type_2 die;
  
  var_2 = type_2::var_1(parent);
  while( true ) {
    if (var_2 == 0) {
      return;
    }
    Dwarf_die::type_2(&die,&this->super_Dwarf_info_reader,var_2,parent);
    if ((die.abbrev_code_ == (type_3 *)0x0) || ((die.abbrev_code_)->tag == 0)) break;
                    /* try { // try from 002b7ed0 to 002b7edc has its CatchHandler @ 002b7f25 */
    var_3(this,&die,parent);
    var_2 = type_2::var_4(&die);
    if (die.attributes_.
        super__Vector_base<var_8::type_2::var_5,_std::allocator<var_8::type_2::var_5>var_6>
        ._M_impl._M_start != (type_4)0x0) {
      var_7(die.attributes_.
                      super__Vector_base<var_8::type_2::var_5,_std::allocator<var_8::type_2::var_5>var_6>
                      ._M_impl._M_start);
    }
  }
  if (die.attributes_.
      super__Vector_base<var_8::type_2::var_5,_std::allocator<var_8::type_2::var_5>var_6>
      ._M_impl._M_start == (type_4)0x0) {
    return;
  }
  var_7(die.attributes_.
                  super__Vector_base<var_8::type_2::var_5,_std::allocator<var_8::type_2::var_5>var_6>
                  ._M_impl._M_start);
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) consequence: (break_statement)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement))))

void MASKED(undefined8 param_1,undefined8 param_2)

{
  long lVar1;
  undefined1 auStack_b8 [48];
  int *local_88;
  long local_80;
  
  lVar1 = FUN_0016bb40(param_2);
  while( true ) {
    if (lVar1 == 0) {
      return;
    }
    FUN_0016d590(auStack_b8,param_1,lVar1,param_2);
    if ((local_88 == (int *)0x0) || (*local_88 == 0)) break;
                    /* try { // try from 002b7ed0 to 002b7edc has its CatchHandler @ 002b7f25 */
    FUN_002b7dd0(param_1,auStack_b8,param_2);
    lVar1 = FUN_0016d710(auStack_b8);
    if (local_80 != 0) {
      FUN_002dac60();
    }
  }
  if (local_80 == 0) {
    return;
  }
  FUN_002dac60();
  return;
}

