
/* DWARF original prototype: uchar * read_header_prolog(Sized_dwarf_line_info<32,_false> * this,
   uchar * lineptr) */

uchar * __thiscall
gold::Sized_dwarf_line_info<32,_false>::read_header_prolog
          (Sized_dwarf_line_info<32,_false> *this,uchar *lineptr)

{
  uchar uVar1;
  uchar uVar2;
  byte bVar3;
  uchar *puVar4;
  byte *pbVar5;
  byte *pbVar6;
  uint uVar7;
  int iVar8;
  uchar *puVar9;
  byte *pbVar10;
  int iVar11;
  uint uVar12;
  int iVar13;
  pointer puVar14;
  pointer puVar15;
  
  uVar7 = *(uint *)lineptr;
  iVar8 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +
          ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;
  if (iVar8 == -1) {
    puVar4 = lineptr + 0xc;
    (this->header_).offset_size = 8;
    uVar7 = *(uint *)(lineptr + 4);
    iVar8 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +
            ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;
  }
  else {
    puVar4 = lineptr + 4;
    (this->header_).offset_size = 4;
  }
  puVar9 = this->buffer_end_;
  *(int *)((int)&(this->header_).total_length + 4) = iVar8;
  *(undefined4 *)&(this->header_).total_length = 0;
  iVar11 = 0x678;
  if (puVar4 + iVar8 <= puVar9) {
    uVar1 = puVar4[1];
    uVar2 = *puVar4;
    iVar8 = (this->header_).offset_size;
    (this->header_).version = (uint)CONCAT11(uVar1,uVar2);
    if (iVar8 == 4) {
      uVar7 = *(uint *)(puVar4 + 2);
      iVar13 = 0;
      iVar11 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +
               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;
    }
    else {
      uVar12 = *(uint *)(puVar4 + 6);
      uVar7 = *(uint *)(puVar4 + 2);
      iVar13 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +
               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;
      iVar11 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +
               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;
    }
    *(int *)&(this->header_).prologue_length = iVar13;
    *(int *)((int)&(this->header_).prologue_length + 4) = iVar11;
    pbVar5 = puVar4 + iVar8 + 2;
    (this->header_).min_insn_length = (uint)*pbVar5;
    if (CONCAT11(uVar1,uVar2) < 4) {
      pbVar5 = pbVar5 + 1;
      (this->header_).max_ops_per_insn = 1;
    }
    else {
      bVar3 = pbVar5[1];
      pbVar5 = pbVar5 + 2;
      (this->header_).max_ops_per_insn = (uint)bVar3;
      if (bVar3 != 1) {
        iVar11 = 0x68e;
        goto LAB_000db454;
      }
    }
    pbVar6 = pbVar5 + 4;
    puVar14 = (this->header_).std_opcode_lengths.
              super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;
    puVar15 = (this->header_).std_opcode_lengths.
              super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_finish;
    (this->header_).default_is_stmt = *pbVar5 != 0;
    uVar7 = (int)puVar15 - (int)puVar14;
    (this->header_).line_base = pbVar5[1];
    (this->header_).line_range = (uint)pbVar5[2];
    uVar12 = pbVar5[3] + 1;
    (this->header_).opcode_base = pbVar5[3];
    if (uVar7 < uVar12) {
      std::vector<unsigned_char,_std::allocator<unsigned_char>_>::_M_default_append
                (&(this->header_).std_opcode_lengths,uVar12 - uVar7);
      puVar14 = (this->header_).std_opcode_lengths.
                super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;
    }
    else if ((uVar12 < uVar7) && (puVar15 != puVar14 + uVar12)) {
      (this->header_).std_opcode_lengths.
      super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_finish =
           puVar14 + uVar12;
    }
    *puVar14 = '\0';
    if (1 < (this->header_).opcode_base) {
      iVar8 = 1;
      pbVar5 = pbVar6;
      do {
        pbVar6 = pbVar5 + 1;
        pbVar10 = (this->header_).std_opcode_lengths.
                  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start
                  + iVar8;
        iVar8 = iVar8 + 1;
        *pbVar10 = *pbVar5;
        pbVar5 = pbVar6;
      } while (iVar8 < (int)(uint)(this->header_).opcode_base);
    }
    return pbVar6;
  }
LAB_000db454:
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,iVar11,
                      PTR_s_alize_xindex_004323b4 + -0x601c);
}



/* gold::Sized_dwarf_line_info<32, false>::read_header_prolog(unsigned char const*) */

void __thiscall
gold::Sized_dwarf_line_info<32,false>::read_header_prolog
          (Sized_dwarf_line_info<32,false> *this,uchar *param_1)

{
  uchar uVar1;
  uchar uVar2;
  byte bVar3;
  uchar *puVar4;
  byte *pbVar5;
  uint uVar6;
  int iVar7;
  byte *pbVar8;
  int iVar9;
  uint uVar10;
  undefined1 *puVar11;
  
  uVar6 = *(uint *)param_1;
  iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +
          ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;
  if (iVar7 == -1) {
    puVar4 = param_1 + 0xc;
    *(undefined4 *)(this + 0x40) = 8;
    uVar6 = *(uint *)(param_1 + 4);
    iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +
            ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;
  }
  else {
    puVar4 = param_1 + 4;
    *(undefined4 *)(this + 0x40) = 4;
  }
  *(int *)(this + 0xc) = iVar7;
  *(undefined4 *)(this + 8) = 0;
  iVar9 = 0x678;
  if (puVar4 + iVar7 <= *(uchar **)(this + 0x4c)) {
    uVar1 = puVar4[1];
    uVar2 = *puVar4;
    *(uint *)(this + 0x10) = (uint)CONCAT11(uVar1,uVar2);
    if (*(int *)(this + 0x40) == 4) {
      uVar6 = *(uint *)(puVar4 + 2);
      iVar9 = 0;
      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +
              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;
    }
    else {
      uVar10 = *(uint *)(puVar4 + 6);
      uVar6 = *(uint *)(puVar4 + 2);
      iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +
              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;
      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +
              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;
    }
    *(int *)(this + 0x18) = iVar9;
    *(int *)(this + 0x1c) = iVar7;
    pbVar5 = puVar4 + *(int *)(this + 0x40) + 2;
    *(uint *)(this + 0x20) = (uint)*pbVar5;
    if (CONCAT11(uVar1,uVar2) < 4) {
      pbVar5 = pbVar5 + 1;
      *(undefined4 *)(this + 0x24) = 1;
    }
    else {
      bVar3 = pbVar5[1];
      pbVar5 = pbVar5 + 2;
      *(uint *)(this + 0x24) = (uint)bVar3;
      if (bVar3 != 1) {
        iVar9 = 0x68e;
        goto LAB_000db454;
      }
    }
    puVar11 = *(undefined1 **)(this + 0x34);
    this[0x28] = (Sized_dwarf_line_info<32,false>)(*pbVar5 != 0);
    uVar6 = (int)*(undefined1 **)(this + 0x38) - (int)puVar11;
    this[0x29] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1);
    *(uint *)(this + 0x2c) = (uint)pbVar5[2];
    uVar10 = (byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3) + 1;
    this[0x30] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3);
    if (uVar6 < uVar10) {
      std::vector<unsigned_char,std::allocator<unsigned_char>>::_M_default_append
                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6
                );
      puVar11 = *(undefined1 **)(this + 0x34);
    }
    else if ((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)) {
      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;
    }
    *puVar11 = 0;
    if (1 < (byte)this[0x30]) {
      iVar7 = 1;
      pbVar5 = pbVar5 + 4;
      do {
        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);
        iVar7 = iVar7 + 1;
        *pbVar8 = *pbVar5;
        pbVar5 = pbVar5 + 1;
      } while (iVar7 < (int)(uint)(byte)this[0x30]);
    }
    return;
  }
LAB_000db454:
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,iVar9,
                      PTR_s_alize_xindex_004323b4 + -0x601c);
}


lui gp,0x36
addiu gp,gp,-0x10a0
addu gp,gp,t9
addiu sp,sp,-0x28
li v0,-0x1
sw s0,0x20(sp)
sw gp,0x10(sp)
sw ra,0x24(sp)
lwl v1,0x0(a1)
lwr v1,0x3(a1)
wsbh v1,v1
rotr v1,v1,0x10
beq v1,v0,0x000db414
_or s0,a0,zero
li a0,0x4
addiu v0,a1,0x4
sw a0,0x40(s0)
lw a0,0x4c(s0)
addu a1,v0,v1
sw v1,0xc(s0)
sw zero,0x8(s0)
sltu v1,a0,a1
bne v1,zero,0x000db454
_li a1,0x678
lbu a0,0x1(v0)
li a1,0x4
lbu a2,0x0(v0)
lw v1,0x40(s0)
sll a0,a0,0x8
or a0,a0,a2
beq v1,a1,0x000db3fc
_sw a0,0x10(s0)
lwl a2,0x6(v0)
lwl a1,0x2(v0)
lwr a2,0x9(v0)
lwr a1,0x5(v0)
wsbh a2,a2
wsbh a1,a1
rotr a2,a2,0x10
rotr a1,a1,0x10
addiu v1,v1,0x2
sw a2,0x18(s0)
sw a1,0x1c(s0)
sltiu a0,a0,0x4
addu v0,v0,v1
lbu v1,0x0(v0)
bne a0,zero,0x000db3ec
_sw v1,0x20(s0)
lbu a0,0x1(v0)
li a1,0x1
addiu v1,v0,0x2
bne a0,a1,0x000db450
_sw a0,0x24(s0)
lbu a0,0x0(v1)
addiu v0,v1,0x4
lw a2,0x34(s0)
lw a3,0x38(s0)
sltu a0,zero,a0
sb a0,0x28(s0)
lb a1,0x1(v1)
subu a0,a3,a2
sb a1,0x29(s0)
lbu a1,0x2(v1)
sw a1,0x2c(s0)
lbu v1,0x3(v1)
addiu a1,v1,0x1
sb v1,0x30(s0)
sltu v1,a0,a1
bne v1,zero,0x000db434
_lw t9,-0x7560(gp)
sltu a0,a1,a0
beq a0,zero,0x000db3a0
_addu a1,a2,a1
beq a3,a1,0x000db3a0
_nop
sw a1,0x38(s0)
sb zero,0x0(a2)
lbu v1,0x30(s0)
sltiu v1,v1,0x2
bne v1,zero,0x000db3e0
_lw ra,0x24(sp)
li v1,0x1
lw a0,0x34(s0)
addiu v0,v0,0x1
lbu a1,-0x1(v0)
addu a0,a0,v1
addiu v1,v1,0x1
sb a1,0x0(a0)
lbu a0,0x30(s0)
slt a0,v1,a0
bne a0,zero,0x000db3b8
_lw ra,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x28
addiu v1,v0,0x1
li v0,0x1
b 0x000db344
_sw v0,0x24(s0)
lwl a1,0x2(v0)
or a2,zero,zero
lwr a1,0x5(v0)
wsbh a1,a1
b 0x000db310
_rotr a1,a1,0x10
li v1,0x8
addiu v0,a1,0xc
sw v1,0x40(a0)
lwl v1,0x4(a1)
lwr v1,0x7(a1)
wsbh v1,v1
b 0x000db2b4
_rotr v1,v1,0x10
subu a1,a1,a0
addiu a0,s0,0x34
bal 0x000db0c4
_sw v0,0x18(sp)
lw a2,0x34(s0)
b 0x000db3a0
_lw v0,0x18(sp)
li a1,0x68e
lw a2,-0x7e1c(gp)
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,-0x601c
bal 0x000eb2f0
_addiu a0,a0,-0x6368
(translation_unit "/* gold::Sized_dwarf_line_info<32, false>::read_header_prolog(unsigned char const*) */\n\nvoid __thiscall\ngold::Sized_dwarf_line_info<32,false>::read_header_prolog\n          (Sized_dwarf_line_info<32,false> *this,uchar *param_1)\n\n{\n  uchar uVar1;\n  uchar uVar2;\n  byte bVar3;\n  uchar *puVar4;\n  byte *pbVar5;\n  uint uVar6;\n  int iVar7;\n  byte *pbVar8;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  \n  uVar6 = *(uint *)param_1;\n  iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n          ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n  if (iVar7 == -1) {\n    puVar4 = param_1 + 0xc;\n    *(undefined4 *)(this + 0x40) = 8;\n    uVar6 = *(uint *)(param_1 + 4);\n    iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n  }\n  else {\n    puVar4 = param_1 + 4;\n    *(undefined4 *)(this + 0x40) = 4;\n  }\n  *(int *)(this + 0xc) = iVar7;\n  *(undefined4 *)(this + 8) = 0;\n  iVar9 = 0x678;\n  if (puVar4 + iVar7 <= *(uchar **)(this + 0x4c)) {\n    uVar1 = puVar4[1];\n    uVar2 = *puVar4;\n    *(uint *)(this + 0x10) = (uint)CONCAT11(uVar1,uVar2);\n    if (*(int *)(this + 0x40) == 4) {\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = 0;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }\n    else {\n      uVar10 = *(uint *)(puVar4 + 6);\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }\n    *(int *)(this + 0x18) = iVar9;\n    *(int *)(this + 0x1c) = iVar7;\n    pbVar5 = puVar4 + *(int *)(this + 0x40) + 2;\n    *(uint *)(this + 0x20) = (uint)*pbVar5;\n    if (CONCAT11(uVar1,uVar2) < 4) {\n      pbVar5 = pbVar5 + 1;\n      *(undefined4 *)(this + 0x24) = 1;\n    }\n    else {\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      *(uint *)(this + 0x24) = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }\n    }\n    puVar11 = *(undefined1 **)(this + 0x34);\n    this[0x28] = (Sized_dwarf_line_info<32,false>)(*pbVar5 != 0);\n    uVar6 = (int)*(undefined1 **)(this + 0x38) - (int)puVar11;\n    this[0x29] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1);\n    *(uint *)(this + 0x2c) = (uint)pbVar5[2];\n    uVar10 = (byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3) + 1;\n    this[0x30] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3);\n    if (uVar6 < uVar10) {\n      std::vector<unsigned_char,std::allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                );\n      puVar11 = *(undefined1 **)(this + 0x34);\n    }\n    else if ((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)) {\n      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;\n    }\n    *puVar11 = 0;\n    if (1 < (byte)this[0x30]) {\n      iVar7 = 1;\n      pbVar5 = pbVar5 + 4;\n      do {\n        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);\n        iVar7 = iVar7 + 1;\n        *pbVar8 = *pbVar5;\n        pbVar5 = pbVar5 + 1;\n      } while (iVar7 < (int)(uint)(byte)this[0x30]);\n    }\n    return;\n  }\nLAB_000db454:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,iVar9,\n                      PTR_s_alize_xindex_004323b4 + -0x601c);\n}\n\n" comment (declaration "void __thiscall\ngold::Sized_dwarf_line_info<32,false>::read_header_prolog\n          (Sized_dwarf_line_info<32,false> *this,uchar *param_1)\n\n{\n  uchar uVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "false>::read_header_prolog\n          (Sized_dwarf_line_info<32,false> *this,uchar *param_1)\n\n{\n  uchar" identifier > : : (function_declarator "read_header_prolog\n          (Sized_dwarf_line_info<32,false> *this,uchar *param_1)" identifier (parameter_list "(Sized_dwarf_line_info<32,false> *this,uchar *param_1)" ( (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 "uchar *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) { identifier) identifier ;) (declaration "uchar uVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "uchar *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (expression_statement "uVar6 = *(uint *)param_1;" (assignment_expression "uVar6 = *(uint *)param_1" identifier = (pointer_expression "*(uint *)param_1" * (cast_expression "(uint *)param_1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n          ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n          ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n          ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10)" ( (binary_expression "(uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10" (binary_expression "(uVar6 >> 0x10) << 0x18" (parenthesized_expression "(uVar6 >> 0x10)" ( (binary_expression "uVar6 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar6 >> 0x18) << 0x10" (parenthesized_expression "(uVar6 >> 0x18)" ( (binary_expression "uVar6 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff)" ( (binary_expression "(uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff" (binary_expression "(uVar6 & 0xff) << 8" (parenthesized_expression "(uVar6 & 0xff)" ( (binary_expression "uVar6 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar6 >> 8 & 0xff" (binary_expression "uVar6 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (if_statement "if (iVar7 == -1) {\n    puVar4 = param_1 + 0xc;\n    *(undefined4 *)(this + 0x40) = 8;\n    uVar6 = *(uint *)(param_1 + 4);\n    iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n  }\n  else {\n    puVar4 = param_1 + 4;\n    *(undefined4 *)(this + 0x40) = 4;\n  }" if (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) (compound_statement "{\n    puVar4 = param_1 + 0xc;\n    *(undefined4 *)(this + 0x40) = 8;\n    uVar6 = *(uint *)(param_1 + 4);\n    iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n  }" { (expression_statement "puVar4 = param_1 + 0xc;" (assignment_expression "puVar4 = param_1 + 0xc" identifier = (binary_expression "param_1 + 0xc" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(this + 0x40) = 8;" (assignment_expression "*(undefined4 *)(this + 0x40) = 8" (pointer_expression "*(undefined4 *)(this + 0x40)" * (cast_expression "(undefined4 *)(this + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x40)" ( (binary_expression "this + 0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar6 = *(uint *)(param_1 + 4);" (assignment_expression "uVar6 = *(uint *)(param_1 + 4)" identifier = (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10)" ( (binary_expression "(uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10" (binary_expression "(uVar6 >> 0x10) << 0x18" (parenthesized_expression "(uVar6 >> 0x10)" ( (binary_expression "uVar6 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar6 >> 0x18) << 0x10" (parenthesized_expression "(uVar6 >> 0x18)" ( (binary_expression "uVar6 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff)" ( (binary_expression "(uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff" (binary_expression "(uVar6 & 0xff) << 8" (parenthesized_expression "(uVar6 & 0xff)" ( (binary_expression "uVar6 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar6 >> 8 & 0xff" (binary_expression "uVar6 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) }) (else_clause "else {\n    puVar4 = param_1 + 4;\n    *(undefined4 *)(this + 0x40) = 4;\n  }" else (compound_statement "{\n    puVar4 = param_1 + 4;\n    *(undefined4 *)(this + 0x40) = 4;\n  }" { (expression_statement "puVar4 = param_1 + 4;" (assignment_expression "puVar4 = param_1 + 4" identifier = (binary_expression "param_1 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(this + 0x40) = 4;" (assignment_expression "*(undefined4 *)(this + 0x40) = 4" (pointer_expression "*(undefined4 *)(this + 0x40)" * (cast_expression "(undefined4 *)(this + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x40)" ( (binary_expression "this + 0x40" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "*(int *)(this + 0xc) = iVar7;" (assignment_expression "*(int *)(this + 0xc) = iVar7" (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(this + 8) = 0;" (assignment_expression "*(undefined4 *)(this + 8) = 0" (pointer_expression "*(undefined4 *)(this + 8)" * (cast_expression "(undefined4 *)(this + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = 0x678;" (assignment_expression "iVar9 = 0x678" identifier = number_literal) ;) (if_statement "if (puVar4 + iVar7 <= *(uchar **)(this + 0x4c)) {\n    uVar1 = puVar4[1];\n    uVar2 = *puVar4;\n    *(uint *)(this + 0x10) = (uint)CONCAT11(uVar1,uVar2);\n    if (*(int *)(this + 0x40) == 4) {\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = 0;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }\n    else {\n      uVar10 = *(uint *)(puVar4 + 6);\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }\n    *(int *)(this + 0x18) = iVar9;\n    *(int *)(this + 0x1c) = iVar7;\n    pbVar5 = puVar4 + *(int *)(this + 0x40) + 2;\n    *(uint *)(this + 0x20) = (uint)*pbVar5;\n    if (CONCAT11(uVar1,uVar2) < 4) {\n      pbVar5 = pbVar5 + 1;\n      *(undefined4 *)(this + 0x24) = 1;\n    }\n    else {\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      *(uint *)(this + 0x24) = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }\n    }\n    puVar11 = *(undefined1 **)(this + 0x34);\n    this[0x28] = (Sized_dwarf_line_info<32,false>)(*pbVar5 != 0);\n    uVar6 = (int)*(undefined1 **)(this + 0x38) - (int)puVar11;\n    this[0x29] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1);\n    *(uint *)(this + 0x2c) = (uint)pbVar5[2];\n    uVar10 = (byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3) + 1;\n    this[0x30] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3);\n    if (uVar6 < uVar10) {\n      std::vector<unsigned_char,std::allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                );\n      puVar11 = *(undefined1 **)(this + 0x34);\n    }\n    else if ((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)) {\n      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;\n    }\n    *puVar11 = 0;\n    if (1 < (byte)this[0x30]) {\n      iVar7 = 1;\n      pbVar5 = pbVar5 + 4;\n      do {\n        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);\n        iVar7 = iVar7 + 1;\n        *pbVar8 = *pbVar5;\n        pbVar5 = pbVar5 + 1;\n      } while (iVar7 < (int)(uint)(byte)this[0x30]);\n    }\n    return;\n  }" if (parenthesized_expression "(puVar4 + iVar7 <= *(uchar **)(this + 0x4c))" ( (binary_expression "puVar4 + iVar7 <= *(uchar **)(this + 0x4c)" (binary_expression "puVar4 + iVar7" identifier + identifier) <= (pointer_expression "*(uchar **)(this + 0x4c)" * (cast_expression "(uchar **)(this + 0x4c)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x4c)" ( (binary_expression "this + 0x4c" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar1 = puVar4[1];\n    uVar2 = *puVar4;\n    *(uint *)(this + 0x10) = (uint)CONCAT11(uVar1,uVar2);\n    if (*(int *)(this + 0x40) == 4) {\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = 0;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }\n    else {\n      uVar10 = *(uint *)(puVar4 + 6);\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }\n    *(int *)(this + 0x18) = iVar9;\n    *(int *)(this + 0x1c) = iVar7;\n    pbVar5 = puVar4 + *(int *)(this + 0x40) + 2;\n    *(uint *)(this + 0x20) = (uint)*pbVar5;\n    if (CONCAT11(uVar1,uVar2) < 4) {\n      pbVar5 = pbVar5 + 1;\n      *(undefined4 *)(this + 0x24) = 1;\n    }\n    else {\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      *(uint *)(this + 0x24) = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }\n    }\n    puVar11 = *(undefined1 **)(this + 0x34);\n    this[0x28] = (Sized_dwarf_line_info<32,false>)(*pbVar5 != 0);\n    uVar6 = (int)*(undefined1 **)(this + 0x38) - (int)puVar11;\n    this[0x29] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1);\n    *(uint *)(this + 0x2c) = (uint)pbVar5[2];\n    uVar10 = (byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3) + 1;\n    this[0x30] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3);\n    if (uVar6 < uVar10) {\n      std::vector<unsigned_char,std::allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                );\n      puVar11 = *(undefined1 **)(this + 0x34);\n    }\n    else if ((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)) {\n      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;\n    }\n    *puVar11 = 0;\n    if (1 < (byte)this[0x30]) {\n      iVar7 = 1;\n      pbVar5 = pbVar5 + 4;\n      do {\n        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);\n        iVar7 = iVar7 + 1;\n        *pbVar8 = *pbVar5;\n        pbVar5 = pbVar5 + 1;\n      } while (iVar7 < (int)(uint)(byte)this[0x30]);\n    }\n    return;\n  }" { (expression_statement "uVar1 = puVar4[1];" (assignment_expression "uVar1 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = *puVar4;" (assignment_expression "uVar2 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*(uint *)(this + 0x10) = (uint)CONCAT11(uVar1,uVar2);" (assignment_expression "*(uint *)(this + 0x10) = (uint)CONCAT11(uVar1,uVar2)" (pointer_expression "*(uint *)(this + 0x10)" * (cast_expression "(uint *)(this + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) = (cast_expression "(uint)CONCAT11(uVar1,uVar2)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CONCAT11(uVar1,uVar2)" identifier (argument_list "(uVar1,uVar2)" ( identifier , identifier ))))) ;) (if_statement "if (*(int *)(this + 0x40) == 4) {\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = 0;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }\n    else {\n      uVar10 = *(uint *)(puVar4 + 6);\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }" if (parenthesized_expression "(*(int *)(this + 0x40) == 4)" ( (binary_expression "*(int *)(this + 0x40) == 4" (pointer_expression "*(int *)(this + 0x40)" * (cast_expression "(int *)(this + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x40)" ( (binary_expression "this + 0x40" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = 0;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }" { (expression_statement "uVar6 = *(uint *)(puVar4 + 2);" (assignment_expression "uVar6 = *(uint *)(puVar4 + 2)" identifier = (pointer_expression "*(uint *)(puVar4 + 2)" * (cast_expression "(uint *)(puVar4 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10)" ( (binary_expression "(uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10" (binary_expression "(uVar6 >> 0x10) << 0x18" (parenthesized_expression "(uVar6 >> 0x10)" ( (binary_expression "uVar6 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar6 >> 0x18) << 0x10" (parenthesized_expression "(uVar6 >> 0x18)" ( (binary_expression "uVar6 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff)" ( (binary_expression "(uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff" (binary_expression "(uVar6 & 0xff) << 8" (parenthesized_expression "(uVar6 & 0xff)" ( (binary_expression "uVar6 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar6 >> 8 & 0xff" (binary_expression "uVar6 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) }) (else_clause "else {\n      uVar10 = *(uint *)(puVar4 + 6);\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }" else (compound_statement "{\n      uVar10 = *(uint *)(puVar4 + 6);\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }" { (expression_statement "uVar10 = *(uint *)(puVar4 + 6);" (assignment_expression "uVar10 = *(uint *)(puVar4 + 6)" identifier = (pointer_expression "*(uint *)(puVar4 + 6)" * (cast_expression "(uint *)(puVar4 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 6)" ( (binary_expression "puVar4 + 6" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(uint *)(puVar4 + 2);" (assignment_expression "uVar6 = *(uint *)(puVar4 + 2)" identifier = (pointer_expression "*(uint *)(puVar4 + 2)" * (cast_expression "(uint *)(puVar4 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10)" ( (binary_expression "(uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10" (binary_expression "(uVar10 >> 0x10) << 0x18" (parenthesized_expression "(uVar10 >> 0x10)" ( (binary_expression "uVar10 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar10 >> 0x18) << 0x10" (parenthesized_expression "(uVar10 >> 0x18)" ( (binary_expression "uVar10 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff)" ( (binary_expression "(uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff" (binary_expression "(uVar10 & 0xff) << 8" (parenthesized_expression "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar10 >> 8 & 0xff" (binary_expression "uVar10 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10)" ( (binary_expression "(uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10" (binary_expression "(uVar6 >> 0x10) << 0x18" (parenthesized_expression "(uVar6 >> 0x10)" ( (binary_expression "uVar6 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar6 >> 0x18) << 0x10" (parenthesized_expression "(uVar6 >> 0x18)" ( (binary_expression "uVar6 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff)" ( (binary_expression "(uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff" (binary_expression "(uVar6 & 0xff) << 8" (parenthesized_expression "(uVar6 & 0xff)" ( (binary_expression "uVar6 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar6 >> 8 & 0xff" (binary_expression "uVar6 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) }))) (expression_statement "*(int *)(this + 0x18) = iVar9;" (assignment_expression "*(int *)(this + 0x18) = iVar9" (pointer_expression "*(int *)(this + 0x18)" * (cast_expression "(int *)(this + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 0x1c) = iVar7;" (assignment_expression "*(int *)(this + 0x1c) = iVar7" (pointer_expression "*(int *)(this + 0x1c)" * (cast_expression "(int *)(this + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x1c)" ( (binary_expression "this + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar5 = puVar4 + *(int *)(this + 0x40) + 2;" (assignment_expression "pbVar5 = puVar4 + *(int *)(this + 0x40) + 2" identifier = (binary_expression "puVar4 + *(int *)(this + 0x40) + 2" (binary_expression "puVar4 + *(int *)(this + 0x40)" identifier + (pointer_expression "*(int *)(this + 0x40)" * (cast_expression "(int *)(this + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x40)" ( (binary_expression "this + 0x40" identifier + number_literal) ))))) + number_literal)) ;) (expression_statement "*(uint *)(this + 0x20) = (uint)*pbVar5;" (assignment_expression "*(uint *)(this + 0x20) = (uint)*pbVar5" (pointer_expression "*(uint *)(this + 0x20)" * (cast_expression "(uint *)(this + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) = (binary_expression "(uint)*pbVar5" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (CONCAT11(uVar1,uVar2) < 4) {\n      pbVar5 = pbVar5 + 1;\n      *(undefined4 *)(this + 0x24) = 1;\n    }\n    else {\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      *(uint *)(this + 0x24) = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }\n    }" if (parenthesized_expression "(CONCAT11(uVar1,uVar2) < 4)" ( (binary_expression "CONCAT11(uVar1,uVar2) < 4" (call_expression "CONCAT11(uVar1,uVar2)" identifier (argument_list "(uVar1,uVar2)" ( identifier , identifier ))) < number_literal) )) (compound_statement "{\n      pbVar5 = pbVar5 + 1;\n      *(undefined4 *)(this + 0x24) = 1;\n    }" { (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(this + 0x24) = 1;" (assignment_expression "*(undefined4 *)(this + 0x24) = 1" (pointer_expression "*(undefined4 *)(this + 0x24)" * (cast_expression "(undefined4 *)(this + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      *(uint *)(this + 0x24) = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }\n    }" else (compound_statement "{\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      *(uint *)(this + 0x24) = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }\n    }" { (expression_statement "bVar3 = pbVar5[1];" (assignment_expression "bVar3 = pbVar5[1]" identifier = (subscript_expression "pbVar5[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar5 = pbVar5 + 2;" (assignment_expression "pbVar5 = pbVar5 + 2" identifier = (binary_expression "pbVar5 + 2" identifier + number_literal)) ;) (expression_statement "*(uint *)(this + 0x24) = (uint)bVar3;" (assignment_expression "*(uint *)(this + 0x24) = (uint)bVar3" (pointer_expression "*(uint *)(this + 0x24)" * (cast_expression "(uint *)(this + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) )))) = (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar3 != 1) {\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }" if (parenthesized_expression "(bVar3 != 1)" ( (binary_expression "bVar3 != 1" identifier != number_literal) )) (compound_statement "{\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }" { (expression_statement "iVar9 = 0x68e;" (assignment_expression "iVar9 = 0x68e" identifier = number_literal) ;) (goto_statement "goto LAB_000db454;" goto statement_identifier ;) })) }))) (expression_statement "puVar11 = *(undefined1 **)(this + 0x34);" (assignment_expression "puVar11 = *(undefined1 **)(this + 0x34)" identifier = (pointer_expression "*(undefined1 **)(this + 0x34)" * (cast_expression "(undefined1 **)(this + 0x34)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) ))))) ;) (expression_statement "this[0x28] = (Sized_dwarf_line_info<32,false>)(*pbVar5 != 0);" (assignment_expression "this[0x28] = (Sized_dwarf_line_info<32,false>)(*pbVar5 != 0)" (subscript_expression "this[0x28]" identifier [ number_literal ]) = (call_expression "(Sized_dwarf_line_info<32,false>)(*pbVar5 != 0)" (parenthesized_expression "(Sized_dwarf_line_info<32,false>)" ( (comma_expression "Sized_dwarf_line_info<32,false" (binary_expression "Sized_dwarf_line_info<32" identifier < number_literal) , false) (ERROR ">" >) )) (argument_list "(*pbVar5 != 0)" ( (binary_expression "*pbVar5 != 0" (pointer_expression "*pbVar5" * identifier) != number_literal) )))) ;) (expression_statement "uVar6 = (int)*(undefined1 **)(this + 0x38) - (int)puVar11;" (assignment_expression "uVar6 = (int)*(undefined1 **)(this + 0x38) - (int)puVar11" identifier = (binary_expression "(int)*(undefined1 **)(this + 0x38) - (int)puVar11" (cast_expression "(int)*(undefined1 **)(this + 0x38)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(undefined1 **)(this + 0x38)" * (cast_expression "(undefined1 **)(this + 0x38)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x38)" ( (binary_expression "this + 0x38" identifier + number_literal) ))))) - (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "this[0x29] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1);" (assignment_expression "this[0x29] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1)" (subscript_expression "this[0x29]" identifier [ number_literal ]) = (pointer_expression "*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1)" * (call_expression "(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1)" (parenthesized_expression "(Sized_dwarf_line_info<32,false> *)" ( (comma_expression "Sized_dwarf_line_info<32,false> *" (binary_expression "Sized_dwarf_line_info<32" identifier < number_literal) , (binary_expression "false> *" false > (pointer_expression "*" * identifier))) )) (argument_list "(pbVar5 + 1)" ( (binary_expression "pbVar5 + 1" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(this + 0x2c) = (uint)pbVar5[2];" (assignment_expression "*(uint *)(this + 0x2c) = (uint)pbVar5[2]" (pointer_expression "*(uint *)(this + 0x2c)" * (cast_expression "(uint *)(this + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x2c)" ( (binary_expression "this + 0x2c" identifier + number_literal) )))) = (cast_expression "(uint)pbVar5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar5[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar10 = (byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3) + 1;" (assignment_expression "uVar10 = (byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3) + 1" identifier = (binary_expression "(byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3) + 1" (binary_expression "(byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3)" (parenthesized_expression "(byte)" ( identifier )) * (call_expression "(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3)" (parenthesized_expression "(Sized_dwarf_line_info<32,false> *)" ( (comma_expression "Sized_dwarf_line_info<32,false> *" (binary_expression "Sized_dwarf_line_info<32" identifier < number_literal) , (binary_expression "false> *" false > (pointer_expression "*" * identifier))) )) (argument_list "(pbVar5 + 3)" ( (binary_expression "pbVar5 + 3" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "this[0x30] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3);" (assignment_expression "this[0x30] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3)" (subscript_expression "this[0x30]" identifier [ number_literal ]) = (pointer_expression "*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3)" * (call_expression "(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3)" (parenthesized_expression "(Sized_dwarf_line_info<32,false> *)" ( (comma_expression "Sized_dwarf_line_info<32,false> *" (binary_expression "Sized_dwarf_line_info<32" identifier < number_literal) , (binary_expression "false> *" false > (pointer_expression "*" * identifier))) )) (argument_list "(pbVar5 + 3)" ( (binary_expression "pbVar5 + 3" identifier + number_literal) ))))) ;) (if_statement "if (uVar6 < uVar10) {\n      std::vector<unsigned_char,std::allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                );\n      puVar11 = *(undefined1 **)(this + 0x34);\n    }\n    else if ((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)) {\n      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;\n    }" if (parenthesized_expression "(uVar6 < uVar10)" ( (binary_expression "uVar6 < uVar10" identifier < identifier) )) (compound_statement "{\n      std::vector<unsigned_char,std::allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                );\n      puVar11 = *(undefined1 **)(this + 0x34);\n    }" { (labeled_statement "std::vector<unsigned_char,std::allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                );" statement_identifier (ERROR "::vector<unsigned_char,std:" : : (comma_expression "vector<unsigned_char,std" (binary_expression "vector<unsigned_char" identifier < identifier) , identifier) :) : (expression_statement "allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                );" (binary_expression "allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                )" identifier < (binary_expression "unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                )" identifier >> (ERROR "::" : :) (call_expression "_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                )" identifier (argument_list "((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                )" ( (call_expression "(vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34)" (parenthesized_expression "(vector<unsigned_char,std::allocator<unsigned_char>> *)" ( (ERROR "vector<unsigned_char,std::" (comma_expression "vector<unsigned_char,std" (binary_expression "vector<unsigned_char" identifier < identifier) , identifier) : :) (binary_expression "allocator<unsigned_char>> *" identifier < (binary_expression "unsigned_char>> *" identifier >> (pointer_expression "*" * identifier))) )) (argument_list "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) ))) , (binary_expression "uVar10 - uVar6" identifier - identifier) ))))) ;)) (expression_statement "puVar11 = *(undefined1 **)(this + 0x34);" (assignment_expression "puVar11 = *(undefined1 **)(this + 0x34)" identifier = (pointer_expression "*(undefined1 **)(this + 0x34)" * (cast_expression "(undefined1 **)(this + 0x34)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) ))))) ;) }) (else_clause "else if ((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)) {\n      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;\n    }" else (if_statement "if ((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)) {\n      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;\n    }" if (parenthesized_expression "((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10))" ( (binary_expression "(uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)" (parenthesized_expression "(uVar10 < uVar6)" ( (binary_expression "uVar10 < uVar6" identifier < identifier) )) && (parenthesized_expression "(*(undefined1 **)(this + 0x38) != puVar11 + uVar10)" ( (binary_expression "*(undefined1 **)(this + 0x38) != puVar11 + uVar10" (pointer_expression "*(undefined1 **)(this + 0x38)" * (cast_expression "(undefined1 **)(this + 0x38)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x38)" ( (binary_expression "this + 0x38" identifier + number_literal) )))) != (binary_expression "puVar11 + uVar10" identifier + identifier)) ))) )) (compound_statement "{\n      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;\n    }" { (expression_statement "*(undefined1 **)(this + 0x38) = puVar11 + uVar10;" (assignment_expression "*(undefined1 **)(this + 0x38) = puVar11 + uVar10" (pointer_expression "*(undefined1 **)(this + 0x38)" * (cast_expression "(undefined1 **)(this + 0x38)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x38)" ( (binary_expression "this + 0x38" identifier + number_literal) )))) = (binary_expression "puVar11 + uVar10" identifier + identifier)) ;) })))) (expression_statement "*puVar11 = 0;" (assignment_expression "*puVar11 = 0" (pointer_expression "*puVar11" * identifier) = number_literal) ;) (if_statement "if (1 < (byte)this[0x30]) {\n      iVar7 = 1;\n      pbVar5 = pbVar5 + 4;\n      do {\n        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);\n        iVar7 = iVar7 + 1;\n        *pbVar8 = *pbVar5;\n        pbVar5 = pbVar5 + 1;\n      } while (iVar7 < (int)(uint)(byte)this[0x30]);\n    }" if (parenthesized_expression "(1 < (byte)this[0x30])" ( (binary_expression "1 < (byte)this[0x30]" number_literal < (cast_expression "(byte)this[0x30]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "this[0x30]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar7 = 1;\n      pbVar5 = pbVar5 + 4;\n      do {\n        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);\n        iVar7 = iVar7 + 1;\n        *pbVar8 = *pbVar5;\n        pbVar5 = pbVar5 + 1;\n      } while (iVar7 < (int)(uint)(byte)this[0x30]);\n    }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "pbVar5 = pbVar5 + 4;" (assignment_expression "pbVar5 = pbVar5 + 4" identifier = (binary_expression "pbVar5 + 4" identifier + number_literal)) ;) (do_statement "do {\n        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);\n        iVar7 = iVar7 + 1;\n        *pbVar8 = *pbVar5;\n        pbVar5 = pbVar5 + 1;\n      } while (iVar7 < (int)(uint)(byte)this[0x30]);" do (compound_statement "{\n        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);\n        iVar7 = iVar7 + 1;\n        *pbVar8 = *pbVar5;\n        pbVar5 = pbVar5 + 1;\n      }" { (expression_statement "pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);" (assignment_expression "pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7)" identifier = (cast_expression "(byte *)(*(int *)(this + 0x34) + iVar7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 0x34) + iVar7)" ( (binary_expression "*(int *)(this + 0x34) + iVar7" (pointer_expression "*(int *)(this + 0x34)" * (cast_expression "(int *)(this + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar8 = *pbVar5;" (assignment_expression "*pbVar8 = *pbVar5" (pointer_expression "*pbVar8" * identifier) = (pointer_expression "*pbVar5" * identifier)) ;) (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 < (int)(uint)(byte)this[0x30])" ( (binary_expression "iVar7 < (int)(uint)(byte)this[0x30]" identifier < (cast_expression "(int)(uint)(byte)this[0x30]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)this[0x30]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)this[0x30]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "this[0x30]" identifier [ number_literal ]))))) )) ;) })) (return_statement "return;" return ;) })) (labeled_statement "LAB_000db454:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,iVar9,\n                      PTR_s_alize_xindex_004323b4 + -0x601c);" statement_identifier : comment (expression_statement "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,iVar9,\n                      PTR_s_alize_xindex_004323b4 + -0x601c);" (call_expression "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,iVar9,\n                      PTR_s_alize_xindex_004323b4 + -0x601c)" identifier (argument_list "(PTR_s_alize_xindex_004323b4 + -0x6368,iVar9,\n                      PTR_s_alize_xindex_004323b4 + -0x601c)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x6368" identifier + number_literal) , identifier , (binary_expression "PTR_s_alize_xindex_004323b4 + -0x601c" identifier + number_literal) ))) ;)) (ERROR "}" }))
(translation_unit "/* DWARF original prototype: uchar * read_header_prolog(Sized_dwarf_line_info<32,_false> * this,\n   uchar * lineptr) */\n\nuchar * __thiscall\ngold::Sized_dwarf_line_info<32,_false>::read_header_prolog\n          (Sized_dwarf_line_info<32,_false> *this,uchar *lineptr)\n\n{\n  uchar uVar1;\n  uchar uVar2;\n  byte bVar3;\n  uchar *puVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  uint uVar7;\n  int iVar8;\n  uchar *puVar9;\n  byte *pbVar10;\n  int iVar11;\n  uint uVar12;\n  int iVar13;\n  pointer puVar14;\n  pointer puVar15;\n  \n  uVar7 = *(uint *)lineptr;\n  iVar8 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n          ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n  if (iVar8 == -1) {\n    puVar4 = lineptr + 0xc;\n    (this->header_).offset_size = 8;\n    uVar7 = *(uint *)(lineptr + 4);\n    iVar8 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n  }\n  else {\n    puVar4 = lineptr + 4;\n    (this->header_).offset_size = 4;\n  }\n  puVar9 = this->buffer_end_;\n  *(int *)((int)&(this->header_).total_length + 4) = iVar8;\n  *(undefined4 *)&(this->header_).total_length = 0;\n  iVar11 = 0x678;\n  if (puVar4 + iVar8 <= puVar9) {\n    uVar1 = puVar4[1];\n    uVar2 = *puVar4;\n    iVar8 = (this->header_).offset_size;\n    (this->header_).version = (uint)CONCAT11(uVar1,uVar2);\n    if (iVar8 == 4) {\n      uVar7 = *(uint *)(puVar4 + 2);\n      iVar13 = 0;\n      iVar11 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n    }\n    else {\n      uVar12 = *(uint *)(puVar4 + 6);\n      uVar7 = *(uint *)(puVar4 + 2);\n      iVar13 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n      iVar11 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n    }\n    *(int *)&(this->header_).prologue_length = iVar13;\n    *(int *)((int)&(this->header_).prologue_length + 4) = iVar11;\n    pbVar5 = puVar4 + iVar8 + 2;\n    (this->header_).min_insn_length = (uint)*pbVar5;\n    if (CONCAT11(uVar1,uVar2) < 4) {\n      pbVar5 = pbVar5 + 1;\n      (this->header_).max_ops_per_insn = 1;\n    }\n    else {\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      (this->header_).max_ops_per_insn = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar11 = 0x68e;\n        goto LAB_000db454;\n      }\n    }\n    pbVar6 = pbVar5 + 4;\n    puVar14 = (this->header_).std_opcode_lengths.\n              super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;\n    puVar15 = (this->header_).std_opcode_lengths.\n              super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_finish;\n    (this->header_).default_is_stmt = *pbVar5 != 0;\n    uVar7 = (int)puVar15 - (int)puVar14;\n    (this->header_).line_base = pbVar5[1];\n    (this->header_).line_range = (uint)pbVar5[2];\n    uVar12 = pbVar5[3] + 1;\n    (this->header_).opcode_base = pbVar5[3];\n    if (uVar7 < uVar12) {\n      std::vector<unsigned_char,_std::allocator<unsigned_char>_>::_M_default_append\n                (&(this->header_).std_opcode_lengths,uVar12 - uVar7);\n      puVar14 = (this->header_).std_opcode_lengths.\n                super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;\n    }\n    else if ((uVar12 < uVar7) && (puVar15 != puVar14 + uVar12)) {\n      (this->header_).std_opcode_lengths.\n      super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_finish =\n           puVar14 + uVar12;\n    }\n    *puVar14 = '\0';\n    if (1 < (this->header_).opcode_base) {\n      iVar8 = 1;\n      pbVar5 = pbVar6;\n      do {\n        pbVar6 = pbVar5 + 1;\n        pbVar10 = (this->header_).std_opcode_lengths.\n                  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start\n                  + iVar8;\n        iVar8 = iVar8 + 1;\n        *pbVar10 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (iVar8 < (int)(uint)(this->header_).opcode_base);\n    }\n    return pbVar6;\n  }\nLAB_000db454:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,iVar11,\n                      PTR_s_alize_xindex_004323b4 + -0x601c);\n}\n\n" comment (ERROR "uchar * __thiscall\ngold::Sized_dwarf_line_info<32,_false>::read_header_prolog\n          (Sized_dwarf_line_info<32,_false> *this,uchar *lineptr)" (binary_expression "uchar * __thiscall\ngold::Sized_dwarf_line_info<32,_false>::read_header_prolog\n          (Sized_dwarf_line_info<32,_false> *this,uchar *lineptr)" (binary_expression "uchar * __thiscall\ngold::Sized_dwarf_line_info<32" (binary_expression "uchar * __thiscall" identifier * identifier) (ERROR "gold::Sized_dwarf_line_info" identifier : : identifier) < number_literal) (ERROR ",_false" , identifier) > (ERROR "::" : :) (call_expression "read_header_prolog\n          (Sized_dwarf_line_info<32,_false> *this,uchar *lineptr)" identifier (argument_list "(Sized_dwarf_line_info<32,_false> *this,uchar *lineptr)" ( (binary_expression "Sized_dwarf_line_info<32" identifier < number_literal) , (binary_expression "_false> *this" identifier > (pointer_expression "*this" * identifier)) , (binary_expression "uchar *lineptr" identifier * identifier) ))))) (compound_statement "{\n  uchar uVar1;\n  uchar uVar2;\n  byte bVar3;\n  uchar *puVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  uint uVar7;\n  int iVar8;\n  uchar *puVar9;\n  byte *pbVar10;\n  int iVar11;\n  uint uVar12;\n  int iVar13;\n  pointer puVar14;\n  pointer puVar15;\n  \n  uVar7 = *(uint *)lineptr;\n  iVar8 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n          ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n  if (iVar8 == -1) {\n    puVar4 = lineptr + 0xc;\n    (this->header_).offset_size = 8;\n    uVar7 = *(uint *)(lineptr + 4);\n    iVar8 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n  }\n  else {\n    puVar4 = lineptr + 4;\n    (this->header_).offset_size = 4;\n  }\n  puVar9 = this->buffer_end_;\n  *(int *)((int)&(this->header_).total_length + 4) = iVar8;\n  *(undefined4 *)&(this->header_).total_length = 0;\n  iVar11 = 0x678;\n  if (puVar4 + iVar8 <= puVar9) {\n    uVar1 = puVar4[1];\n    uVar2 = *puVar4;\n    iVar8 = (this->header_).offset_size;\n    (this->header_).version = (uint)CONCAT11(uVar1,uVar2);\n    if (iVar8 == 4) {\n      uVar7 = *(uint *)(puVar4 + 2);\n      iVar13 = 0;\n      iVar11 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n    }\n    else {\n      uVar12 = *(uint *)(puVar4 + 6);\n      uVar7 = *(uint *)(puVar4 + 2);\n      iVar13 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n      iVar11 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n    }\n    *(int *)&(this->header_).prologue_length = iVar13;\n    *(int *)((int)&(this->header_).prologue_length + 4) = iVar11;\n    pbVar5 = puVar4 + iVar8 + 2;\n    (this->header_).min_insn_length = (uint)*pbVar5;\n    if (CONCAT11(uVar1,uVar2) < 4) {\n      pbVar5 = pbVar5 + 1;\n      (this->header_).max_ops_per_insn = 1;\n    }\n    else {\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      (this->header_).max_ops_per_insn = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar11 = 0x68e;\n        goto LAB_000db454;\n      }\n    }\n    pbVar6 = pbVar5 + 4;\n    puVar14 = (this->header_).std_opcode_lengths.\n              super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;\n    puVar15 = (this->header_).std_opcode_lengths.\n              super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_finish;\n    (this->header_).default_is_stmt = *pbVar5 != 0;\n    uVar7 = (int)puVar15 - (int)puVar14;\n    (this->header_).line_base = pbVar5[1];\n    (this->header_).line_range = (uint)pbVar5[2];\n    uVar12 = pbVar5[3] + 1;\n    (this->header_).opcode_base = pbVar5[3];\n    if (uVar7 < uVar12) {\n      std::vector<unsigned_char,_std::allocator<unsigned_char>_>::_M_default_append\n                (&(this->header_).std_opcode_lengths,uVar12 - uVar7);\n      puVar14 = (this->header_).std_opcode_lengths.\n                super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;\n    }\n    else if ((uVar12 < uVar7) && (puVar15 != puVar14 + uVar12)) {\n      (this->header_).std_opcode_lengths.\n      super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_finish =\n           puVar14 + uVar12;\n    }\n    *puVar14 = '\0';\n    if (1 < (this->header_).opcode_base) {\n      iVar8 = 1;\n      pbVar5 = pbVar6;\n      do {\n        pbVar6 = pbVar5 + 1;\n        pbVar10 = (this->header_).std_opcode_lengths.\n                  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start\n                  + iVar8;\n        iVar8 = iVar8 + 1;\n        *pbVar10 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (iVar8 < (int)(uint)(this->header_).opcode_base);\n    }\n    return pbVar6;\n  }\nLAB_000db454:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,iVar11,\n                      PTR_s_alize_xindex_004323b4 + -0x601c);\n}" { (declaration "uchar uVar1;" type_identifier identifier ;) (declaration "uchar uVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "uchar *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uchar *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "pointer puVar14;" type_identifier identifier ;) (declaration "pointer puVar15;" type_identifier identifier ;) (expression_statement "uVar7 = *(uint *)lineptr;" (assignment_expression "uVar7 = *(uint *)lineptr" identifier = (pointer_expression "*(uint *)lineptr" * (cast_expression "(uint *)lineptr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar8 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n          ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar8 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n          ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n          ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10)" ( (binary_expression "(uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10" (binary_expression "(uVar7 >> 0x10) << 0x18" (parenthesized_expression "(uVar7 >> 0x10)" ( (binary_expression "uVar7 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar7 >> 0x18) << 0x10" (parenthesized_expression "(uVar7 >> 0x18)" ( (binary_expression "uVar7 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff)" ( (binary_expression "(uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff" (binary_expression "(uVar7 & 0xff) << 8" (parenthesized_expression "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar7 >> 8 & 0xff" (binary_expression "uVar7 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (if_statement "if (iVar8 == -1) {\n    puVar4 = lineptr + 0xc;\n    (this->header_).offset_size = 8;\n    uVar7 = *(uint *)(lineptr + 4);\n    iVar8 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n  }\n  else {\n    puVar4 = lineptr + 4;\n    (this->header_).offset_size = 4;\n  }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n    puVar4 = lineptr + 0xc;\n    (this->header_).offset_size = 8;\n    uVar7 = *(uint *)(lineptr + 4);\n    iVar8 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n  }" { (expression_statement "puVar4 = lineptr + 0xc;" (assignment_expression "puVar4 = lineptr + 0xc" identifier = (binary_expression "lineptr + 0xc" identifier + number_literal)) ;) (expression_statement "(this->header_).offset_size = 8;" (assignment_expression "(this->header_).offset_size = 8" (field_expression "(this->header_).offset_size" (parenthesized_expression "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar7 = *(uint *)(lineptr + 4);" (assignment_expression "uVar7 = *(uint *)(lineptr + 4)" identifier = (pointer_expression "*(uint *)(lineptr + 4)" * (cast_expression "(uint *)(lineptr + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lineptr + 4)" ( (binary_expression "lineptr + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar8 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10)" ( (binary_expression "(uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10" (binary_expression "(uVar7 >> 0x10) << 0x18" (parenthesized_expression "(uVar7 >> 0x10)" ( (binary_expression "uVar7 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar7 >> 0x18) << 0x10" (parenthesized_expression "(uVar7 >> 0x18)" ( (binary_expression "uVar7 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff)" ( (binary_expression "(uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff" (binary_expression "(uVar7 & 0xff) << 8" (parenthesized_expression "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar7 >> 8 & 0xff" (binary_expression "uVar7 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) }) (else_clause "else {\n    puVar4 = lineptr + 4;\n    (this->header_).offset_size = 4;\n  }" else (compound_statement "{\n    puVar4 = lineptr + 4;\n    (this->header_).offset_size = 4;\n  }" { (expression_statement "puVar4 = lineptr + 4;" (assignment_expression "puVar4 = lineptr + 4" identifier = (binary_expression "lineptr + 4" identifier + number_literal)) ;) (expression_statement "(this->header_).offset_size = 4;" (assignment_expression "(this->header_).offset_size = 4" (field_expression "(this->header_).offset_size" (parenthesized_expression "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) }))) (expression_statement "puVar9 = this->buffer_end_;" (assignment_expression "puVar9 = this->buffer_end_" identifier = (field_expression "this->buffer_end_" identifier -> field_identifier)) ;) (expression_statement "*(int *)((int)&(this->header_).total_length + 4) = iVar8;" (assignment_expression "*(int *)((int)&(this->header_).total_length + 4) = iVar8" (pointer_expression "*(int *)((int)&(this->header_).total_length + 4)" * (cast_expression "(int *)((int)&(this->header_).total_length + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->header_).total_length + 4)" ( (binary_expression "(int)&(this->header_).total_length + 4" (cast_expression "(int)&(this->header_).total_length" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->header_).total_length" & (field_expression "(this->header_).total_length" (parenthesized_expression "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)&(this->header_).total_length = 0;" (assignment_expression "*(undefined4 *)&(this->header_).total_length = 0" (pointer_expression "*(undefined4 *)&(this->header_).total_length" * (cast_expression "(undefined4 *)&(this->header_).total_length" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->header_).total_length" & (field_expression "(this->header_).total_length" (parenthesized_expression "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "iVar11 = 0x678;" (assignment_expression "iVar11 = 0x678" identifier = number_literal) ;) (if_statement "if (puVar4 + iVar8 <= puVar9) {\n    uVar1 = puVar4[1];\n    uVar2 = *puVar4;\n    iVar8 = (this->header_).offset_size;\n    (this->header_).version = (uint)CONCAT11(uVar1,uVar2);\n    if (iVar8 == 4) {\n      uVar7 = *(uint *)(puVar4 + 2);\n      iVar13 = 0;\n      iVar11 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n    }\n    else {\n      uVar12 = *(uint *)(puVar4 + 6);\n      uVar7 = *(uint *)(puVar4 + 2);\n      iVar13 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n      iVar11 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n    }\n    *(int *)&(this->header_).prologue_length = iVar13;\n    *(int *)((int)&(this->header_).prologue_length + 4) = iVar11;\n    pbVar5 = puVar4 + iVar8 + 2;\n    (this->header_).min_insn_length = (uint)*pbVar5;\n    if (CONCAT11(uVar1,uVar2) < 4) {\n      pbVar5 = pbVar5 + 1;\n      (this->header_).max_ops_per_insn = 1;\n    }\n    else {\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      (this->header_).max_ops_per_insn = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar11 = 0x68e;\n        goto LAB_000db454;\n      }\n    }\n    pbVar6 = pbVar5 + 4;\n    puVar14 = (this->header_).std_opcode_lengths.\n              super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;\n    puVar15 = (this->header_).std_opcode_lengths.\n              super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_finish;\n    (this->header_).default_is_stmt = *pbVar5 != 0;\n    uVar7 = (int)puVar15 - (int)puVar14;\n    (this->header_).line_base = pbVar5[1];\n    (this->header_).line_range = (uint)pbVar5[2];\n    uVar12 = pbVar5[3] + 1;\n    (this->header_).opcode_base = pbVar5[3];\n    if (uVar7 < uVar12) {\n      std::vector<unsigned_char,_std::allocator<unsigned_char>_>::_M_default_append\n                (&(this->header_).std_opcode_lengths,uVar12 - uVar7);\n      puVar14 = (this->header_).std_opcode_lengths.\n                super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;\n    }\n    else if ((uVar12 < uVar7) && (puVar15 != puVar14 + uVar12)) {\n      (this->header_).std_opcode_lengths.\n      super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_finish =\n           puVar14 + uVar12;\n    }\n    *puVar14 = '\0';\n    if (1 < (this->header_).opcode_base) {\n      iVar8 = 1;\n      pbVar5 = pbVar6;\n      do {\n        pbVar6 = pbVar5 + 1;\n        pbVar10 = (this->header_).std_opcode_lengths.\n                  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start\n                  + iVar8;\n        iVar8 = iVar8 + 1;\n        *pbVar10 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (iVar8 < (int)(uint)(this->header_).opcode_base);\n    }\n    return pbVar6;\n  }" if (parenthesized_expression "(puVar4 + iVar8 <= puVar9)" ( (binary_expression "puVar4 + iVar8 <= puVar9" (binary_expression "puVar4 + iVar8" identifier + identifier) <= identifier) )) (compound_statement "{\n    uVar1 = puVar4[1];\n    uVar2 = *puVar4;\n    iVar8 = (this->header_).offset_size;\n    (this->header_).version = (uint)CONCAT11(uVar1,uVar2);\n    if (iVar8 == 4) {\n      uVar7 = *(uint *)(puVar4 + 2);\n      iVar13 = 0;\n      iVar11 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n    }\n    else {\n      uVar12 = *(uint *)(puVar4 + 6);\n      uVar7 = *(uint *)(puVar4 + 2);\n      iVar13 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n      iVar11 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n    }\n    *(int *)&(this->header_).prologue_length = iVar13;\n    *(int *)((int)&(this->header_).prologue_length + 4) = iVar11;\n    pbVar5 = puVar4 + iVar8 + 2;\n    (this->header_).min_insn_length = (uint)*pbVar5;\n    if (CONCAT11(uVar1,uVar2) < 4) {\n      pbVar5 = pbVar5 + 1;\n      (this->header_).max_ops_per_insn = 1;\n    }\n    else {\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      (this->header_).max_ops_per_insn = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar11 = 0x68e;\n        goto LAB_000db454;\n      }\n    }\n    pbVar6 = pbVar5 + 4;\n    puVar14 = (this->header_).std_opcode_lengths.\n              super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;\n    puVar15 = (this->header_).std_opcode_lengths.\n              super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_finish;\n    (this->header_).default_is_stmt = *pbVar5 != 0;\n    uVar7 = (int)puVar15 - (int)puVar14;\n    (this->header_).line_base = pbVar5[1];\n    (this->header_).line_range = (uint)pbVar5[2];\n    uVar12 = pbVar5[3] + 1;\n    (this->header_).opcode_base = pbVar5[3];\n    if (uVar7 < uVar12) {\n      std::vector<unsigned_char,_std::allocator<unsigned_char>_>::_M_default_append\n                (&(this->header_).std_opcode_lengths,uVar12 - uVar7);\n      puVar14 = (this->header_).std_opcode_lengths.\n                super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;\n    }\n    else if ((uVar12 < uVar7) && (puVar15 != puVar14 + uVar12)) {\n      (this->header_).std_opcode_lengths.\n      super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_finish =\n           puVar14 + uVar12;\n    }\n    *puVar14 = '\0';\n    if (1 < (this->header_).opcode_base) {\n      iVar8 = 1;\n      pbVar5 = pbVar6;\n      do {\n        pbVar6 = pbVar5 + 1;\n        pbVar10 = (this->header_).std_opcode_lengths.\n                  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start\n                  + iVar8;\n        iVar8 = iVar8 + 1;\n        *pbVar10 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (iVar8 < (int)(uint)(this->header_).opcode_base);\n    }\n    return pbVar6;\n  }" { (expression_statement "uVar1 = puVar4[1];" (assignment_expression "uVar1 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = *puVar4;" (assignment_expression "uVar2 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "iVar8 = (this->header_).offset_size;" (assignment_expression "iVar8 = (this->header_).offset_size" identifier = (field_expression "(this->header_).offset_size" (parenthesized_expression "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(this->header_).version = (uint)CONCAT11(uVar1,uVar2);" (assignment_expression "(this->header_).version = (uint)CONCAT11(uVar1,uVar2)" (field_expression "(this->header_).version" (parenthesized_expression "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uint)CONCAT11(uVar1,uVar2)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CONCAT11(uVar1,uVar2)" identifier (argument_list "(uVar1,uVar2)" ( identifier , identifier ))))) ;) (if_statement "if (iVar8 == 4) {\n      uVar7 = *(uint *)(puVar4 + 2);\n      iVar13 = 0;\n      iVar11 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n    }\n    else {\n      uVar12 = *(uint *)(puVar4 + 6);\n      uVar7 = *(uint *)(puVar4 + 2);\n      iVar13 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n      iVar11 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n    }" if (parenthesized_expression "(iVar8 == 4)" ( (binary_expression "iVar8 == 4" identifier == number_literal) )) (compound_statement "{\n      uVar7 = *(uint *)(puVar4 + 2);\n      iVar13 = 0;\n      iVar11 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n    }" { (expression_statement "uVar7 = *(uint *)(puVar4 + 2);" (assignment_expression "uVar7 = *(uint *)(puVar4 + 2)" identifier = (pointer_expression "*(uint *)(puVar4 + 2)" * (cast_expression "(uint *)(puVar4 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "iVar11 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar11 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10)" ( (binary_expression "(uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10" (binary_expression "(uVar7 >> 0x10) << 0x18" (parenthesized_expression "(uVar7 >> 0x10)" ( (binary_expression "uVar7 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar7 >> 0x18) << 0x10" (parenthesized_expression "(uVar7 >> 0x18)" ( (binary_expression "uVar7 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff)" ( (binary_expression "(uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff" (binary_expression "(uVar7 & 0xff) << 8" (parenthesized_expression "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar7 >> 8 & 0xff" (binary_expression "uVar7 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) }) (else_clause "else {\n      uVar12 = *(uint *)(puVar4 + 6);\n      uVar7 = *(uint *)(puVar4 + 2);\n      iVar13 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n      iVar11 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n    }" else (compound_statement "{\n      uVar12 = *(uint *)(puVar4 + 6);\n      uVar7 = *(uint *)(puVar4 + 2);\n      iVar13 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n      iVar11 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;\n    }" { (expression_statement "uVar12 = *(uint *)(puVar4 + 6);" (assignment_expression "uVar12 = *(uint *)(puVar4 + 6)" identifier = (pointer_expression "*(uint *)(puVar4 + 6)" * (cast_expression "(uint *)(puVar4 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 6)" ( (binary_expression "puVar4 + 6" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(uint *)(puVar4 + 2);" (assignment_expression "uVar7 = *(uint *)(puVar4 + 2)" identifier = (pointer_expression "*(uint *)(puVar4 + 2)" * (cast_expression "(uint *)(puVar4 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar13 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10)" ( (binary_expression "(uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10" (binary_expression "(uVar12 >> 0x10) << 0x18" (parenthesized_expression "(uVar12 >> 0x10)" ( (binary_expression "uVar12 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar12 >> 0x18) << 0x10" (parenthesized_expression "(uVar12 >> 0x18)" ( (binary_expression "uVar12 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff)" ( (binary_expression "(uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff" (binary_expression "(uVar12 & 0xff) << 8" (parenthesized_expression "(uVar12 & 0xff)" ( (binary_expression "uVar12 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar12 >> 8 & 0xff" (binary_expression "uVar12 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "iVar11 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar11 = (((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10)" ( (binary_expression "(uVar7 >> 0x10) << 0x18 | (uVar7 >> 0x18) << 0x10" (binary_expression "(uVar7 >> 0x10) << 0x18" (parenthesized_expression "(uVar7 >> 0x10)" ( (binary_expression "uVar7 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar7 >> 0x18) << 0x10" (parenthesized_expression "(uVar7 >> 0x18)" ( (binary_expression "uVar7 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff)" ( (binary_expression "(uVar7 & 0xff) << 8 | uVar7 >> 8 & 0xff" (binary_expression "(uVar7 & 0xff) << 8" (parenthesized_expression "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar7 >> 8 & 0xff" (binary_expression "uVar7 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) }))) (expression_statement "*(int *)&(this->header_).prologue_length = iVar13;" (assignment_expression "*(int *)&(this->header_).prologue_length = iVar13" (pointer_expression "*(int *)&(this->header_).prologue_length" * (cast_expression "(int *)&(this->header_).prologue_length" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->header_).prologue_length" & (field_expression "(this->header_).prologue_length" (parenthesized_expression "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "*(int *)((int)&(this->header_).prologue_length + 4) = iVar11;" (assignment_expression "*(int *)((int)&(this->header_).prologue_length + 4) = iVar11" (pointer_expression "*(int *)((int)&(this->header_).prologue_length + 4)" * (cast_expression "(int *)((int)&(this->header_).prologue_length + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->header_).prologue_length + 4)" ( (binary_expression "(int)&(this->header_).prologue_length + 4" (cast_expression "(int)&(this->header_).prologue_length" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->header_).prologue_length" & (field_expression "(this->header_).prologue_length" (parenthesized_expression "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pbVar5 = puVar4 + iVar8 + 2;" (assignment_expression "pbVar5 = puVar4 + iVar8 + 2" identifier = (binary_expression "puVar4 + iVar8 + 2" (binary_expression "puVar4 + iVar8" identifier + identifier) + number_literal)) ;) (expression_statement "(this->header_).min_insn_length = (uint)*pbVar5;" (assignment_expression "(this->header_).min_insn_length = (uint)*pbVar5" (field_expression "(this->header_).min_insn_length" (parenthesized_expression "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(uint)*pbVar5" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (CONCAT11(uVar1,uVar2) < 4) {\n      pbVar5 = pbVar5 + 1;\n      (this->header_).max_ops_per_insn = 1;\n    }\n    else {\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      (this->header_).max_ops_per_insn = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar11 = 0x68e;\n        goto LAB_000db454;\n      }\n    }" if (parenthesized_expression "(CONCAT11(uVar1,uVar2) < 4)" ( (binary_expression "CONCAT11(uVar1,uVar2) < 4" (call_expression "CONCAT11(uVar1,uVar2)" identifier (argument_list "(uVar1,uVar2)" ( identifier , identifier ))) < number_literal) )) (compound_statement "{\n      pbVar5 = pbVar5 + 1;\n      (this->header_).max_ops_per_insn = 1;\n    }" { (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (expression_statement "(this->header_).max_ops_per_insn = 1;" (assignment_expression "(this->header_).max_ops_per_insn = 1" (field_expression "(this->header_).max_ops_per_insn" (parenthesized_expression "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) }) (else_clause "else {\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      (this->header_).max_ops_per_insn = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar11 = 0x68e;\n        goto LAB_000db454;\n      }\n    }" else (compound_statement "{\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      (this->header_).max_ops_per_insn = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar11 = 0x68e;\n        goto LAB_000db454;\n      }\n    }" { (expression_statement "bVar3 = pbVar5[1];" (assignment_expression "bVar3 = pbVar5[1]" identifier = (subscript_expression "pbVar5[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar5 = pbVar5 + 2;" (assignment_expression "pbVar5 = pbVar5 + 2" identifier = (binary_expression "pbVar5 + 2" identifier + number_literal)) ;) (expression_statement "(this->header_).max_ops_per_insn = (uint)bVar3;" (assignment_expression "(this->header_).max_ops_per_insn = (uint)bVar3" (field_expression "(this->header_).max_ops_per_insn" (parenthesized_expression "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar3 != 1) {\n        iVar11 = 0x68e;\n        goto LAB_000db454;\n      }" if (parenthesized_expression "(bVar3 != 1)" ( (binary_expression "bVar3 != 1" identifier != number_literal) )) (compound_statement "{\n        iVar11 = 0x68e;\n        goto LAB_000db454;\n      }" { (expression_statement "iVar11 = 0x68e;" (assignment_expression "iVar11 = 0x68e" identifier = number_literal) ;) (goto_statement "goto LAB_000db454;" goto statement_identifier ;) })) }))) (expression_statement "pbVar6 = pbVar5 + 4;" (assignment_expression "pbVar6 = pbVar5 + 4" identifier = (binary_expression "pbVar5 + 4" identifier + number_literal)) ;) (ERROR "puVar14 = (this->header_).std_opcode_lengths.\n              super__Vector_base<unsigned_char,_std::" (comma_expression "puVar14 = (this->header_).std_opcode_lengths.\n              super__Vector_base<unsigned_char,_std" (assignment_expression "puVar14 = (this->header_).std_opcode_lengths.\n              super__Vector_base<unsigned_char" identifier = (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)) , identifier) : :) (expression_statement "allocator<unsigned_char>_>._M_impl._M_start;" (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) ;) (ERROR "puVar15 = (this->header_).std_opcode_lengths.\n              super__Vector_base<unsigned_char,_std::" (comma_expression "puVar15 = (this->header_).std_opcode_lengths.\n              super__Vector_base<unsigned_char,_std" (assignment_expression "puVar15 = (this->header_).std_opcode_lengths.\n              super__Vector_base<unsigned_char" identifier = (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)) , identifier) : :) (expression_statement "allocator<unsigned_char>_>._M_impl._M_finish;" (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) ;) (expression_statement "(this->header_).default_is_stmt = *pbVar5 != 0;" (assignment_expression "(this->header_).default_is_stmt = *pbVar5 != 0" (field_expression "(this->header_).default_is_stmt" (parenthesized_expression "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) )) . field_identifier) = (binary_expression "*pbVar5 != 0" (pointer_expression "*pbVar5" * identifier) != number_literal)) ;) (expression_statement "uVar7 = (int)puVar15 - (int)puVar14;" (assignment_expression "uVar7 = (int)puVar15 - (int)puVar14" identifier = (binary_expression "(int)puVar15 - (int)puVar14" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "(this->header_).line_base = pbVar5[1];" (assignment_expression "(this->header_).line_base = pbVar5[1]" (field_expression "(this->header_).line_base" (parenthesized_expression "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) )) . field_identifier) = (subscript_expression "pbVar5[1]" identifier [ number_literal ])) ;) (expression_statement "(this->header_).line_range = (uint)pbVar5[2];" (assignment_expression "(this->header_).line_range = (uint)pbVar5[2]" (field_expression "(this->header_).line_range" (parenthesized_expression "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uint)pbVar5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar5[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar12 = pbVar5[3] + 1;" (assignment_expression "uVar12 = pbVar5[3] + 1" identifier = (binary_expression "pbVar5[3] + 1" (subscript_expression "pbVar5[3]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "(this->header_).opcode_base = pbVar5[3];" (assignment_expression "(this->header_).opcode_base = pbVar5[3]" (field_expression "(this->header_).opcode_base" (parenthesized_expression "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) )) . field_identifier) = (subscript_expression "pbVar5[3]" identifier [ number_literal ])) ;) (if_statement "if (uVar7 < uVar12) {\n      std::vector<unsigned_char,_std::allocator<unsigned_char>_>::_M_default_append\n                (&(this->header_).std_opcode_lengths,uVar12 - uVar7);\n      puVar14 = (this->header_).std_opcode_lengths.\n                super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;\n    }\n    else if ((uVar12 < uVar7) && (puVar15 != puVar14 + uVar12)) {\n      (this->header_).std_opcode_lengths.\n      super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_finish =\n           puVar14 + uVar12;\n    }" if (parenthesized_expression "(uVar7 < uVar12)" ( (binary_expression "uVar7 < uVar12" identifier < identifier) )) (compound_statement "{\n      std::vector<unsigned_char,_std::allocator<unsigned_char>_>::_M_default_append\n                (&(this->header_).std_opcode_lengths,uVar12 - uVar7);\n      puVar14 = (this->header_).std_opcode_lengths.\n                super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;\n    }" { (labeled_statement "std::vector<unsigned_char,_std::allocator<unsigned_char>_>::_M_default_append\n                (&(this->header_).std_opcode_lengths,uVar12 - uVar7);" statement_identifier (ERROR "::vector<unsigned_char,_std::allocator<unsigned_char>_>:" : : (comma_expression "vector<unsigned_char,_std" (binary_expression "vector<unsigned_char" identifier < identifier) , identifier) : : (binary_expression "allocator<unsigned_char>_" (binary_expression "allocator<unsigned_char" identifier < identifier) > identifier) > :) : (expression_statement "_M_default_append\n                (&(this->header_).std_opcode_lengths,uVar12 - uVar7);" (call_expression "_M_default_append\n                (&(this->header_).std_opcode_lengths,uVar12 - uVar7)" identifier (argument_list "(&(this->header_).std_opcode_lengths,uVar12 - uVar7)" ( (pointer_expression "&(this->header_).std_opcode_lengths" & (field_expression "(this->header_).std_opcode_lengths" (parenthesized_expression "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "uVar12 - uVar7" identifier - identifier) ))) ;)) (ERROR "puVar14 = (this->header_).std_opcode_lengths.\n                super__Vector_base<unsigned_char,_std::" (comma_expression "puVar14 = (this->header_).std_opcode_lengths.\n                super__Vector_base<unsigned_char,_std" (assignment_expression "puVar14 = (this->header_).std_opcode_lengths.\n                super__Vector_base<unsigned_char" identifier = (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)) , identifier) : :) (expression_statement "allocator<unsigned_char>_>._M_impl._M_start;" (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) ;) }) (else_clause "else if ((uVar12 < uVar7) && (puVar15 != puVar14 + uVar12)) {\n      (this->header_).std_opcode_lengths.\n      super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_finish =\n           puVar14 + uVar12;\n    }" else (if_statement "if ((uVar12 < uVar7) && (puVar15 != puVar14 + uVar12)) {\n      (this->header_).std_opcode_lengths.\n      super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_finish =\n           puVar14 + uVar12;\n    }" if (parenthesized_expression "((uVar12 < uVar7) && (puVar15 != puVar14 + uVar12))" ( (binary_expression "(uVar12 < uVar7) && (puVar15 != puVar14 + uVar12)" (parenthesized_expression "(uVar12 < uVar7)" ( (binary_expression "uVar12 < uVar7" identifier < identifier) )) && (parenthesized_expression "(puVar15 != puVar14 + uVar12)" ( (binary_expression "puVar15 != puVar14 + uVar12" identifier != (binary_expression "puVar14 + uVar12" identifier + identifier)) ))) )) (compound_statement "{\n      (this->header_).std_opcode_lengths.\n      super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_finish =\n           puVar14 + uVar12;\n    }" { (ERROR "(this->header_).std_opcode_lengths.\n      super__Vector_base<unsigned_char,_std::" (comma_expression "(this->header_).std_opcode_lengths.\n      super__Vector_base<unsigned_char,_std" (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) , identifier) : :) (expression_statement "allocator<unsigned_char>_>._M_impl._M_finish =\n           puVar14 + uVar12;" (assignment_expression "allocator<unsigned_char>_>._M_impl._M_finish =\n           puVar14 + uVar12" (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) = (binary_expression "puVar14 + uVar12" identifier + identifier)) ;) })))) (expression_statement "*puVar14 = '\0';" (assignment_expression "*puVar14 = '\0'" (pointer_expression "*puVar14" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (1 < (this->header_).opcode_base) {\n      iVar8 = 1;\n      pbVar5 = pbVar6;\n      do {\n        pbVar6 = pbVar5 + 1;\n        pbVar10 = (this->header_).std_opcode_lengths.\n                  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start\n                  + iVar8;\n        iVar8 = iVar8 + 1;\n        *pbVar10 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (iVar8 < (int)(uint)(this->header_).opcode_base);\n    }" if (parenthesized_expression "(1 < (this->header_).opcode_base)" ( (binary_expression "1 < (this->header_).opcode_base" number_literal < (field_expression "(this->header_).opcode_base" (parenthesized_expression "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) )) . field_identifier)) )) (compound_statement "{\n      iVar8 = 1;\n      pbVar5 = pbVar6;\n      do {\n        pbVar6 = pbVar5 + 1;\n        pbVar10 = (this->header_).std_opcode_lengths.\n                  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start\n                  + iVar8;\n        iVar8 = iVar8 + 1;\n        *pbVar10 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (iVar8 < (int)(uint)(this->header_).opcode_base);\n    }" { (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) (expression_statement "pbVar5 = pbVar6;" (assignment_expression "pbVar5 = pbVar6" identifier = identifier) ;) (do_statement "do {\n        pbVar6 = pbVar5 + 1;\n        pbVar10 = (this->header_).std_opcode_lengths.\n                  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start\n                  + iVar8;\n        iVar8 = iVar8 + 1;\n        *pbVar10 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (iVar8 < (int)(uint)(this->header_).opcode_base);" do (compound_statement "{\n        pbVar6 = pbVar5 + 1;\n        pbVar10 = (this->header_).std_opcode_lengths.\n                  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start\n                  + iVar8;\n        iVar8 = iVar8 + 1;\n        *pbVar10 = *pbVar5;\n        pbVar5 = pbVar6;\n      }" { (expression_statement "pbVar6 = pbVar5 + 1;" (assignment_expression "pbVar6 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (ERROR "pbVar10 = (this->header_).std_opcode_lengths.\n                  super__Vector_base<unsigned_char,_std::" (comma_expression "pbVar10 = (this->header_).std_opcode_lengths.\n                  super__Vector_base<unsigned_char,_std" (assignment_expression "pbVar10 = (this->header_).std_opcode_lengths.\n                  super__Vector_base<unsigned_char" identifier = (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)) , identifier) : :) (expression_statement "allocator<unsigned_char>_>._M_impl._M_start\n                  + iVar8;" (binary_expression "allocator<unsigned_char>_>._M_impl._M_start\n                  + iVar8" (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) + identifier) ;) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar10 = *pbVar5;" (assignment_expression "*pbVar10 = *pbVar5" (pointer_expression "*pbVar10" * identifier) = (pointer_expression "*pbVar5" * identifier)) ;) (expression_statement "pbVar5 = pbVar6;" (assignment_expression "pbVar5 = pbVar6" identifier = identifier) ;) }) while (parenthesized_expression "(iVar8 < (int)(uint)(this->header_).opcode_base)" ( (binary_expression "iVar8 < (int)(uint)(this->header_).opcode_base" identifier < (cast_expression "(int)(uint)(this->header_).opcode_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(uint)(this->header_).opcode_base" (call_expression "(uint)(this->header_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(this->header_)" ( (field_expression "this->header_" identifier -> field_identifier) ))) . field_identifier))) )) ;) })) (return_statement "return pbVar6;" return identifier ;) })) (labeled_statement "LAB_000db454:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,iVar11,\n                      PTR_s_alize_xindex_004323b4 + -0x601c);" statement_identifier : comment (expression_statement "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,iVar11,\n                      PTR_s_alize_xindex_004323b4 + -0x601c);" (call_expression "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,iVar11,\n                      PTR_s_alize_xindex_004323b4 + -0x601c)" identifier (argument_list "(PTR_s_alize_xindex_004323b4 + -0x6368,iVar11,\n                      PTR_s_alize_xindex_004323b4 + -0x601c)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x6368" identifier + number_literal) , identifier , (binary_expression "PTR_s_alize_xindex_004323b4 + -0x601c" identifier + number_literal) ))) ;)) }))
(translation_unit "void __thiscall\ngold::Sized_dwarf_line_info<32,false>::read_header_prolog\n          (Sized_dwarf_line_info<32,false> *this,uchar *param_1)\n\n{\n  uchar uVar1;\n  uchar uVar2;\n  byte bVar3;\n  uchar *puVar4;\n  byte *pbVar5;\n  uint uVar6;\n  int iVar7;\n  byte *pbVar8;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  \n  uVar6 = *(uint *)param_1;\n  iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n          ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n  if (iVar7 == -1) {\n    puVar4 = param_1 + 0xc;\n    *(undefined4 *)(this + 0x40) = 8;\n    uVar6 = *(uint *)(param_1 + 4);\n    iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n  }\n  else {\n    puVar4 = param_1 + 4;\n    *(undefined4 *)(this + 0x40) = 4;\n  }\n  *(int *)(this + 0xc) = iVar7;\n  *(undefined4 *)(this + 8) = 0;\n  iVar9 = 0x678;\n  if (puVar4 + iVar7 <= *(uchar **)(this + 0x4c)) {\n    uVar1 = puVar4[1];\n    uVar2 = *puVar4;\n    *(uint *)(this + 0x10) = (uint)CONCAT11(uVar1,uVar2);\n    if (*(int *)(this + 0x40) == 4) {\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = 0;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }\n    else {\n      uVar10 = *(uint *)(puVar4 + 6);\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }\n    *(int *)(this + 0x18) = iVar9;\n    *(int *)(this + 0x1c) = iVar7;\n    pbVar5 = puVar4 + *(int *)(this + 0x40) + 2;\n    *(uint *)(this + 0x20) = (uint)*pbVar5;\n    if (CONCAT11(uVar1,uVar2) < 4) {\n      pbVar5 = pbVar5 + 1;\n      *(undefined4 *)(this + 0x24) = 1;\n    }\n    else {\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      *(uint *)(this + 0x24) = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }\n    }\n    puVar11 = *(undefined1 **)(this + 0x34);\n    this[0x28] = (Sized_dwarf_line_info<32,false>)(*pbVar5 != 0);\n    uVar6 = (int)*(undefined1 **)(this + 0x38) - (int)puVar11;\n    this[0x29] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1);\n    *(uint *)(this + 0x2c) = (uint)pbVar5[2];\n    uVar10 = (byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3) + 1;\n    this[0x30] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3);\n    if (uVar6 < uVar10) {\n      std::vector<unsigned_char,std::allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                );\n      puVar11 = *(undefined1 **)(this + 0x34);\n    }\n    else if ((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)) {\n      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;\n    }\n    *puVar11 = 0;\n    if (1 < (byte)this[0x30]) {\n      iVar7 = 1;\n      pbVar5 = pbVar5 + 4;\n      do {\n        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);\n        iVar7 = iVar7 + 1;\n        *pbVar8 = *pbVar5;\n        pbVar5 = pbVar5 + 1;\n      } while (iVar7 < (int)(uint)(byte)this[0x30]);\n    }\n    return;\n  }\nLAB_000db454:\n                    \n  do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,iVar9,\n                      PTR_s_alize_xindex_004323b4 + -0x601c);\n}\n\n" (declaration "void __thiscall\ngold::Sized_dwarf_line_info<32,false>::read_header_prolog\n          (Sized_dwarf_line_info<32,false> *this,uchar *param_1)\n\n{\n  uchar uVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "false>::read_header_prolog\n          (Sized_dwarf_line_info<32,false> *this,uchar *param_1)\n\n{\n  uchar" identifier > : : (function_declarator "read_header_prolog\n          (Sized_dwarf_line_info<32,false> *this,uchar *param_1)" identifier (parameter_list "(Sized_dwarf_line_info<32,false> *this,uchar *param_1)" ( (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 "uchar *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) { identifier) identifier ;) (declaration "uchar uVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "uchar *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (expression_statement "uVar6 = *(uint *)param_1;" (assignment_expression "uVar6 = *(uint *)param_1" identifier = (pointer_expression "*(uint *)param_1" * (cast_expression "(uint *)param_1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n          ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n          ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n          ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10)" ( (binary_expression "(uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10" (binary_expression "(uVar6 >> 0x10) << 0x18" (parenthesized_expression "(uVar6 >> 0x10)" ( (binary_expression "uVar6 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar6 >> 0x18) << 0x10" (parenthesized_expression "(uVar6 >> 0x18)" ( (binary_expression "uVar6 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff)" ( (binary_expression "(uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff" (binary_expression "(uVar6 & 0xff) << 8" (parenthesized_expression "(uVar6 & 0xff)" ( (binary_expression "uVar6 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar6 >> 8 & 0xff" (binary_expression "uVar6 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (if_statement "if (iVar7 == -1) {\n    puVar4 = param_1 + 0xc;\n    *(undefined4 *)(this + 0x40) = 8;\n    uVar6 = *(uint *)(param_1 + 4);\n    iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n  }\n  else {\n    puVar4 = param_1 + 4;\n    *(undefined4 *)(this + 0x40) = 4;\n  }" if (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) (compound_statement "{\n    puVar4 = param_1 + 0xc;\n    *(undefined4 *)(this + 0x40) = 8;\n    uVar6 = *(uint *)(param_1 + 4);\n    iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n  }" { (expression_statement "puVar4 = param_1 + 0xc;" (assignment_expression "puVar4 = param_1 + 0xc" identifier = (binary_expression "param_1 + 0xc" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(this + 0x40) = 8;" (assignment_expression "*(undefined4 *)(this + 0x40) = 8" (pointer_expression "*(undefined4 *)(this + 0x40)" * (cast_expression "(undefined4 *)(this + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x40)" ( (binary_expression "this + 0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar6 = *(uint *)(param_1 + 4);" (assignment_expression "uVar6 = *(uint *)(param_1 + 4)" identifier = (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10)" ( (binary_expression "(uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10" (binary_expression "(uVar6 >> 0x10) << 0x18" (parenthesized_expression "(uVar6 >> 0x10)" ( (binary_expression "uVar6 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar6 >> 0x18) << 0x10" (parenthesized_expression "(uVar6 >> 0x18)" ( (binary_expression "uVar6 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff)" ( (binary_expression "(uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff" (binary_expression "(uVar6 & 0xff) << 8" (parenthesized_expression "(uVar6 & 0xff)" ( (binary_expression "uVar6 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar6 >> 8 & 0xff" (binary_expression "uVar6 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) }) (else_clause "else {\n    puVar4 = param_1 + 4;\n    *(undefined4 *)(this + 0x40) = 4;\n  }" else (compound_statement "{\n    puVar4 = param_1 + 4;\n    *(undefined4 *)(this + 0x40) = 4;\n  }" { (expression_statement "puVar4 = param_1 + 4;" (assignment_expression "puVar4 = param_1 + 4" identifier = (binary_expression "param_1 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(this + 0x40) = 4;" (assignment_expression "*(undefined4 *)(this + 0x40) = 4" (pointer_expression "*(undefined4 *)(this + 0x40)" * (cast_expression "(undefined4 *)(this + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x40)" ( (binary_expression "this + 0x40" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "*(int *)(this + 0xc) = iVar7;" (assignment_expression "*(int *)(this + 0xc) = iVar7" (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(this + 8) = 0;" (assignment_expression "*(undefined4 *)(this + 8) = 0" (pointer_expression "*(undefined4 *)(this + 8)" * (cast_expression "(undefined4 *)(this + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = 0x678;" (assignment_expression "iVar9 = 0x678" identifier = number_literal) ;) (if_statement "if (puVar4 + iVar7 <= *(uchar **)(this + 0x4c)) {\n    uVar1 = puVar4[1];\n    uVar2 = *puVar4;\n    *(uint *)(this + 0x10) = (uint)CONCAT11(uVar1,uVar2);\n    if (*(int *)(this + 0x40) == 4) {\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = 0;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }\n    else {\n      uVar10 = *(uint *)(puVar4 + 6);\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }\n    *(int *)(this + 0x18) = iVar9;\n    *(int *)(this + 0x1c) = iVar7;\n    pbVar5 = puVar4 + *(int *)(this + 0x40) + 2;\n    *(uint *)(this + 0x20) = (uint)*pbVar5;\n    if (CONCAT11(uVar1,uVar2) < 4) {\n      pbVar5 = pbVar5 + 1;\n      *(undefined4 *)(this + 0x24) = 1;\n    }\n    else {\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      *(uint *)(this + 0x24) = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }\n    }\n    puVar11 = *(undefined1 **)(this + 0x34);\n    this[0x28] = (Sized_dwarf_line_info<32,false>)(*pbVar5 != 0);\n    uVar6 = (int)*(undefined1 **)(this + 0x38) - (int)puVar11;\n    this[0x29] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1);\n    *(uint *)(this + 0x2c) = (uint)pbVar5[2];\n    uVar10 = (byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3) + 1;\n    this[0x30] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3);\n    if (uVar6 < uVar10) {\n      std::vector<unsigned_char,std::allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                );\n      puVar11 = *(undefined1 **)(this + 0x34);\n    }\n    else if ((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)) {\n      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;\n    }\n    *puVar11 = 0;\n    if (1 < (byte)this[0x30]) {\n      iVar7 = 1;\n      pbVar5 = pbVar5 + 4;\n      do {\n        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);\n        iVar7 = iVar7 + 1;\n        *pbVar8 = *pbVar5;\n        pbVar5 = pbVar5 + 1;\n      } while (iVar7 < (int)(uint)(byte)this[0x30]);\n    }\n    return;\n  }" if (parenthesized_expression "(puVar4 + iVar7 <= *(uchar **)(this + 0x4c))" ( (binary_expression "puVar4 + iVar7 <= *(uchar **)(this + 0x4c)" (binary_expression "puVar4 + iVar7" identifier + identifier) <= (pointer_expression "*(uchar **)(this + 0x4c)" * (cast_expression "(uchar **)(this + 0x4c)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x4c)" ( (binary_expression "this + 0x4c" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar1 = puVar4[1];\n    uVar2 = *puVar4;\n    *(uint *)(this + 0x10) = (uint)CONCAT11(uVar1,uVar2);\n    if (*(int *)(this + 0x40) == 4) {\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = 0;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }\n    else {\n      uVar10 = *(uint *)(puVar4 + 6);\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }\n    *(int *)(this + 0x18) = iVar9;\n    *(int *)(this + 0x1c) = iVar7;\n    pbVar5 = puVar4 + *(int *)(this + 0x40) + 2;\n    *(uint *)(this + 0x20) = (uint)*pbVar5;\n    if (CONCAT11(uVar1,uVar2) < 4) {\n      pbVar5 = pbVar5 + 1;\n      *(undefined4 *)(this + 0x24) = 1;\n    }\n    else {\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      *(uint *)(this + 0x24) = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }\n    }\n    puVar11 = *(undefined1 **)(this + 0x34);\n    this[0x28] = (Sized_dwarf_line_info<32,false>)(*pbVar5 != 0);\n    uVar6 = (int)*(undefined1 **)(this + 0x38) - (int)puVar11;\n    this[0x29] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1);\n    *(uint *)(this + 0x2c) = (uint)pbVar5[2];\n    uVar10 = (byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3) + 1;\n    this[0x30] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3);\n    if (uVar6 < uVar10) {\n      std::vector<unsigned_char,std::allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                );\n      puVar11 = *(undefined1 **)(this + 0x34);\n    }\n    else if ((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)) {\n      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;\n    }\n    *puVar11 = 0;\n    if (1 < (byte)this[0x30]) {\n      iVar7 = 1;\n      pbVar5 = pbVar5 + 4;\n      do {\n        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);\n        iVar7 = iVar7 + 1;\n        *pbVar8 = *pbVar5;\n        pbVar5 = pbVar5 + 1;\n      } while (iVar7 < (int)(uint)(byte)this[0x30]);\n    }\n    return;\n  }" { (expression_statement "uVar1 = puVar4[1];" (assignment_expression "uVar1 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = *puVar4;" (assignment_expression "uVar2 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*(uint *)(this + 0x10) = (uint)CONCAT11(uVar1,uVar2);" (assignment_expression "*(uint *)(this + 0x10) = (uint)CONCAT11(uVar1,uVar2)" (pointer_expression "*(uint *)(this + 0x10)" * (cast_expression "(uint *)(this + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) = (cast_expression "(uint)CONCAT11(uVar1,uVar2)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CONCAT11(uVar1,uVar2)" identifier (argument_list "(uVar1,uVar2)" ( identifier , identifier ))))) ;) (if_statement "if (*(int *)(this + 0x40) == 4) {\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = 0;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }\n    else {\n      uVar10 = *(uint *)(puVar4 + 6);\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }" if (parenthesized_expression "(*(int *)(this + 0x40) == 4)" ( (binary_expression "*(int *)(this + 0x40) == 4" (pointer_expression "*(int *)(this + 0x40)" * (cast_expression "(int *)(this + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x40)" ( (binary_expression "this + 0x40" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = 0;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }" { (expression_statement "uVar6 = *(uint *)(puVar4 + 2);" (assignment_expression "uVar6 = *(uint *)(puVar4 + 2)" identifier = (pointer_expression "*(uint *)(puVar4 + 2)" * (cast_expression "(uint *)(puVar4 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10)" ( (binary_expression "(uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10" (binary_expression "(uVar6 >> 0x10) << 0x18" (parenthesized_expression "(uVar6 >> 0x10)" ( (binary_expression "uVar6 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar6 >> 0x18) << 0x10" (parenthesized_expression "(uVar6 >> 0x18)" ( (binary_expression "uVar6 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff)" ( (binary_expression "(uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff" (binary_expression "(uVar6 & 0xff) << 8" (parenthesized_expression "(uVar6 & 0xff)" ( (binary_expression "uVar6 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar6 >> 8 & 0xff" (binary_expression "uVar6 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) }) (else_clause "else {\n      uVar10 = *(uint *)(puVar4 + 6);\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }" else (compound_statement "{\n      uVar10 = *(uint *)(puVar4 + 6);\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }" { (expression_statement "uVar10 = *(uint *)(puVar4 + 6);" (assignment_expression "uVar10 = *(uint *)(puVar4 + 6)" identifier = (pointer_expression "*(uint *)(puVar4 + 6)" * (cast_expression "(uint *)(puVar4 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 6)" ( (binary_expression "puVar4 + 6" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(uint *)(puVar4 + 2);" (assignment_expression "uVar6 = *(uint *)(puVar4 + 2)" identifier = (pointer_expression "*(uint *)(puVar4 + 2)" * (cast_expression "(uint *)(puVar4 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10)" ( (binary_expression "(uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10" (binary_expression "(uVar10 >> 0x10) << 0x18" (parenthesized_expression "(uVar10 >> 0x10)" ( (binary_expression "uVar10 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar10 >> 0x18) << 0x10" (parenthesized_expression "(uVar10 >> 0x18)" ( (binary_expression "uVar10 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff)" ( (binary_expression "(uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff" (binary_expression "(uVar10 & 0xff) << 8" (parenthesized_expression "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar10 >> 8 & 0xff" (binary_expression "uVar10 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10)" ( (binary_expression "(uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10" (binary_expression "(uVar6 >> 0x10) << 0x18" (parenthesized_expression "(uVar6 >> 0x10)" ( (binary_expression "uVar6 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar6 >> 0x18) << 0x10" (parenthesized_expression "(uVar6 >> 0x18)" ( (binary_expression "uVar6 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff)" ( (binary_expression "(uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff" (binary_expression "(uVar6 & 0xff) << 8" (parenthesized_expression "(uVar6 & 0xff)" ( (binary_expression "uVar6 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar6 >> 8 & 0xff" (binary_expression "uVar6 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) }))) (expression_statement "*(int *)(this + 0x18) = iVar9;" (assignment_expression "*(int *)(this + 0x18) = iVar9" (pointer_expression "*(int *)(this + 0x18)" * (cast_expression "(int *)(this + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 0x1c) = iVar7;" (assignment_expression "*(int *)(this + 0x1c) = iVar7" (pointer_expression "*(int *)(this + 0x1c)" * (cast_expression "(int *)(this + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x1c)" ( (binary_expression "this + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar5 = puVar4 + *(int *)(this + 0x40) + 2;" (assignment_expression "pbVar5 = puVar4 + *(int *)(this + 0x40) + 2" identifier = (binary_expression "puVar4 + *(int *)(this + 0x40) + 2" (binary_expression "puVar4 + *(int *)(this + 0x40)" identifier + (pointer_expression "*(int *)(this + 0x40)" * (cast_expression "(int *)(this + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x40)" ( (binary_expression "this + 0x40" identifier + number_literal) ))))) + number_literal)) ;) (expression_statement "*(uint *)(this + 0x20) = (uint)*pbVar5;" (assignment_expression "*(uint *)(this + 0x20) = (uint)*pbVar5" (pointer_expression "*(uint *)(this + 0x20)" * (cast_expression "(uint *)(this + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) = (binary_expression "(uint)*pbVar5" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (CONCAT11(uVar1,uVar2) < 4) {\n      pbVar5 = pbVar5 + 1;\n      *(undefined4 *)(this + 0x24) = 1;\n    }\n    else {\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      *(uint *)(this + 0x24) = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }\n    }" if (parenthesized_expression "(CONCAT11(uVar1,uVar2) < 4)" ( (binary_expression "CONCAT11(uVar1,uVar2) < 4" (call_expression "CONCAT11(uVar1,uVar2)" identifier (argument_list "(uVar1,uVar2)" ( identifier , identifier ))) < number_literal) )) (compound_statement "{\n      pbVar5 = pbVar5 + 1;\n      *(undefined4 *)(this + 0x24) = 1;\n    }" { (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(this + 0x24) = 1;" (assignment_expression "*(undefined4 *)(this + 0x24) = 1" (pointer_expression "*(undefined4 *)(this + 0x24)" * (cast_expression "(undefined4 *)(this + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      *(uint *)(this + 0x24) = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }\n    }" else (compound_statement "{\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      *(uint *)(this + 0x24) = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }\n    }" { (expression_statement "bVar3 = pbVar5[1];" (assignment_expression "bVar3 = pbVar5[1]" identifier = (subscript_expression "pbVar5[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar5 = pbVar5 + 2;" (assignment_expression "pbVar5 = pbVar5 + 2" identifier = (binary_expression "pbVar5 + 2" identifier + number_literal)) ;) (expression_statement "*(uint *)(this + 0x24) = (uint)bVar3;" (assignment_expression "*(uint *)(this + 0x24) = (uint)bVar3" (pointer_expression "*(uint *)(this + 0x24)" * (cast_expression "(uint *)(this + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) )))) = (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar3 != 1) {\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }" if (parenthesized_expression "(bVar3 != 1)" ( (binary_expression "bVar3 != 1" identifier != number_literal) )) (compound_statement "{\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }" { (expression_statement "iVar9 = 0x68e;" (assignment_expression "iVar9 = 0x68e" identifier = number_literal) ;) (goto_statement "goto LAB_000db454;" goto statement_identifier ;) })) }))) (expression_statement "puVar11 = *(undefined1 **)(this + 0x34);" (assignment_expression "puVar11 = *(undefined1 **)(this + 0x34)" identifier = (pointer_expression "*(undefined1 **)(this + 0x34)" * (cast_expression "(undefined1 **)(this + 0x34)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) ))))) ;) (expression_statement "this[0x28] = (Sized_dwarf_line_info<32,false>)(*pbVar5 != 0);" (assignment_expression "this[0x28] = (Sized_dwarf_line_info<32,false>)(*pbVar5 != 0)" (subscript_expression "this[0x28]" identifier [ number_literal ]) = (call_expression "(Sized_dwarf_line_info<32,false>)(*pbVar5 != 0)" (parenthesized_expression "(Sized_dwarf_line_info<32,false>)" ( (comma_expression "Sized_dwarf_line_info<32,false" (binary_expression "Sized_dwarf_line_info<32" identifier < number_literal) , false) (ERROR ">" >) )) (argument_list "(*pbVar5 != 0)" ( (binary_expression "*pbVar5 != 0" (pointer_expression "*pbVar5" * identifier) != number_literal) )))) ;) (expression_statement "uVar6 = (int)*(undefined1 **)(this + 0x38) - (int)puVar11;" (assignment_expression "uVar6 = (int)*(undefined1 **)(this + 0x38) - (int)puVar11" identifier = (binary_expression "(int)*(undefined1 **)(this + 0x38) - (int)puVar11" (cast_expression "(int)*(undefined1 **)(this + 0x38)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(undefined1 **)(this + 0x38)" * (cast_expression "(undefined1 **)(this + 0x38)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x38)" ( (binary_expression "this + 0x38" identifier + number_literal) ))))) - (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "this[0x29] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1);" (assignment_expression "this[0x29] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1)" (subscript_expression "this[0x29]" identifier [ number_literal ]) = (pointer_expression "*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1)" * (call_expression "(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1)" (parenthesized_expression "(Sized_dwarf_line_info<32,false> *)" ( (comma_expression "Sized_dwarf_line_info<32,false> *" (binary_expression "Sized_dwarf_line_info<32" identifier < number_literal) , (binary_expression "false> *" false > (pointer_expression "*" * identifier))) )) (argument_list "(pbVar5 + 1)" ( (binary_expression "pbVar5 + 1" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(this + 0x2c) = (uint)pbVar5[2];" (assignment_expression "*(uint *)(this + 0x2c) = (uint)pbVar5[2]" (pointer_expression "*(uint *)(this + 0x2c)" * (cast_expression "(uint *)(this + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x2c)" ( (binary_expression "this + 0x2c" identifier + number_literal) )))) = (cast_expression "(uint)pbVar5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar5[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar10 = (byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3) + 1;" (assignment_expression "uVar10 = (byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3) + 1" identifier = (binary_expression "(byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3) + 1" (binary_expression "(byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3)" (parenthesized_expression "(byte)" ( identifier )) * (call_expression "(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3)" (parenthesized_expression "(Sized_dwarf_line_info<32,false> *)" ( (comma_expression "Sized_dwarf_line_info<32,false> *" (binary_expression "Sized_dwarf_line_info<32" identifier < number_literal) , (binary_expression "false> *" false > (pointer_expression "*" * identifier))) )) (argument_list "(pbVar5 + 3)" ( (binary_expression "pbVar5 + 3" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "this[0x30] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3);" (assignment_expression "this[0x30] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3)" (subscript_expression "this[0x30]" identifier [ number_literal ]) = (pointer_expression "*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3)" * (call_expression "(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3)" (parenthesized_expression "(Sized_dwarf_line_info<32,false> *)" ( (comma_expression "Sized_dwarf_line_info<32,false> *" (binary_expression "Sized_dwarf_line_info<32" identifier < number_literal) , (binary_expression "false> *" false > (pointer_expression "*" * identifier))) )) (argument_list "(pbVar5 + 3)" ( (binary_expression "pbVar5 + 3" identifier + number_literal) ))))) ;) (if_statement "if (uVar6 < uVar10) {\n      std::vector<unsigned_char,std::allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                );\n      puVar11 = *(undefined1 **)(this + 0x34);\n    }\n    else if ((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)) {\n      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;\n    }" if (parenthesized_expression "(uVar6 < uVar10)" ( (binary_expression "uVar6 < uVar10" identifier < identifier) )) (compound_statement "{\n      std::vector<unsigned_char,std::allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                );\n      puVar11 = *(undefined1 **)(this + 0x34);\n    }" { (labeled_statement "std::vector<unsigned_char,std::allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                );" statement_identifier (ERROR "::vector<unsigned_char,std:" : : (comma_expression "vector<unsigned_char,std" (binary_expression "vector<unsigned_char" identifier < identifier) , identifier) :) : (expression_statement "allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                );" (binary_expression "allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                )" identifier < (binary_expression "unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                )" identifier >> (ERROR "::" : :) (call_expression "_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                )" identifier (argument_list "((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                )" ( (call_expression "(vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34)" (parenthesized_expression "(vector<unsigned_char,std::allocator<unsigned_char>> *)" ( (ERROR "vector<unsigned_char,std::" (comma_expression "vector<unsigned_char,std" (binary_expression "vector<unsigned_char" identifier < identifier) , identifier) : :) (binary_expression "allocator<unsigned_char>> *" identifier < (binary_expression "unsigned_char>> *" identifier >> (pointer_expression "*" * identifier))) )) (argument_list "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) ))) , (binary_expression "uVar10 - uVar6" identifier - identifier) ))))) ;)) (expression_statement "puVar11 = *(undefined1 **)(this + 0x34);" (assignment_expression "puVar11 = *(undefined1 **)(this + 0x34)" identifier = (pointer_expression "*(undefined1 **)(this + 0x34)" * (cast_expression "(undefined1 **)(this + 0x34)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) ))))) ;) }) (else_clause "else if ((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)) {\n      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;\n    }" else (if_statement "if ((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)) {\n      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;\n    }" if (parenthesized_expression "((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10))" ( (binary_expression "(uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)" (parenthesized_expression "(uVar10 < uVar6)" ( (binary_expression "uVar10 < uVar6" identifier < identifier) )) && (parenthesized_expression "(*(undefined1 **)(this + 0x38) != puVar11 + uVar10)" ( (binary_expression "*(undefined1 **)(this + 0x38) != puVar11 + uVar10" (pointer_expression "*(undefined1 **)(this + 0x38)" * (cast_expression "(undefined1 **)(this + 0x38)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x38)" ( (binary_expression "this + 0x38" identifier + number_literal) )))) != (binary_expression "puVar11 + uVar10" identifier + identifier)) ))) )) (compound_statement "{\n      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;\n    }" { (expression_statement "*(undefined1 **)(this + 0x38) = puVar11 + uVar10;" (assignment_expression "*(undefined1 **)(this + 0x38) = puVar11 + uVar10" (pointer_expression "*(undefined1 **)(this + 0x38)" * (cast_expression "(undefined1 **)(this + 0x38)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x38)" ( (binary_expression "this + 0x38" identifier + number_literal) )))) = (binary_expression "puVar11 + uVar10" identifier + identifier)) ;) })))) (expression_statement "*puVar11 = 0;" (assignment_expression "*puVar11 = 0" (pointer_expression "*puVar11" * identifier) = number_literal) ;) (if_statement "if (1 < (byte)this[0x30]) {\n      iVar7 = 1;\n      pbVar5 = pbVar5 + 4;\n      do {\n        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);\n        iVar7 = iVar7 + 1;\n        *pbVar8 = *pbVar5;\n        pbVar5 = pbVar5 + 1;\n      } while (iVar7 < (int)(uint)(byte)this[0x30]);\n    }" if (parenthesized_expression "(1 < (byte)this[0x30])" ( (binary_expression "1 < (byte)this[0x30]" number_literal < (cast_expression "(byte)this[0x30]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "this[0x30]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar7 = 1;\n      pbVar5 = pbVar5 + 4;\n      do {\n        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);\n        iVar7 = iVar7 + 1;\n        *pbVar8 = *pbVar5;\n        pbVar5 = pbVar5 + 1;\n      } while (iVar7 < (int)(uint)(byte)this[0x30]);\n    }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "pbVar5 = pbVar5 + 4;" (assignment_expression "pbVar5 = pbVar5 + 4" identifier = (binary_expression "pbVar5 + 4" identifier + number_literal)) ;) (do_statement "do {\n        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);\n        iVar7 = iVar7 + 1;\n        *pbVar8 = *pbVar5;\n        pbVar5 = pbVar5 + 1;\n      } while (iVar7 < (int)(uint)(byte)this[0x30]);" do (compound_statement "{\n        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);\n        iVar7 = iVar7 + 1;\n        *pbVar8 = *pbVar5;\n        pbVar5 = pbVar5 + 1;\n      }" { (expression_statement "pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);" (assignment_expression "pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7)" identifier = (cast_expression "(byte *)(*(int *)(this + 0x34) + iVar7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 0x34) + iVar7)" ( (binary_expression "*(int *)(this + 0x34) + iVar7" (pointer_expression "*(int *)(this + 0x34)" * (cast_expression "(int *)(this + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar8 = *pbVar5;" (assignment_expression "*pbVar8 = *pbVar5" (pointer_expression "*pbVar8" * identifier) = (pointer_expression "*pbVar5" * identifier)) ;) (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 < (int)(uint)(byte)this[0x30])" ( (binary_expression "iVar7 < (int)(uint)(byte)this[0x30]" identifier < (cast_expression "(int)(uint)(byte)this[0x30]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)this[0x30]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)this[0x30]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "this[0x30]" identifier [ number_literal ]))))) )) ;) })) (return_statement "return;" return ;) })) (labeled_statement "LAB_000db454:\n                    \n  do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,iVar9,\n                      PTR_s_alize_xindex_004323b4 + -0x601c);" statement_identifier : (expression_statement "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,iVar9,\n                      PTR_s_alize_xindex_004323b4 + -0x601c);" (call_expression "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,iVar9,\n                      PTR_s_alize_xindex_004323b4 + -0x601c)" identifier (argument_list "(PTR_s_alize_xindex_004323b4 + -0x6368,iVar9,\n                      PTR_s_alize_xindex_004323b4 + -0x601c)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x6368" identifier + number_literal) , identifier , (binary_expression "PTR_s_alize_xindex_004323b4 + -0x601c" identifier + number_literal) ))) ;)) (ERROR "}" }))
(translation_unit (declaration TYPE (ms_call_modifier __thiscall) (ERROR IDENT : :) IDENT (ERROR < LIT) , (ERROR IDENT > : : (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) (ERROR < LIT) , (parameter_declaration TYPE (ERROR >) (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) { IDENT) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_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) )))) = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , BOOL) (ERROR >) )) (argument_list ( (binary_expression (pointer_expression * IDENT) != LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (binary_expression BOOL > (pointer_expression * IDENT))) )) (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (binary_expression BOOL > (pointer_expression * IDENT))) )) (argument_list ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (binary_expression BOOL > (pointer_expression * IDENT))) )) (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (labeled_statement statement_identifier (ERROR : : (comma_expression (binary_expression IDENT < IDENT) , IDENT) :) : (expression_statement (binary_expression IDENT < (binary_expression IDENT >> (ERROR : :) (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( (ERROR (comma_expression (binary_expression IDENT < IDENT) , IDENT) : :) (binary_expression IDENT < (binary_expression IDENT >> (pointer_expression * IDENT))) )) (argument_list ( (binary_expression IDENT + LIT) ))) , (binary_expression IDENT - IDENT) ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (binary_expression IDENT + IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + IDENT)) ;) })))) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))))) )) ;) })) (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;)) (ERROR }))
(declaration "void __thiscall\ngold::Sized_dwarf_line_info<32,false>::read_header_prolog\n          (Sized_dwarf_line_info<32,false> *this,uchar *param_1)\n\n{\n  uchar uVar1;" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::" (identifier "gold") (: ":") (: ":")) (identifier "Sized_dwarf_line_info") (ERROR "<32" (< "<") (number_literal "32")) (, ",") (ERROR "false>::read_header_prolog\n          (Sized_dwarf_line_info<32,false> *this,uchar *param_1)\n\n{\n  uchar" (identifier "false") (> ">") (: ":") (: ":") (function_declarator "read_header_prolog\n          (Sized_dwarf_line_info<32,false> *this,uchar *param_1)" (identifier "read_header_prolog") (parameter_list "(Sized_dwarf_line_info<32,false> *this,uchar *param_1)" (( "(") (parameter_declaration "Sized_dwarf_line_info" (type_identifier "Sized_dwarf_line_info")) (ERROR "<32" (< "<") (number_literal "32")) (, ",") (parameter_declaration "false> *this" (type_identifier "false") (ERROR ">" (> ">")) (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "uchar *param_1" (type_identifier "uchar") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) ({ "{") (identifier "uchar")) (identifier "uVar1") (; ";")) (declaration "uchar uVar2;" (type_identifier "uchar") (identifier "uVar2") (; ";")) (declaration "byte bVar3;" (type_identifier "byte") (identifier "bVar3") (; ";")) (declaration "uchar *puVar4;" (type_identifier "uchar") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "byte *pbVar5;" (type_identifier "byte") (pointer_declarator "*pbVar5" (* "*") (identifier "pbVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "undefined1 *puVar11;" (type_identifier "undefined1") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (expression_statement "uVar6 = *(uint *)param_1;" (assignment_expression "uVar6 = *(uint *)param_1" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)param_1" (* "*") (cast_expression "(uint *)param_1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")))) (; ";")) (expression_statement "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n          ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n          ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (identifier "iVar7") (= "=") (binary_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n          ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10" (binary_expression "(uVar6 >> 0x10) << 0x18" (parenthesized_expression "(uVar6 >> 0x10)" (( "(") (binary_expression "uVar6 >> 0x10" (identifier "uVar6") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar6 >> 0x18) << 0x10" (parenthesized_expression "(uVar6 >> 0x18)" (( "(") (binary_expression "uVar6 >> 0x18" (identifier "uVar6") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff)" (( "(") (binary_expression "(uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff" (binary_expression "(uVar6 & 0xff) << 8" (parenthesized_expression "(uVar6 & 0xff)" (( "(") (binary_expression "uVar6 & 0xff" (identifier "uVar6") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar6 >> 8 & 0xff" (binary_expression "uVar6 >> 8" (identifier "uVar6") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (if_statement "if (iVar7 == -1) {\n    puVar4 = param_1 + 0xc;\n    *(undefined4 *)(this + 0x40) = 8;\n    uVar6 = *(uint *)(param_1 + 4);\n    iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n  }\n  else {\n    puVar4 = param_1 + 4;\n    *(undefined4 *)(this + 0x40) = 4;\n  }" (if "if") (parenthesized_expression "(iVar7 == -1)" (( "(") (binary_expression "iVar7 == -1" (identifier "iVar7") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    puVar4 = param_1 + 0xc;\n    *(undefined4 *)(this + 0x40) = 8;\n    uVar6 = *(uint *)(param_1 + 4);\n    iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n  }" ({ "{") (expression_statement "puVar4 = param_1 + 0xc;" (assignment_expression "puVar4 = param_1 + 0xc" (identifier "puVar4") (= "=") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "*(undefined4 *)(this + 0x40) = 8;" (assignment_expression "*(undefined4 *)(this + 0x40) = 8" (pointer_expression "*(undefined4 *)(this + 0x40)" (* "*") (cast_expression "(undefined4 *)(this + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x40)" (( "(") (binary_expression "this + 0x40" (identifier "this") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar6 = *(uint *)(param_1 + 4);" (assignment_expression "uVar6 = *(uint *)(param_1 + 4)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(param_1 + 4)" (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (identifier "iVar7") (= "=") (binary_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n            ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10" (binary_expression "(uVar6 >> 0x10) << 0x18" (parenthesized_expression "(uVar6 >> 0x10)" (( "(") (binary_expression "uVar6 >> 0x10" (identifier "uVar6") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar6 >> 0x18) << 0x10" (parenthesized_expression "(uVar6 >> 0x18)" (( "(") (binary_expression "uVar6 >> 0x18" (identifier "uVar6") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff)" (( "(") (binary_expression "(uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff" (binary_expression "(uVar6 & 0xff) << 8" (parenthesized_expression "(uVar6 & 0xff)" (( "(") (binary_expression "uVar6 & 0xff" (identifier "uVar6") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar6 >> 8 & 0xff" (binary_expression "uVar6 >> 8" (identifier "uVar6") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (} "}")) (else_clause "else {\n    puVar4 = param_1 + 4;\n    *(undefined4 *)(this + 0x40) = 4;\n  }" (else "else") (compound_statement "{\n    puVar4 = param_1 + 4;\n    *(undefined4 *)(this + 0x40) = 4;\n  }" ({ "{") (expression_statement "puVar4 = param_1 + 4;" (assignment_expression "puVar4 = param_1 + 4" (identifier "puVar4") (= "=") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*(undefined4 *)(this + 0x40) = 4;" (assignment_expression "*(undefined4 *)(this + 0x40) = 4" (pointer_expression "*(undefined4 *)(this + 0x40)" (* "*") (cast_expression "(undefined4 *)(this + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x40)" (( "(") (binary_expression "this + 0x40" (identifier "this") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (number_literal "4")) (; ";")) (} "}")))) (expression_statement "*(int *)(this + 0xc) = iVar7;" (assignment_expression "*(int *)(this + 0xc) = iVar7" (pointer_expression "*(int *)(this + 0xc)" (* "*") (cast_expression "(int *)(this + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0xc)" (( "(") (binary_expression "this + 0xc" (identifier "this") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "*(undefined4 *)(this + 8) = 0;" (assignment_expression "*(undefined4 *)(this + 8) = 0" (pointer_expression "*(undefined4 *)(this + 8)" (* "*") (cast_expression "(undefined4 *)(this + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar9 = 0x678;" (assignment_expression "iVar9 = 0x678" (identifier "iVar9") (= "=") (number_literal "0x678")) (; ";")) (if_statement "if (puVar4 + iVar7 <= *(uchar **)(this + 0x4c)) {\n    uVar1 = puVar4[1];\n    uVar2 = *puVar4;\n    *(uint *)(this + 0x10) = (uint)CONCAT11(uVar1,uVar2);\n    if (*(int *)(this + 0x40) == 4) {\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = 0;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }\n    else {\n      uVar10 = *(uint *)(puVar4 + 6);\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }\n    *(int *)(this + 0x18) = iVar9;\n    *(int *)(this + 0x1c) = iVar7;\n    pbVar5 = puVar4 + *(int *)(this + 0x40) + 2;\n    *(uint *)(this + 0x20) = (uint)*pbVar5;\n    if (CONCAT11(uVar1,uVar2) < 4) {\n      pbVar5 = pbVar5 + 1;\n      *(undefined4 *)(this + 0x24) = 1;\n    }\n    else {\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      *(uint *)(this + 0x24) = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }\n    }\n    puVar11 = *(undefined1 **)(this + 0x34);\n    this[0x28] = (Sized_dwarf_line_info<32,false>)(*pbVar5 != 0);\n    uVar6 = (int)*(undefined1 **)(this + 0x38) - (int)puVar11;\n    this[0x29] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1);\n    *(uint *)(this + 0x2c) = (uint)pbVar5[2];\n    uVar10 = (byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3) + 1;\n    this[0x30] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3);\n    if (uVar6 < uVar10) {\n      std::vector<unsigned_char,std::allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                );\n      puVar11 = *(undefined1 **)(this + 0x34);\n    }\n    else if ((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)) {\n      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;\n    }\n    *puVar11 = 0;\n    if (1 < (byte)this[0x30]) {\n      iVar7 = 1;\n      pbVar5 = pbVar5 + 4;\n      do {\n        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);\n        iVar7 = iVar7 + 1;\n        *pbVar8 = *pbVar5;\n        pbVar5 = pbVar5 + 1;\n      } while (iVar7 < (int)(uint)(byte)this[0x30]);\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(puVar4 + iVar7 <= *(uchar **)(this + 0x4c))" (( "(") (binary_expression "puVar4 + iVar7 <= *(uchar **)(this + 0x4c)" (binary_expression "puVar4 + iVar7" (identifier "puVar4") (+ "+") (identifier "iVar7")) (<= "<=") (pointer_expression "*(uchar **)(this + 0x4c)" (* "*") (cast_expression "(uchar **)(this + 0x4c)" (( "(") (type_descriptor "uchar **" (type_identifier "uchar") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x4c)" (( "(") (binary_expression "this + 0x4c" (identifier "this") (+ "+") (number_literal "0x4c")) () ")"))))) () ")")) (compound_statement "{\n    uVar1 = puVar4[1];\n    uVar2 = *puVar4;\n    *(uint *)(this + 0x10) = (uint)CONCAT11(uVar1,uVar2);\n    if (*(int *)(this + 0x40) == 4) {\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = 0;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }\n    else {\n      uVar10 = *(uint *)(puVar4 + 6);\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }\n    *(int *)(this + 0x18) = iVar9;\n    *(int *)(this + 0x1c) = iVar7;\n    pbVar5 = puVar4 + *(int *)(this + 0x40) + 2;\n    *(uint *)(this + 0x20) = (uint)*pbVar5;\n    if (CONCAT11(uVar1,uVar2) < 4) {\n      pbVar5 = pbVar5 + 1;\n      *(undefined4 *)(this + 0x24) = 1;\n    }\n    else {\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      *(uint *)(this + 0x24) = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }\n    }\n    puVar11 = *(undefined1 **)(this + 0x34);\n    this[0x28] = (Sized_dwarf_line_info<32,false>)(*pbVar5 != 0);\n    uVar6 = (int)*(undefined1 **)(this + 0x38) - (int)puVar11;\n    this[0x29] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1);\n    *(uint *)(this + 0x2c) = (uint)pbVar5[2];\n    uVar10 = (byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3) + 1;\n    this[0x30] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3);\n    if (uVar6 < uVar10) {\n      std::vector<unsigned_char,std::allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                );\n      puVar11 = *(undefined1 **)(this + 0x34);\n    }\n    else if ((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)) {\n      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;\n    }\n    *puVar11 = 0;\n    if (1 < (byte)this[0x30]) {\n      iVar7 = 1;\n      pbVar5 = pbVar5 + 4;\n      do {\n        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);\n        iVar7 = iVar7 + 1;\n        *pbVar8 = *pbVar5;\n        pbVar5 = pbVar5 + 1;\n      } while (iVar7 < (int)(uint)(byte)this[0x30]);\n    }\n    return;\n  }" ({ "{") (expression_statement "uVar1 = puVar4[1];" (assignment_expression "uVar1 = puVar4[1]" (identifier "uVar1") (= "=") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar2 = *puVar4;" (assignment_expression "uVar2 = *puVar4" (identifier "uVar2") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "*(uint *)(this + 0x10) = (uint)CONCAT11(uVar1,uVar2);" (assignment_expression "*(uint *)(this + 0x10) = (uint)CONCAT11(uVar1,uVar2)" (pointer_expression "*(uint *)(this + 0x10)" (* "*") (cast_expression "(uint *)(this + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x10)" (( "(") (binary_expression "this + 0x10" (identifier "this") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (cast_expression "(uint)CONCAT11(uVar1,uVar2)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CONCAT11(uVar1,uVar2)" (identifier "CONCAT11") (argument_list "(uVar1,uVar2)" (( "(") (identifier "uVar1") (, ",") (identifier "uVar2") () ")"))))) (; ";")) (if_statement "if (*(int *)(this + 0x40) == 4) {\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = 0;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }\n    else {\n      uVar10 = *(uint *)(puVar4 + 6);\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }" (if "if") (parenthesized_expression "(*(int *)(this + 0x40) == 4)" (( "(") (binary_expression "*(int *)(this + 0x40) == 4" (pointer_expression "*(int *)(this + 0x40)" (* "*") (cast_expression "(int *)(this + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x40)" (( "(") (binary_expression "this + 0x40" (identifier "this") (+ "+") (number_literal "0x40")) () ")")))) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = 0;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }" ({ "{") (expression_statement "uVar6 = *(uint *)(puVar4 + 2);" (assignment_expression "uVar6 = *(uint *)(puVar4 + 2)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(puVar4 + 2)" (* "*") (cast_expression "(uint *)(puVar4 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 2)" (( "(") (binary_expression "puVar4 + 2" (identifier "puVar4") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (identifier "iVar7") (= "=") (binary_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10" (binary_expression "(uVar6 >> 0x10) << 0x18" (parenthesized_expression "(uVar6 >> 0x10)" (( "(") (binary_expression "uVar6 >> 0x10" (identifier "uVar6") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar6 >> 0x18) << 0x10" (parenthesized_expression "(uVar6 >> 0x18)" (( "(") (binary_expression "uVar6 >> 0x18" (identifier "uVar6") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff)" (( "(") (binary_expression "(uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff" (binary_expression "(uVar6 & 0xff) << 8" (parenthesized_expression "(uVar6 & 0xff)" (( "(") (binary_expression "uVar6 & 0xff" (identifier "uVar6") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar6 >> 8 & 0xff" (binary_expression "uVar6 >> 8" (identifier "uVar6") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (} "}")) (else_clause "else {\n      uVar10 = *(uint *)(puVar4 + 6);\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }" (else "else") (compound_statement "{\n      uVar10 = *(uint *)(puVar4 + 6);\n      uVar6 = *(uint *)(puVar4 + 2);\n      iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;\n    }" ({ "{") (expression_statement "uVar10 = *(uint *)(puVar4 + 6);" (assignment_expression "uVar10 = *(uint *)(puVar4 + 6)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(puVar4 + 6)" (* "*") (cast_expression "(uint *)(puVar4 + 6)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 6)" (( "(") (binary_expression "puVar4 + 6" (identifier "puVar4") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (expression_statement "uVar6 = *(uint *)(puVar4 + 2);" (assignment_expression "uVar6 = *(uint *)(puVar4 + 2)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(puVar4 + 2)" (* "*") (cast_expression "(uint *)(puVar4 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 2)" (( "(") (binary_expression "puVar4 + 2" (identifier "puVar4") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (identifier "iVar9") (= "=") (binary_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10" (binary_expression "(uVar10 >> 0x10) << 0x18" (parenthesized_expression "(uVar10 >> 0x10)" (( "(") (binary_expression "uVar10 >> 0x10" (identifier "uVar10") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar10 >> 0x18) << 0x10" (parenthesized_expression "(uVar10 >> 0x18)" (( "(") (binary_expression "uVar10 >> 0x18" (identifier "uVar10") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff)" (( "(") (binary_expression "(uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff" (binary_expression "(uVar10 & 0xff) << 8" (parenthesized_expression "(uVar10 & 0xff)" (( "(") (binary_expression "uVar10 & 0xff" (identifier "uVar10") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar10 >> 8 & 0xff" (binary_expression "uVar10 >> 8" (identifier "uVar10") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (expression_statement "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (identifier "iVar7") (= "=") (binary_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +\n              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10" (binary_expression "(uVar6 >> 0x10) << 0x18" (parenthesized_expression "(uVar6 >> 0x10)" (( "(") (binary_expression "uVar6 >> 0x10" (identifier "uVar6") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar6 >> 0x18) << 0x10" (parenthesized_expression "(uVar6 >> 0x18)" (( "(") (binary_expression "uVar6 >> 0x18" (identifier "uVar6") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff)" (( "(") (binary_expression "(uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff" (binary_expression "(uVar6 & 0xff) << 8" (parenthesized_expression "(uVar6 & 0xff)" (( "(") (binary_expression "uVar6 & 0xff" (identifier "uVar6") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar6 >> 8 & 0xff" (binary_expression "uVar6 >> 8" (identifier "uVar6") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (} "}")))) (expression_statement "*(int *)(this + 0x18) = iVar9;" (assignment_expression "*(int *)(this + 0x18) = iVar9" (pointer_expression "*(int *)(this + 0x18)" (* "*") (cast_expression "(int *)(this + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x18)" (( "(") (binary_expression "this + 0x18" (identifier "this") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "*(int *)(this + 0x1c) = iVar7;" (assignment_expression "*(int *)(this + 0x1c) = iVar7" (pointer_expression "*(int *)(this + 0x1c)" (* "*") (cast_expression "(int *)(this + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x1c)" (( "(") (binary_expression "this + 0x1c" (identifier "this") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "pbVar5 = puVar4 + *(int *)(this + 0x40) + 2;" (assignment_expression "pbVar5 = puVar4 + *(int *)(this + 0x40) + 2" (identifier "pbVar5") (= "=") (binary_expression "puVar4 + *(int *)(this + 0x40) + 2" (binary_expression "puVar4 + *(int *)(this + 0x40)" (identifier "puVar4") (+ "+") (pointer_expression "*(int *)(this + 0x40)" (* "*") (cast_expression "(int *)(this + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x40)" (( "(") (binary_expression "this + 0x40" (identifier "this") (+ "+") (number_literal "0x40")) () ")"))))) (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*(uint *)(this + 0x20) = (uint)*pbVar5;" (assignment_expression "*(uint *)(this + 0x20) = (uint)*pbVar5" (pointer_expression "*(uint *)(this + 0x20)" (* "*") (cast_expression "(uint *)(this + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x20)" (( "(") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "(uint)*pbVar5" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar5"))) (; ";")) (if_statement "if (CONCAT11(uVar1,uVar2) < 4) {\n      pbVar5 = pbVar5 + 1;\n      *(undefined4 *)(this + 0x24) = 1;\n    }\n    else {\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      *(uint *)(this + 0x24) = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }\n    }" (if "if") (parenthesized_expression "(CONCAT11(uVar1,uVar2) < 4)" (( "(") (binary_expression "CONCAT11(uVar1,uVar2) < 4" (call_expression "CONCAT11(uVar1,uVar2)" (identifier "CONCAT11") (argument_list "(uVar1,uVar2)" (( "(") (identifier "uVar1") (, ",") (identifier "uVar2") () ")"))) (< "<") (number_literal "4")) () ")")) (compound_statement "{\n      pbVar5 = pbVar5 + 1;\n      *(undefined4 *)(this + 0x24) = 1;\n    }" ({ "{") (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + 1" (identifier "pbVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)(this + 0x24) = 1;" (assignment_expression "*(undefined4 *)(this + 0x24) = 1" (pointer_expression "*(undefined4 *)(this + 0x24)" (* "*") (cast_expression "(undefined4 *)(this + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x24)" (( "(") (binary_expression "this + 0x24" (identifier "this") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      *(uint *)(this + 0x24) = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }\n    }" (else "else") (compound_statement "{\n      bVar3 = pbVar5[1];\n      pbVar5 = pbVar5 + 2;\n      *(uint *)(this + 0x24) = (uint)bVar3;\n      if (bVar3 != 1) {\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }\n    }" ({ "{") (expression_statement "bVar3 = pbVar5[1];" (assignment_expression "bVar3 = pbVar5[1]" (identifier "bVar3") (= "=") (subscript_expression "pbVar5[1]" (identifier "pbVar5") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar5 = pbVar5 + 2;" (assignment_expression "pbVar5 = pbVar5 + 2" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + 2" (identifier "pbVar5") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*(uint *)(this + 0x24) = (uint)bVar3;" (assignment_expression "*(uint *)(this + 0x24) = (uint)bVar3" (pointer_expression "*(uint *)(this + 0x24)" (* "*") (cast_expression "(uint *)(this + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x24)" (( "(") (binary_expression "this + 0x24" (identifier "this") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (cast_expression "(uint)bVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar3"))) (; ";")) (if_statement "if (bVar3 != 1) {\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }" (if "if") (parenthesized_expression "(bVar3 != 1)" (( "(") (binary_expression "bVar3 != 1" (identifier "bVar3") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n        iVar9 = 0x68e;\n        goto LAB_000db454;\n      }" ({ "{") (expression_statement "iVar9 = 0x68e;" (assignment_expression "iVar9 = 0x68e" (identifier "iVar9") (= "=") (number_literal "0x68e")) (; ";")) (goto_statement "goto LAB_000db454;" (goto "goto") (statement_identifier "LAB_000db454") (; ";")) (} "}"))) (} "}")))) (expression_statement "puVar11 = *(undefined1 **)(this + 0x34);" (assignment_expression "puVar11 = *(undefined1 **)(this + 0x34)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined1 **)(this + 0x34)" (* "*") (cast_expression "(undefined1 **)(this + 0x34)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x34)" (( "(") (binary_expression "this + 0x34" (identifier "this") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "this[0x28] = (Sized_dwarf_line_info<32,false>)(*pbVar5 != 0);" (assignment_expression "this[0x28] = (Sized_dwarf_line_info<32,false>)(*pbVar5 != 0)" (subscript_expression "this[0x28]" (identifier "this") ([ "[") (number_literal "0x28") (] "]")) (= "=") (call_expression "(Sized_dwarf_line_info<32,false>)(*pbVar5 != 0)" (parenthesized_expression "(Sized_dwarf_line_info<32,false>)" (( "(") (comma_expression "Sized_dwarf_line_info<32,false" (binary_expression "Sized_dwarf_line_info<32" (identifier "Sized_dwarf_line_info") (< "<") (number_literal "32")) (, ",") (false "false")) (ERROR ">" (> ">")) () ")")) (argument_list "(*pbVar5 != 0)" (( "(") (binary_expression "*pbVar5 != 0" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (!= "!=") (number_literal "0")) () ")")))) (; ";")) (expression_statement "uVar6 = (int)*(undefined1 **)(this + 0x38) - (int)puVar11;" (assignment_expression "uVar6 = (int)*(undefined1 **)(this + 0x38) - (int)puVar11" (identifier "uVar6") (= "=") (binary_expression "(int)*(undefined1 **)(this + 0x38) - (int)puVar11" (cast_expression "(int)*(undefined1 **)(this + 0x38)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(undefined1 **)(this + 0x38)" (* "*") (cast_expression "(undefined1 **)(this + 0x38)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x38)" (( "(") (binary_expression "this + 0x38" (identifier "this") (+ "+") (number_literal "0x38")) () ")"))))) (- "-") (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")))) (; ";")) (expression_statement "this[0x29] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1);" (assignment_expression "this[0x29] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1)" (subscript_expression "this[0x29]" (identifier "this") ([ "[") (number_literal "0x29") (] "]")) (= "=") (pointer_expression "*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1)" (* "*") (call_expression "(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1)" (parenthesized_expression "(Sized_dwarf_line_info<32,false> *)" (( "(") (comma_expression "Sized_dwarf_line_info<32,false> *" (binary_expression "Sized_dwarf_line_info<32" (identifier "Sized_dwarf_line_info") (< "<") (number_literal "32")) (, ",") (binary_expression "false> *" (false "false") (> ">") (pointer_expression "*" (* "*") (identifier "")))) () ")")) (argument_list "(pbVar5 + 1)" (( "(") (binary_expression "pbVar5 + 1" (identifier "pbVar5") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "*(uint *)(this + 0x2c) = (uint)pbVar5[2];" (assignment_expression "*(uint *)(this + 0x2c) = (uint)pbVar5[2]" (pointer_expression "*(uint *)(this + 0x2c)" (* "*") (cast_expression "(uint *)(this + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x2c)" (( "(") (binary_expression "this + 0x2c" (identifier "this") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (cast_expression "(uint)pbVar5[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar5[2]" (identifier "pbVar5") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "uVar10 = (byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3) + 1;" (assignment_expression "uVar10 = (byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3) + 1" (identifier "uVar10") (= "=") (binary_expression "(byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3) + 1" (binary_expression "(byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (call_expression "(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3)" (parenthesized_expression "(Sized_dwarf_line_info<32,false> *)" (( "(") (comma_expression "Sized_dwarf_line_info<32,false> *" (binary_expression "Sized_dwarf_line_info<32" (identifier "Sized_dwarf_line_info") (< "<") (number_literal "32")) (, ",") (binary_expression "false> *" (false "false") (> ">") (pointer_expression "*" (* "*") (identifier "")))) () ")")) (argument_list "(pbVar5 + 3)" (( "(") (binary_expression "pbVar5 + 3" (identifier "pbVar5") (+ "+") (number_literal "3")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "this[0x30] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3);" (assignment_expression "this[0x30] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3)" (subscript_expression "this[0x30]" (identifier "this") ([ "[") (number_literal "0x30") (] "]")) (= "=") (pointer_expression "*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3)" (* "*") (call_expression "(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3)" (parenthesized_expression "(Sized_dwarf_line_info<32,false> *)" (( "(") (comma_expression "Sized_dwarf_line_info<32,false> *" (binary_expression "Sized_dwarf_line_info<32" (identifier "Sized_dwarf_line_info") (< "<") (number_literal "32")) (, ",") (binary_expression "false> *" (false "false") (> ">") (pointer_expression "*" (* "*") (identifier "")))) () ")")) (argument_list "(pbVar5 + 3)" (( "(") (binary_expression "pbVar5 + 3" (identifier "pbVar5") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (if_statement "if (uVar6 < uVar10) {\n      std::vector<unsigned_char,std::allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                );\n      puVar11 = *(undefined1 **)(this + 0x34);\n    }\n    else if ((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)) {\n      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;\n    }" (if "if") (parenthesized_expression "(uVar6 < uVar10)" (( "(") (binary_expression "uVar6 < uVar10" (identifier "uVar6") (< "<") (identifier "uVar10")) () ")")) (compound_statement "{\n      std::vector<unsigned_char,std::allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                );\n      puVar11 = *(undefined1 **)(this + 0x34);\n    }" ({ "{") (labeled_statement "std::vector<unsigned_char,std::allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                );" (statement_identifier "std") (ERROR "::vector<unsigned_char,std:" (: ":") (: ":") (comma_expression "vector<unsigned_char,std" (binary_expression "vector<unsigned_char" (identifier "vector") (< "<") (identifier "unsigned_char")) (, ",") (identifier "std")) (: ":")) (: ":") (expression_statement "allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                );" (binary_expression "allocator<unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                )" (identifier "allocator") (< "<") (binary_expression "unsigned_char>>::_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                )" (identifier "unsigned_char") (>> ">>") (ERROR "::" (: ":") (: ":")) (call_expression "_M_default_append\n                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                )" (identifier "_M_default_append") (argument_list "((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6\n                )" (( "(") (call_expression "(vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34)" (parenthesized_expression "(vector<unsigned_char,std::allocator<unsigned_char>> *)" (( "(") (ERROR "vector<unsigned_char,std::" (comma_expression "vector<unsigned_char,std" (binary_expression "vector<unsigned_char" (identifier "vector") (< "<") (identifier "unsigned_char")) (, ",") (identifier "std")) (: ":") (: ":")) (binary_expression "allocator<unsigned_char>> *" (identifier "allocator") (< "<") (binary_expression "unsigned_char>> *" (identifier "unsigned_char") (>> ">>") (pointer_expression "*" (* "*") (identifier "")))) () ")")) (argument_list "(this + 0x34)" (( "(") (binary_expression "this + 0x34" (identifier "this") (+ "+") (number_literal "0x34")) () ")"))) (, ",") (binary_expression "uVar10 - uVar6" (identifier "uVar10") (- "-") (identifier "uVar6")) () ")"))))) (; ";"))) (expression_statement "puVar11 = *(undefined1 **)(this + 0x34);" (assignment_expression "puVar11 = *(undefined1 **)(this + 0x34)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined1 **)(this + 0x34)" (* "*") (cast_expression "(undefined1 **)(this + 0x34)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x34)" (( "(") (binary_expression "this + 0x34" (identifier "this") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (} "}")) (else_clause "else if ((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)) {\n      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;\n    }" (else "else") (if_statement "if ((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)) {\n      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;\n    }" (if "if") (parenthesized_expression "((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10))" (( "(") (binary_expression "(uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)" (parenthesized_expression "(uVar10 < uVar6)" (( "(") (binary_expression "uVar10 < uVar6" (identifier "uVar10") (< "<") (identifier "uVar6")) () ")")) (&& "&&") (parenthesized_expression "(*(undefined1 **)(this + 0x38) != puVar11 + uVar10)" (( "(") (binary_expression "*(undefined1 **)(this + 0x38) != puVar11 + uVar10" (pointer_expression "*(undefined1 **)(this + 0x38)" (* "*") (cast_expression "(undefined1 **)(this + 0x38)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x38)" (( "(") (binary_expression "this + 0x38" (identifier "this") (+ "+") (number_literal "0x38")) () ")")))) (!= "!=") (binary_expression "puVar11 + uVar10" (identifier "puVar11") (+ "+") (identifier "uVar10"))) () ")"))) () ")")) (compound_statement "{\n      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;\n    }" ({ "{") (expression_statement "*(undefined1 **)(this + 0x38) = puVar11 + uVar10;" (assignment_expression "*(undefined1 **)(this + 0x38) = puVar11 + uVar10" (pointer_expression "*(undefined1 **)(this + 0x38)" (* "*") (cast_expression "(undefined1 **)(this + 0x38)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x38)" (( "(") (binary_expression "this + 0x38" (identifier "this") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (binary_expression "puVar11 + uVar10" (identifier "puVar11") (+ "+") (identifier "uVar10"))) (; ";")) (} "}"))))) (expression_statement "*puVar11 = 0;" (assignment_expression "*puVar11 = 0" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (1 < (byte)this[0x30]) {\n      iVar7 = 1;\n      pbVar5 = pbVar5 + 4;\n      do {\n        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);\n        iVar7 = iVar7 + 1;\n        *pbVar8 = *pbVar5;\n        pbVar5 = pbVar5 + 1;\n      } while (iVar7 < (int)(uint)(byte)this[0x30]);\n    }" (if "if") (parenthesized_expression "(1 < (byte)this[0x30])" (( "(") (binary_expression "1 < (byte)this[0x30]" (number_literal "1") (< "<") (cast_expression "(byte)this[0x30]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "this[0x30]" (identifier "this") ([ "[") (number_literal "0x30") (] "]")))) () ")")) (compound_statement "{\n      iVar7 = 1;\n      pbVar5 = pbVar5 + 4;\n      do {\n        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);\n        iVar7 = iVar7 + 1;\n        *pbVar8 = *pbVar5;\n        pbVar5 = pbVar5 + 1;\n      } while (iVar7 < (int)(uint)(byte)this[0x30]);\n    }" ({ "{") (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" (identifier "iVar7") (= "=") (number_literal "1")) (; ";")) (expression_statement "pbVar5 = pbVar5 + 4;" (assignment_expression "pbVar5 = pbVar5 + 4" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + 4" (identifier "pbVar5") (+ "+") (number_literal "4"))) (; ";")) (do_statement "do {\n        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);\n        iVar7 = iVar7 + 1;\n        *pbVar8 = *pbVar5;\n        pbVar5 = pbVar5 + 1;\n      } while (iVar7 < (int)(uint)(byte)this[0x30]);" (do "do") (compound_statement "{\n        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);\n        iVar7 = iVar7 + 1;\n        *pbVar8 = *pbVar5;\n        pbVar5 = pbVar5 + 1;\n      }" ({ "{") (expression_statement "pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);" (assignment_expression "pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7)" (identifier "pbVar8") (= "=") (cast_expression "(byte *)(*(int *)(this + 0x34) + iVar7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(this + 0x34) + iVar7)" (( "(") (binary_expression "*(int *)(this + 0x34) + iVar7" (pointer_expression "*(int *)(this + 0x34)" (* "*") (cast_expression "(int *)(this + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x34)" (( "(") (binary_expression "this + 0x34" (identifier "this") (+ "+") (number_literal "0x34")) () ")")))) (+ "+") (identifier "iVar7")) () ")")))) (; ";")) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pbVar8 = *pbVar5;" (assignment_expression "*pbVar8 = *pbVar5" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (= "=") (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5"))) (; ";")) (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + 1" (identifier "pbVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar7 < (int)(uint)(byte)this[0x30])" (( "(") (binary_expression "iVar7 < (int)(uint)(byte)this[0x30]" (identifier "iVar7") (< "<") (cast_expression "(int)(uint)(byte)this[0x30]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)(byte)this[0x30]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)this[0x30]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "this[0x30]" (identifier "this") ([ "[") (number_literal "0x30") (] "]")))))) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_000db454:\n                    \n  do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,iVar9,\n                      PTR_s_alize_xindex_004323b4 + -0x601c);" (statement_identifier "LAB_000db454") (: ":") (expression_statement "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,iVar9,\n                      PTR_s_alize_xindex_004323b4 + -0x601c);" (call_expression "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,iVar9,\n                      PTR_s_alize_xindex_004323b4 + -0x601c)" (identifier "do_gold_unreachable") (argument_list "(PTR_s_alize_xindex_004323b4 + -0x6368,iVar9,\n                      PTR_s_alize_xindex_004323b4 + -0x601c)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x6368" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x6368")) (, ",") (identifier "iVar9") (, ",") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x601c" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x601c")) () ")"))) (; ";"))) (ERROR "}" (} "}"))

/* DWARF original prototype: uchar * read_header_prolog(Sized_dwarf_line_info<32,_false> * this,
   uchar * lineptr) */

type_1 * __thiscall
gold::Sized_dwarf_line_info<32,_false>::read_header_prolog
          (Sized_dwarf_line_info<32,_false> *this,type_1 *var_3)

{
  type_1 uVar1;
  type_1 uVar2;
  type_2 var_9;
  type_1 *var_4;
  type_2 *var_8;
  type_2 *pbVar6;
  type_3 var_1;
  int var_2;
  type_1 *var_5;
  type_2 *pbVar10;
  int iVar11;
  type_3 var_7;
  int iVar13;
  type_4 var_15;
  type_4 var_14;
  
  var_1 = *(type_3 *)var_3;
  var_2 = (((var_1 >> 0x10) << 0x18 | (var_1 >> 0x18) << 0x10) >> 0x10) +
          ((var_1 & 0xff) << 8 | var_1 >> 8 & 0xff) * 0x10000;
  if (var_2 == -1) {
    var_4 = var_3 + 0xc;
    (this->header_).offset_size = 8;
    var_1 = *(type_3 *)(var_3 + 4);
    var_2 = (((var_1 >> 0x10) << 0x18 | (var_1 >> 0x18) << 0x10) >> 0x10) +
            ((var_1 & 0xff) << 8 | var_1 >> 8 & 0xff) * 0x10000;
  }
  else {
    var_4 = var_3 + 4;
    (this->header_).offset_size = 4;
  }
  var_5 = this->buffer_end_;
  *(int *)((int)&(this->header_).total_length + 4) = var_2;
  *(type_5 *)&(this->header_).total_length = 0;
  iVar11 = 0x678;
  if (var_4 + var_2 <= var_5) {
    uVar1 = var_4[1];
    uVar2 = *var_4;
    var_2 = (this->header_).offset_size;
    (this->header_).version = (type_3)var_6(uVar1,uVar2);
    if (var_2 == 4) {
      var_1 = *(type_3 *)(var_4 + 2);
      iVar13 = 0;
      iVar11 = (((var_1 >> 0x10) << 0x18 | (var_1 >> 0x18) << 0x10) >> 0x10) +
               ((var_1 & 0xff) << 8 | var_1 >> 8 & 0xff) * 0x10000;
    }
    else {
      var_7 = *(type_3 *)(var_4 + 6);
      var_1 = *(type_3 *)(var_4 + 2);
      iVar13 = (((var_7 >> 0x10) << 0x18 | (var_7 >> 0x18) << 0x10) >> 0x10) +
               ((var_7 & 0xff) << 8 | var_7 >> 8 & 0xff) * 0x10000;
      iVar11 = (((var_1 >> 0x10) << 0x18 | (var_1 >> 0x18) << 0x10) >> 0x10) +
               ((var_1 & 0xff) << 8 | var_1 >> 8 & 0xff) * 0x10000;
    }
    *(int *)&(this->header_).prologue_length = iVar13;
    *(int *)((int)&(this->header_).prologue_length + 4) = iVar11;
    var_8 = var_4 + var_2 + 2;
    (this->header_).min_insn_length = (type_3)*var_8;
    if (var_6(uVar1,uVar2) < 4) {
      var_8 = var_8 + 1;
      (this->header_).max_ops_per_insn = 1;
    }
    else {
      var_9 = var_8[1];
      var_8 = var_8 + 2;
      (this->header_).max_ops_per_insn = (type_3)var_9;
      if (var_9 != 1) {
        iVar11 = 0x68e;
        goto LAB_000db454;
      }
    }
    pbVar6 = var_8 + 4;
    var_15 = (this->header_).std_opcode_lengths.
              super__Vector_base<var_11,_std::var_10<var_11>var_12>._M_impl._M_start;
    var_14 = (this->header_).std_opcode_lengths.
              super__Vector_base<var_11,_std::var_10<var_11>var_12>._M_impl._M_finish;
    (this->header_).default_is_stmt = *var_8 != 0;
    var_1 = (int)var_14 - (int)var_15;
    (this->header_).line_base = var_8[1];
    (this->header_).line_range = (type_3)var_8[2];
    var_7 = var_8[3] + 1;
    (this->header_).opcode_base = var_8[3];
    if (var_1 < var_7) {
      std::vector<var_11,_std::var_10<var_11>var_12>::var_13
                (&(this->header_).std_opcode_lengths,var_7 - var_1);
      var_15 = (this->header_).std_opcode_lengths.
                super__Vector_base<var_11,_std::var_10<var_11>var_12>._M_impl._M_start;
    }
    else if ((var_7 < var_1) && (var_14 != var_15 + var_7)) {
      (this->header_).std_opcode_lengths.
      super__Vector_base<var_11,_std::var_10<var_11>var_12>._M_impl._M_finish =
           var_15 + var_7;
    }
    *var_15 = '\0';
    if (1 < (this->header_).opcode_base) {
      var_2 = 1;
      var_8 = pbVar6;
      do {
        pbVar6 = var_8 + 1;
        pbVar10 = (this->header_).std_opcode_lengths.
                  super__Vector_base<var_11,_std::var_10<var_11>var_12>._M_impl._M_start
                  + var_2;
        var_2 = var_2 + 1;
        *pbVar10 = *var_8;
        var_8 = pbVar6;
      } while (var_2 < (int)(type_3)(this->header_).opcode_base);
    }
    return pbVar6;
  }
LAB_000db454:
                    /* WARNING: Subroutine does not return */
  var_16(var_17 + -0x6368,iVar11,
                      var_17 + -0x601c);
}


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

/* gold::Sized_dwarf_line_info<32, false>::MASKED(unsigned char const*) */

void __thiscall
gold::Sized_dwarf_line_info<32,false>::MASKED
          (Sized_dwarf_line_info<32,false> *this,uchar *param_1)

{
  uchar uVar1;
  uchar uVar2;
  byte bVar3;
  uchar *puVar4;
  byte *pbVar5;
  uint uVar6;
  int iVar7;
  byte *pbVar8;
  int iVar9;
  uint uVar10;
  undefined1 *puVar11;
  
  uVar6 = *(uint *)param_1;
  iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +
          ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;
  if (iVar7 == -1) {
    puVar4 = param_1 + 0xc;
    *(undefined4 *)(this + 0x40) = 8;
    uVar6 = *(uint *)(param_1 + 4);
    iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +
            ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;
  }
  else {
    puVar4 = param_1 + 4;
    *(undefined4 *)(this + 0x40) = 4;
  }
  *(int *)(this + 0xc) = iVar7;
  *(undefined4 *)(this + 8) = 0;
  iVar9 = 0x678;
  if (puVar4 + iVar7 <= *(uchar **)(this + 0x4c)) {
    uVar1 = puVar4[1];
    uVar2 = *puVar4;
    *(uint *)(this + 0x10) = (uint)CONCAT11(uVar1,uVar2);
    if (*(int *)(this + 0x40) == 4) {
      uVar6 = *(uint *)(puVar4 + 2);
      iVar9 = 0;
      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +
              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;
    }
    else {
      uVar10 = *(uint *)(puVar4 + 6);
      uVar6 = *(uint *)(puVar4 + 2);
      iVar9 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +
              ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;
      iVar7 = (((uVar6 >> 0x10) << 0x18 | (uVar6 >> 0x18) << 0x10) >> 0x10) +
              ((uVar6 & 0xff) << 8 | uVar6 >> 8 & 0xff) * 0x10000;
    }
    *(int *)(this + 0x18) = iVar9;
    *(int *)(this + 0x1c) = iVar7;
    pbVar5 = puVar4 + *(int *)(this + 0x40) + 2;
    *(uint *)(this + 0x20) = (uint)*pbVar5;
    if (CONCAT11(uVar1,uVar2) < 4) {
      pbVar5 = pbVar5 + 1;
      *(undefined4 *)(this + 0x24) = 1;
    }
    else {
      bVar3 = pbVar5[1];
      pbVar5 = pbVar5 + 2;
      *(uint *)(this + 0x24) = (uint)bVar3;
      if (bVar3 != 1) {
        iVar9 = 0x68e;
        goto LAB_000db454;
      }
    }
    puVar11 = *(undefined1 **)(this + 0x34);
    this[0x28] = (Sized_dwarf_line_info<32,false>)(*pbVar5 != 0);
    uVar6 = (int)*(undefined1 **)(this + 0x38) - (int)puVar11;
    this[0x29] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 1);
    *(uint *)(this + 0x2c) = (uint)pbVar5[2];
    uVar10 = (byte)*(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3) + 1;
    this[0x30] = *(Sized_dwarf_line_info<32,false> *)(pbVar5 + 3);
    if (uVar6 < uVar10) {
      std::vector<unsigned_char,std::allocator<unsigned_char>>::_M_default_append
                ((vector<unsigned_char,std::allocator<unsigned_char>> *)(this + 0x34),uVar10 - uVar6
                );
      puVar11 = *(undefined1 **)(this + 0x34);
    }
    else if ((uVar10 < uVar6) && (*(undefined1 **)(this + 0x38) != puVar11 + uVar10)) {
      *(undefined1 **)(this + 0x38) = puVar11 + uVar10;
    }
    *puVar11 = 0;
    if (1 < (byte)this[0x30]) {
      iVar7 = 1;
      pbVar5 = pbVar5 + 4;
      do {
        pbVar8 = (byte *)(*(int *)(this + 0x34) + iVar7);
        iVar7 = iVar7 + 1;
        *pbVar8 = *pbVar5;
        pbVar5 = pbVar5 + 1;
      } while (iVar7 < (int)(uint)(byte)this[0x30]);
    }
    return;
  }
LAB_000db454:
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,iVar9,
                      PTR_s_alize_xindex_004323b4 + -0x601c);
}

