
/* DWARF original prototype: void Sized_dwarf_line_info(Sized_dwarf_line_info<32,_false> * this,
   Object * object, uint read_shndx) */

void __thiscall
gold::Sized_dwarf_line_info<32,_false>::Sized_dwarf_line_info
          (Sized_dwarf_line_info<32,_false> *this,Object *object,uint read_shndx)

{
  _Rb_tree_header *p_Var1;
  section_size_type sVar2;
  bool bVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  uchar *puVar7;
  Sized_elf_reloc_mapper<32,_false> *this_00;
  uint reloc_shndx;
  uint uVar8;
  bool is_new;
  section_size_type buffer_size;
  string name;
  
  this->data_valid_ = false;
  (this->super_Dwarf_line_info)._vptr_Dwarf_line_info =
       (_func_int_varargs **)&PTR__Sized_dwarf_line_info_00426b68;
  p_Var1 = &(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header;
  this->current_header_index_ = -1;
  uVar8 = object->shnum_;
  (this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_left = &p_Var1->_M_header;
  (this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_right = &p_Var1->_M_header;
  (this->header_).std_opcode_lengths.
  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start = (pointer)0x0;
  (this->header_).std_opcode_lengths.
  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_finish = (pointer)0x0
  ;
  (this->header_).std_opcode_lengths.
  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_end_of_storage =
       (pointer)0x0;
  this->buffer_ = (uchar *)0x0;
  this->buffer_start_ = (uchar *)0x0;
  this->reloc_mapper_ = (Sized_elf_reloc_mapper<32,_false> *)0x0;
  this->symtab_buffer_ = (uchar *)0x0;
  (this->directories_).
  super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>
  ._M_impl._M_start = (pointer)0x0;
  (this->directories_).
  super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>
  ._M_impl._M_finish = (pointer)0x0;
  (this->directories_).
  super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>
  ._M_impl._M_end_of_storage = (pointer)0x0;
  (this->files_).
  super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>
  ._M_impl._M_start = (pointer)0x0;
  (this->files_).
  super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>
  ._M_impl._M_finish = (pointer)0x0;
  (this->files_).
  super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>
  ._M_impl._M_end_of_storage = (pointer)0x0;
  (this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red;
  (this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (_Base_ptr)0x0;
  (this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;
  (this->line_number_map_)._M_h._M_buckets = &(this->line_number_map_)._M_h._M_single_bucket;
  (this->line_number_map_)._M_h._M_bucket_count = 1;
  (this->line_number_map_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;
  (this->line_number_map_)._M_h._M_element_count = 0;
  (this->line_number_map_)._M_h._M_rehash_policy._M_max_load_factor = 1.0;
  (this->line_number_map_)._M_h._M_rehash_policy._M_next_resize = 0;
  (this->line_number_map_)._M_h._M_single_bucket = (__bucket_type)0x0;
  if (uVar8 < 2) {
    return;
  }
  uVar8 = 1;
  do {
                    /* try { // try from 00176d8c to 00176d91 has its CatchHandler @ 00176f7a */
    (*object->_vptr_Object[0x10])(&name,object,(ulong)uVar8);
    iVar4 = std::string::compare((string *)&name,".debug_line");
    if ((iVar4 == 0) || (iVar4 = std::string::compare((string *)&name,".zdebug_line"), iVar4 == 0))
    {
      is_new = false;
                    /* try { // try from 00176dbd to 00176dc1 has its CatchHandler @ 00176f75 */
      puVar7 = Object::decompressed_section_contents
                         (object,uVar8,&buffer_size,&is_new,(uint64_t *)0x0);
      this->buffer_ = puVar7;
      if (is_new != false) {
        this->buffer_start_ = puVar7;
      }
      this->buffer_end_ = puVar7 + buffer_size;
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)name._M_dataplus._M_p != &name.field_2) {
        operator_delete(name._M_dataplus._M_p);
        puVar7 = this->buffer_;
      }
      goto LAB_00176df4;
    }
    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
         *)name._M_dataplus._M_p != &name.field_2) {
      operator_delete(name._M_dataplus._M_p);
    }
    uVar8 = uVar8 + 1;
  } while (uVar8 < object->shnum_);
  puVar7 = this->buffer_;
LAB_00176df4:
  if (puVar7 == (uchar *)0x0) {
    return;
  }
  reloc_shndx = 0;
  if (object->shnum_ != 0) {
    do {
                    /* try { // try from 00176e24 to 00176f42 has its CatchHandler @ 00176f7a */
      uVar5 = (*object->_vptr_Object[0x14])(object,(ulong)reloc_shndx);
      if (((uVar5 == 9) || (uVar5 == 4)) &&
         (uVar6 = (*object->_vptr_Object[0x16])(object,(ulong)reloc_shndx), uVar8 == uVar6)) {
        this->track_relocs_type_ = uVar5;
        if (reloc_shndx != 0) {
          if (object->shnum_ == 0) goto LAB_00176f68;
          uVar8 = 0;
          goto LAB_00176e76;
        }
        break;
      }
      reloc_shndx = reloc_shndx + 1;
    } while (reloc_shndx < object->shnum_);
  }
  reloc_shndx = 0;
  goto LAB_00176ec2;
  while (uVar8 = uVar8 + 1, uVar8 < object->shnum_) {
LAB_00176e76:
    iVar4 = (*object->_vptr_Object[0x14])(object,(ulong)uVar8);
    if (iVar4 == 2) {
      puVar7 = Object::section_contents(object,uVar8,&this->symtab_buffer_size_,false);
      this->symtab_buffer_ = puVar7;
      goto LAB_00176ea5;
    }
  }
LAB_00176f68:
  puVar7 = this->symtab_buffer_;
LAB_00176ea5:
  if (puVar7 == (uchar *)0x0) {
    return;
  }
LAB_00176ec2:
  this_00 = (Sized_elf_reloc_mapper<32,_false> *)operator_new(0x48);
  sVar2 = this->symtab_buffer_size_;
  puVar7 = this->symtab_buffer_;
  this_00->object_ = object;
  (this_00->super_Elf_reloc_mapper)._vptr_Elf_reloc_mapper =
       (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_00426a48;
  this_00->symtab_size_ = sVar2;
  uVar8 = this->track_relocs_type_;
  this_00->symtab_ = puVar7;
  this_00->reloc_type_ = 0;
  (this_00->track_relocs_).prelocs_ = (uchar *)0x0;
  (this_00->track_relocs_).len_ = 0;
  (this_00->track_relocs_).pos_ = 0;
  (this_00->track_relocs_).reloc_size_ = 0;
  this->reloc_mapper_ = this_00;
  bVar3 = Sized_elf_reloc_mapper<32,_false>::do_initialize(this_00,reloc_shndx,uVar8);
  if (!bVar3) {
    return;
  }
  this->data_valid_ = true;
  read_line_mappings(this,read_shndx);
  return;
}



void FUN_00176c00(undefined8 *param_1,long *param_2,undefined4 param_3)

{
  undefined4 uVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  char cVar4;
  int iVar5;
  uint uVar6;
  long lVar7;
  undefined8 *puVar8;
  uint uVar9;
  uint uVar10;
  char local_61;
  long local_60;
  undefined1 *local_58 [2];
  undefined1 local_48 [24];
  
  *(undefined1 *)(param_1 + 1) = 0;
  *param_1 = &PTR_FUN_00426b68;
  *(undefined4 *)(param_1 + 0x19) = 0xffffffff;
  uVar10 = *(uint *)(param_2 + 7);
  param_1[0x1d] = param_1 + 0x1b;
  param_1[0x1e] = param_1 + 0x1b;
  param_1[8] = 0;
  param_1[9] = 0;
  param_1[10] = 0;
  param_1[0xc] = 0;
  param_1[0xe] = 0;
  param_1[0xf] = 0;
  param_1[0x11] = 0;
  param_1[0x13] = 0;
  param_1[0x14] = 0;
  param_1[0x15] = 0;
  param_1[0x16] = 0;
  param_1[0x17] = 0;
  param_1[0x18] = 0;
  *(undefined4 *)(param_1 + 0x1b) = 0;
  param_1[0x1c] = 0;
  param_1[0x1f] = 0;
  param_1[0x20] = param_1 + 0x26;
  param_1[0x21] = 1;
  param_1[0x22] = 0;
  param_1[0x23] = 0;
  *(undefined4 *)(param_1 + 0x24) = 0x3f800000;
  param_1[0x25] = 0;
  param_1[0x26] = 0;
  if (uVar10 < 2) {
    return;
  }
  uVar10 = 1;
  do {
                    /* try { // try from 00176d8c to 00176d91 has its CatchHandler @ 00176f7a */
    (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10);
    iVar5 = FUN_002e3a50(local_58,".debug_line");
    if ((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)) {
      local_61 = '\0';
                    /* try { // try from 00176dbd to 00176dc1 has its CatchHandler @ 00176f75 */
      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);
      param_1[0xc] = lVar7;
      if (local_61 != '\0') {
        param_1[0xe] = lVar7;
      }
      param_1[0xd] = local_60 + lVar7;
      if (local_58[0] != local_48) {
        FUN_002dac70();
        lVar7 = param_1[0xc];
      }
      goto LAB_00176df4;
    }
    if (local_58[0] != local_48) {
      FUN_002dac70();
    }
    uVar10 = uVar10 + 1;
  } while (uVar10 < *(uint *)(param_2 + 7));
  lVar7 = param_1[0xc];
LAB_00176df4:
  if (lVar7 == 0) {
    return;
  }
  uVar9 = 0;
  if ((int)param_2[7] != 0) {
    do {
                    /* try { // try from 00176e24 to 00176f42 has its CatchHandler @ 00176f7a */
      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);
      if (((iVar5 == 9) || (iVar5 == 4)) &&
         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {
        *(int *)(param_1 + 0x10) = iVar5;
        if (uVar9 != 0) {
          if ((int)param_2[7] == 0) goto LAB_00176f68;
          uVar10 = 0;
          goto LAB_00176e76;
        }
        break;
      }
      uVar9 = uVar9 + 1;
    } while (uVar9 < *(uint *)(param_2 + 7));
  }
  uVar9 = 0;
  goto LAB_00176ec2;
  while (uVar10 = uVar10 + 1, uVar10 < *(uint *)(param_2 + 7)) {
LAB_00176e76:
    iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);
    if (iVar5 == 2) {
      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);
      param_1[0x11] = lVar7;
      goto LAB_00176ea5;
    }
  }
LAB_00176f68:
  lVar7 = param_1[0x11];
LAB_00176ea5:
  if (lVar7 == 0) {
    return;
  }
LAB_00176ec2:
  puVar8 = (undefined8 *)FUN_002d94a0(0x48);
  uVar2 = param_1[0x12];
  uVar3 = param_1[0x11];
  puVar8[1] = param_2;
  *puVar8 = &PTR_FUN_00426a48;
  puVar8[3] = uVar2;
  uVar1 = *(undefined4 *)(param_1 + 0x10);
  puVar8[2] = uVar3;
  *(undefined4 *)(puVar8 + 4) = 0;
  puVar8[5] = 0;
  puVar8[6] = 0;
  puVar8[7] = 0;
  *(undefined4 *)(puVar8 + 8) = 0;
  param_1[0xf] = puVar8;
  cVar4 = FUN_0016df40(puVar8,uVar9,uVar1);
  if (cVar4 == '\0') {
    return;
  }
  *(undefined1 *)(param_1 + 1) = 1;
  FUN_00176b10(param_1,param_3);
  return;
}


LEA RAX,[0x426b68]
MOV byte ptr [RDI + 0x8],0x0
MOV qword ptr [RDI],RAX
LEA RAX,[RDI + 0xd8]
MOV dword ptr [RDI + 0xc8],0xffffffff
CMP dword ptr [RSI + 0x38],0x1
MOV qword ptr [RDI + 0xe8],RAX
MOV qword ptr [RDI + 0xf0],RAX
LEA RAX,[RDI + 0x130]
MOV qword ptr [RDI + 0x40],0x0
MOV qword ptr [RDI + 0x48],0x0
MOV qword ptr [RDI + 0x50],0x0
MOV qword ptr [RDI + 0x60],0x0
MOV qword ptr [RDI + 0x70],0x0
MOV qword ptr [RDI + 0x78],0x0
MOV qword ptr [RDI + 0x88],0x0
MOV qword ptr [RDI + 0x98],0x0
MOV qword ptr [RDI + 0xa0],0x0
MOV qword ptr [RDI + 0xa8],0x0
MOV qword ptr [RDI + 0xb0],0x0
MOV qword ptr [RDI + 0xb8],0x0
MOV qword ptr [RDI + 0xc0],0x0
MOV dword ptr [RDI + 0xd8],0x0
MOV qword ptr [RDI + 0xe0],0x0
MOV qword ptr [RDI + 0xf8],0x0
MOV qword ptr [RDI + 0x100],RAX
MOV qword ptr [RDI + 0x108],0x1
MOV qword ptr [RDI + 0x110],0x0
MOV qword ptr [RDI + 0x118],0x0
MOV dword ptr [RDI + 0x120],0x3f800000
MOV qword ptr [RDI + 0x128],0x0
MOV qword ptr [RDI + 0x130],0x0
JBE 0x00176f74
PUSH R15
PUSH R14
MOV R14D,EDX
PUSH R13
MOV R13,RDI
PUSH R12
MOV R12D,0x1
PUSH RBP
PUSH RBX
MOV RBX,RSI
SUB RSP,0x38
LEA RBP,[RSP + 0x10]
LEA R15,[RBP + 0x10]
JMP 0x00176d80
LEA RSI,[0x372107]
MOV RDI,RBP
CALL 0x002e3a50
TEST EAX,EAX
JZ 0x00176da5
MOV RDI,qword ptr [RSP + 0x10]
CMP RDI,R15
JZ 0x00176d72
CALL 0x002dac70
ADD R12D,0x1
CMP R12D,dword ptr [RBX + 0x38]
JNC 0x00176f58
MOV RAX,qword ptr [RBX]
MOV EDX,R12D
MOV RSI,RBX
MOV RDI,RBP
CALL qword ptr [RAX + 0x80]
LEA RSI,[0x3720fb]
MOV RDI,RBP
CALL 0x002e3a50
TEST EAX,EAX
JNZ 0x00176d50
LEA RCX,[RSP + 0x7]
LEA RDX,[RSP + 0x8]
XOR R8D,R8D
MOV ESI,R12D
MOV RDI,RBX
MOV byte ptr [RSP + 0x7],0x0
CALL 0x001bd870
CMP byte ptr [RSP + 0x7],0x0
MOV qword ptr [R13 + 0x60],RAX
JZ 0x00176dd1
MOV qword ptr [R13 + 0x70],RAX
MOV RDX,qword ptr [RSP + 0x8]
MOV RDI,qword ptr [RSP + 0x10]
ADD RBP,0x10
ADD RDX,RAX
MOV qword ptr [R13 + 0x68],RDX
CMP RDI,RBP
JZ 0x00176df4
CALL 0x002dac70
MOV RAX,qword ptr [R13 + 0x60]
TEST RAX,RAX
JZ 0x00176eaa
MOV EDX,dword ptr [RBX + 0x38]
XOR EBP,EBP
TEST EDX,EDX
JNZ 0x00176e1c
JMP 0x00176ec0
ADD EBP,0x1
CMP EBP,dword ptr [RBX + 0x38]
JNC 0x00176ec0
MOV RAX,qword ptr [RBX]
MOV ESI,EBP
MOV RDI,RBX
CALL qword ptr [RAX + 0xa0]
MOV R15D,EAX
CMP EAX,0x9
JZ 0x00176e37
CMP EAX,0x4
JNZ 0x00176e10
MOV RAX,qword ptr [RBX]
MOV ESI,EBP
MOV RDI,RBX
CALL qword ptr [RAX + 0xb0]
CMP R12D,EAX
JNZ 0x00176e10
MOV dword ptr [R13 + 0x80],R15D
TEST EBP,EBP
JZ 0x00176ec0
MOV EAX,dword ptr [RBX + 0x38]
TEST EAX,EAX
JZ 0x00176f68
XOR R12D,R12D
JMP 0x00176e76
ADD R12D,0x1
CMP R12D,dword ptr [RBX + 0x38]
JNC 0x00176f68
MOV RAX,qword ptr [RBX]
MOV ESI,R12D
MOV RDI,RBX
CALL qword ptr [RAX + 0xa0]
CMP EAX,0x2
JNZ 0x00176e68
LEA RDX,[R13 + 0x90]
XOR ECX,ECX
MOV ESI,R12D
MOV RDI,RBX
CALL 0x001bd320
MOV qword ptr [R13 + 0x88],RAX
TEST RAX,RAX
JNZ 0x00176ec2
ADD RSP,0x38
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
XOR EBP,EBP
MOV EDI,0x48
CALL 0x002d94a0
MOV RDX,qword ptr [R13 + 0x90]
MOV RCX,qword ptr [R13 + 0x88]
MOV qword ptr [RAX + 0x8],RBX
LEA RSI,[0x426a48]
MOV qword ptr [RAX],RSI
MOV RDI,RAX
MOV ESI,EBP
MOV qword ptr [RAX + 0x18],RDX
MOV EDX,dword ptr [R13 + 0x80]
MOV qword ptr [RAX + 0x10],RCX
MOV dword ptr [RAX + 0x20],0x0
MOV qword ptr [RAX + 0x28],0x0
MOV qword ptr [RAX + 0x30],0x0
MOV qword ptr [RAX + 0x38],0x0
MOV dword ptr [RAX + 0x40],0x0
MOV qword ptr [R13 + 0x78],RAX
CALL 0x0016df40
TEST AL,AL
JZ 0x00176eaa
MOV byte ptr [R13 + 0x8],0x1
MOV ESI,R14D
MOV RDI,R13
CALL 0x00176b10
ADD RSP,0x38
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RAX,qword ptr [R13 + 0x60]
JMP 0x00176df4
MOV RAX,qword ptr [R13 + 0x88]
JMP 0x00176ea5
RET
(translation_unit "void FUN_00176c00(undefined8 *param_1,long *param_2,undefined4 param_3)\n\n{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  long lVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  uint uVar10;\n  char local_61;\n  long local_60;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  *(undefined1 *)(param_1 + 1) = 0;\n  *param_1 = &PTR_FUN_00426b68;\n  *(undefined4 *)(param_1 + 0x19) = 0xffffffff;\n  uVar10 = *(uint *)(param_2 + 7);\n  param_1[0x1d] = param_1 + 0x1b;\n  param_1[0x1e] = param_1 + 0x1b;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  param_1[10] = 0;\n  param_1[0xc] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  param_1[0x11] = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x15] = 0;\n  param_1[0x16] = 0;\n  param_1[0x17] = 0;\n  param_1[0x18] = 0;\n  *(undefined4 *)(param_1 + 0x1b) = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = param_1 + 0x26;\n  param_1[0x21] = 1;\n  param_1[0x22] = 0;\n  param_1[0x23] = 0;\n  *(undefined4 *)(param_1 + 0x24) = 0x3f800000;\n  param_1[0x25] = 0;\n  param_1[0x26] = 0;\n  if (uVar10 < 2) {\n    return;\n  }\n  uVar10 = 1;\n  do {\n                    /* try { // try from 00176d8c to 00176d91 has its CatchHandler @ 00176f7a */\n    (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10);\n    iVar5 = FUN_002e3a50(local_58,".debug_line");\n    if ((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)) {\n      local_61 = '\0';\n                    /* try { // try from 00176dbd to 00176dc1 has its CatchHandler @ 00176f75 */\n      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);\n      param_1[0xc] = lVar7;\n      if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }\n      param_1[0xd] = local_60 + lVar7;\n      if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }\n      goto LAB_00176df4;\n    }\n    if (local_58[0] != local_48) {\n      FUN_002dac70();\n    }\n    uVar10 = uVar10 + 1;\n  } while (uVar10 < *(uint *)(param_2 + 7));\n  lVar7 = param_1[0xc];\nLAB_00176df4:\n  if (lVar7 == 0) {\n    return;\n  }\n  uVar9 = 0;\n  if ((int)param_2[7] != 0) {\n    do {\n                    /* try { // try from 00176e24 to 00176f42 has its CatchHandler @ 00176f7a */\n      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);\n      if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < *(uint *)(param_2 + 7));\n  }\n  uVar9 = 0;\n  goto LAB_00176ec2;\n  while (uVar10 = uVar10 + 1, uVar10 < *(uint *)(param_2 + 7)) {\nLAB_00176e76:\n    iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);\n    if (iVar5 == 2) {\n      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);\n      param_1[0x11] = lVar7;\n      goto LAB_00176ea5;\n    }\n  }\nLAB_00176f68:\n  lVar7 = param_1[0x11];\nLAB_00176ea5:\n  if (lVar7 == 0) {\n    return;\n  }\nLAB_00176ec2:\n  puVar8 = (undefined8 *)FUN_002d94a0(0x48);\n  uVar2 = param_1[0x12];\n  uVar3 = param_1[0x11];\n  puVar8[1] = param_2;\n  *puVar8 = &PTR_FUN_00426a48;\n  puVar8[3] = uVar2;\n  uVar1 = *(undefined4 *)(param_1 + 0x10);\n  puVar8[2] = uVar3;\n  *(undefined4 *)(puVar8 + 4) = 0;\n  puVar8[5] = 0;\n  puVar8[6] = 0;\n  puVar8[7] = 0;\n  *(undefined4 *)(puVar8 + 8) = 0;\n  param_1[0xf] = puVar8;\n  cVar4 = FUN_0016df40(puVar8,uVar9,uVar1);\n  if (cVar4 == '\0') {\n    return;\n  }\n  *(undefined1 *)(param_1 + 1) = 1;\n  FUN_00176b10(param_1,param_3);\n  return;\n}\n\n" (function_definition "void FUN_00176c00(undefined8 *param_1,long *param_2,undefined4 param_3)\n\n{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  long lVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  uint uVar10;\n  char local_61;\n  long local_60;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  *(undefined1 *)(param_1 + 1) = 0;\n  *param_1 = &PTR_FUN_00426b68;\n  *(undefined4 *)(param_1 + 0x19) = 0xffffffff;\n  uVar10 = *(uint *)(param_2 + 7);\n  param_1[0x1d] = param_1 + 0x1b;\n  param_1[0x1e] = param_1 + 0x1b;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  param_1[10] = 0;\n  param_1[0xc] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  param_1[0x11] = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x15] = 0;\n  param_1[0x16] = 0;\n  param_1[0x17] = 0;\n  param_1[0x18] = 0;\n  *(undefined4 *)(param_1 + 0x1b) = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = param_1 + 0x26;\n  param_1[0x21] = 1;\n  param_1[0x22] = 0;\n  param_1[0x23] = 0;\n  *(undefined4 *)(param_1 + 0x24) = 0x3f800000;\n  param_1[0x25] = 0;\n  param_1[0x26] = 0;\n  if (uVar10 < 2) {\n    return;\n  }\n  uVar10 = 1;\n  do {\n                    /* try { // try from 00176d8c to 00176d91 has its CatchHandler @ 00176f7a */\n    (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10);\n    iVar5 = FUN_002e3a50(local_58,".debug_line");\n    if ((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)) {\n      local_61 = '\0';\n                    /* try { // try from 00176dbd to 00176dc1 has its CatchHandler @ 00176f75 */\n      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);\n      param_1[0xc] = lVar7;\n      if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }\n      param_1[0xd] = local_60 + lVar7;\n      if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }\n      goto LAB_00176df4;\n    }\n    if (local_58[0] != local_48) {\n      FUN_002dac70();\n    }\n    uVar10 = uVar10 + 1;\n  } while (uVar10 < *(uint *)(param_2 + 7));\n  lVar7 = param_1[0xc];\nLAB_00176df4:\n  if (lVar7 == 0) {\n    return;\n  }\n  uVar9 = 0;\n  if ((int)param_2[7] != 0) {\n    do {\n                    /* try { // try from 00176e24 to 00176f42 has its CatchHandler @ 00176f7a */\n      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);\n      if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < *(uint *)(param_2 + 7));\n  }\n  uVar9 = 0;\n  goto LAB_00176ec2;\n  while (uVar10 = uVar10 + 1, uVar10 < *(uint *)(param_2 + 7)) {\nLAB_00176e76:\n    iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);\n    if (iVar5 == 2) {\n      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);\n      param_1[0x11] = lVar7;\n      goto LAB_00176ea5;\n    }\n  }\nLAB_00176f68:\n  lVar7 = param_1[0x11];\nLAB_00176ea5:\n  if (lVar7 == 0) {\n    return;\n  }\nLAB_00176ec2:\n  puVar8 = (undefined8 *)FUN_002d94a0(0x48);\n  uVar2 = param_1[0x12];\n  uVar3 = param_1[0x11];\n  puVar8[1] = param_2;\n  *puVar8 = &PTR_FUN_00426a48;\n  puVar8[3] = uVar2;\n  uVar1 = *(undefined4 *)(param_1 + 0x10);\n  puVar8[2] = uVar3;\n  *(undefined4 *)(puVar8 + 4) = 0;\n  puVar8[5] = 0;\n  puVar8[6] = 0;\n  puVar8[7] = 0;\n  *(undefined4 *)(puVar8 + 8) = 0;\n  param_1[0xf] = puVar8;\n  cVar4 = FUN_0016df40(puVar8,uVar9,uVar1);\n  if (cVar4 == '\0') {\n    return;\n  }\n  *(undefined1 *)(param_1 + 1) = 1;\n  FUN_00176b10(param_1,param_3);\n  return;\n}" primitive_type (function_declarator "FUN_00176c00(undefined8 *param_1,long *param_2,undefined4 param_3)" identifier (parameter_list "(undefined8 *param_1,long *param_2,undefined4 param_3)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  long lVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  uint uVar10;\n  char local_61;\n  long local_60;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  *(undefined1 *)(param_1 + 1) = 0;\n  *param_1 = &PTR_FUN_00426b68;\n  *(undefined4 *)(param_1 + 0x19) = 0xffffffff;\n  uVar10 = *(uint *)(param_2 + 7);\n  param_1[0x1d] = param_1 + 0x1b;\n  param_1[0x1e] = param_1 + 0x1b;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  param_1[10] = 0;\n  param_1[0xc] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  param_1[0x11] = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x15] = 0;\n  param_1[0x16] = 0;\n  param_1[0x17] = 0;\n  param_1[0x18] = 0;\n  *(undefined4 *)(param_1 + 0x1b) = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = param_1 + 0x26;\n  param_1[0x21] = 1;\n  param_1[0x22] = 0;\n  param_1[0x23] = 0;\n  *(undefined4 *)(param_1 + 0x24) = 0x3f800000;\n  param_1[0x25] = 0;\n  param_1[0x26] = 0;\n  if (uVar10 < 2) {\n    return;\n  }\n  uVar10 = 1;\n  do {\n                    /* try { // try from 00176d8c to 00176d91 has its CatchHandler @ 00176f7a */\n    (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10);\n    iVar5 = FUN_002e3a50(local_58,".debug_line");\n    if ((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)) {\n      local_61 = '\0';\n                    /* try { // try from 00176dbd to 00176dc1 has its CatchHandler @ 00176f75 */\n      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);\n      param_1[0xc] = lVar7;\n      if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }\n      param_1[0xd] = local_60 + lVar7;\n      if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }\n      goto LAB_00176df4;\n    }\n    if (local_58[0] != local_48) {\n      FUN_002dac70();\n    }\n    uVar10 = uVar10 + 1;\n  } while (uVar10 < *(uint *)(param_2 + 7));\n  lVar7 = param_1[0xc];\nLAB_00176df4:\n  if (lVar7 == 0) {\n    return;\n  }\n  uVar9 = 0;\n  if ((int)param_2[7] != 0) {\n    do {\n                    /* try { // try from 00176e24 to 00176f42 has its CatchHandler @ 00176f7a */\n      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);\n      if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < *(uint *)(param_2 + 7));\n  }\n  uVar9 = 0;\n  goto LAB_00176ec2;\n  while (uVar10 = uVar10 + 1, uVar10 < *(uint *)(param_2 + 7)) {\nLAB_00176e76:\n    iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);\n    if (iVar5 == 2) {\n      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);\n      param_1[0x11] = lVar7;\n      goto LAB_00176ea5;\n    }\n  }\nLAB_00176f68:\n  lVar7 = param_1[0x11];\nLAB_00176ea5:\n  if (lVar7 == 0) {\n    return;\n  }\nLAB_00176ec2:\n  puVar8 = (undefined8 *)FUN_002d94a0(0x48);\n  uVar2 = param_1[0x12];\n  uVar3 = param_1[0x11];\n  puVar8[1] = param_2;\n  *puVar8 = &PTR_FUN_00426a48;\n  puVar8[3] = uVar2;\n  uVar1 = *(undefined4 *)(param_1 + 0x10);\n  puVar8[2] = uVar3;\n  *(undefined4 *)(puVar8 + 4) = 0;\n  puVar8[5] = 0;\n  puVar8[6] = 0;\n  puVar8[7] = 0;\n  *(undefined4 *)(puVar8 + 8) = 0;\n  param_1[0xf] = puVar8;\n  cVar4 = FUN_0016df40(puVar8,uVar9,uVar1);\n  if (cVar4 == '\0') {\n    return;\n  }\n  *(undefined1 *)(param_1 + 1) = 1;\n  FUN_00176b10(param_1,param_3);\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "char local_61;" primitive_type identifier ;) (declaration "long local_60;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 *local_58 [2];" type_identifier (pointer_declarator "*local_58 [2]" * (array_declarator "local_58 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_48 [24];" type_identifier (array_declarator "local_48 [24]" identifier [ number_literal ]) ;) (expression_statement "*(undefined1 *)(param_1 + 1) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 1) = 0" (pointer_expression "*(undefined1 *)(param_1 + 1)" * (cast_expression "(undefined1 *)(param_1 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*param_1 = &PTR_FUN_00426b68;" (assignment_expression "*param_1 = &PTR_FUN_00426b68" (pointer_expression "*param_1" * identifier) = (pointer_expression "&PTR_FUN_00426b68" & identifier)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x19) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 0x19) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 0x19)" * (cast_expression "(undefined4 *)(param_1 + 0x19)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x19)" ( (binary_expression "param_1 + 0x19" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar10 = *(uint *)(param_2 + 7);" (assignment_expression "uVar10 = *(uint *)(param_2 + 7)" identifier = (pointer_expression "*(uint *)(param_2 + 7)" * (cast_expression "(uint *)(param_2 + 7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) ))))) ;) (expression_statement "param_1[0x1d] = param_1 + 0x1b;" (assignment_expression "param_1[0x1d] = param_1 + 0x1b" (subscript_expression "param_1[0x1d]" identifier [ number_literal ]) = (binary_expression "param_1 + 0x1b" identifier + number_literal)) ;) (expression_statement "param_1[0x1e] = param_1 + 0x1b;" (assignment_expression "param_1[0x1e] = param_1 + 0x1b" (subscript_expression "param_1[0x1e]" identifier [ number_literal ]) = (binary_expression "param_1 + 0x1b" identifier + number_literal)) ;) (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xc] = 0;" (assignment_expression "param_1[0xc] = 0" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xe] = 0;" (assignment_expression "param_1[0xe] = 0" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xf] = 0;" (assignment_expression "param_1[0xf] = 0" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x11] = 0;" (assignment_expression "param_1[0x11] = 0" (subscript_expression "param_1[0x11]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x13] = 0;" (assignment_expression "param_1[0x13] = 0" (subscript_expression "param_1[0x13]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x14] = 0;" (assignment_expression "param_1[0x14] = 0" (subscript_expression "param_1[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x15] = 0;" (assignment_expression "param_1[0x15] = 0" (subscript_expression "param_1[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x16] = 0;" (assignment_expression "param_1[0x16] = 0" (subscript_expression "param_1[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x17] = 0;" (assignment_expression "param_1[0x17] = 0" (subscript_expression "param_1[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x18] = 0;" (assignment_expression "param_1[0x18] = 0" (subscript_expression "param_1[0x18]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x1b) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x1b) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x1b)" * (cast_expression "(undefined4 *)(param_1 + 0x1b)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1b)" ( (binary_expression "param_1 + 0x1b" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0x1c] = 0;" (assignment_expression "param_1[0x1c] = 0" (subscript_expression "param_1[0x1c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x1f] = 0;" (assignment_expression "param_1[0x1f] = 0" (subscript_expression "param_1[0x1f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x20] = param_1 + 0x26;" (assignment_expression "param_1[0x20] = param_1 + 0x26" (subscript_expression "param_1[0x20]" identifier [ number_literal ]) = (binary_expression "param_1 + 0x26" identifier + number_literal)) ;) (expression_statement "param_1[0x21] = 1;" (assignment_expression "param_1[0x21] = 1" (subscript_expression "param_1[0x21]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x22] = 0;" (assignment_expression "param_1[0x22] = 0" (subscript_expression "param_1[0x22]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x23] = 0;" (assignment_expression "param_1[0x23] = 0" (subscript_expression "param_1[0x23]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x24) = 0x3f800000;" (assignment_expression "*(undefined4 *)(param_1 + 0x24) = 0x3f800000" (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0x25] = 0;" (assignment_expression "param_1[0x25] = 0" (subscript_expression "param_1[0x25]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x26] = 0;" (assignment_expression "param_1[0x26] = 0" (subscript_expression "param_1[0x26]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (uVar10 < 2) {\n    return;\n  }" if (parenthesized_expression "(uVar10 < 2)" ( (binary_expression "uVar10 < 2" identifier < number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) (do_statement "do {\n                    /* try { // try from 00176d8c to 00176d91 has its CatchHandler @ 00176f7a */\n    (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10);\n    iVar5 = FUN_002e3a50(local_58,".debug_line");\n    if ((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)) {\n      local_61 = '\0';\n                    /* try { // try from 00176dbd to 00176dc1 has its CatchHandler @ 00176f75 */\n      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);\n      param_1[0xc] = lVar7;\n      if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }\n      param_1[0xd] = local_60 + lVar7;\n      if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }\n      goto LAB_00176df4;\n    }\n    if (local_58[0] != local_48) {\n      FUN_002dac70();\n    }\n    uVar10 = uVar10 + 1;\n  } while (uVar10 < *(uint *)(param_2 + 7));" do (compound_statement "{\n                    /* try { // try from 00176d8c to 00176d91 has its CatchHandler @ 00176f7a */\n    (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10);\n    iVar5 = FUN_002e3a50(local_58,".debug_line");\n    if ((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)) {\n      local_61 = '\0';\n                    /* try { // try from 00176dbd to 00176dc1 has its CatchHandler @ 00176f75 */\n      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);\n      param_1[0xc] = lVar7;\n      if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }\n      param_1[0xd] = local_60 + lVar7;\n      if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }\n      goto LAB_00176df4;\n    }\n    if (local_58[0] != local_48) {\n      FUN_002dac70();\n    }\n    uVar10 = uVar10 + 1;\n  }" { comment (expression_statement "(**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10);" (call_expression "(**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10)" (parenthesized_expression "(**(code **)(*param_2 + 0x80))" ( (pointer_expression "**(code **)(*param_2 + 0x80)" * (pointer_expression "*(code **)(*param_2 + 0x80)" * (cast_expression "(code **)(*param_2 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x80)" ( (binary_expression "*param_2 + 0x80" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(local_58,param_2,uVar10)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar5 = FUN_002e3a50(local_58,".debug_line");" (assignment_expression "iVar5 = FUN_002e3a50(local_58,".debug_line")" identifier = (call_expression "FUN_002e3a50(local_58,".debug_line")" identifier (argument_list "(local_58,".debug_line")" ( identifier , (string_literal "".debug_line"" " string_content ") )))) ;) (if_statement "if ((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)) {\n      local_61 = '\0';\n                    /* try { // try from 00176dbd to 00176dc1 has its CatchHandler @ 00176f75 */\n      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);\n      param_1[0xc] = lVar7;\n      if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }\n      param_1[0xd] = local_60 + lVar7;\n      if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }\n      goto LAB_00176df4;\n    }" if (parenthesized_expression "((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0))" ( (binary_expression "(iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)" ( (comma_expression "iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0" (assignment_expression "iVar5 = FUN_002e3a50(local_58,".zdebug_line")" identifier = (call_expression "FUN_002e3a50(local_58,".zdebug_line")" identifier (argument_list "(local_58,".zdebug_line")" ( identifier , (string_literal "".zdebug_line"" " string_content ") )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      local_61 = '\0';\n                    /* try { // try from 00176dbd to 00176dc1 has its CatchHandler @ 00176f75 */\n      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);\n      param_1[0xc] = lVar7;\n      if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }\n      param_1[0xd] = local_60 + lVar7;\n      if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }\n      goto LAB_00176df4;\n    }" { (expression_statement "local_61 = '\0';" (assignment_expression "local_61 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) comment (expression_statement "lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);" (assignment_expression "lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0)" identifier = (call_expression "FUN_001bd870(param_2,uVar10,&local_60,&local_61,0)" identifier (argument_list "(param_2,uVar10,&local_60,&local_61,0)" ( identifier , identifier , (pointer_expression "&local_60" & identifier) , (pointer_expression "&local_61" & identifier) , number_literal )))) ;) (expression_statement "param_1[0xc] = lVar7;" (assignment_expression "param_1[0xc] = lVar7" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }" if (parenthesized_expression "(local_61 != '\0')" ( (binary_expression "local_61 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        param_1[0xe] = lVar7;\n      }" { (expression_statement "param_1[0xe] = lVar7;" (assignment_expression "param_1[0xe] = lVar7" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "param_1[0xd] = local_60 + lVar7;" (assignment_expression "param_1[0xd] = local_60 + lVar7" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = (binary_expression "local_60 + lVar7" identifier + identifier)) ;) (if_statement "if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }" if (parenthesized_expression "(local_58[0] != local_48)" ( (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar7 = param_1[0xc];" (assignment_expression "lVar7 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) })) (goto_statement "goto LAB_00176df4;" goto statement_identifier ;) })) (if_statement "if (local_58[0] != local_48) {\n      FUN_002dac70();\n    }" if (parenthesized_expression "(local_58[0] != local_48)" ( (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n      FUN_002dac70();\n    }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar10 < *(uint *)(param_2 + 7))" ( (binary_expression "uVar10 < *(uint *)(param_2 + 7)" identifier < (pointer_expression "*(uint *)(param_2 + 7)" * (cast_expression "(uint *)(param_2 + 7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) ))))) )) ;) (expression_statement "lVar7 = param_1[0xc];" (assignment_expression "lVar7 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00176df4:\n  if (lVar7 == 0) {\n    return;\n  }" statement_identifier : (if_statement "if (lVar7 == 0) {\n    return;\n  }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (if_statement "if ((int)param_2[7] != 0) {\n    do {\n                    /* try { // try from 00176e24 to 00176f42 has its CatchHandler @ 00176f7a */\n      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);\n      if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < *(uint *)(param_2 + 7));\n  }" if (parenthesized_expression "((int)param_2[7] != 0)" ( (binary_expression "(int)param_2[7] != 0" (cast_expression "(int)param_2[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[7]" identifier [ number_literal ])) != number_literal) )) (compound_statement "{\n    do {\n                    /* try { // try from 00176e24 to 00176f42 has its CatchHandler @ 00176f7a */\n      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);\n      if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < *(uint *)(param_2 + 7));\n  }" { (do_statement "do {\n                    /* try { // try from 00176e24 to 00176f42 has its CatchHandler @ 00176f7a */\n      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);\n      if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < *(uint *)(param_2 + 7));" do (compound_statement "{\n                    /* try { // try from 00176e24 to 00176f42 has its CatchHandler @ 00176f7a */\n      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);\n      if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      uVar9 = uVar9 + 1;\n    }" { comment (expression_statement "iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);" (assignment_expression "iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9)" identifier = (call_expression "(**(code **)(*param_2 + 0xa0))(param_2,uVar9)" (parenthesized_expression "(**(code **)(*param_2 + 0xa0))" ( (pointer_expression "**(code **)(*param_2 + 0xa0)" * (pointer_expression "*(code **)(*param_2 + 0xa0)" * (cast_expression "(code **)(*param_2 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0xa0)" ( (binary_expression "*param_2 + 0xa0" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,uVar9)" ( identifier , identifier )))) ;) (if_statement "if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }" if (parenthesized_expression "(((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6))" ( (binary_expression "((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)" (parenthesized_expression "((iVar5 == 9) || (iVar5 == 4))" ( (binary_expression "(iVar5 == 9) || (iVar5 == 4)" (parenthesized_expression "(iVar5 == 9)" ( (binary_expression "iVar5 == 9" identifier == number_literal) )) || (parenthesized_expression "(iVar5 == 4)" ( (binary_expression "iVar5 == 4" identifier == number_literal) ))) )) && (parenthesized_expression "(uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)" ( (comma_expression "uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6" (assignment_expression "uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9)" identifier = (call_expression "(**(code **)(*param_2 + 0xb0))(param_2,uVar9)" (parenthesized_expression "(**(code **)(*param_2 + 0xb0))" ( (pointer_expression "**(code **)(*param_2 + 0xb0)" * (pointer_expression "*(code **)(*param_2 + 0xb0)" * (cast_expression "(code **)(*param_2 + 0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0xb0)" ( (binary_expression "*param_2 + 0xb0" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,uVar9)" ( identifier , identifier )))) , (binary_expression "uVar10 == uVar6" identifier == identifier)) ))) )) (compound_statement "{\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }" { (expression_statement "*(int *)(param_1 + 0x10) = iVar5;" (assignment_expression "*(int *)(param_1 + 0x10) = iVar5" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }" { (if_statement "if ((int)param_2[7] == 0) goto LAB_00176f68;" if (parenthesized_expression "((int)param_2[7] == 0)" ( (binary_expression "(int)param_2[7] == 0" (cast_expression "(int)param_2[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[7]" identifier [ number_literal ])) == number_literal) )) (goto_statement "goto LAB_00176f68;" goto statement_identifier ;)) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00176e76;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar9 < *(uint *)(param_2 + 7))" ( (binary_expression "uVar9 < *(uint *)(param_2 + 7)" identifier < (pointer_expression "*(uint *)(param_2 + 7)" * (cast_expression "(uint *)(param_2 + 7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) ))))) )) ;) })) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00176ec2;" goto statement_identifier ;) (while_statement "while (uVar10 = uVar10 + 1, uVar10 < *(uint *)(param_2 + 7)) {\nLAB_00176e76:\n    iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);\n    if (iVar5 == 2) {\n      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);\n      param_1[0x11] = lVar7;\n      goto LAB_00176ea5;\n    }\n  }" while (parenthesized_expression "(uVar10 = uVar10 + 1, uVar10 < *(uint *)(param_2 + 7))" ( (comma_expression "uVar10 = uVar10 + 1, uVar10 < *(uint *)(param_2 + 7)" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) , (binary_expression "uVar10 < *(uint *)(param_2 + 7)" identifier < (pointer_expression "*(uint *)(param_2 + 7)" * (cast_expression "(uint *)(param_2 + 7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))))) )) (compound_statement "{\nLAB_00176e76:\n    iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);\n    if (iVar5 == 2) {\n      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);\n      param_1[0x11] = lVar7;\n      goto LAB_00176ea5;\n    }\n  }" { (labeled_statement "LAB_00176e76:\n    iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);" statement_identifier : (expression_statement "iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);" (assignment_expression "iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10)" identifier = (call_expression "(**(code **)(*param_2 + 0xa0))(param_2,uVar10)" (parenthesized_expression "(**(code **)(*param_2 + 0xa0))" ( (pointer_expression "**(code **)(*param_2 + 0xa0)" * (pointer_expression "*(code **)(*param_2 + 0xa0)" * (cast_expression "(code **)(*param_2 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0xa0)" ( (binary_expression "*param_2 + 0xa0" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,uVar10)" ( identifier , identifier )))) ;)) (if_statement "if (iVar5 == 2) {\n      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);\n      param_1[0x11] = lVar7;\n      goto LAB_00176ea5;\n    }" if (parenthesized_expression "(iVar5 == 2)" ( (binary_expression "iVar5 == 2" identifier == number_literal) )) (compound_statement "{\n      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);\n      param_1[0x11] = lVar7;\n      goto LAB_00176ea5;\n    }" { (expression_statement "lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);" (assignment_expression "lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0)" identifier = (call_expression "FUN_001bd320(param_2,uVar10,param_1 + 0x12,0)" identifier (argument_list "(param_2,uVar10,param_1 + 0x12,0)" ( identifier , identifier , (binary_expression "param_1 + 0x12" identifier + number_literal) , number_literal )))) ;) (expression_statement "param_1[0x11] = lVar7;" (assignment_expression "param_1[0x11] = lVar7" (subscript_expression "param_1[0x11]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_00176ea5;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00176f68:\n  lVar7 = param_1[0x11];" statement_identifier : (expression_statement "lVar7 = param_1[0x11];" (assignment_expression "lVar7 = param_1[0x11]" identifier = (subscript_expression "param_1[0x11]" identifier [ number_literal ])) ;)) (labeled_statement "LAB_00176ea5:\n  if (lVar7 == 0) {\n    return;\n  }" statement_identifier : (if_statement "if (lVar7 == 0) {\n    return;\n  }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (labeled_statement "LAB_00176ec2:\n  puVar8 = (undefined8 *)FUN_002d94a0(0x48);" statement_identifier : (expression_statement "puVar8 = (undefined8 *)FUN_002d94a0(0x48);" (assignment_expression "puVar8 = (undefined8 *)FUN_002d94a0(0x48)" identifier = (cast_expression "(undefined8 *)FUN_002d94a0(0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002d94a0(0x48)" identifier (argument_list "(0x48)" ( number_literal ))))) ;)) (expression_statement "uVar2 = param_1[0x12];" (assignment_expression "uVar2 = param_1[0x12]" identifier = (subscript_expression "param_1[0x12]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = param_1[0x11];" (assignment_expression "uVar3 = param_1[0x11]" identifier = (subscript_expression "param_1[0x11]" identifier [ number_literal ])) ;) (expression_statement "puVar8[1] = param_2;" (assignment_expression "puVar8[1] = param_2" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar8 = &PTR_FUN_00426a48;" (assignment_expression "*puVar8 = &PTR_FUN_00426a48" (pointer_expression "*puVar8" * identifier) = (pointer_expression "&PTR_FUN_00426a48" & identifier)) ;) (expression_statement "puVar8[3] = uVar2;" (assignment_expression "puVar8[3] = uVar2" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = *(undefined4 *)(param_1 + 0x10);" (assignment_expression "uVar1 = *(undefined4 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "puVar8[2] = uVar3;" (assignment_expression "puVar8[2] = uVar3" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar8 + 4) = 0;" (assignment_expression "*(undefined4 *)(puVar8 + 4) = 0" (pointer_expression "*(undefined4 *)(puVar8 + 4)" * (cast_expression "(undefined4 *)(puVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar8[5] = 0;" (assignment_expression "puVar8[5] = 0" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[6] = 0;" (assignment_expression "puVar8[6] = 0" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[7] = 0;" (assignment_expression "puVar8[7] = 0" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar8 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar8 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar8 + 8)" * (cast_expression "(undefined4 *)(puVar8 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 8)" ( (binary_expression "puVar8 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0xf] = puVar8;" (assignment_expression "param_1[0xf] = puVar8" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "cVar4 = FUN_0016df40(puVar8,uVar9,uVar1);" (assignment_expression "cVar4 = FUN_0016df40(puVar8,uVar9,uVar1)" identifier = (call_expression "FUN_0016df40(puVar8,uVar9,uVar1)" identifier (argument_list "(puVar8,uVar9,uVar1)" ( identifier , identifier , identifier )))) ;) (if_statement "if (cVar4 == '\0') {\n    return;\n  }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "*(undefined1 *)(param_1 + 1) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 1) = 1" (pointer_expression "*(undefined1 *)(param_1 + 1)" * (cast_expression "(undefined1 *)(param_1 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00176b10(param_1,param_3);" (call_expression "FUN_00176b10(param_1,param_3)" identifier (argument_list "(param_1,param_3)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: void Sized_dwarf_line_info(Sized_dwarf_line_info<32,_false> * this,\n   Object * object, uint read_shndx) */\n\nvoid __thiscall\ngold::Sized_dwarf_line_info<32,_false>::Sized_dwarf_line_info\n          (Sized_dwarf_line_info<32,_false> *this,Object *object,uint read_shndx)\n\n{\n  _Rb_tree_header *p_Var1;\n  section_size_type sVar2;\n  bool bVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uchar *puVar7;\n  Sized_elf_reloc_mapper<32,_false> *this_00;\n  uint reloc_shndx;\n  uint uVar8;\n  bool is_new;\n  section_size_type buffer_size;\n  string name;\n  \n  this->data_valid_ = false;\n  (this->super_Dwarf_line_info)._vptr_Dwarf_line_info =\n       (_func_int_varargs **)&PTR__Sized_dwarf_line_info_00426b68;\n  p_Var1 = &(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n  this->current_header_index_ = -1;\n  uVar8 = object->shnum_;\n  (this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_left = &p_Var1->_M_header;\n  (this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_right = &p_Var1->_M_header;\n  (this->header_).std_opcode_lengths.\n  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start = (pointer)0x0;\n  (this->header_).std_opcode_lengths.\n  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_finish = (pointer)0x0\n  ;\n  (this->header_).std_opcode_lengths.\n  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_end_of_storage =\n       (pointer)0x0;\n  this->buffer_ = (uchar *)0x0;\n  this->buffer_start_ = (uchar *)0x0;\n  this->reloc_mapper_ = (Sized_elf_reloc_mapper<32,_false> *)0x0;\n  this->symtab_buffer_ = (uchar *)0x0;\n  (this->directories_).\n  super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n  ._M_impl._M_start = (pointer)0x0;\n  (this->directories_).\n  super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n  ._M_impl._M_finish = (pointer)0x0;\n  (this->directories_).\n  super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;\n  (this->files_).\n  super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n  ._M_impl._M_start = (pointer)0x0;\n  (this->files_).\n  super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n  ._M_impl._M_finish = (pointer)0x0;\n  (this->files_).\n  super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;\n  (this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red;\n  (this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (_Base_ptr)0x0;\n  (this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;\n  (this->line_number_map_)._M_h._M_buckets = &(this->line_number_map_)._M_h._M_single_bucket;\n  (this->line_number_map_)._M_h._M_bucket_count = 1;\n  (this->line_number_map_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n  (this->line_number_map_)._M_h._M_element_count = 0;\n  (this->line_number_map_)._M_h._M_rehash_policy._M_max_load_factor = 1.0;\n  (this->line_number_map_)._M_h._M_rehash_policy._M_next_resize = 0;\n  (this->line_number_map_)._M_h._M_single_bucket = (__bucket_type)0x0;\n  if (uVar8 < 2) {\n    return;\n  }\n  uVar8 = 1;\n  do {\n                    /* try { // try from 00176d8c to 00176d91 has its CatchHandler @ 00176f7a */\n    (*object->_vptr_Object[0x10])(&name,object,(ulong)uVar8);\n    iVar4 = std::string::compare((string *)&name,".debug_line");\n    if ((iVar4 == 0) || (iVar4 = std::string::compare((string *)&name,".zdebug_line"), iVar4 == 0))\n    {\n      is_new = false;\n                    /* try { // try from 00176dbd to 00176dc1 has its CatchHandler @ 00176f75 */\n      puVar7 = Object::decompressed_section_contents\n                         (object,uVar8,&buffer_size,&is_new,(uint64_t *)0x0);\n      this->buffer_ = puVar7;\n      if (is_new != false) {\n        this->buffer_start_ = puVar7;\n      }\n      this->buffer_end_ = puVar7 + buffer_size;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)name._M_dataplus._M_p != &name.field_2) {\n        operator_delete(name._M_dataplus._M_p);\n        puVar7 = this->buffer_;\n      }\n      goto LAB_00176df4;\n    }\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)name._M_dataplus._M_p != &name.field_2) {\n      operator_delete(name._M_dataplus._M_p);\n    }\n    uVar8 = uVar8 + 1;\n  } while (uVar8 < object->shnum_);\n  puVar7 = this->buffer_;\nLAB_00176df4:\n  if (puVar7 == (uchar *)0x0) {\n    return;\n  }\n  reloc_shndx = 0;\n  if (object->shnum_ != 0) {\n    do {\n                    /* try { // try from 00176e24 to 00176f42 has its CatchHandler @ 00176f7a */\n      uVar5 = (*object->_vptr_Object[0x14])(object,(ulong)reloc_shndx);\n      if (((uVar5 == 9) || (uVar5 == 4)) &&\n         (uVar6 = (*object->_vptr_Object[0x16])(object,(ulong)reloc_shndx), uVar8 == uVar6)) {\n        this->track_relocs_type_ = uVar5;\n        if (reloc_shndx != 0) {\n          if (object->shnum_ == 0) goto LAB_00176f68;\n          uVar8 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      reloc_shndx = reloc_shndx + 1;\n    } while (reloc_shndx < object->shnum_);\n  }\n  reloc_shndx = 0;\n  goto LAB_00176ec2;\n  while (uVar8 = uVar8 + 1, uVar8 < object->shnum_) {\nLAB_00176e76:\n    iVar4 = (*object->_vptr_Object[0x14])(object,(ulong)uVar8);\n    if (iVar4 == 2) {\n      puVar7 = Object::section_contents(object,uVar8,&this->symtab_buffer_size_,false);\n      this->symtab_buffer_ = puVar7;\n      goto LAB_00176ea5;\n    }\n  }\nLAB_00176f68:\n  puVar7 = this->symtab_buffer_;\nLAB_00176ea5:\n  if (puVar7 == (uchar *)0x0) {\n    return;\n  }\nLAB_00176ec2:\n  this_00 = (Sized_elf_reloc_mapper<32,_false> *)operator_new(0x48);\n  sVar2 = this->symtab_buffer_size_;\n  puVar7 = this->symtab_buffer_;\n  this_00->object_ = object;\n  (this_00->super_Elf_reloc_mapper)._vptr_Elf_reloc_mapper =\n       (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_00426a48;\n  this_00->symtab_size_ = sVar2;\n  uVar8 = this->track_relocs_type_;\n  this_00->symtab_ = puVar7;\n  this_00->reloc_type_ = 0;\n  (this_00->track_relocs_).prelocs_ = (uchar *)0x0;\n  (this_00->track_relocs_).len_ = 0;\n  (this_00->track_relocs_).pos_ = 0;\n  (this_00->track_relocs_).reloc_size_ = 0;\n  this->reloc_mapper_ = this_00;\n  bVar3 = Sized_elf_reloc_mapper<32,_false>::do_initialize(this_00,reloc_shndx,uVar8);\n  if (!bVar3) {\n    return;\n  }\n  this->data_valid_ = true;\n  read_line_mappings(this,read_shndx);\n  return;\n}\n\n" comment (declaration "void __thiscall\ngold::Sized_dwarf_line_info<32,_false>::Sized_dwarf_line_info\n          (Sized_dwarf_line_info<32,_false> *this,Object *object,uint read_shndx)\n\n{\n  _Rb_tree_header *p_Var1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_false>::Sized_dwarf_line_info\n          (Sized_dwarf_line_info<32,_false> *this,Object *object,uint read_shndx)\n\n{\n  _Rb_tree_header" identifier > : : (function_declarator "Sized_dwarf_line_info\n          (Sized_dwarf_line_info<32,_false> *this,Object *object,uint read_shndx)" identifier (parameter_list "(Sized_dwarf_line_info<32,_false> *this,Object *object,uint read_shndx)" ( (parameter_declaration "Sized_dwarf_line_info" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Object *object" type_identifier (pointer_declarator "*object" * identifier)) , (parameter_declaration "uint read_shndx" type_identifier identifier) ))) { identifier) (pointer_declarator "*p_Var1" * identifier) ;) (declaration "section_size_type sVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uchar *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (expression_statement "Sized_elf_reloc_mapper<32,_false> *this_00;" (update_expression "Sized_elf_reloc_mapper<32,_false> *this_00" (binary_expression "Sized_elf_reloc_mapper<32,_false> *this_00" (binary_expression "Sized_elf_reloc_mapper<32" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*this_00" * identifier)) --) ;) (declaration "uint reloc_shndx;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "bool is_new;" primitive_type identifier ;) (declaration "section_size_type buffer_size;" type_identifier identifier ;) (declaration "string name;" type_identifier identifier ;) (expression_statement "this->data_valid_ = false;" (assignment_expression "this->data_valid_ = false" (field_expression "this->data_valid_" identifier -> field_identifier) = false) ;) (expression_statement "(this->super_Dwarf_line_info)._vptr_Dwarf_line_info =\n       (_func_int_varargs **)&PTR__Sized_dwarf_line_info_00426b68;" (assignment_expression "(this->super_Dwarf_line_info)._vptr_Dwarf_line_info =\n       (_func_int_varargs **)&PTR__Sized_dwarf_line_info_00426b68" (field_expression "(this->super_Dwarf_line_info)._vptr_Dwarf_line_info" (parenthesized_expression "(this->super_Dwarf_line_info)" ( (field_expression "this->super_Dwarf_line_info" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Sized_dwarf_line_info_00426b68" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Sized_dwarf_line_info_00426b68" & identifier))) ;) (expression_statement "p_Var1 = &(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header;" (assignment_expression "p_Var1 = &(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header" identifier = (pointer_expression "&(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header" & (field_expression "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(this->reloc_map_)._M_t._M_impl" (field_expression "(this->reloc_map_)._M_t" (parenthesized_expression "(this->reloc_map_)" ( (field_expression "this->reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "this->current_header_index_ = -1;" (assignment_expression "this->current_header_index_ = -1" (field_expression "this->current_header_index_" identifier -> field_identifier) = number_literal) ;) (expression_statement "uVar8 = object->shnum_;" (assignment_expression "uVar8 = object->shnum_" identifier = (field_expression "object->shnum_" identifier -> field_identifier)) ;) (expression_statement "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_left = &p_Var1->_M_header;" (assignment_expression "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_left = &p_Var1->_M_header" (field_expression "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_left" (field_expression "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(this->reloc_map_)._M_t._M_impl" (field_expression "(this->reloc_map_)._M_t" (parenthesized_expression "(this->reloc_map_)" ( (field_expression "this->reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "&p_Var1->_M_header" & (field_expression "p_Var1->_M_header" identifier -> field_identifier))) ;) (expression_statement "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_right = &p_Var1->_M_header;" (assignment_expression "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_right = &p_Var1->_M_header" (field_expression "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_right" (field_expression "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(this->reloc_map_)._M_t._M_impl" (field_expression "(this->reloc_map_)._M_t" (parenthesized_expression "(this->reloc_map_)" ( (field_expression "this->reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "&p_Var1->_M_header" & (field_expression "p_Var1->_M_header" identifier -> field_identifier))) ;) (ERROR "(this->header_).std_opcode_lengths.\n  super__Vector_base<unsigned_char," (binary_expression "(this->header_).std_opcode_lengths.\n  super__Vector_base<unsigned_char" (field_expression "(this->header_).std_opcode_lengths.\n  super__Vector_base" (field_expression "(this->header_).std_opcode_lengths" (parenthesized_expression "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) )) . field_identifier) . field_identifier) < identifier) ,) (labeled_statement "_std::allocator<unsigned_char>_>._M_impl._M_start = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "allocator<unsigned_char>_>._M_impl._M_start = (pointer)0x0;" (assignment_expression "allocator<unsigned_char>_>._M_impl._M_start = (pointer)0x0" (field_expression "allocator<unsigned_char>_>._M_impl._M_start" (field_expression "allocator<unsigned_char>_>._M_impl" (binary_expression "allocator<unsigned_char>_" (binary_expression "allocator<unsigned_char" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;)) (ERROR "(this->header_).std_opcode_lengths.\n  super__Vector_base<unsigned_char," (binary_expression "(this->header_).std_opcode_lengths.\n  super__Vector_base<unsigned_char" (field_expression "(this->header_).std_opcode_lengths.\n  super__Vector_base" (field_expression "(this->header_).std_opcode_lengths" (parenthesized_expression "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) )) . field_identifier) . field_identifier) < identifier) ,) (labeled_statement "_std::allocator<unsigned_char>_>._M_impl._M_finish = (pointer)0x0\n  ;" statement_identifier : (ERROR ":" :) (expression_statement "allocator<unsigned_char>_>._M_impl._M_finish = (pointer)0x0\n  ;" (assignment_expression "allocator<unsigned_char>_>._M_impl._M_finish = (pointer)0x0" (field_expression "allocator<unsigned_char>_>._M_impl._M_finish" (field_expression "allocator<unsigned_char>_>._M_impl" (binary_expression "allocator<unsigned_char>_" (binary_expression "allocator<unsigned_char" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;)) (ERROR "(this->header_).std_opcode_lengths.\n  super__Vector_base<unsigned_char," (binary_expression "(this->header_).std_opcode_lengths.\n  super__Vector_base<unsigned_char" (field_expression "(this->header_).std_opcode_lengths.\n  super__Vector_base" (field_expression "(this->header_).std_opcode_lengths" (parenthesized_expression "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) )) . field_identifier) . field_identifier) < identifier) ,) (labeled_statement "_std::allocator<unsigned_char>_>._M_impl._M_end_of_storage =\n       (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "allocator<unsigned_char>_>._M_impl._M_end_of_storage =\n       (pointer)0x0;" (assignment_expression "allocator<unsigned_char>_>._M_impl._M_end_of_storage =\n       (pointer)0x0" (field_expression "allocator<unsigned_char>_>._M_impl._M_end_of_storage" (field_expression "allocator<unsigned_char>_>._M_impl" (binary_expression "allocator<unsigned_char>_" (binary_expression "allocator<unsigned_char" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;)) (expression_statement "this->buffer_ = (uchar *)0x0;" (assignment_expression "this->buffer_ = (uchar *)0x0" (field_expression "this->buffer_" identifier -> field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "this->buffer_start_ = (uchar *)0x0;" (assignment_expression "this->buffer_start_ = (uchar *)0x0" (field_expression "this->buffer_start_" identifier -> field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "this->reloc_mapper_ = (Sized_elf_reloc_mapper<32,_false> *)0x0;" (assignment_expression "this->reloc_mapper_ = (Sized_elf_reloc_mapper<32,_false> *)0x0" (field_expression "this->reloc_mapper_" identifier -> field_identifier) = (parenthesized_expression "(Sized_elf_reloc_mapper<32,_false> *)0x0" ( (comma_expression "Sized_elf_reloc_mapper<32,_false> *)0x0" (binary_expression "Sized_elf_reloc_mapper<32" identifier < number_literal) , (binary_expression "_false> *)0x0" identifier > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))) ))) ;) (expression_statement "this->symtab_buffer_ = (uchar *)0x0;" (assignment_expression "this->symtab_buffer_ = (uchar *)0x0" (field_expression "this->symtab_buffer_" identifier -> field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (ERROR "(this->directories_).\n  super__Vector_base<std::vector<std::" (binary_expression "(this->directories_).\n  super__Vector_base<std::vector<std" (binary_expression "(this->directories_).\n  super__Vector_base<std" (field_expression "(this->directories_).\n  super__Vector_base" (parenthesized_expression "(this->directories_)" ( (field_expression "this->directories_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::vector" : : identifier) < identifier) : :) (labeled_statement "__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n  ._M_impl._M_start = (pointer)0x0;" statement_identifier (ERROR "::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std:" : : (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" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<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>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<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" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<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) :) : (expression_statement "allocator<char>_>_>_>_>_>\n  ._M_impl._M_start = (pointer)0x0;" (assignment_expression "allocator<char>_>_>_>_>_>\n  ._M_impl._M_start = (pointer)0x0" (field_expression "allocator<char>_>_>_>_>_>\n  ._M_impl._M_start" (field_expression "allocator<char>_>_>_>_>_>\n  ._M_impl" (binary_expression "allocator<char>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;)) (ERROR "(this->directories_).\n  super__Vector_base<std::vector<std::" (binary_expression "(this->directories_).\n  super__Vector_base<std::vector<std" (binary_expression "(this->directories_).\n  super__Vector_base<std" (field_expression "(this->directories_).\n  super__Vector_base" (parenthesized_expression "(this->directories_)" ( (field_expression "this->directories_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::vector" : : identifier) < identifier) : :) (labeled_statement "__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n  ._M_impl._M_finish = (pointer)0x0;" statement_identifier (ERROR "::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std:" : : (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" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<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>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<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" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<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) :) : (expression_statement "allocator<char>_>_>_>_>_>\n  ._M_impl._M_finish = (pointer)0x0;" (assignment_expression "allocator<char>_>_>_>_>_>\n  ._M_impl._M_finish = (pointer)0x0" (field_expression "allocator<char>_>_>_>_>_>\n  ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>_>_>\n  ._M_impl" (binary_expression "allocator<char>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;)) (ERROR "(this->directories_).\n  super__Vector_base<std::vector<std::" (binary_expression "(this->directories_).\n  super__Vector_base<std::vector<std" (binary_expression "(this->directories_).\n  super__Vector_base<std" (field_expression "(this->directories_).\n  super__Vector_base" (parenthesized_expression "(this->directories_)" ( (field_expression "this->directories_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::vector" : : identifier) < identifier) : :) (labeled_statement "__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;" statement_identifier (ERROR "::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std:" : : (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" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<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>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<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" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<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) :) : (expression_statement "allocator<char>_>_>_>_>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;" (assignment_expression "allocator<char>_>_>_>_>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0" (field_expression "allocator<char>_>_>_>_>_>\n  ._M_impl._M_end_of_storage" (field_expression "allocator<char>_>_>_>_>_>\n  ._M_impl" (binary_expression "allocator<char>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;)) (ERROR "(this->files_).\n  super__Vector_base<std::vector<std::pair<int," (binary_expression "(this->files_).\n  super__Vector_base<std::vector<std::pair<int" (binary_expression "(this->files_).\n  super__Vector_base<std::vector<std" (binary_expression "(this->files_).\n  super__Vector_base<std" (field_expression "(this->files_).\n  super__Vector_base" (parenthesized_expression "(this->files_)" ( (field_expression "this->files_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) ,) (labeled_statement "_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n  ._M_impl._M_start = (pointer)0x0;" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std:" : : (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) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < 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>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < 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) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < 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) :) : (expression_statement "allocator<char>_>_>_>_>_>_>\n  ._M_impl._M_start = (pointer)0x0;" (assignment_expression "allocator<char>_>_>_>_>_>_>\n  ._M_impl._M_start = (pointer)0x0" (field_expression "allocator<char>_>_>_>_>_>_>\n  ._M_impl._M_start" (field_expression "allocator<char>_>_>_>_>_>_>\n  ._M_impl" (binary_expression "allocator<char>_>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;)) (ERROR "(this->files_).\n  super__Vector_base<std::vector<std::pair<int," (binary_expression "(this->files_).\n  super__Vector_base<std::vector<std::pair<int" (binary_expression "(this->files_).\n  super__Vector_base<std::vector<std" (binary_expression "(this->files_).\n  super__Vector_base<std" (field_expression "(this->files_).\n  super__Vector_base" (parenthesized_expression "(this->files_)" ( (field_expression "this->files_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) ,) (labeled_statement "_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n  ._M_impl._M_finish = (pointer)0x0;" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std:" : : (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) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < 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>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < 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) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < 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) :) : (expression_statement "allocator<char>_>_>_>_>_>_>\n  ._M_impl._M_finish = (pointer)0x0;" (assignment_expression "allocator<char>_>_>_>_>_>_>\n  ._M_impl._M_finish = (pointer)0x0" (field_expression "allocator<char>_>_>_>_>_>_>\n  ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>_>_>_>\n  ._M_impl" (binary_expression "allocator<char>_>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;)) (ERROR "(this->files_).\n  super__Vector_base<std::vector<std::pair<int," (binary_expression "(this->files_).\n  super__Vector_base<std::vector<std::pair<int" (binary_expression "(this->files_).\n  super__Vector_base<std::vector<std" (binary_expression "(this->files_).\n  super__Vector_base<std" (field_expression "(this->files_).\n  super__Vector_base" (parenthesized_expression "(this->files_)" ( (field_expression "this->files_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) ,) (labeled_statement "_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std:" : : (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) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < 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>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < 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) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < 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) :) : (expression_statement "allocator<char>_>_>_>_>_>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;" (assignment_expression "allocator<char>_>_>_>_>_>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0" (field_expression "allocator<char>_>_>_>_>_>_>\n  ._M_impl._M_end_of_storage" (field_expression "allocator<char>_>_>_>_>_>_>\n  ._M_impl" (binary_expression "allocator<char>_>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;)) (expression_statement "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red;" (assignment_expression "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red" (field_expression "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_color" (field_expression "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(this->reloc_map_)._M_t._M_impl" (field_expression "(this->reloc_map_)._M_t" (parenthesized_expression "(this->reloc_map_)" ( (field_expression "this->reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (_Base_ptr)0x0;" (assignment_expression "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (_Base_ptr)0x0" (field_expression "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent" (field_expression "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(this->reloc_map_)._M_t._M_impl" (field_expression "(this->reloc_map_)._M_t" (parenthesized_expression "(this->reloc_map_)" ( (field_expression "this->reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) ;) (expression_statement "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;" (assignment_expression "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_node_count = 0" (field_expression "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_node_count" (field_expression "(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(this->reloc_map_)._M_t._M_impl" (field_expression "(this->reloc_map_)._M_t" (parenthesized_expression "(this->reloc_map_)" ( (field_expression "this->reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this->line_number_map_)._M_h._M_buckets = &(this->line_number_map_)._M_h._M_single_bucket;" (assignment_expression "(this->line_number_map_)._M_h._M_buckets = &(this->line_number_map_)._M_h._M_single_bucket" (field_expression "(this->line_number_map_)._M_h._M_buckets" (field_expression "(this->line_number_map_)._M_h" (parenthesized_expression "(this->line_number_map_)" ( (field_expression "this->line_number_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (pointer_expression "&(this->line_number_map_)._M_h._M_single_bucket" & (field_expression "(this->line_number_map_)._M_h._M_single_bucket" (field_expression "(this->line_number_map_)._M_h" (parenthesized_expression "(this->line_number_map_)" ( (field_expression "this->line_number_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "(this->line_number_map_)._M_h._M_bucket_count = 1;" (assignment_expression "(this->line_number_map_)._M_h._M_bucket_count = 1" (field_expression "(this->line_number_map_)._M_h._M_bucket_count" (field_expression "(this->line_number_map_)._M_h" (parenthesized_expression "(this->line_number_map_)" ( (field_expression "this->line_number_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this->line_number_map_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;" (assignment_expression "(this->line_number_map_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0" (field_expression "(this->line_number_map_)._M_h._M_before_begin._M_nxt" (field_expression "(this->line_number_map_)._M_h._M_before_begin" (field_expression "(this->line_number_map_)._M_h" (parenthesized_expression "(this->line_number_map_)" ( (field_expression "this->line_number_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(this->line_number_map_)._M_h._M_element_count = 0;" (assignment_expression "(this->line_number_map_)._M_h._M_element_count = 0" (field_expression "(this->line_number_map_)._M_h._M_element_count" (field_expression "(this->line_number_map_)._M_h" (parenthesized_expression "(this->line_number_map_)" ( (field_expression "this->line_number_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this->line_number_map_)._M_h._M_rehash_policy._M_max_load_factor = 1.0;" (assignment_expression "(this->line_number_map_)._M_h._M_rehash_policy._M_max_load_factor = 1.0" (field_expression "(this->line_number_map_)._M_h._M_rehash_policy._M_max_load_factor" (field_expression "(this->line_number_map_)._M_h._M_rehash_policy" (field_expression "(this->line_number_map_)._M_h" (parenthesized_expression "(this->line_number_map_)" ( (field_expression "this->line_number_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this->line_number_map_)._M_h._M_rehash_policy._M_next_resize = 0;" (assignment_expression "(this->line_number_map_)._M_h._M_rehash_policy._M_next_resize = 0" (field_expression "(this->line_number_map_)._M_h._M_rehash_policy._M_next_resize" (field_expression "(this->line_number_map_)._M_h._M_rehash_policy" (field_expression "(this->line_number_map_)._M_h" (parenthesized_expression "(this->line_number_map_)" ( (field_expression "this->line_number_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this->line_number_map_)._M_h._M_single_bucket = (__bucket_type)0x0;" (assignment_expression "(this->line_number_map_)._M_h._M_single_bucket = (__bucket_type)0x0" (field_expression "(this->line_number_map_)._M_h._M_single_bucket" (field_expression "(this->line_number_map_)._M_h" (parenthesized_expression "(this->line_number_map_)" ( (field_expression "this->line_number_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) ;) (if_statement "if (uVar8 < 2) {\n    return;\n  }" if (parenthesized_expression "(uVar8 < 2)" ( (binary_expression "uVar8 < 2" identifier < number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (do_statement "do {\n                    /* try { // try from 00176d8c to 00176d91 has its CatchHandler @ 00176f7a */\n    (*object->_vptr_Object[0x10])(&name,object,(ulong)uVar8);\n    iVar4 = std::string::compare((string *)&name,".debug_line");\n    if ((iVar4 == 0) || (iVar4 = std::string::compare((string *)&name,".zdebug_line"), iVar4 == 0))\n    {\n      is_new = false;\n                    /* try { // try from 00176dbd to 00176dc1 has its CatchHandler @ 00176f75 */\n      puVar7 = Object::decompressed_section_contents\n                         (object,uVar8,&buffer_size,&is_new,(uint64_t *)0x0);\n      this->buffer_ = puVar7;\n      if (is_new != false) {\n        this->buffer_start_ = puVar7;\n      }\n      this->buffer_end_ = puVar7 + buffer_size;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)name._M_dataplus._M_p != &name.field_2) {\n        operator_delete(name._M_dataplus._M_p);\n        puVar7 = this->buffer_;\n      }\n      goto LAB_00176df4;\n    }\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)name._M_dataplus._M_p != &name.field_2) {\n      operator_delete(name._M_dataplus._M_p);\n    }\n    uVar8 = uVar8 + 1;\n  } while (uVar8 < object->shnum_);" do (compound_statement "{\n                    /* try { // try from 00176d8c to 00176d91 has its CatchHandler @ 00176f7a */\n    (*object->_vptr_Object[0x10])(&name,object,(ulong)uVar8);\n    iVar4 = std::string::compare((string *)&name,".debug_line");\n    if ((iVar4 == 0) || (iVar4 = std::string::compare((string *)&name,".zdebug_line"), iVar4 == 0))\n    {\n      is_new = false;\n                    /* try { // try from 00176dbd to 00176dc1 has its CatchHandler @ 00176f75 */\n      puVar7 = Object::decompressed_section_contents\n                         (object,uVar8,&buffer_size,&is_new,(uint64_t *)0x0);\n      this->buffer_ = puVar7;\n      if (is_new != false) {\n        this->buffer_start_ = puVar7;\n      }\n      this->buffer_end_ = puVar7 + buffer_size;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)name._M_dataplus._M_p != &name.field_2) {\n        operator_delete(name._M_dataplus._M_p);\n        puVar7 = this->buffer_;\n      }\n      goto LAB_00176df4;\n    }\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)name._M_dataplus._M_p != &name.field_2) {\n      operator_delete(name._M_dataplus._M_p);\n    }\n    uVar8 = uVar8 + 1;\n  }" { comment (expression_statement "(*object->_vptr_Object[0x10])(&name,object,(ulong)uVar8);" (call_expression "(*object->_vptr_Object[0x10])(&name,object,(ulong)uVar8)" (parenthesized_expression "(*object->_vptr_Object[0x10])" ( (pointer_expression "*object->_vptr_Object[0x10]" * (subscript_expression "object->_vptr_Object[0x10]" (field_expression "object->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(&name,object,(ulong)uVar8)" ( (pointer_expression "&name" & identifier) , identifier , (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (ERROR "iVar4 = std::" (assignment_expression "iVar4 = std" identifier = identifier) : :) (labeled_statement "string::compare((string *)&name,".debug_line");" statement_identifier : (ERROR ":" :) (expression_statement "compare((string *)&name,".debug_line");" (call_expression "compare((string *)&name,".debug_line")" identifier (argument_list "((string *)&name,".debug_line")" ( (cast_expression "(string *)&name" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&name" & identifier)) , (string_literal "".debug_line"" " string_content ") ))) ;)) (if_statement "if ((iVar4 == 0) || (iVar4 = std::string::compare((string *)&name,".zdebug_line"), iVar4 == 0))\n    {\n      is_new = false;\n                    /* try { // try from 00176dbd to 00176dc1 has its CatchHandler @ 00176f75 */\n      puVar7 = Object::decompressed_section_contents\n                         (object,uVar8,&buffer_size,&is_new,(uint64_t *)0x0);\n      this->buffer_ = puVar7;\n      if (is_new != false) {\n        this->buffer_start_ = puVar7;\n      }\n      this->buffer_end_ = puVar7 + buffer_size;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)name._M_dataplus._M_p != &name.field_2) {\n        operator_delete(name._M_dataplus._M_p);\n        puVar7 = this->buffer_;\n      }\n      goto LAB_00176df4;\n    }" if (parenthesized_expression "((iVar4 == 0) || (iVar4 = std::string::compare((string *)&name,".zdebug_line"), iVar4 == 0))" ( (binary_expression "(iVar4 == 0) || (iVar4 = std::string::compare((string *)&name,".zdebug_line"), iVar4 == 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar4 = std::string::compare((string *)&name,".zdebug_line"), iVar4 == 0)" ( (ERROR "iVar4 = std::string::" (assignment_expression "iVar4 = std" identifier = identifier) : : identifier : :) (comma_expression "compare((string *)&name,".zdebug_line"), iVar4 == 0" (call_expression "compare((string *)&name,".zdebug_line")" identifier (argument_list "((string *)&name,".zdebug_line")" ( (cast_expression "(string *)&name" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&name" & identifier)) , (string_literal "".zdebug_line"" " string_content ") ))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      is_new = false;\n                    /* try { // try from 00176dbd to 00176dc1 has its CatchHandler @ 00176f75 */\n      puVar7 = Object::decompressed_section_contents\n                         (object,uVar8,&buffer_size,&is_new,(uint64_t *)0x0);\n      this->buffer_ = puVar7;\n      if (is_new != false) {\n        this->buffer_start_ = puVar7;\n      }\n      this->buffer_end_ = puVar7 + buffer_size;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)name._M_dataplus._M_p != &name.field_2) {\n        operator_delete(name._M_dataplus._M_p);\n        puVar7 = this->buffer_;\n      }\n      goto LAB_00176df4;\n    }" { (expression_statement "is_new = false;" (assignment_expression "is_new = false" identifier = false) ;) comment (ERROR "puVar7 = Object::" (assignment_expression "puVar7 = Object" identifier = identifier) : :) (expression_statement "decompressed_section_contents\n                         (object,uVar8,&buffer_size,&is_new,(uint64_t *)0x0);" (call_expression "decompressed_section_contents\n                         (object,uVar8,&buffer_size,&is_new,(uint64_t *)0x0)" identifier (argument_list "(object,uVar8,&buffer_size,&is_new,(uint64_t *)0x0)" ( identifier , identifier , (pointer_expression "&buffer_size" & identifier) , (pointer_expression "&is_new" & identifier) , (cast_expression "(uint64_t *)0x0" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "this->buffer_ = puVar7;" (assignment_expression "this->buffer_ = puVar7" (field_expression "this->buffer_" identifier -> field_identifier) = identifier) ;) (if_statement "if (is_new != false) {\n        this->buffer_start_ = puVar7;\n      }" if (parenthesized_expression "(is_new != false)" ( (binary_expression "is_new != false" identifier != false) )) (compound_statement "{\n        this->buffer_start_ = puVar7;\n      }" { (expression_statement "this->buffer_start_ = puVar7;" (assignment_expression "this->buffer_start_ = puVar7" (field_expression "this->buffer_start_" identifier -> field_identifier) = identifier) ;) })) (expression_statement "this->buffer_end_ = puVar7 + buffer_size;" (assignment_expression "this->buffer_end_ = puVar7 + buffer_size" (field_expression "this->buffer_end_" identifier -> field_identifier) = (binary_expression "puVar7 + buffer_size" identifier + identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)name._M_dataplus._M_p != &name.field_2) {\n        operator_delete(name._M_dataplus._M_p);\n        puVar7 = this->buffer_;\n      }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)name._M_dataplus._M_p != &name.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)name._M_dataplus._M_p != &name.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n           *)name._M_dataplus._M_p != &name.field_2" (binary_expression "allocator<char>_>_9\n           *)name._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)name._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "name._M_dataplus._M_p" (field_expression "name._M_dataplus" identifier . field_identifier) . field_identifier))) != (pointer_expression "&name.field_2" & (field_expression "name.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n        operator_delete(name._M_dataplus._M_p);\n        puVar7 = this->buffer_;\n      }" { (expression_statement "operator_delete(name._M_dataplus._M_p);" (call_expression "operator_delete(name._M_dataplus._M_p)" identifier (argument_list "(name._M_dataplus._M_p)" ( (field_expression "name._M_dataplus._M_p" (field_expression "name._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) (expression_statement "puVar7 = this->buffer_;" (assignment_expression "puVar7 = this->buffer_" identifier = (field_expression "this->buffer_" identifier -> field_identifier)) ;) })) (goto_statement "goto LAB_00176df4;" goto statement_identifier ;) })) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)name._M_dataplus._M_p != &name.field_2) {\n      operator_delete(name._M_dataplus._M_p);\n    }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)name._M_dataplus._M_p != &name.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)name._M_dataplus._M_p != &name.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n         *)name._M_dataplus._M_p != &name.field_2" (binary_expression "allocator<char>_>_9\n         *)name._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n         *)name._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "name._M_dataplus._M_p" (field_expression "name._M_dataplus" identifier . field_identifier) . field_identifier))) != (pointer_expression "&name.field_2" & (field_expression "name.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n      operator_delete(name._M_dataplus._M_p);\n    }" { (expression_statement "operator_delete(name._M_dataplus._M_p);" (call_expression "operator_delete(name._M_dataplus._M_p)" identifier (argument_list "(name._M_dataplus._M_p)" ( (field_expression "name._M_dataplus._M_p" (field_expression "name._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 < object->shnum_)" ( (binary_expression "uVar8 < object->shnum_" identifier < (field_expression "object->shnum_" identifier -> field_identifier)) )) ;) (expression_statement "puVar7 = this->buffer_;" (assignment_expression "puVar7 = this->buffer_" identifier = (field_expression "this->buffer_" identifier -> field_identifier)) ;) (labeled_statement "LAB_00176df4:\n  if (puVar7 == (uchar *)0x0) {\n    return;\n  }" statement_identifier : (if_statement "if (puVar7 == (uchar *)0x0) {\n    return;\n  }" if (parenthesized_expression "(puVar7 == (uchar *)0x0)" ( (binary_expression "puVar7 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "reloc_shndx = 0;" (assignment_expression "reloc_shndx = 0" identifier = number_literal) ;) (if_statement "if (object->shnum_ != 0) {\n    do {\n                    /* try { // try from 00176e24 to 00176f42 has its CatchHandler @ 00176f7a */\n      uVar5 = (*object->_vptr_Object[0x14])(object,(ulong)reloc_shndx);\n      if (((uVar5 == 9) || (uVar5 == 4)) &&\n         (uVar6 = (*object->_vptr_Object[0x16])(object,(ulong)reloc_shndx), uVar8 == uVar6)) {\n        this->track_relocs_type_ = uVar5;\n        if (reloc_shndx != 0) {\n          if (object->shnum_ == 0) goto LAB_00176f68;\n          uVar8 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      reloc_shndx = reloc_shndx + 1;\n    } while (reloc_shndx < object->shnum_);\n  }" if (parenthesized_expression "(object->shnum_ != 0)" ( (binary_expression "object->shnum_ != 0" (field_expression "object->shnum_" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    do {\n                    /* try { // try from 00176e24 to 00176f42 has its CatchHandler @ 00176f7a */\n      uVar5 = (*object->_vptr_Object[0x14])(object,(ulong)reloc_shndx);\n      if (((uVar5 == 9) || (uVar5 == 4)) &&\n         (uVar6 = (*object->_vptr_Object[0x16])(object,(ulong)reloc_shndx), uVar8 == uVar6)) {\n        this->track_relocs_type_ = uVar5;\n        if (reloc_shndx != 0) {\n          if (object->shnum_ == 0) goto LAB_00176f68;\n          uVar8 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      reloc_shndx = reloc_shndx + 1;\n    } while (reloc_shndx < object->shnum_);\n  }" { (do_statement "do {\n                    /* try { // try from 00176e24 to 00176f42 has its CatchHandler @ 00176f7a */\n      uVar5 = (*object->_vptr_Object[0x14])(object,(ulong)reloc_shndx);\n      if (((uVar5 == 9) || (uVar5 == 4)) &&\n         (uVar6 = (*object->_vptr_Object[0x16])(object,(ulong)reloc_shndx), uVar8 == uVar6)) {\n        this->track_relocs_type_ = uVar5;\n        if (reloc_shndx != 0) {\n          if (object->shnum_ == 0) goto LAB_00176f68;\n          uVar8 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      reloc_shndx = reloc_shndx + 1;\n    } while (reloc_shndx < object->shnum_);" do (compound_statement "{\n                    /* try { // try from 00176e24 to 00176f42 has its CatchHandler @ 00176f7a */\n      uVar5 = (*object->_vptr_Object[0x14])(object,(ulong)reloc_shndx);\n      if (((uVar5 == 9) || (uVar5 == 4)) &&\n         (uVar6 = (*object->_vptr_Object[0x16])(object,(ulong)reloc_shndx), uVar8 == uVar6)) {\n        this->track_relocs_type_ = uVar5;\n        if (reloc_shndx != 0) {\n          if (object->shnum_ == 0) goto LAB_00176f68;\n          uVar8 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      reloc_shndx = reloc_shndx + 1;\n    }" { comment (expression_statement "uVar5 = (*object->_vptr_Object[0x14])(object,(ulong)reloc_shndx);" (assignment_expression "uVar5 = (*object->_vptr_Object[0x14])(object,(ulong)reloc_shndx)" identifier = (call_expression "(*object->_vptr_Object[0x14])(object,(ulong)reloc_shndx)" (parenthesized_expression "(*object->_vptr_Object[0x14])" ( (pointer_expression "*object->_vptr_Object[0x14]" * (subscript_expression "object->_vptr_Object[0x14]" (field_expression "object->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(object,(ulong)reloc_shndx)" ( identifier , (cast_expression "(ulong)reloc_shndx" ( (type_descriptor "ulong" type_identifier) ) identifier) )))) ;) (if_statement "if (((uVar5 == 9) || (uVar5 == 4)) &&\n         (uVar6 = (*object->_vptr_Object[0x16])(object,(ulong)reloc_shndx), uVar8 == uVar6)) {\n        this->track_relocs_type_ = uVar5;\n        if (reloc_shndx != 0) {\n          if (object->shnum_ == 0) goto LAB_00176f68;\n          uVar8 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }" if (parenthesized_expression "(((uVar5 == 9) || (uVar5 == 4)) &&\n         (uVar6 = (*object->_vptr_Object[0x16])(object,(ulong)reloc_shndx), uVar8 == uVar6))" ( (binary_expression "((uVar5 == 9) || (uVar5 == 4)) &&\n         (uVar6 = (*object->_vptr_Object[0x16])(object,(ulong)reloc_shndx), uVar8 == uVar6)" (parenthesized_expression "((uVar5 == 9) || (uVar5 == 4))" ( (binary_expression "(uVar5 == 9) || (uVar5 == 4)" (parenthesized_expression "(uVar5 == 9)" ( (binary_expression "uVar5 == 9" identifier == number_literal) )) || (parenthesized_expression "(uVar5 == 4)" ( (binary_expression "uVar5 == 4" identifier == number_literal) ))) )) && (parenthesized_expression "(uVar6 = (*object->_vptr_Object[0x16])(object,(ulong)reloc_shndx), uVar8 == uVar6)" ( (comma_expression "uVar6 = (*object->_vptr_Object[0x16])(object,(ulong)reloc_shndx), uVar8 == uVar6" (assignment_expression "uVar6 = (*object->_vptr_Object[0x16])(object,(ulong)reloc_shndx)" identifier = (call_expression "(*object->_vptr_Object[0x16])(object,(ulong)reloc_shndx)" (parenthesized_expression "(*object->_vptr_Object[0x16])" ( (pointer_expression "*object->_vptr_Object[0x16]" * (subscript_expression "object->_vptr_Object[0x16]" (field_expression "object->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(object,(ulong)reloc_shndx)" ( identifier , (cast_expression "(ulong)reloc_shndx" ( (type_descriptor "ulong" type_identifier) ) identifier) )))) , (binary_expression "uVar8 == uVar6" identifier == identifier)) ))) )) (compound_statement "{\n        this->track_relocs_type_ = uVar5;\n        if (reloc_shndx != 0) {\n          if (object->shnum_ == 0) goto LAB_00176f68;\n          uVar8 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }" { (expression_statement "this->track_relocs_type_ = uVar5;" (assignment_expression "this->track_relocs_type_ = uVar5" (field_expression "this->track_relocs_type_" identifier -> field_identifier) = identifier) ;) (if_statement "if (reloc_shndx != 0) {\n          if (object->shnum_ == 0) goto LAB_00176f68;\n          uVar8 = 0;\n          goto LAB_00176e76;\n        }" if (parenthesized_expression "(reloc_shndx != 0)" ( (binary_expression "reloc_shndx != 0" identifier != number_literal) )) (compound_statement "{\n          if (object->shnum_ == 0) goto LAB_00176f68;\n          uVar8 = 0;\n          goto LAB_00176e76;\n        }" { (if_statement "if (object->shnum_ == 0) goto LAB_00176f68;" if (parenthesized_expression "(object->shnum_ == 0)" ( (binary_expression "object->shnum_ == 0" (field_expression "object->shnum_" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_00176f68;" goto statement_identifier ;)) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00176e76;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "reloc_shndx = reloc_shndx + 1;" (assignment_expression "reloc_shndx = reloc_shndx + 1" identifier = (binary_expression "reloc_shndx + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(reloc_shndx < object->shnum_)" ( (binary_expression "reloc_shndx < object->shnum_" identifier < (field_expression "object->shnum_" identifier -> field_identifier)) )) ;) })) (expression_statement "reloc_shndx = 0;" (assignment_expression "reloc_shndx = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00176ec2;" goto statement_identifier ;) (while_statement "while (uVar8 = uVar8 + 1, uVar8 < object->shnum_) {\nLAB_00176e76:\n    iVar4 = (*object->_vptr_Object[0x14])(object,(ulong)uVar8);\n    if (iVar4 == 2) {\n      puVar7 = Object::section_contents(object,uVar8,&this->symtab_buffer_size_,false);\n      this->symtab_buffer_ = puVar7;\n      goto LAB_00176ea5;\n    }\n  }" while (parenthesized_expression "(uVar8 = uVar8 + 1, uVar8 < object->shnum_)" ( (comma_expression "uVar8 = uVar8 + 1, uVar8 < object->shnum_" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) , (binary_expression "uVar8 < object->shnum_" identifier < (field_expression "object->shnum_" identifier -> field_identifier))) )) (compound_statement "{\nLAB_00176e76:\n    iVar4 = (*object->_vptr_Object[0x14])(object,(ulong)uVar8);\n    if (iVar4 == 2) {\n      puVar7 = Object::section_contents(object,uVar8,&this->symtab_buffer_size_,false);\n      this->symtab_buffer_ = puVar7;\n      goto LAB_00176ea5;\n    }\n  }" { (labeled_statement "LAB_00176e76:\n    iVar4 = (*object->_vptr_Object[0x14])(object,(ulong)uVar8);" statement_identifier : (expression_statement "iVar4 = (*object->_vptr_Object[0x14])(object,(ulong)uVar8);" (assignment_expression "iVar4 = (*object->_vptr_Object[0x14])(object,(ulong)uVar8)" identifier = (call_expression "(*object->_vptr_Object[0x14])(object,(ulong)uVar8)" (parenthesized_expression "(*object->_vptr_Object[0x14])" ( (pointer_expression "*object->_vptr_Object[0x14]" * (subscript_expression "object->_vptr_Object[0x14]" (field_expression "object->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(object,(ulong)uVar8)" ( identifier , (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) )))) ;)) (if_statement "if (iVar4 == 2) {\n      puVar7 = Object::section_contents(object,uVar8,&this->symtab_buffer_size_,false);\n      this->symtab_buffer_ = puVar7;\n      goto LAB_00176ea5;\n    }" if (parenthesized_expression "(iVar4 == 2)" ( (binary_expression "iVar4 == 2" identifier == number_literal) )) (compound_statement "{\n      puVar7 = Object::section_contents(object,uVar8,&this->symtab_buffer_size_,false);\n      this->symtab_buffer_ = puVar7;\n      goto LAB_00176ea5;\n    }" { (ERROR "puVar7 = Object::" (assignment_expression "puVar7 = Object" identifier = identifier) : :) (expression_statement "section_contents(object,uVar8,&this->symtab_buffer_size_,false);" (call_expression "section_contents(object,uVar8,&this->symtab_buffer_size_,false)" identifier (argument_list "(object,uVar8,&this->symtab_buffer_size_,false)" ( identifier , identifier , (pointer_expression "&this->symtab_buffer_size_" & (field_expression "this->symtab_buffer_size_" identifier -> field_identifier)) , false ))) ;) (expression_statement "this->symtab_buffer_ = puVar7;" (assignment_expression "this->symtab_buffer_ = puVar7" (field_expression "this->symtab_buffer_" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_00176ea5;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00176f68:\n  puVar7 = this->symtab_buffer_;" statement_identifier : (expression_statement "puVar7 = this->symtab_buffer_;" (assignment_expression "puVar7 = this->symtab_buffer_" identifier = (field_expression "this->symtab_buffer_" identifier -> field_identifier)) ;)) (labeled_statement "LAB_00176ea5:\n  if (puVar7 == (uchar *)0x0) {\n    return;\n  }" statement_identifier : (if_statement "if (puVar7 == (uchar *)0x0) {\n    return;\n  }" if (parenthesized_expression "(puVar7 == (uchar *)0x0)" ( (binary_expression "puVar7 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (labeled_statement "LAB_00176ec2:\n  this_00 = (Sized_elf_reloc_mapper<32,_false> *)operator_new(0x48);" statement_identifier : (expression_statement "this_00 = (Sized_elf_reloc_mapper<32,_false> *)operator_new(0x48);" (assignment_expression "this_00 = (Sized_elf_reloc_mapper<32,_false> *)operator_new(0x48)" identifier = (parenthesized_expression "(Sized_elf_reloc_mapper<32,_false> *)operator_new(0x48)" ( (comma_expression "Sized_elf_reloc_mapper<32,_false> *)operator_new(0x48)" (binary_expression "Sized_elf_reloc_mapper<32" identifier < number_literal) , (binary_expression "_false> *)operator_new(0x48)" identifier > (pointer_expression "*)operator_new(0x48)" * (ERROR ")" )) (call_expression "operator_new(0x48)" identifier (argument_list "(0x48)" ( number_literal )))))) ))) ;)) (expression_statement "sVar2 = this->symtab_buffer_size_;" (assignment_expression "sVar2 = this->symtab_buffer_size_" identifier = (field_expression "this->symtab_buffer_size_" identifier -> field_identifier)) ;) (expression_statement "puVar7 = this->symtab_buffer_;" (assignment_expression "puVar7 = this->symtab_buffer_" identifier = (field_expression "this->symtab_buffer_" identifier -> field_identifier)) ;) (expression_statement "this_00->object_ = object;" (assignment_expression "this_00->object_ = object" (field_expression "this_00->object_" identifier -> field_identifier) = identifier) ;) (expression_statement "(this_00->super_Elf_reloc_mapper)._vptr_Elf_reloc_mapper =\n       (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_00426a48;" (assignment_expression "(this_00->super_Elf_reloc_mapper)._vptr_Elf_reloc_mapper =\n       (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_00426a48" (field_expression "(this_00->super_Elf_reloc_mapper)._vptr_Elf_reloc_mapper" (parenthesized_expression "(this_00->super_Elf_reloc_mapper)" ( (field_expression "this_00->super_Elf_reloc_mapper" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_00426a48" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Sized_elf_reloc_mapper_00426a48" & identifier))) ;) (expression_statement "this_00->symtab_size_ = sVar2;" (assignment_expression "this_00->symtab_size_ = sVar2" (field_expression "this_00->symtab_size_" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar8 = this->track_relocs_type_;" (assignment_expression "uVar8 = this->track_relocs_type_" identifier = (field_expression "this->track_relocs_type_" identifier -> field_identifier)) ;) (expression_statement "this_00->symtab_ = puVar7;" (assignment_expression "this_00->symtab_ = puVar7" (field_expression "this_00->symtab_" identifier -> field_identifier) = identifier) ;) (expression_statement "this_00->reloc_type_ = 0;" (assignment_expression "this_00->reloc_type_ = 0" (field_expression "this_00->reloc_type_" identifier -> field_identifier) = number_literal) ;) (expression_statement "(this_00->track_relocs_).prelocs_ = (uchar *)0x0;" (assignment_expression "(this_00->track_relocs_).prelocs_ = (uchar *)0x0" (field_expression "(this_00->track_relocs_).prelocs_" (parenthesized_expression "(this_00->track_relocs_)" ( (field_expression "this_00->track_relocs_" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(this_00->track_relocs_).len_ = 0;" (assignment_expression "(this_00->track_relocs_).len_ = 0" (field_expression "(this_00->track_relocs_).len_" (parenthesized_expression "(this_00->track_relocs_)" ( (field_expression "this_00->track_relocs_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(this_00->track_relocs_).pos_ = 0;" (assignment_expression "(this_00->track_relocs_).pos_ = 0" (field_expression "(this_00->track_relocs_).pos_" (parenthesized_expression "(this_00->track_relocs_)" ( (field_expression "this_00->track_relocs_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(this_00->track_relocs_).reloc_size_ = 0;" (assignment_expression "(this_00->track_relocs_).reloc_size_ = 0" (field_expression "(this_00->track_relocs_).reloc_size_" (parenthesized_expression "(this_00->track_relocs_)" ( (field_expression "this_00->track_relocs_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "this->reloc_mapper_ = this_00;" (assignment_expression "this->reloc_mapper_ = this_00" (field_expression "this->reloc_mapper_" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar3 = Sized_elf_reloc_mapper<32,_false>::do_initialize(this_00,reloc_shndx,uVar8);" (update_expression "bVar3 = Sized_elf_reloc_mapper<32,_false>::do_initialize(this_00,reloc_shndx,uVar8)" (binary_expression "bVar3 = Sized_elf_reloc_mapper<32,_false>::do_initialize(this_00,reloc_shndx,uVar8)" (assignment_expression "bVar3 = Sized_elf_reloc_mapper<32" identifier = (binary_expression "Sized_elf_reloc_mapper<32" identifier < number_literal)) (ERROR ",_false" , identifier) > (ERROR "::" : :) (call_expression "do_initialize(this_00,reloc_shndx,uVar8)" identifier (argument_list "(this_00,reloc_shndx,uVar8)" ( identifier , identifier , identifier )))) --) ;) (if_statement "if (!bVar3) {\n    return;\n  }" if (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "this->data_valid_ = true;" (assignment_expression "this->data_valid_ = true" (field_expression "this->data_valid_" identifier -> field_identifier) = true) ;) (expression_statement "read_line_mappings(this,read_shndx);" (call_expression "read_line_mappings(this,read_shndx)" identifier (argument_list "(this,read_shndx)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_00176c00(undefined8 *param_1,long *param_2,undefined4 param_3)\n\n{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  long lVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  uint uVar10;\n  char local_61;\n  long local_60;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  *(undefined1 *)(param_1 + 1) = 0;\n  *param_1 = &PTR_FUN_00426b68;\n  *(undefined4 *)(param_1 + 0x19) = 0xffffffff;\n  uVar10 = *(uint *)(param_2 + 7);\n  param_1[0x1d] = param_1 + 0x1b;\n  param_1[0x1e] = param_1 + 0x1b;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  param_1[10] = 0;\n  param_1[0xc] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  param_1[0x11] = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x15] = 0;\n  param_1[0x16] = 0;\n  param_1[0x17] = 0;\n  param_1[0x18] = 0;\n  *(undefined4 *)(param_1 + 0x1b) = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = param_1 + 0x26;\n  param_1[0x21] = 1;\n  param_1[0x22] = 0;\n  param_1[0x23] = 0;\n  *(undefined4 *)(param_1 + 0x24) = 0x3f800000;\n  param_1[0x25] = 0;\n  param_1[0x26] = 0;\n  if (uVar10 < 2) {\n    return;\n  }\n  uVar10 = 1;\n  do {\n                    \n    (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10);\n    iVar5 = FUN_002e3a50(local_58,".debug_line");\n    if ((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)) {\n      local_61 = '\0';\n                    \n      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);\n      param_1[0xc] = lVar7;\n      if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }\n      param_1[0xd] = local_60 + lVar7;\n      if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }\n      goto LAB_00176df4;\n    }\n    if (local_58[0] != local_48) {\n      FUN_002dac70();\n    }\n    uVar10 = uVar10 + 1;\n  } while (uVar10 < *(uint *)(param_2 + 7));\n  lVar7 = param_1[0xc];\nLAB_00176df4:\n  if (lVar7 == 0) {\n    return;\n  }\n  uVar9 = 0;\n  if ((int)param_2[7] != 0) {\n    do {\n                    \n      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);\n      if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < *(uint *)(param_2 + 7));\n  }\n  uVar9 = 0;\n  goto LAB_00176ec2;\n  while (uVar10 = uVar10 + 1, uVar10 < *(uint *)(param_2 + 7)) {\nLAB_00176e76:\n    iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);\n    if (iVar5 == 2) {\n      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);\n      param_1[0x11] = lVar7;\n      goto LAB_00176ea5;\n    }\n  }\nLAB_00176f68:\n  lVar7 = param_1[0x11];\nLAB_00176ea5:\n  if (lVar7 == 0) {\n    return;\n  }\nLAB_00176ec2:\n  puVar8 = (undefined8 *)FUN_002d94a0(0x48);\n  uVar2 = param_1[0x12];\n  uVar3 = param_1[0x11];\n  puVar8[1] = param_2;\n  *puVar8 = &PTR_FUN_00426a48;\n  puVar8[3] = uVar2;\n  uVar1 = *(undefined4 *)(param_1 + 0x10);\n  puVar8[2] = uVar3;\n  *(undefined4 *)(puVar8 + 4) = 0;\n  puVar8[5] = 0;\n  puVar8[6] = 0;\n  puVar8[7] = 0;\n  *(undefined4 *)(puVar8 + 8) = 0;\n  param_1[0xf] = puVar8;\n  cVar4 = FUN_0016df40(puVar8,uVar9,uVar1);\n  if (cVar4 == '\0') {\n    return;\n  }\n  *(undefined1 *)(param_1 + 1) = 1;\n  FUN_00176b10(param_1,param_3);\n  return;\n}\n\n" (function_definition "void FUN_00176c00(undefined8 *param_1,long *param_2,undefined4 param_3)\n\n{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  long lVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  uint uVar10;\n  char local_61;\n  long local_60;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  *(undefined1 *)(param_1 + 1) = 0;\n  *param_1 = &PTR_FUN_00426b68;\n  *(undefined4 *)(param_1 + 0x19) = 0xffffffff;\n  uVar10 = *(uint *)(param_2 + 7);\n  param_1[0x1d] = param_1 + 0x1b;\n  param_1[0x1e] = param_1 + 0x1b;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  param_1[10] = 0;\n  param_1[0xc] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  param_1[0x11] = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x15] = 0;\n  param_1[0x16] = 0;\n  param_1[0x17] = 0;\n  param_1[0x18] = 0;\n  *(undefined4 *)(param_1 + 0x1b) = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = param_1 + 0x26;\n  param_1[0x21] = 1;\n  param_1[0x22] = 0;\n  param_1[0x23] = 0;\n  *(undefined4 *)(param_1 + 0x24) = 0x3f800000;\n  param_1[0x25] = 0;\n  param_1[0x26] = 0;\n  if (uVar10 < 2) {\n    return;\n  }\n  uVar10 = 1;\n  do {\n                    \n    (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10);\n    iVar5 = FUN_002e3a50(local_58,".debug_line");\n    if ((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)) {\n      local_61 = '\0';\n                    \n      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);\n      param_1[0xc] = lVar7;\n      if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }\n      param_1[0xd] = local_60 + lVar7;\n      if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }\n      goto LAB_00176df4;\n    }\n    if (local_58[0] != local_48) {\n      FUN_002dac70();\n    }\n    uVar10 = uVar10 + 1;\n  } while (uVar10 < *(uint *)(param_2 + 7));\n  lVar7 = param_1[0xc];\nLAB_00176df4:\n  if (lVar7 == 0) {\n    return;\n  }\n  uVar9 = 0;\n  if ((int)param_2[7] != 0) {\n    do {\n                    \n      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);\n      if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < *(uint *)(param_2 + 7));\n  }\n  uVar9 = 0;\n  goto LAB_00176ec2;\n  while (uVar10 = uVar10 + 1, uVar10 < *(uint *)(param_2 + 7)) {\nLAB_00176e76:\n    iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);\n    if (iVar5 == 2) {\n      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);\n      param_1[0x11] = lVar7;\n      goto LAB_00176ea5;\n    }\n  }\nLAB_00176f68:\n  lVar7 = param_1[0x11];\nLAB_00176ea5:\n  if (lVar7 == 0) {\n    return;\n  }\nLAB_00176ec2:\n  puVar8 = (undefined8 *)FUN_002d94a0(0x48);\n  uVar2 = param_1[0x12];\n  uVar3 = param_1[0x11];\n  puVar8[1] = param_2;\n  *puVar8 = &PTR_FUN_00426a48;\n  puVar8[3] = uVar2;\n  uVar1 = *(undefined4 *)(param_1 + 0x10);\n  puVar8[2] = uVar3;\n  *(undefined4 *)(puVar8 + 4) = 0;\n  puVar8[5] = 0;\n  puVar8[6] = 0;\n  puVar8[7] = 0;\n  *(undefined4 *)(puVar8 + 8) = 0;\n  param_1[0xf] = puVar8;\n  cVar4 = FUN_0016df40(puVar8,uVar9,uVar1);\n  if (cVar4 == '\0') {\n    return;\n  }\n  *(undefined1 *)(param_1 + 1) = 1;\n  FUN_00176b10(param_1,param_3);\n  return;\n}" primitive_type (function_declarator "FUN_00176c00(undefined8 *param_1,long *param_2,undefined4 param_3)" identifier (parameter_list "(undefined8 *param_1,long *param_2,undefined4 param_3)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  long lVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  uint uVar10;\n  char local_61;\n  long local_60;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  *(undefined1 *)(param_1 + 1) = 0;\n  *param_1 = &PTR_FUN_00426b68;\n  *(undefined4 *)(param_1 + 0x19) = 0xffffffff;\n  uVar10 = *(uint *)(param_2 + 7);\n  param_1[0x1d] = param_1 + 0x1b;\n  param_1[0x1e] = param_1 + 0x1b;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  param_1[10] = 0;\n  param_1[0xc] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  param_1[0x11] = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x15] = 0;\n  param_1[0x16] = 0;\n  param_1[0x17] = 0;\n  param_1[0x18] = 0;\n  *(undefined4 *)(param_1 + 0x1b) = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = param_1 + 0x26;\n  param_1[0x21] = 1;\n  param_1[0x22] = 0;\n  param_1[0x23] = 0;\n  *(undefined4 *)(param_1 + 0x24) = 0x3f800000;\n  param_1[0x25] = 0;\n  param_1[0x26] = 0;\n  if (uVar10 < 2) {\n    return;\n  }\n  uVar10 = 1;\n  do {\n                    \n    (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10);\n    iVar5 = FUN_002e3a50(local_58,".debug_line");\n    if ((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)) {\n      local_61 = '\0';\n                    \n      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);\n      param_1[0xc] = lVar7;\n      if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }\n      param_1[0xd] = local_60 + lVar7;\n      if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }\n      goto LAB_00176df4;\n    }\n    if (local_58[0] != local_48) {\n      FUN_002dac70();\n    }\n    uVar10 = uVar10 + 1;\n  } while (uVar10 < *(uint *)(param_2 + 7));\n  lVar7 = param_1[0xc];\nLAB_00176df4:\n  if (lVar7 == 0) {\n    return;\n  }\n  uVar9 = 0;\n  if ((int)param_2[7] != 0) {\n    do {\n                    \n      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);\n      if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < *(uint *)(param_2 + 7));\n  }\n  uVar9 = 0;\n  goto LAB_00176ec2;\n  while (uVar10 = uVar10 + 1, uVar10 < *(uint *)(param_2 + 7)) {\nLAB_00176e76:\n    iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);\n    if (iVar5 == 2) {\n      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);\n      param_1[0x11] = lVar7;\n      goto LAB_00176ea5;\n    }\n  }\nLAB_00176f68:\n  lVar7 = param_1[0x11];\nLAB_00176ea5:\n  if (lVar7 == 0) {\n    return;\n  }\nLAB_00176ec2:\n  puVar8 = (undefined8 *)FUN_002d94a0(0x48);\n  uVar2 = param_1[0x12];\n  uVar3 = param_1[0x11];\n  puVar8[1] = param_2;\n  *puVar8 = &PTR_FUN_00426a48;\n  puVar8[3] = uVar2;\n  uVar1 = *(undefined4 *)(param_1 + 0x10);\n  puVar8[2] = uVar3;\n  *(undefined4 *)(puVar8 + 4) = 0;\n  puVar8[5] = 0;\n  puVar8[6] = 0;\n  puVar8[7] = 0;\n  *(undefined4 *)(puVar8 + 8) = 0;\n  param_1[0xf] = puVar8;\n  cVar4 = FUN_0016df40(puVar8,uVar9,uVar1);\n  if (cVar4 == '\0') {\n    return;\n  }\n  *(undefined1 *)(param_1 + 1) = 1;\n  FUN_00176b10(param_1,param_3);\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "char local_61;" primitive_type identifier ;) (declaration "long local_60;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 *local_58 [2];" type_identifier (pointer_declarator "*local_58 [2]" * (array_declarator "local_58 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_48 [24];" type_identifier (array_declarator "local_48 [24]" identifier [ number_literal ]) ;) (expression_statement "*(undefined1 *)(param_1 + 1) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 1) = 0" (pointer_expression "*(undefined1 *)(param_1 + 1)" * (cast_expression "(undefined1 *)(param_1 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*param_1 = &PTR_FUN_00426b68;" (assignment_expression "*param_1 = &PTR_FUN_00426b68" (pointer_expression "*param_1" * identifier) = (pointer_expression "&PTR_FUN_00426b68" & identifier)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x19) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 0x19) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 0x19)" * (cast_expression "(undefined4 *)(param_1 + 0x19)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x19)" ( (binary_expression "param_1 + 0x19" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar10 = *(uint *)(param_2 + 7);" (assignment_expression "uVar10 = *(uint *)(param_2 + 7)" identifier = (pointer_expression "*(uint *)(param_2 + 7)" * (cast_expression "(uint *)(param_2 + 7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) ))))) ;) (expression_statement "param_1[0x1d] = param_1 + 0x1b;" (assignment_expression "param_1[0x1d] = param_1 + 0x1b" (subscript_expression "param_1[0x1d]" identifier [ number_literal ]) = (binary_expression "param_1 + 0x1b" identifier + number_literal)) ;) (expression_statement "param_1[0x1e] = param_1 + 0x1b;" (assignment_expression "param_1[0x1e] = param_1 + 0x1b" (subscript_expression "param_1[0x1e]" identifier [ number_literal ]) = (binary_expression "param_1 + 0x1b" identifier + number_literal)) ;) (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xc] = 0;" (assignment_expression "param_1[0xc] = 0" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xe] = 0;" (assignment_expression "param_1[0xe] = 0" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xf] = 0;" (assignment_expression "param_1[0xf] = 0" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x11] = 0;" (assignment_expression "param_1[0x11] = 0" (subscript_expression "param_1[0x11]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x13] = 0;" (assignment_expression "param_1[0x13] = 0" (subscript_expression "param_1[0x13]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x14] = 0;" (assignment_expression "param_1[0x14] = 0" (subscript_expression "param_1[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x15] = 0;" (assignment_expression "param_1[0x15] = 0" (subscript_expression "param_1[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x16] = 0;" (assignment_expression "param_1[0x16] = 0" (subscript_expression "param_1[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x17] = 0;" (assignment_expression "param_1[0x17] = 0" (subscript_expression "param_1[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x18] = 0;" (assignment_expression "param_1[0x18] = 0" (subscript_expression "param_1[0x18]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x1b) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x1b) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x1b)" * (cast_expression "(undefined4 *)(param_1 + 0x1b)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1b)" ( (binary_expression "param_1 + 0x1b" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0x1c] = 0;" (assignment_expression "param_1[0x1c] = 0" (subscript_expression "param_1[0x1c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x1f] = 0;" (assignment_expression "param_1[0x1f] = 0" (subscript_expression "param_1[0x1f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x20] = param_1 + 0x26;" (assignment_expression "param_1[0x20] = param_1 + 0x26" (subscript_expression "param_1[0x20]" identifier [ number_literal ]) = (binary_expression "param_1 + 0x26" identifier + number_literal)) ;) (expression_statement "param_1[0x21] = 1;" (assignment_expression "param_1[0x21] = 1" (subscript_expression "param_1[0x21]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x22] = 0;" (assignment_expression "param_1[0x22] = 0" (subscript_expression "param_1[0x22]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x23] = 0;" (assignment_expression "param_1[0x23] = 0" (subscript_expression "param_1[0x23]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x24) = 0x3f800000;" (assignment_expression "*(undefined4 *)(param_1 + 0x24) = 0x3f800000" (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0x25] = 0;" (assignment_expression "param_1[0x25] = 0" (subscript_expression "param_1[0x25]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x26] = 0;" (assignment_expression "param_1[0x26] = 0" (subscript_expression "param_1[0x26]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (uVar10 < 2) {\n    return;\n  }" if (parenthesized_expression "(uVar10 < 2)" ( (binary_expression "uVar10 < 2" identifier < number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) (do_statement "do {\n                    \n    (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10);\n    iVar5 = FUN_002e3a50(local_58,".debug_line");\n    if ((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)) {\n      local_61 = '\0';\n                    \n      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);\n      param_1[0xc] = lVar7;\n      if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }\n      param_1[0xd] = local_60 + lVar7;\n      if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }\n      goto LAB_00176df4;\n    }\n    if (local_58[0] != local_48) {\n      FUN_002dac70();\n    }\n    uVar10 = uVar10 + 1;\n  } while (uVar10 < *(uint *)(param_2 + 7));" do (compound_statement "{\n                    \n    (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10);\n    iVar5 = FUN_002e3a50(local_58,".debug_line");\n    if ((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)) {\n      local_61 = '\0';\n                    \n      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);\n      param_1[0xc] = lVar7;\n      if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }\n      param_1[0xd] = local_60 + lVar7;\n      if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }\n      goto LAB_00176df4;\n    }\n    if (local_58[0] != local_48) {\n      FUN_002dac70();\n    }\n    uVar10 = uVar10 + 1;\n  }" { (expression_statement "(**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10);" (call_expression "(**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10)" (parenthesized_expression "(**(code **)(*param_2 + 0x80))" ( (pointer_expression "**(code **)(*param_2 + 0x80)" * (pointer_expression "*(code **)(*param_2 + 0x80)" * (cast_expression "(code **)(*param_2 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x80)" ( (binary_expression "*param_2 + 0x80" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(local_58,param_2,uVar10)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar5 = FUN_002e3a50(local_58,".debug_line");" (assignment_expression "iVar5 = FUN_002e3a50(local_58,".debug_line")" identifier = (call_expression "FUN_002e3a50(local_58,".debug_line")" identifier (argument_list "(local_58,".debug_line")" ( identifier , (string_literal "".debug_line"" " string_content ") )))) ;) (if_statement "if ((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)) {\n      local_61 = '\0';\n                    \n      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);\n      param_1[0xc] = lVar7;\n      if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }\n      param_1[0xd] = local_60 + lVar7;\n      if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }\n      goto LAB_00176df4;\n    }" if (parenthesized_expression "((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0))" ( (binary_expression "(iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)" ( (comma_expression "iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0" (assignment_expression "iVar5 = FUN_002e3a50(local_58,".zdebug_line")" identifier = (call_expression "FUN_002e3a50(local_58,".zdebug_line")" identifier (argument_list "(local_58,".zdebug_line")" ( identifier , (string_literal "".zdebug_line"" " string_content ") )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      local_61 = '\0';\n                    \n      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);\n      param_1[0xc] = lVar7;\n      if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }\n      param_1[0xd] = local_60 + lVar7;\n      if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }\n      goto LAB_00176df4;\n    }" { (expression_statement "local_61 = '\0';" (assignment_expression "local_61 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);" (assignment_expression "lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0)" identifier = (call_expression "FUN_001bd870(param_2,uVar10,&local_60,&local_61,0)" identifier (argument_list "(param_2,uVar10,&local_60,&local_61,0)" ( identifier , identifier , (pointer_expression "&local_60" & identifier) , (pointer_expression "&local_61" & identifier) , number_literal )))) ;) (expression_statement "param_1[0xc] = lVar7;" (assignment_expression "param_1[0xc] = lVar7" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }" if (parenthesized_expression "(local_61 != '\0')" ( (binary_expression "local_61 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        param_1[0xe] = lVar7;\n      }" { (expression_statement "param_1[0xe] = lVar7;" (assignment_expression "param_1[0xe] = lVar7" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "param_1[0xd] = local_60 + lVar7;" (assignment_expression "param_1[0xd] = local_60 + lVar7" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = (binary_expression "local_60 + lVar7" identifier + identifier)) ;) (if_statement "if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }" if (parenthesized_expression "(local_58[0] != local_48)" ( (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar7 = param_1[0xc];" (assignment_expression "lVar7 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) })) (goto_statement "goto LAB_00176df4;" goto statement_identifier ;) })) (if_statement "if (local_58[0] != local_48) {\n      FUN_002dac70();\n    }" if (parenthesized_expression "(local_58[0] != local_48)" ( (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n      FUN_002dac70();\n    }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar10 < *(uint *)(param_2 + 7))" ( (binary_expression "uVar10 < *(uint *)(param_2 + 7)" identifier < (pointer_expression "*(uint *)(param_2 + 7)" * (cast_expression "(uint *)(param_2 + 7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) ))))) )) ;) (expression_statement "lVar7 = param_1[0xc];" (assignment_expression "lVar7 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00176df4:\n  if (lVar7 == 0) {\n    return;\n  }" statement_identifier : (if_statement "if (lVar7 == 0) {\n    return;\n  }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (if_statement "if ((int)param_2[7] != 0) {\n    do {\n                    \n      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);\n      if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < *(uint *)(param_2 + 7));\n  }" if (parenthesized_expression "((int)param_2[7] != 0)" ( (binary_expression "(int)param_2[7] != 0" (cast_expression "(int)param_2[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[7]" identifier [ number_literal ])) != number_literal) )) (compound_statement "{\n    do {\n                    \n      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);\n      if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < *(uint *)(param_2 + 7));\n  }" { (do_statement "do {\n                    \n      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);\n      if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < *(uint *)(param_2 + 7));" do (compound_statement "{\n                    \n      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);\n      if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      uVar9 = uVar9 + 1;\n    }" { (expression_statement "iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);" (assignment_expression "iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9)" identifier = (call_expression "(**(code **)(*param_2 + 0xa0))(param_2,uVar9)" (parenthesized_expression "(**(code **)(*param_2 + 0xa0))" ( (pointer_expression "**(code **)(*param_2 + 0xa0)" * (pointer_expression "*(code **)(*param_2 + 0xa0)" * (cast_expression "(code **)(*param_2 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0xa0)" ( (binary_expression "*param_2 + 0xa0" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,uVar9)" ( identifier , identifier )))) ;) (if_statement "if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }" if (parenthesized_expression "(((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6))" ( (binary_expression "((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)" (parenthesized_expression "((iVar5 == 9) || (iVar5 == 4))" ( (binary_expression "(iVar5 == 9) || (iVar5 == 4)" (parenthesized_expression "(iVar5 == 9)" ( (binary_expression "iVar5 == 9" identifier == number_literal) )) || (parenthesized_expression "(iVar5 == 4)" ( (binary_expression "iVar5 == 4" identifier == number_literal) ))) )) && (parenthesized_expression "(uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)" ( (comma_expression "uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6" (assignment_expression "uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9)" identifier = (call_expression "(**(code **)(*param_2 + 0xb0))(param_2,uVar9)" (parenthesized_expression "(**(code **)(*param_2 + 0xb0))" ( (pointer_expression "**(code **)(*param_2 + 0xb0)" * (pointer_expression "*(code **)(*param_2 + 0xb0)" * (cast_expression "(code **)(*param_2 + 0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0xb0)" ( (binary_expression "*param_2 + 0xb0" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,uVar9)" ( identifier , identifier )))) , (binary_expression "uVar10 == uVar6" identifier == identifier)) ))) )) (compound_statement "{\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }" { (expression_statement "*(int *)(param_1 + 0x10) = iVar5;" (assignment_expression "*(int *)(param_1 + 0x10) = iVar5" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }" { (if_statement "if ((int)param_2[7] == 0) goto LAB_00176f68;" if (parenthesized_expression "((int)param_2[7] == 0)" ( (binary_expression "(int)param_2[7] == 0" (cast_expression "(int)param_2[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[7]" identifier [ number_literal ])) == number_literal) )) (goto_statement "goto LAB_00176f68;" goto statement_identifier ;)) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00176e76;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar9 < *(uint *)(param_2 + 7))" ( (binary_expression "uVar9 < *(uint *)(param_2 + 7)" identifier < (pointer_expression "*(uint *)(param_2 + 7)" * (cast_expression "(uint *)(param_2 + 7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) ))))) )) ;) })) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00176ec2;" goto statement_identifier ;) (while_statement "while (uVar10 = uVar10 + 1, uVar10 < *(uint *)(param_2 + 7)) {\nLAB_00176e76:\n    iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);\n    if (iVar5 == 2) {\n      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);\n      param_1[0x11] = lVar7;\n      goto LAB_00176ea5;\n    }\n  }" while (parenthesized_expression "(uVar10 = uVar10 + 1, uVar10 < *(uint *)(param_2 + 7))" ( (comma_expression "uVar10 = uVar10 + 1, uVar10 < *(uint *)(param_2 + 7)" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) , (binary_expression "uVar10 < *(uint *)(param_2 + 7)" identifier < (pointer_expression "*(uint *)(param_2 + 7)" * (cast_expression "(uint *)(param_2 + 7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))))) )) (compound_statement "{\nLAB_00176e76:\n    iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);\n    if (iVar5 == 2) {\n      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);\n      param_1[0x11] = lVar7;\n      goto LAB_00176ea5;\n    }\n  }" { (labeled_statement "LAB_00176e76:\n    iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);" statement_identifier : (expression_statement "iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);" (assignment_expression "iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10)" identifier = (call_expression "(**(code **)(*param_2 + 0xa0))(param_2,uVar10)" (parenthesized_expression "(**(code **)(*param_2 + 0xa0))" ( (pointer_expression "**(code **)(*param_2 + 0xa0)" * (pointer_expression "*(code **)(*param_2 + 0xa0)" * (cast_expression "(code **)(*param_2 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0xa0)" ( (binary_expression "*param_2 + 0xa0" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,uVar10)" ( identifier , identifier )))) ;)) (if_statement "if (iVar5 == 2) {\n      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);\n      param_1[0x11] = lVar7;\n      goto LAB_00176ea5;\n    }" if (parenthesized_expression "(iVar5 == 2)" ( (binary_expression "iVar5 == 2" identifier == number_literal) )) (compound_statement "{\n      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);\n      param_1[0x11] = lVar7;\n      goto LAB_00176ea5;\n    }" { (expression_statement "lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);" (assignment_expression "lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0)" identifier = (call_expression "FUN_001bd320(param_2,uVar10,param_1 + 0x12,0)" identifier (argument_list "(param_2,uVar10,param_1 + 0x12,0)" ( identifier , identifier , (binary_expression "param_1 + 0x12" identifier + number_literal) , number_literal )))) ;) (expression_statement "param_1[0x11] = lVar7;" (assignment_expression "param_1[0x11] = lVar7" (subscript_expression "param_1[0x11]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_00176ea5;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00176f68:\n  lVar7 = param_1[0x11];" statement_identifier : (expression_statement "lVar7 = param_1[0x11];" (assignment_expression "lVar7 = param_1[0x11]" identifier = (subscript_expression "param_1[0x11]" identifier [ number_literal ])) ;)) (labeled_statement "LAB_00176ea5:\n  if (lVar7 == 0) {\n    return;\n  }" statement_identifier : (if_statement "if (lVar7 == 0) {\n    return;\n  }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (labeled_statement "LAB_00176ec2:\n  puVar8 = (undefined8 *)FUN_002d94a0(0x48);" statement_identifier : (expression_statement "puVar8 = (undefined8 *)FUN_002d94a0(0x48);" (assignment_expression "puVar8 = (undefined8 *)FUN_002d94a0(0x48)" identifier = (cast_expression "(undefined8 *)FUN_002d94a0(0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002d94a0(0x48)" identifier (argument_list "(0x48)" ( number_literal ))))) ;)) (expression_statement "uVar2 = param_1[0x12];" (assignment_expression "uVar2 = param_1[0x12]" identifier = (subscript_expression "param_1[0x12]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = param_1[0x11];" (assignment_expression "uVar3 = param_1[0x11]" identifier = (subscript_expression "param_1[0x11]" identifier [ number_literal ])) ;) (expression_statement "puVar8[1] = param_2;" (assignment_expression "puVar8[1] = param_2" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar8 = &PTR_FUN_00426a48;" (assignment_expression "*puVar8 = &PTR_FUN_00426a48" (pointer_expression "*puVar8" * identifier) = (pointer_expression "&PTR_FUN_00426a48" & identifier)) ;) (expression_statement "puVar8[3] = uVar2;" (assignment_expression "puVar8[3] = uVar2" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = *(undefined4 *)(param_1 + 0x10);" (assignment_expression "uVar1 = *(undefined4 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "puVar8[2] = uVar3;" (assignment_expression "puVar8[2] = uVar3" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar8 + 4) = 0;" (assignment_expression "*(undefined4 *)(puVar8 + 4) = 0" (pointer_expression "*(undefined4 *)(puVar8 + 4)" * (cast_expression "(undefined4 *)(puVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar8[5] = 0;" (assignment_expression "puVar8[5] = 0" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[6] = 0;" (assignment_expression "puVar8[6] = 0" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[7] = 0;" (assignment_expression "puVar8[7] = 0" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar8 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar8 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar8 + 8)" * (cast_expression "(undefined4 *)(puVar8 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 8)" ( (binary_expression "puVar8 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0xf] = puVar8;" (assignment_expression "param_1[0xf] = puVar8" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "cVar4 = FUN_0016df40(puVar8,uVar9,uVar1);" (assignment_expression "cVar4 = FUN_0016df40(puVar8,uVar9,uVar1)" identifier = (call_expression "FUN_0016df40(puVar8,uVar9,uVar1)" identifier (argument_list "(puVar8,uVar9,uVar1)" ( identifier , identifier , identifier )))) ;) (if_statement "if (cVar4 == '\0') {\n    return;\n  }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "*(undefined1 *)(param_1 + 1) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 1) = 1" (pointer_expression "*(undefined1 *)(param_1 + 1)" * (cast_expression "(undefined1 *)(param_1 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00176b10(param_1,param_3);" (call_expression "FUN_00176b10(param_1,param_3)" identifier (argument_list "(param_1,param_3)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 ]) = 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 ]) = 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 ]) = 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 ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 ]) = (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 ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT == IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00176c00(undefined8 *param_1,long *param_2,undefined4 param_3)\n\n{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  long lVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  uint uVar10;\n  char local_61;\n  long local_60;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  *(undefined1 *)(param_1 + 1) = 0;\n  *param_1 = &PTR_FUN_00426b68;\n  *(undefined4 *)(param_1 + 0x19) = 0xffffffff;\n  uVar10 = *(uint *)(param_2 + 7);\n  param_1[0x1d] = param_1 + 0x1b;\n  param_1[0x1e] = param_1 + 0x1b;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  param_1[10] = 0;\n  param_1[0xc] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  param_1[0x11] = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x15] = 0;\n  param_1[0x16] = 0;\n  param_1[0x17] = 0;\n  param_1[0x18] = 0;\n  *(undefined4 *)(param_1 + 0x1b) = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = param_1 + 0x26;\n  param_1[0x21] = 1;\n  param_1[0x22] = 0;\n  param_1[0x23] = 0;\n  *(undefined4 *)(param_1 + 0x24) = 0x3f800000;\n  param_1[0x25] = 0;\n  param_1[0x26] = 0;\n  if (uVar10 < 2) {\n    return;\n  }\n  uVar10 = 1;\n  do {\n                    \n    (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10);\n    iVar5 = FUN_002e3a50(local_58,".debug_line");\n    if ((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)) {\n      local_61 = '\0';\n                    \n      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);\n      param_1[0xc] = lVar7;\n      if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }\n      param_1[0xd] = local_60 + lVar7;\n      if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }\n      goto LAB_00176df4;\n    }\n    if (local_58[0] != local_48) {\n      FUN_002dac70();\n    }\n    uVar10 = uVar10 + 1;\n  } while (uVar10 < *(uint *)(param_2 + 7));\n  lVar7 = param_1[0xc];\nLAB_00176df4:\n  if (lVar7 == 0) {\n    return;\n  }\n  uVar9 = 0;\n  if ((int)param_2[7] != 0) {\n    do {\n                    \n      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);\n      if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < *(uint *)(param_2 + 7));\n  }\n  uVar9 = 0;\n  goto LAB_00176ec2;\n  while (uVar10 = uVar10 + 1, uVar10 < *(uint *)(param_2 + 7)) {\nLAB_00176e76:\n    iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);\n    if (iVar5 == 2) {\n      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);\n      param_1[0x11] = lVar7;\n      goto LAB_00176ea5;\n    }\n  }\nLAB_00176f68:\n  lVar7 = param_1[0x11];\nLAB_00176ea5:\n  if (lVar7 == 0) {\n    return;\n  }\nLAB_00176ec2:\n  puVar8 = (undefined8 *)FUN_002d94a0(0x48);\n  uVar2 = param_1[0x12];\n  uVar3 = param_1[0x11];\n  puVar8[1] = param_2;\n  *puVar8 = &PTR_FUN_00426a48;\n  puVar8[3] = uVar2;\n  uVar1 = *(undefined4 *)(param_1 + 0x10);\n  puVar8[2] = uVar3;\n  *(undefined4 *)(puVar8 + 4) = 0;\n  puVar8[5] = 0;\n  puVar8[6] = 0;\n  puVar8[7] = 0;\n  *(undefined4 *)(puVar8 + 8) = 0;\n  param_1[0xf] = puVar8;\n  cVar4 = FUN_0016df40(puVar8,uVar9,uVar1);\n  if (cVar4 == '\0') {\n    return;\n  }\n  *(undefined1 *)(param_1 + 1) = 1;\n  FUN_00176b10(param_1,param_3);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00176c00(undefined8 *param_1,long *param_2,undefined4 param_3)" (identifier "FUN_00176c00") (parameter_list "(undefined8 *param_1,long *param_2,undefined4 param_3)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  long lVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  uint uVar10;\n  char local_61;\n  long local_60;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  *(undefined1 *)(param_1 + 1) = 0;\n  *param_1 = &PTR_FUN_00426b68;\n  *(undefined4 *)(param_1 + 0x19) = 0xffffffff;\n  uVar10 = *(uint *)(param_2 + 7);\n  param_1[0x1d] = param_1 + 0x1b;\n  param_1[0x1e] = param_1 + 0x1b;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  param_1[10] = 0;\n  param_1[0xc] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  param_1[0x11] = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x15] = 0;\n  param_1[0x16] = 0;\n  param_1[0x17] = 0;\n  param_1[0x18] = 0;\n  *(undefined4 *)(param_1 + 0x1b) = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = param_1 + 0x26;\n  param_1[0x21] = 1;\n  param_1[0x22] = 0;\n  param_1[0x23] = 0;\n  *(undefined4 *)(param_1 + 0x24) = 0x3f800000;\n  param_1[0x25] = 0;\n  param_1[0x26] = 0;\n  if (uVar10 < 2) {\n    return;\n  }\n  uVar10 = 1;\n  do {\n                    \n    (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10);\n    iVar5 = FUN_002e3a50(local_58,".debug_line");\n    if ((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)) {\n      local_61 = '\0';\n                    \n      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);\n      param_1[0xc] = lVar7;\n      if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }\n      param_1[0xd] = local_60 + lVar7;\n      if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }\n      goto LAB_00176df4;\n    }\n    if (local_58[0] != local_48) {\n      FUN_002dac70();\n    }\n    uVar10 = uVar10 + 1;\n  } while (uVar10 < *(uint *)(param_2 + 7));\n  lVar7 = param_1[0xc];\nLAB_00176df4:\n  if (lVar7 == 0) {\n    return;\n  }\n  uVar9 = 0;\n  if ((int)param_2[7] != 0) {\n    do {\n                    \n      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);\n      if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < *(uint *)(param_2 + 7));\n  }\n  uVar9 = 0;\n  goto LAB_00176ec2;\n  while (uVar10 = uVar10 + 1, uVar10 < *(uint *)(param_2 + 7)) {\nLAB_00176e76:\n    iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);\n    if (iVar5 == 2) {\n      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);\n      param_1[0x11] = lVar7;\n      goto LAB_00176ea5;\n    }\n  }\nLAB_00176f68:\n  lVar7 = param_1[0x11];\nLAB_00176ea5:\n  if (lVar7 == 0) {\n    return;\n  }\nLAB_00176ec2:\n  puVar8 = (undefined8 *)FUN_002d94a0(0x48);\n  uVar2 = param_1[0x12];\n  uVar3 = param_1[0x11];\n  puVar8[1] = param_2;\n  *puVar8 = &PTR_FUN_00426a48;\n  puVar8[3] = uVar2;\n  uVar1 = *(undefined4 *)(param_1 + 0x10);\n  puVar8[2] = uVar3;\n  *(undefined4 *)(puVar8 + 4) = 0;\n  puVar8[5] = 0;\n  puVar8[6] = 0;\n  puVar8[7] = 0;\n  *(undefined4 *)(puVar8 + 8) = 0;\n  param_1[0xf] = puVar8;\n  cVar4 = FUN_0016df40(puVar8,uVar9,uVar1);\n  if (cVar4 == '\0') {\n    return;\n  }\n  *(undefined1 *)(param_1 + 1) = 1;\n  FUN_00176b10(param_1,param_3);\n  return;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "undefined8 *puVar8;" (type_identifier "undefined8") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "char local_61;" (primitive_type "char") (identifier "local_61") (; ";")) (declaration "long local_60;" (sized_type_specifier "long" (long "long")) (identifier "local_60") (; ";")) (declaration "undefined1 *local_58 [2];" (type_identifier "undefined1") (pointer_declarator "*local_58 [2]" (* "*") (array_declarator "local_58 [2]" (identifier "local_58") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 local_48 [24];" (type_identifier "undefined1") (array_declarator "local_48 [24]" (identifier "local_48") ([ "[") (number_literal "24") (] "]")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 1) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 1) = 0" (pointer_expression "*(undefined1 *)(param_1 + 1)" (* "*") (cast_expression "(undefined1 *)(param_1 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 1)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_1 = &PTR_FUN_00426b68;" (assignment_expression "*param_1 = &PTR_FUN_00426b68" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "&PTR_FUN_00426b68" (& "&") (identifier "PTR_FUN_00426b68"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x19) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 0x19) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 0x19)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x19)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x19)" (( "(") (binary_expression "param_1 + 0x19" (identifier "param_1") (+ "+") (number_literal "0x19")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar10 = *(uint *)(param_2 + 7);" (assignment_expression "uVar10 = *(uint *)(param_2 + 7)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(param_2 + 7)" (* "*") (cast_expression "(uint *)(param_2 + 7)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "param_1[0x1d] = param_1 + 0x1b;" (assignment_expression "param_1[0x1d] = param_1 + 0x1b" (subscript_expression "param_1[0x1d]" (identifier "param_1") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (binary_expression "param_1 + 0x1b" (identifier "param_1") (+ "+") (number_literal "0x1b"))) (; ";")) (expression_statement "param_1[0x1e] = param_1 + 0x1b;" (assignment_expression "param_1[0x1e] = param_1 + 0x1b" (subscript_expression "param_1[0x1e]" (identifier "param_1") ([ "[") (number_literal "0x1e") (] "]")) (= "=") (binary_expression "param_1 + 0x1b" (identifier "param_1") (+ "+") (number_literal "0x1b"))) (; ";")) (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xc] = 0;" (assignment_expression "param_1[0xc] = 0" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xe] = 0;" (assignment_expression "param_1[0xe] = 0" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xf] = 0;" (assignment_expression "param_1[0xf] = 0" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x11] = 0;" (assignment_expression "param_1[0x11] = 0" (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x13] = 0;" (assignment_expression "param_1[0x13] = 0" (subscript_expression "param_1[0x13]" (identifier "param_1") ([ "[") (number_literal "0x13") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x14] = 0;" (assignment_expression "param_1[0x14] = 0" (subscript_expression "param_1[0x14]" (identifier "param_1") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x15] = 0;" (assignment_expression "param_1[0x15] = 0" (subscript_expression "param_1[0x15]" (identifier "param_1") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x16] = 0;" (assignment_expression "param_1[0x16] = 0" (subscript_expression "param_1[0x16]" (identifier "param_1") ([ "[") (number_literal "0x16") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x17] = 0;" (assignment_expression "param_1[0x17] = 0" (subscript_expression "param_1[0x17]" (identifier "param_1") ([ "[") (number_literal "0x17") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x18] = 0;" (assignment_expression "param_1[0x18] = 0" (subscript_expression "param_1[0x18]" (identifier "param_1") ([ "[") (number_literal "0x18") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x1b) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x1b) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x1b)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x1b)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1b)" (( "(") (binary_expression "param_1 + 0x1b" (identifier "param_1") (+ "+") (number_literal "0x1b")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x1c] = 0;" (assignment_expression "param_1[0x1c] = 0" (subscript_expression "param_1[0x1c]" (identifier "param_1") ([ "[") (number_literal "0x1c") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x1f] = 0;" (assignment_expression "param_1[0x1f] = 0" (subscript_expression "param_1[0x1f]" (identifier "param_1") ([ "[") (number_literal "0x1f") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x20] = param_1 + 0x26;" (assignment_expression "param_1[0x20] = param_1 + 0x26" (subscript_expression "param_1[0x20]" (identifier "param_1") ([ "[") (number_literal "0x20") (] "]")) (= "=") (binary_expression "param_1 + 0x26" (identifier "param_1") (+ "+") (number_literal "0x26"))) (; ";")) (expression_statement "param_1[0x21] = 1;" (assignment_expression "param_1[0x21] = 1" (subscript_expression "param_1[0x21]" (identifier "param_1") ([ "[") (number_literal "0x21") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "param_1[0x22] = 0;" (assignment_expression "param_1[0x22] = 0" (subscript_expression "param_1[0x22]" (identifier "param_1") ([ "[") (number_literal "0x22") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x23] = 0;" (assignment_expression "param_1[0x23] = 0" (subscript_expression "param_1[0x23]" (identifier "param_1") ([ "[") (number_literal "0x23") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x24) = 0x3f800000;" (assignment_expression "*(undefined4 *)(param_1 + 0x24) = 0x3f800000" (pointer_expression "*(undefined4 *)(param_1 + 0x24)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "0x3f800000")) (; ";")) (expression_statement "param_1[0x25] = 0;" (assignment_expression "param_1[0x25] = 0" (subscript_expression "param_1[0x25]" (identifier "param_1") ([ "[") (number_literal "0x25") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x26] = 0;" (assignment_expression "param_1[0x26] = 0" (subscript_expression "param_1[0x26]" (identifier "param_1") ([ "[") (number_literal "0x26") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar10 < 2) {\n    return;\n  }" (if "if") (parenthesized_expression "(uVar10 < 2)" (( "(") (binary_expression "uVar10 < 2" (identifier "uVar10") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" (identifier "uVar10") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n                    \n    (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10);\n    iVar5 = FUN_002e3a50(local_58,".debug_line");\n    if ((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)) {\n      local_61 = '\0';\n                    \n      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);\n      param_1[0xc] = lVar7;\n      if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }\n      param_1[0xd] = local_60 + lVar7;\n      if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }\n      goto LAB_00176df4;\n    }\n    if (local_58[0] != local_48) {\n      FUN_002dac70();\n    }\n    uVar10 = uVar10 + 1;\n  } while (uVar10 < *(uint *)(param_2 + 7));" (do "do") (compound_statement "{\n                    \n    (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10);\n    iVar5 = FUN_002e3a50(local_58,".debug_line");\n    if ((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)) {\n      local_61 = '\0';\n                    \n      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);\n      param_1[0xc] = lVar7;\n      if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }\n      param_1[0xd] = local_60 + lVar7;\n      if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }\n      goto LAB_00176df4;\n    }\n    if (local_58[0] != local_48) {\n      FUN_002dac70();\n    }\n    uVar10 = uVar10 + 1;\n  }" ({ "{") (expression_statement "(**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10);" (call_expression "(**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10)" (parenthesized_expression "(**(code **)(*param_2 + 0x80))" (( "(") (pointer_expression "**(code **)(*param_2 + 0x80)" (* "*") (pointer_expression "*(code **)(*param_2 + 0x80)" (* "*") (cast_expression "(code **)(*param_2 + 0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x80)" (( "(") (binary_expression "*param_2 + 0x80" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x80")) () ")"))))) () ")")) (argument_list "(local_58,param_2,uVar10)" (( "(") (identifier "local_58") (, ",") (identifier "param_2") (, ",") (identifier "uVar10") () ")"))) (; ";")) (expression_statement "iVar5 = FUN_002e3a50(local_58,".debug_line");" (assignment_expression "iVar5 = FUN_002e3a50(local_58,".debug_line")" (identifier "iVar5") (= "=") (call_expression "FUN_002e3a50(local_58,".debug_line")" (identifier "FUN_002e3a50") (argument_list "(local_58,".debug_line")" (( "(") (identifier "local_58") (, ",") (string_literal "".debug_line"" (" """) (string_content ".debug_line") (" """)) () ")")))) (; ";")) (if_statement "if ((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)) {\n      local_61 = '\0';\n                    \n      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);\n      param_1[0xc] = lVar7;\n      if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }\n      param_1[0xd] = local_60 + lVar7;\n      if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }\n      goto LAB_00176df4;\n    }" (if "if") (parenthesized_expression "((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0))" (( "(") (binary_expression "(iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)" (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)" (( "(") (comma_expression "iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0" (assignment_expression "iVar5 = FUN_002e3a50(local_58,".zdebug_line")" (identifier "iVar5") (= "=") (call_expression "FUN_002e3a50(local_58,".zdebug_line")" (identifier "FUN_002e3a50") (argument_list "(local_58,".zdebug_line")" (( "(") (identifier "local_58") (, ",") (string_literal "".zdebug_line"" (" """) (string_content ".zdebug_line") (" """)) () ")")))) (, ",") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      local_61 = '\0';\n                    \n      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);\n      param_1[0xc] = lVar7;\n      if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }\n      param_1[0xd] = local_60 + lVar7;\n      if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }\n      goto LAB_00176df4;\n    }" ({ "{") (expression_statement "local_61 = '\0';" (assignment_expression "local_61 = '\0'" (identifier "local_61") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);" (assignment_expression "lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0)" (identifier "lVar7") (= "=") (call_expression "FUN_001bd870(param_2,uVar10,&local_60,&local_61,0)" (identifier "FUN_001bd870") (argument_list "(param_2,uVar10,&local_60,&local_61,0)" (( "(") (identifier "param_2") (, ",") (identifier "uVar10") (, ",") (pointer_expression "&local_60" (& "&") (identifier "local_60")) (, ",") (pointer_expression "&local_61" (& "&") (identifier "local_61")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_1[0xc] = lVar7;" (assignment_expression "param_1[0xc] = lVar7" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "lVar7")) (; ";")) (if_statement "if (local_61 != '\0') {\n        param_1[0xe] = lVar7;\n      }" (if "if") (parenthesized_expression "(local_61 != '\0')" (( "(") (binary_expression "local_61 != '\0'" (identifier "local_61") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        param_1[0xe] = lVar7;\n      }" ({ "{") (expression_statement "param_1[0xe] = lVar7;" (assignment_expression "param_1[0xe] = lVar7" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "lVar7")) (; ";")) (} "}"))) (expression_statement "param_1[0xd] = local_60 + lVar7;" (assignment_expression "param_1[0xd] = local_60 + lVar7" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (= "=") (binary_expression "local_60 + lVar7" (identifier "local_60") (+ "+") (identifier "lVar7"))) (; ";")) (if_statement "if (local_58[0] != local_48) {\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }" (if "if") (parenthesized_expression "(local_58[0] != local_48)" (( "(") (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_48")) () ")")) (compound_statement "{\n        FUN_002dac70();\n        lVar7 = param_1[0xc];\n      }" ({ "{") (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" (identifier "FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "lVar7 = param_1[0xc];" (assignment_expression "lVar7 = param_1[0xc]" (identifier "lVar7") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00176df4;" (goto "goto") (statement_identifier "LAB_00176df4") (; ";")) (} "}"))) (if_statement "if (local_58[0] != local_48) {\n      FUN_002dac70();\n    }" (if "if") (parenthesized_expression "(local_58[0] != local_48)" (( "(") (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_48")) () ")")) (compound_statement "{\n      FUN_002dac70();\n    }" ({ "{") (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" (identifier "FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar10 < *(uint *)(param_2 + 7))" (( "(") (binary_expression "uVar10 < *(uint *)(param_2 + 7)" (identifier "uVar10") (< "<") (pointer_expression "*(uint *)(param_2 + 7)" (* "*") (cast_expression "(uint *)(param_2 + 7)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")"))))) () ")")) (; ";")) (expression_statement "lVar7 = param_1[0xc];" (assignment_expression "lVar7 = param_1[0xc]" (identifier "lVar7") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (labeled_statement "LAB_00176df4:\n  if (lVar7 == 0) {\n    return;\n  }" (statement_identifier "LAB_00176df4") (: ":") (if_statement "if (lVar7 == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(lVar7 == 0)" (( "(") (binary_expression "lVar7 == 0" (identifier "lVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((int)param_2[7] != 0) {\n    do {\n                    \n      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);\n      if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < *(uint *)(param_2 + 7));\n  }" (if "if") (parenthesized_expression "((int)param_2[7] != 0)" (( "(") (binary_expression "(int)param_2[7] != 0" (cast_expression "(int)param_2[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n                    \n      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);\n      if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < *(uint *)(param_2 + 7));\n  }" ({ "{") (do_statement "do {\n                    \n      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);\n      if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < *(uint *)(param_2 + 7));" (do "do") (compound_statement "{\n                    \n      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);\n      if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }\n      uVar9 = uVar9 + 1;\n    }" ({ "{") (expression_statement "iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);" (assignment_expression "iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(*param_2 + 0xa0))(param_2,uVar9)" (parenthesized_expression "(**(code **)(*param_2 + 0xa0))" (( "(") (pointer_expression "**(code **)(*param_2 + 0xa0)" (* "*") (pointer_expression "*(code **)(*param_2 + 0xa0)" (* "*") (cast_expression "(code **)(*param_2 + 0xa0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0xa0)" (( "(") (binary_expression "*param_2 + 0xa0" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0xa0")) () ")"))))) () ")")) (argument_list "(param_2,uVar9)" (( "(") (identifier "param_2") (, ",") (identifier "uVar9") () ")")))) (; ";")) (if_statement "if (((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }" (if "if") (parenthesized_expression "(((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6))" (( "(") (binary_expression "((iVar5 == 9) || (iVar5 == 4)) &&\n         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)" (parenthesized_expression "((iVar5 == 9) || (iVar5 == 4))" (( "(") (binary_expression "(iVar5 == 9) || (iVar5 == 4)" (parenthesized_expression "(iVar5 == 9)" (( "(") (binary_expression "iVar5 == 9" (identifier "iVar5") (== "==") (number_literal "9")) () ")")) (|| "||") (parenthesized_expression "(iVar5 == 4)" (( "(") (binary_expression "iVar5 == 4" (identifier "iVar5") (== "==") (number_literal "4")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)" (( "(") (comma_expression "uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6" (assignment_expression "uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(*param_2 + 0xb0))(param_2,uVar9)" (parenthesized_expression "(**(code **)(*param_2 + 0xb0))" (( "(") (pointer_expression "**(code **)(*param_2 + 0xb0)" (* "*") (pointer_expression "*(code **)(*param_2 + 0xb0)" (* "*") (cast_expression "(code **)(*param_2 + 0xb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0xb0)" (( "(") (binary_expression "*param_2 + 0xb0" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0xb0")) () ")"))))) () ")")) (argument_list "(param_2,uVar9)" (( "(") (identifier "param_2") (, ",") (identifier "uVar9") () ")")))) (, ",") (binary_expression "uVar10 == uVar6" (identifier "uVar10") (== "==") (identifier "uVar6"))) () ")"))) () ")")) (compound_statement "{\n        *(int *)(param_1 + 0x10) = iVar5;\n        if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }\n        break;\n      }" ({ "{") (expression_statement "*(int *)(param_1 + 0x10) = iVar5;" (assignment_expression "*(int *)(param_1 + 0x10) = iVar5" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (uVar9 != 0) {\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }" (if "if") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if ((int)param_2[7] == 0) goto LAB_00176f68;\n          uVar10 = 0;\n          goto LAB_00176e76;\n        }" ({ "{") (if_statement "if ((int)param_2[7] == 0) goto LAB_00176f68;" (if "if") (parenthesized_expression "((int)param_2[7] == 0)" (( "(") (binary_expression "(int)param_2[7] == 0" (cast_expression "(int)param_2[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00176f68;" (goto "goto") (statement_identifier "LAB_00176f68") (; ";"))) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00176e76;" (goto "goto") (statement_identifier "LAB_00176e76") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar9 < *(uint *)(param_2 + 7))" (( "(") (binary_expression "uVar9 < *(uint *)(param_2 + 7)" (identifier "uVar9") (< "<") (pointer_expression "*(uint *)(param_2 + 7)" (* "*") (cast_expression "(uint *)(param_2 + 7)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00176ec2;" (goto "goto") (statement_identifier "LAB_00176ec2") (; ";")) (while_statement "while (uVar10 = uVar10 + 1, uVar10 < *(uint *)(param_2 + 7)) {\nLAB_00176e76:\n    iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);\n    if (iVar5 == 2) {\n      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);\n      param_1[0x11] = lVar7;\n      goto LAB_00176ea5;\n    }\n  }" (while "while") (parenthesized_expression "(uVar10 = uVar10 + 1, uVar10 < *(uint *)(param_2 + 7))" (( "(") (comma_expression "uVar10 = uVar10 + 1, uVar10 < *(uint *)(param_2 + 7)" (assignment_expression "uVar10 = uVar10 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (, ",") (binary_expression "uVar10 < *(uint *)(param_2 + 7)" (identifier "uVar10") (< "<") (pointer_expression "*(uint *)(param_2 + 7)" (* "*") (cast_expression "(uint *)(param_2 + 7)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")")))))) () ")")) (compound_statement "{\nLAB_00176e76:\n    iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);\n    if (iVar5 == 2) {\n      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);\n      param_1[0x11] = lVar7;\n      goto LAB_00176ea5;\n    }\n  }" ({ "{") (labeled_statement "LAB_00176e76:\n    iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);" (statement_identifier "LAB_00176e76") (: ":") (expression_statement "iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);" (assignment_expression "iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(*param_2 + 0xa0))(param_2,uVar10)" (parenthesized_expression "(**(code **)(*param_2 + 0xa0))" (( "(") (pointer_expression "**(code **)(*param_2 + 0xa0)" (* "*") (pointer_expression "*(code **)(*param_2 + 0xa0)" (* "*") (cast_expression "(code **)(*param_2 + 0xa0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0xa0)" (( "(") (binary_expression "*param_2 + 0xa0" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0xa0")) () ")"))))) () ")")) (argument_list "(param_2,uVar10)" (( "(") (identifier "param_2") (, ",") (identifier "uVar10") () ")")))) (; ";"))) (if_statement "if (iVar5 == 2) {\n      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);\n      param_1[0x11] = lVar7;\n      goto LAB_00176ea5;\n    }" (if "if") (parenthesized_expression "(iVar5 == 2)" (( "(") (binary_expression "iVar5 == 2" (identifier "iVar5") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);\n      param_1[0x11] = lVar7;\n      goto LAB_00176ea5;\n    }" ({ "{") (expression_statement "lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);" (assignment_expression "lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0)" (identifier "lVar7") (= "=") (call_expression "FUN_001bd320(param_2,uVar10,param_1 + 0x12,0)" (identifier "FUN_001bd320") (argument_list "(param_2,uVar10,param_1 + 0x12,0)" (( "(") (identifier "param_2") (, ",") (identifier "uVar10") (, ",") (binary_expression "param_1 + 0x12" (identifier "param_1") (+ "+") (number_literal "0x12")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_1[0x11] = lVar7;" (assignment_expression "param_1[0x11] = lVar7" (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "lVar7")) (; ";")) (goto_statement "goto LAB_00176ea5;" (goto "goto") (statement_identifier "LAB_00176ea5") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00176f68:\n  lVar7 = param_1[0x11];" (statement_identifier "LAB_00176f68") (: ":") (expression_statement "lVar7 = param_1[0x11];" (assignment_expression "lVar7 = param_1[0x11]" (identifier "lVar7") (= "=") (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]"))) (; ";"))) (labeled_statement "LAB_00176ea5:\n  if (lVar7 == 0) {\n    return;\n  }" (statement_identifier "LAB_00176ea5") (: ":") (if_statement "if (lVar7 == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(lVar7 == 0)" (( "(") (binary_expression "lVar7 == 0" (identifier "lVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (labeled_statement "LAB_00176ec2:\n  puVar8 = (undefined8 *)FUN_002d94a0(0x48);" (statement_identifier "LAB_00176ec2") (: ":") (expression_statement "puVar8 = (undefined8 *)FUN_002d94a0(0x48);" (assignment_expression "puVar8 = (undefined8 *)FUN_002d94a0(0x48)" (identifier "puVar8") (= "=") (cast_expression "(undefined8 *)FUN_002d94a0(0x48)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002d94a0(0x48)" (identifier "FUN_002d94a0") (argument_list "(0x48)" (( "(") (number_literal "0x48") () ")"))))) (; ";"))) (expression_statement "uVar2 = param_1[0x12];" (assignment_expression "uVar2 = param_1[0x12]" (identifier "uVar2") (= "=") (subscript_expression "param_1[0x12]" (identifier "param_1") ([ "[") (number_literal "0x12") (] "]"))) (; ";")) (expression_statement "uVar3 = param_1[0x11];" (assignment_expression "uVar3 = param_1[0x11]" (identifier "uVar3") (= "=") (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]"))) (; ";")) (expression_statement "puVar8[1] = param_2;" (assignment_expression "puVar8[1] = param_2" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*puVar8 = &PTR_FUN_00426a48;" (assignment_expression "*puVar8 = &PTR_FUN_00426a48" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (pointer_expression "&PTR_FUN_00426a48" (& "&") (identifier "PTR_FUN_00426a48"))) (; ";")) (expression_statement "puVar8[3] = uVar2;" (assignment_expression "puVar8[3] = uVar2" (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar1 = *(undefined4 *)(param_1 + 0x10);" (assignment_expression "uVar1 = *(undefined4 *)(param_1 + 0x10)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "puVar8[2] = uVar3;" (assignment_expression "puVar8[2] = uVar3" (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "*(undefined4 *)(puVar8 + 4) = 0;" (assignment_expression "*(undefined4 *)(puVar8 + 4) = 0" (pointer_expression "*(undefined4 *)(puVar8 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar8 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 4)" (( "(") (binary_expression "puVar8 + 4" (identifier "puVar8") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[5] = 0;" (assignment_expression "puVar8[5] = 0" (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[6] = 0;" (assignment_expression "puVar8[6] = 0" (subscript_expression "puVar8[6]" (identifier "puVar8") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[7] = 0;" (assignment_expression "puVar8[7] = 0" (subscript_expression "puVar8[7]" (identifier "puVar8") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar8 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar8 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar8 + 8)" (* "*") (cast_expression "(undefined4 *)(puVar8 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 8)" (( "(") (binary_expression "puVar8 + 8" (identifier "puVar8") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xf] = puVar8;" (assignment_expression "param_1[0xf] = puVar8" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "puVar8")) (; ";")) (expression_statement "cVar4 = FUN_0016df40(puVar8,uVar9,uVar1);" (assignment_expression "cVar4 = FUN_0016df40(puVar8,uVar9,uVar1)" (identifier "cVar4") (= "=") (call_expression "FUN_0016df40(puVar8,uVar9,uVar1)" (identifier "FUN_0016df40") (argument_list "(puVar8,uVar9,uVar1)" (( "(") (identifier "puVar8") (, ",") (identifier "uVar9") (, ",") (identifier "uVar1") () ")")))) (; ";")) (if_statement "if (cVar4 == '\0') {\n    return;\n  }" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(param_1 + 1) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 1) = 1" (pointer_expression "*(undefined1 *)(param_1 + 1)" (* "*") (cast_expression "(undefined1 *)(param_1 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 1)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00176b10(param_1,param_3);" (call_expression "FUN_00176b10(param_1,param_3)" (identifier "FUN_00176b10") (argument_list "(param_1,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original prototype: void Sized_dwarf_line_info(Sized_dwarf_line_info<32,_false> * this,
   Object * object, uint read_shndx) */

void __thiscall
gold::Sized_dwarf_line_info<32,var_5>::Sized_dwarf_line_info
          (Sized_dwarf_line_info<32,var_5> *this,Object *object,type_2 read_shndx)

{
  _Rb_tree_header *p_Var1;
  type_1 sVar2;
  bool bVar3;
  int var_9;
  type_2 var_16;
  type_2 var_17;
  type_3 *var_12;
  var_1<32,var_5> *this_00;
  type_2 var_18;
  type_2 var_7;
  bool var_11;
  type_1 var_13;
  type_4 name;
  
  this->data_valid_ = false;
  (this->super_Dwarf_line_info)._vptr_Dwarf_line_info =
       (type_5 **)&PTR__Sized_dwarf_line_info_00426b68;
  p_Var1 = &(this->reloc_map_)._M_t._M_impl.super__Rb_tree_header;
  this->current_header_index_ = -1;
  var_7 = object->shnum_;
  (this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_left = &p_Var1->_M_header;
  (this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_right = &p_Var1->_M_header;
  (this->header_).std_opcode_lengths.
  super__Vector_base<var_3,_std::var_2<var_3>var_4>._M_impl._M_start = (type_6)0x0;
  (this->header_).std_opcode_lengths.
  super__Vector_base<var_3,_std::var_2<var_3>var_4>._M_impl._M_finish = (type_6)0x0
  ;
  (this->header_).std_opcode_lengths.
  super__Vector_base<var_3,_std::var_2<var_3>var_4>._M_impl._M_end_of_storage =
       (type_6)0x0;
  this->buffer_ = (type_3 *)0x0;
  this->buffer_start_ = (type_3 *)0x0;
  this->reloc_mapper_ = (var_1<32,var_5> *)0x0;
  this->symtab_buffer_ = (type_3 *)0x0;
  (this->directories_).
  super__Vector_base<std::vector<std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>,_std::var_2<std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>var_4>var_4>,_std::var_2<std::vector<std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>,_std::var_2<std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>var_4>var_4>var_4>var_4>
  ._M_impl._M_start = (type_6)0x0;
  (this->directories_).
  super__Vector_base<std::vector<std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>,_std::var_2<std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>var_4>var_4>,_std::var_2<std::vector<std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>,_std::var_2<std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>var_4>var_4>var_4>var_4>
  ._M_impl._M_finish = (type_6)0x0;
  (this->directories_).
  super__Vector_base<std::vector<std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>,_std::var_2<std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>var_4>var_4>,_std::var_2<std::vector<std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>,_std::var_2<std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>var_4>var_4>var_4>var_4>
  ._M_impl._M_end_of_storage = (type_6)0x0;
  (this->files_).
  super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>var_4>,_std::var_2<std::pair<int,_std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>var_4>var_4>var_4>,_std::var_2<std::vector<std::pair<int,_std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>var_4>,_std::var_2<std::pair<int,_std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>var_4>var_4>var_4>var_4>var_4>
  ._M_impl._M_start = (type_6)0x0;
  (this->files_).
  super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>var_4>,_std::var_2<std::pair<int,_std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>var_4>var_4>var_4>,_std::var_2<std::vector<std::pair<int,_std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>var_4>,_std::var_2<std::pair<int,_std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>var_4>var_4>var_4>var_4>var_4>
  ._M_impl._M_finish = (type_6)0x0;
  (this->files_).
  super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>var_4>,_std::var_2<std::pair<int,_std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>var_4>var_4>var_4>,_std::var_2<std::vector<std::pair<int,_std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>var_4>,_std::var_2<std::pair<int,_std::__cxx11::basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>var_4>var_4>var_4>var_4>var_4>
  ._M_impl._M_end_of_storage = (type_6)0x0;
  (this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red;
  (this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (type_7)0x0;
  (this->reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;
  (this->line_number_map_)._M_h._M_buckets = &(this->line_number_map_)._M_h._M_single_bucket;
  (this->line_number_map_)._M_h._M_bucket_count = 1;
  (this->line_number_map_)._M_h._M_before_begin._M_nxt = (type_8 *)0x0;
  (this->line_number_map_)._M_h._M_element_count = 0;
  (this->line_number_map_)._M_h._M_rehash_policy._M_max_load_factor = 1.0;
  (this->line_number_map_)._M_h._M_rehash_policy._M_next_resize = 0;
  (this->line_number_map_)._M_h._M_single_bucket = (type_9)0x0;
  if (var_7 < 2) {
    return;
  }
  var_7 = 1;
  do {
                    /* try { // try from 00176d8c to 00176d91 has its CatchHandler @ 00176f7a */
    (*object->_vptr_Object[0x10])(&name,object,(type_10)var_7);
    var_9 = std::string::var_8((type_4 *)&name,".debug_line");
    if ((var_9 == 0) || (var_9 = std::type_4::var_8((type_4 *)&name,".zdebug_line"), var_9 == 0))
    {
      var_11 = false;
                    /* try { // try from 00176dbd to 00176dc1 has its CatchHandler @ 00176f75 */
      var_12 = Object::var_10
                         (object,var_7,&var_13,&var_11,(uint64_t *)0x0);
      this->buffer_ = var_12;
      if (var_11 != false) {
        this->buffer_start_ = var_12;
      }
      this->buffer_end_ = var_12 + var_13;
      if ((anon_union_16_2_edb7204a_for_basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>var_14
           *)name._M_dataplus._M_p != &name.field_2) {
        var_15(name._M_dataplus._M_p);
        var_12 = this->buffer_;
      }
      goto LAB_00176df4;
    }
    if ((anon_union_16_2_edb7204a_for_basic_string<var_6,_std::char_traits<var_6>,_std::var_2<var_6>var_4>var_14
         *)name._M_dataplus._M_p != &name.field_2) {
      var_15(name._M_dataplus._M_p);
    }
    var_7 = var_7 + 1;
  } while (var_7 < object->shnum_);
  var_12 = this->buffer_;
LAB_00176df4:
  if (var_12 == (type_3 *)0x0) {
    return;
  }
  var_18 = 0;
  if (object->shnum_ != 0) {
    do {
                    /* try { // try from 00176e24 to 00176f42 has its CatchHandler @ 00176f7a */
      var_16 = (*object->_vptr_Object[0x14])(object,(type_10)var_18);
      if (((var_16 == 9) || (var_16 == 4)) &&
         (var_17 = (*object->_vptr_Object[0x16])(object,(type_10)var_18), var_7 == var_17)) {
        this->track_relocs_type_ = var_16;
        if (var_18 != 0) {
          if (object->shnum_ == 0) goto LAB_00176f68;
          var_7 = 0;
          goto LAB_00176e76;
        }
        break;
      }
      var_18 = var_18 + 1;
    } while (var_18 < object->shnum_);
  }
  var_18 = 0;
  goto LAB_00176ec2;
  while (var_7 = var_7 + 1, var_7 < object->shnum_) {
LAB_00176e76:
    var_9 = (*object->_vptr_Object[0x14])(object,(type_10)var_7);
    if (var_9 == 2) {
      var_12 = Object::var_19(object,var_7,&this->symtab_buffer_size_,false);
      this->symtab_buffer_ = var_12;
      goto LAB_00176ea5;
    }
  }
LAB_00176f68:
  var_12 = this->symtab_buffer_;
LAB_00176ea5:
  if (var_12 == (type_3 *)0x0) {
    return;
  }
LAB_00176ec2:
  this_00 = (var_1<32,var_5> *)var_20(0x48);
  sVar2 = this->symtab_buffer_size_;
  var_12 = this->symtab_buffer_;
  this_00->object_ = object;
  (this_00->super_Elf_reloc_mapper)._vptr_Elf_reloc_mapper =
       (type_5 **)&PTR__Sized_elf_reloc_mapper_00426a48;
  this_00->symtab_size_ = sVar2;
  var_7 = this->track_relocs_type_;
  this_00->symtab_ = var_12;
  this_00->reloc_type_ = 0;
  (this_00->track_relocs_).prelocs_ = (type_3 *)0x0;
  (this_00->track_relocs_).len_ = 0;
  (this_00->track_relocs_).pos_ = 0;
  (this_00->track_relocs_).reloc_size_ = 0;
  this->reloc_mapper_ = this_00;
  bVar3 = var_1<32,var_5>::var_21(this_00,var_18,var_7);
  if (!bVar3) {
    return;
  }
  this->data_valid_ = true;
  var_22(this,read_shndx);
  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))) (parameter_declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (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: (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: (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: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (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: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) body: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (return_statement))))

void MASKED(undefined8 *param_1,long *param_2,undefined4 param_3)

{
  undefined4 uVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  char cVar4;
  int iVar5;
  uint uVar6;
  long lVar7;
  undefined8 *puVar8;
  uint uVar9;
  uint uVar10;
  char local_61;
  long local_60;
  undefined1 *local_58 [2];
  undefined1 local_48 [24];
  
  *(undefined1 *)(param_1 + 1) = 0;
  *param_1 = &PTR_FUN_00426b68;
  *(undefined4 *)(param_1 + 0x19) = 0xffffffff;
  uVar10 = *(uint *)(param_2 + 7);
  param_1[0x1d] = param_1 + 0x1b;
  param_1[0x1e] = param_1 + 0x1b;
  param_1[8] = 0;
  param_1[9] = 0;
  param_1[10] = 0;
  param_1[0xc] = 0;
  param_1[0xe] = 0;
  param_1[0xf] = 0;
  param_1[0x11] = 0;
  param_1[0x13] = 0;
  param_1[0x14] = 0;
  param_1[0x15] = 0;
  param_1[0x16] = 0;
  param_1[0x17] = 0;
  param_1[0x18] = 0;
  *(undefined4 *)(param_1 + 0x1b) = 0;
  param_1[0x1c] = 0;
  param_1[0x1f] = 0;
  param_1[0x20] = param_1 + 0x26;
  param_1[0x21] = 1;
  param_1[0x22] = 0;
  param_1[0x23] = 0;
  *(undefined4 *)(param_1 + 0x24) = 0x3f800000;
  param_1[0x25] = 0;
  param_1[0x26] = 0;
  if (uVar10 < 2) {
    return;
  }
  uVar10 = 1;
  do {
                    /* try { // try from 00176d8c to 00176d91 has its CatchHandler @ 00176f7a */
    (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar10);
    iVar5 = FUN_002e3a50(local_58,".debug_line");
    if ((iVar5 == 0) || (iVar5 = FUN_002e3a50(local_58,".zdebug_line"), iVar5 == 0)) {
      local_61 = '\0';
                    /* try { // try from 00176dbd to 00176dc1 has its CatchHandler @ 00176f75 */
      lVar7 = FUN_001bd870(param_2,uVar10,&local_60,&local_61,0);
      param_1[0xc] = lVar7;
      if (local_61 != '\0') {
        param_1[0xe] = lVar7;
      }
      param_1[0xd] = local_60 + lVar7;
      if (local_58[0] != local_48) {
        FUN_002dac70();
        lVar7 = param_1[0xc];
      }
      goto LAB_00176df4;
    }
    if (local_58[0] != local_48) {
      FUN_002dac70();
    }
    uVar10 = uVar10 + 1;
  } while (uVar10 < *(uint *)(param_2 + 7));
  lVar7 = param_1[0xc];
LAB_00176df4:
  if (lVar7 == 0) {
    return;
  }
  uVar9 = 0;
  if ((int)param_2[7] != 0) {
    do {
                    /* try { // try from 00176e24 to 00176f42 has its CatchHandler @ 00176f7a */
      iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar9);
      if (((iVar5 == 9) || (iVar5 == 4)) &&
         (uVar6 = (**(code **)(*param_2 + 0xb0))(param_2,uVar9), uVar10 == uVar6)) {
        *(int *)(param_1 + 0x10) = iVar5;
        if (uVar9 != 0) {
          if ((int)param_2[7] == 0) goto LAB_00176f68;
          uVar10 = 0;
          goto LAB_00176e76;
        }
        break;
      }
      uVar9 = uVar9 + 1;
    } while (uVar9 < *(uint *)(param_2 + 7));
  }
  uVar9 = 0;
  goto LAB_00176ec2;
  while (uVar10 = uVar10 + 1, uVar10 < *(uint *)(param_2 + 7)) {
LAB_00176e76:
    iVar5 = (**(code **)(*param_2 + 0xa0))(param_2,uVar10);
    if (iVar5 == 2) {
      lVar7 = FUN_001bd320(param_2,uVar10,param_1 + 0x12,0);
      param_1[0x11] = lVar7;
      goto LAB_00176ea5;
    }
  }
LAB_00176f68:
  lVar7 = param_1[0x11];
LAB_00176ea5:
  if (lVar7 == 0) {
    return;
  }
LAB_00176ec2:
  puVar8 = (undefined8 *)FUN_002d94a0(0x48);
  uVar2 = param_1[0x12];
  uVar3 = param_1[0x11];
  puVar8[1] = param_2;
  *puVar8 = &PTR_FUN_00426a48;
  puVar8[3] = uVar2;
  uVar1 = *(undefined4 *)(param_1 + 0x10);
  puVar8[2] = uVar3;
  *(undefined4 *)(puVar8 + 4) = 0;
  puVar8[5] = 0;
  puVar8[6] = 0;
  puVar8[7] = 0;
  *(undefined4 *)(puVar8 + 8) = 0;
  param_1[0xf] = puVar8;
  cVar4 = FUN_0016df40(puVar8,uVar9,uVar1);
  if (cVar4 == '\0') {
    return;
  }
  *(undefined1 *)(param_1 + 1) = 1;
  FUN_00176b10(param_1,param_3);
  return;
}

