
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void make_iplt_section(Target_powerpc<32,_false> * this, Symbol_table *
   symtab, Layout * layout) */

void __thiscall
anon_unknown.dwarf_2cac9f::Target_powerpc<32,_false>::make_iplt_section
          (Target_powerpc<32,_false> *this,Symbol_table *symtab,Layout *layout)

{
  undefined1 *puVar1;
  Reloc_section *pRVar2;
  Output_section *pOVar3;
  Output_data_plt_powerpc<32,_false> *pOVar4;
  Output_section_data *posd;
  uint64_t uVar5;
  Output_data_plt_powerpc<32,_false> *posd_00;
  
  if (this->iplt_ != (Output_data_plt_powerpc<32,_false> *)0x0) {
    return;
  }
  make_plt_section(this,symtab,layout);
  make_lplt_section(this,layout);
  posd = (Output_section_data *)operator_new(0x60);
                    /* try { // try from 0017271e to 00172722 has its CatchHandler @ 00172807 */
  uVar5 = gold::Output_data::default_alignment_for_size(0x20);
  posd->addralign_ = uVar5;
  (posd->super_Output_data)._vptr_Output_data =
       (_func_int_varargs **)&PTR__Output_data_reloc_004ad730;
  pRVar2 = this->rela_dyn_;
  posd->output_section_ = (Output_section *)0x0;
  pOVar3 = (pRVar2->super_Output_data_reloc_base<4,_true,_32,_false>).
           super_Output_data_reloc_generic.super_Output_section_data_build.super_Output_section_data
           .output_section_;
  (posd->super_Output_data).address_ = 0;
  (posd->super_Output_data).data_size_ = 0;
  (posd->super_Output_data).offset_ = -1;
  puVar1 = &(posd->super_Output_data).field_0x20;
  *puVar1 = *puVar1 & 0xe0;
  posd[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;
  *(undefined1 *)&posd[1].super_Output_data.address_ = 0;
  posd[1].super_Output_data.data_size_ = 0;
  posd[1].super_Output_data.offset_ = 0;
  *(undefined8 *)&posd[1].super_Output_data.field_0x20 = 0;
  if (pOVar3 != (Output_section *)0x0) {
    gold::Output_section::add_output_section_data(pOVar3,posd);
  }
  posd_00 = (Output_data_plt_powerpc<32,_false> *)operator_new(0x50);
  pOVar4 = this->plt_;
  (posd_00->super_Output_section_data_build).super_Output_section_data.output_section_ =
       (Output_section *)0x0;
  pOVar3 = (pOVar4->super_Output_section_data_build).super_Output_section_data.output_section_;
  (posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.
  _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_plt_powerpc_004ab240;
  (posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.address_ =
       0;
  (posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.data_size_
       = 0;
  (posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_ =
       -1;
  puVar1 = &(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.
            field_0x20;
  *puVar1 = *puVar1 & 0xe0;
  (posd_00->super_Output_section_data_build).super_Output_section_data.addralign_ = 4;
  posd_00->rel_ = (Reloc_section *)posd;
  posd_00->targ_ = this;
  posd_00->name_ = "** IPLT";
  this->iplt_ = posd_00;
  if (pOVar3 != (Output_section *)0x0) {
    gold::Output_section::add_output_section_data(pOVar3,(Output_section_data *)posd_00);
    return;
  }
  return;
}



void FUN_001726e0(long param_1,undefined8 param_2,undefined8 param_3)

{
  long lVar1;
  undefined8 *puVar2;
  undefined8 uVar3;
  undefined8 *puVar4;
  
  if (*(long *)(param_1 + 0x30) != 0) {
    return;
  }
  FUN_001722a0();
  FUN_00171c80(param_1,param_3);
  puVar2 = (undefined8 *)FUN_00337280(0x60);
                    /* try { // try from 0017271e to 00172722 has its CatchHandler @ 00172807 */
  uVar3 = FUN_00260a50(0x20);
  puVar2[6] = uVar3;
  *puVar2 = &PTR_FUN_004ad730;
  lVar1 = *(long *)(param_1 + 0x50);
  puVar2[5] = 0;
  lVar1 = *(long *)(lVar1 + 0x28);
  puVar2[1] = 0;
  puVar2[2] = 0;
  puVar2[3] = 0xffffffffffffffff;
  *(byte *)(puVar2 + 4) = *(byte *)(puVar2 + 4) & 0xe0;
  puVar2[7] = 0;
  *(undefined1 *)(puVar2 + 8) = 0;
  puVar2[9] = 0;
  puVar2[10] = 0;
  puVar2[0xb] = 0;
  if (lVar1 != 0) {
    FUN_002652b0(lVar1,puVar2);
  }
  puVar4 = (undefined8 *)FUN_00337280(0x50);
  lVar1 = *(long *)(param_1 + 0x28);
  puVar4[5] = 0;
  lVar1 = *(long *)(lVar1 + 0x28);
  *puVar4 = &PTR_FUN_004ab240;
  puVar4[1] = 0;
  puVar4[2] = 0;
  puVar4[3] = 0xffffffffffffffff;
  *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;
  puVar4[6] = 4;
  puVar4[7] = puVar2;
  puVar4[8] = param_1;
  puVar4[9] = "** IPLT";
  *(undefined8 **)(param_1 + 0x30) = puVar4;
  if (lVar1 != 0) {
    FUN_002652b0(lVar1,puVar4);
    return;
  }
  return;
}


CMP qword ptr [RDI + 0x30],0x0
JZ 0x001726f0
RET
PUSH RBP
MOV RBP,RDI
PUSH RBX
MOV RBX,RDX
SUB RSP,0x8
CALL 0x001722a0
MOV RSI,RBX
MOV RDI,RBP
CALL 0x00171c80
MOV EDI,0x60
CALL 0x00337280
MOV EDI,0x20
MOV RBX,RAX
CALL 0x00260a50
MOV qword ptr [RBX + 0x30],RAX
LEA RAX,[0x4ad730]
MOV qword ptr [RBX],RAX
MOV RAX,qword ptr [RBP + 0x50]
MOV qword ptr [RBX + 0x28],0x0
MOV RDI,qword ptr [RAX + 0x28]
MOV qword ptr [RBX + 0x8],0x0
MOV qword ptr [RBX + 0x10],0x0
MOV qword ptr [RBX + 0x18],-0x1
AND byte ptr [RBX + 0x20],0xe0
MOV qword ptr [RBX + 0x38],0x0
MOV byte ptr [RBX + 0x40],0x0
MOV qword ptr [RBX + 0x48],0x0
MOV qword ptr [RBX + 0x50],0x0
MOV qword ptr [RBX + 0x58],0x0
TEST RDI,RDI
JZ 0x0017278e
MOV RSI,RBX
CALL 0x002652b0
MOV EDI,0x50
CALL 0x00337280
MOV RDX,qword ptr [RBP + 0x28]
LEA RCX,[0x4ab240]
MOV qword ptr [RAX + 0x28],0x0
MOV RDI,qword ptr [RDX + 0x28]
MOV qword ptr [RAX],RCX
LEA RCX,[0x3de587]
MOV qword ptr [RAX + 0x8],0x0
MOV qword ptr [RAX + 0x10],0x0
MOV qword ptr [RAX + 0x18],-0x1
AND byte ptr [RAX + 0x20],0xe0
MOV qword ptr [RAX + 0x30],0x4
MOV qword ptr [RAX + 0x38],RBX
MOV qword ptr [RAX + 0x40],RBP
MOV qword ptr [RAX + 0x48],RCX
MOV qword ptr [RBP + 0x30],RAX
TEST RDI,RDI
JZ 0x00172800
ADD RSP,0x8
MOV RSI,RAX
POP RBX
POP RBP
JMP 0x002652b0
ADD RSP,0x8
POP RBX
POP RBP
RET
(translation_unit "void FUN_001726e0(long param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  long lVar1;\n  undefined8 *puVar2;\n  undefined8 uVar3;\n  undefined8 *puVar4;\n  \n  if (*(long *)(param_1 + 0x30) != 0) {\n    return;\n  }\n  FUN_001722a0();\n  FUN_00171c80(param_1,param_3);\n  puVar2 = (undefined8 *)FUN_00337280(0x60);\n                    /* try { // try from 0017271e to 00172722 has its CatchHandler @ 00172807 */\n  uVar3 = FUN_00260a50(0x20);\n  puVar2[6] = uVar3;\n  *puVar2 = &PTR_FUN_004ad730;\n  lVar1 = *(long *)(param_1 + 0x50);\n  puVar2[5] = 0;\n  lVar1 = *(long *)(lVar1 + 0x28);\n  puVar2[1] = 0;\n  puVar2[2] = 0;\n  puVar2[3] = 0xffffffffffffffff;\n  *(byte *)(puVar2 + 4) = *(byte *)(puVar2 + 4) & 0xe0;\n  puVar2[7] = 0;\n  *(undefined1 *)(puVar2 + 8) = 0;\n  puVar2[9] = 0;\n  puVar2[10] = 0;\n  puVar2[0xb] = 0;\n  if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar2);\n  }\n  puVar4 = (undefined8 *)FUN_00337280(0x50);\n  lVar1 = *(long *)(param_1 + 0x28);\n  puVar4[5] = 0;\n  lVar1 = *(long *)(lVar1 + 0x28);\n  *puVar4 = &PTR_FUN_004ab240;\n  puVar4[1] = 0;\n  puVar4[2] = 0;\n  puVar4[3] = 0xffffffffffffffff;\n  *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n  puVar4[6] = 4;\n  puVar4[7] = puVar2;\n  puVar4[8] = param_1;\n  puVar4[9] = "** IPLT";\n  *(undefined8 **)(param_1 + 0x30) = puVar4;\n  if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar4);\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_001726e0(long param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  long lVar1;\n  undefined8 *puVar2;\n  undefined8 uVar3;\n  undefined8 *puVar4;\n  \n  if (*(long *)(param_1 + 0x30) != 0) {\n    return;\n  }\n  FUN_001722a0();\n  FUN_00171c80(param_1,param_3);\n  puVar2 = (undefined8 *)FUN_00337280(0x60);\n                    /* try { // try from 0017271e to 00172722 has its CatchHandler @ 00172807 */\n  uVar3 = FUN_00260a50(0x20);\n  puVar2[6] = uVar3;\n  *puVar2 = &PTR_FUN_004ad730;\n  lVar1 = *(long *)(param_1 + 0x50);\n  puVar2[5] = 0;\n  lVar1 = *(long *)(lVar1 + 0x28);\n  puVar2[1] = 0;\n  puVar2[2] = 0;\n  puVar2[3] = 0xffffffffffffffff;\n  *(byte *)(puVar2 + 4) = *(byte *)(puVar2 + 4) & 0xe0;\n  puVar2[7] = 0;\n  *(undefined1 *)(puVar2 + 8) = 0;\n  puVar2[9] = 0;\n  puVar2[10] = 0;\n  puVar2[0xb] = 0;\n  if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar2);\n  }\n  puVar4 = (undefined8 *)FUN_00337280(0x50);\n  lVar1 = *(long *)(param_1 + 0x28);\n  puVar4[5] = 0;\n  lVar1 = *(long *)(lVar1 + 0x28);\n  *puVar4 = &PTR_FUN_004ab240;\n  puVar4[1] = 0;\n  puVar4[2] = 0;\n  puVar4[3] = 0xffffffffffffffff;\n  *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n  puVar4[6] = 4;\n  puVar4[7] = puVar2;\n  puVar4[8] = param_1;\n  puVar4[9] = "** IPLT";\n  *(undefined8 **)(param_1 + 0x30) = puVar4;\n  if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar4);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001726e0(long param_1,undefined8 param_2,undefined8 param_3)" identifier (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) ))) (compound_statement "{\n  long lVar1;\n  undefined8 *puVar2;\n  undefined8 uVar3;\n  undefined8 *puVar4;\n  \n  if (*(long *)(param_1 + 0x30) != 0) {\n    return;\n  }\n  FUN_001722a0();\n  FUN_00171c80(param_1,param_3);\n  puVar2 = (undefined8 *)FUN_00337280(0x60);\n                    /* try { // try from 0017271e to 00172722 has its CatchHandler @ 00172807 */\n  uVar3 = FUN_00260a50(0x20);\n  puVar2[6] = uVar3;\n  *puVar2 = &PTR_FUN_004ad730;\n  lVar1 = *(long *)(param_1 + 0x50);\n  puVar2[5] = 0;\n  lVar1 = *(long *)(lVar1 + 0x28);\n  puVar2[1] = 0;\n  puVar2[2] = 0;\n  puVar2[3] = 0xffffffffffffffff;\n  *(byte *)(puVar2 + 4) = *(byte *)(puVar2 + 4) & 0xe0;\n  puVar2[7] = 0;\n  *(undefined1 *)(puVar2 + 8) = 0;\n  puVar2[9] = 0;\n  puVar2[10] = 0;\n  puVar2[0xb] = 0;\n  if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar2);\n  }\n  puVar4 = (undefined8 *)FUN_00337280(0x50);\n  lVar1 = *(long *)(param_1 + 0x28);\n  puVar4[5] = 0;\n  lVar1 = *(long *)(lVar1 + 0x28);\n  *puVar4 = &PTR_FUN_004ab240;\n  puVar4[1] = 0;\n  puVar4[2] = 0;\n  puVar4[3] = 0xffffffffffffffff;\n  *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n  puVar4[6] = 4;\n  puVar4[7] = puVar2;\n  puVar4[8] = param_1;\n  puVar4[9] = "** IPLT";\n  *(undefined8 **)(param_1 + 0x30) = puVar4;\n  if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar4);\n    return;\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (if_statement "if (*(long *)(param_1 + 0x30) != 0) {\n    return;\n  }" if (parenthesized_expression "(*(long *)(param_1 + 0x30) != 0)" ( (binary_expression "*(long *)(param_1 + 0x30) != 0" (pointer_expression "*(long *)(param_1 + 0x30)" * (cast_expression "(long *)(param_1 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_001722a0();" (call_expression "FUN_001722a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00171c80(param_1,param_3);" (call_expression "FUN_00171c80(param_1,param_3)" identifier (argument_list "(param_1,param_3)" ( identifier , identifier ))) ;) (expression_statement "puVar2 = (undefined8 *)FUN_00337280(0x60);" (assignment_expression "puVar2 = (undefined8 *)FUN_00337280(0x60)" identifier = (cast_expression "(undefined8 *)FUN_00337280(0x60)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00337280(0x60)" identifier (argument_list "(0x60)" ( number_literal ))))) ;) comment (expression_statement "uVar3 = FUN_00260a50(0x20);" (assignment_expression "uVar3 = FUN_00260a50(0x20)" identifier = (call_expression "FUN_00260a50(0x20)" identifier (argument_list "(0x20)" ( number_literal )))) ;) (expression_statement "puVar2[6] = uVar3;" (assignment_expression "puVar2[6] = uVar3" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar2 = &PTR_FUN_004ad730;" (assignment_expression "*puVar2 = &PTR_FUN_004ad730" (pointer_expression "*puVar2" * identifier) = (pointer_expression "&PTR_FUN_004ad730" & identifier)) ;) (expression_statement "lVar1 = *(long *)(param_1 + 0x50);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x50)" identifier = (pointer_expression "*(long *)(param_1 + 0x50)" * (cast_expression "(long *)(param_1 + 0x50)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "puVar2[5] = 0;" (assignment_expression "puVar2[5] = 0" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "lVar1 = *(long *)(lVar1 + 0x28);" (assignment_expression "lVar1 = *(long *)(lVar1 + 0x28)" identifier = (pointer_expression "*(long *)(lVar1 + 0x28)" * (cast_expression "(long *)(lVar1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x28)" ( (binary_expression "lVar1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[2] = 0;" (assignment_expression "puVar2[2] = 0" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[3] = 0xffffffffffffffff;" (assignment_expression "puVar2[3] = 0xffffffffffffffff" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar2 + 4) = *(byte *)(puVar2 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar2 + 4) = *(byte *)(puVar2 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar2 + 4)" * (cast_expression "(byte *)(puVar2 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 4)" ( (binary_expression "puVar2 + 4" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar2 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar2 + 4)" * (cast_expression "(byte *)(puVar2 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 4)" ( (binary_expression "puVar2 + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar2[7] = 0;" (assignment_expression "puVar2[7] = 0" (subscript_expression "puVar2[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar2 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar2 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar2 + 8)" * (cast_expression "(undefined1 *)(puVar2 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 8)" ( (binary_expression "puVar2 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar2[9] = 0;" (assignment_expression "puVar2[9] = 0" (subscript_expression "puVar2[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[10] = 0;" (assignment_expression "puVar2[10] = 0" (subscript_expression "puVar2[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0xb] = 0;" (assignment_expression "puVar2[0xb] = 0" (subscript_expression "puVar2[0xb]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar2);\n  }" if (parenthesized_expression "(lVar1 != 0)" ( (binary_expression "lVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_002652b0(lVar1,puVar2);\n  }" { (expression_statement "FUN_002652b0(lVar1,puVar2);" (call_expression "FUN_002652b0(lVar1,puVar2)" identifier (argument_list "(lVar1,puVar2)" ( identifier , identifier ))) ;) })) (expression_statement "puVar4 = (undefined8 *)FUN_00337280(0x50);" (assignment_expression "puVar4 = (undefined8 *)FUN_00337280(0x50)" identifier = (cast_expression "(undefined8 *)FUN_00337280(0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00337280(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "lVar1 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x28)" identifier = (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar4[5] = 0;" (assignment_expression "puVar4[5] = 0" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "lVar1 = *(long *)(lVar1 + 0x28);" (assignment_expression "lVar1 = *(long *)(lVar1 + 0x28)" identifier = (pointer_expression "*(long *)(lVar1 + 0x28)" * (cast_expression "(long *)(lVar1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x28)" ( (binary_expression "lVar1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*puVar4 = &PTR_FUN_004ab240;" (assignment_expression "*puVar4 = &PTR_FUN_004ab240" (pointer_expression "*puVar4" * identifier) = (pointer_expression "&PTR_FUN_004ab240" & identifier)) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[3] = 0xffffffffffffffff;" (assignment_expression "puVar4[3] = 0xffffffffffffffff" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 4)" * (cast_expression "(byte *)(puVar4 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 4)" ( (binary_expression "puVar4 + 4" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar4 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 4)" * (cast_expression "(byte *)(puVar4 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 4)" ( (binary_expression "puVar4 + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar4[6] = 4;" (assignment_expression "puVar4[6] = 4" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[7] = puVar2;" (assignment_expression "puVar4[7] = puVar2" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[8] = param_1;" (assignment_expression "puVar4[8] = param_1" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[9] = "** IPLT";" (assignment_expression "puVar4[9] = "** IPLT"" (subscript_expression "puVar4[9]" identifier [ number_literal ]) = (string_literal ""** IPLT"" " string_content ")) ;) (expression_statement "*(undefined8 **)(param_1 + 0x30) = puVar4;" (assignment_expression "*(undefined8 **)(param_1 + 0x30) = puVar4" (pointer_expression "*(undefined8 **)(param_1 + 0x30)" * (cast_expression "(undefined8 **)(param_1 + 0x30)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) (if_statement "if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar4);\n    return;\n  }" if (parenthesized_expression "(lVar1 != 0)" ( (binary_expression "lVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_002652b0(lVar1,puVar4);\n    return;\n  }" { (expression_statement "FUN_002652b0(lVar1,puVar4);" (call_expression "FUN_002652b0(lVar1,puVar4)" identifier (argument_list "(lVar1,puVar4)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void make_iplt_section(Target_powerpc<32,_false> * this, Symbol_table *\n   symtab, Layout * layout) */\n\nvoid __thiscall\nanon_unknown.dwarf_2cac9f::Target_powerpc<32,_false>::make_iplt_section\n          (Target_powerpc<32,_false> *this,Symbol_table *symtab,Layout *layout)\n\n{\n  undefined1 *puVar1;\n  Reloc_section *pRVar2;\n  Output_section *pOVar3;\n  Output_data_plt_powerpc<32,_false> *pOVar4;\n  Output_section_data *posd;\n  uint64_t uVar5;\n  Output_data_plt_powerpc<32,_false> *posd_00;\n  \n  if (this->iplt_ != (Output_data_plt_powerpc<32,_false> *)0x0) {\n    return;\n  }\n  make_plt_section(this,symtab,layout);\n  make_lplt_section(this,layout);\n  posd = (Output_section_data *)operator_new(0x60);\n                    /* try { // try from 0017271e to 00172722 has its CatchHandler @ 00172807 */\n  uVar5 = gold::Output_data::default_alignment_for_size(0x20);\n  posd->addralign_ = uVar5;\n  (posd->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_reloc_004ad730;\n  pRVar2 = this->rela_dyn_;\n  posd->output_section_ = (Output_section *)0x0;\n  pOVar3 = (pRVar2->super_Output_data_reloc_base<4,_true,_32,_false>).\n           super_Output_data_reloc_generic.super_Output_section_data_build.super_Output_section_data\n           .output_section_;\n  (posd->super_Output_data).address_ = 0;\n  (posd->super_Output_data).data_size_ = 0;\n  (posd->super_Output_data).offset_ = -1;\n  puVar1 = &(posd->super_Output_data).field_0x20;\n  *puVar1 = *puVar1 & 0xe0;\n  posd[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;\n  *(undefined1 *)&posd[1].super_Output_data.address_ = 0;\n  posd[1].super_Output_data.data_size_ = 0;\n  posd[1].super_Output_data.offset_ = 0;\n  *(undefined8 *)&posd[1].super_Output_data.field_0x20 = 0;\n  if (pOVar3 != (Output_section *)0x0) {\n    gold::Output_section::add_output_section_data(pOVar3,posd);\n  }\n  posd_00 = (Output_data_plt_powerpc<32,_false> *)operator_new(0x50);\n  pOVar4 = this->plt_;\n  (posd_00->super_Output_section_data_build).super_Output_section_data.output_section_ =\n       (Output_section *)0x0;\n  pOVar3 = (pOVar4->super_Output_section_data_build).super_Output_section_data.output_section_;\n  (posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n  _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_plt_powerpc_004ab240;\n  (posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.address_ =\n       0;\n  (posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.data_size_\n       = 0;\n  (posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_ =\n       -1;\n  puVar1 = &(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n            field_0x20;\n  *puVar1 = *puVar1 & 0xe0;\n  (posd_00->super_Output_section_data_build).super_Output_section_data.addralign_ = 4;\n  posd_00->rel_ = (Reloc_section *)posd;\n  posd_00->targ_ = this;\n  posd_00->name_ = "** IPLT";\n  this->iplt_ = posd_00;\n  if (pOVar3 != (Output_section *)0x0) {\n    gold::Output_section::add_output_section_data(pOVar3,(Output_section_data *)posd_00);\n    return;\n  }\n  return;\n}\n\n" comment comment (declaration "void __thiscall\nanon_unknown.dwarf_2cac9f::Target_powerpc<32,_false>::make_iplt_section\n          (Target_powerpc<32,_false> *this,Symbol_table *symtab,Layout *layout)\n\n{\n  undefined1 *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_2cac9f::" identifier . identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_false>::make_iplt_section\n          (Target_powerpc<32,_false> *this,Symbol_table *symtab,Layout *layout)\n\n{\n  undefined1" identifier > : : (function_declarator "make_iplt_section\n          (Target_powerpc<32,_false> *this,Symbol_table *symtab,Layout *layout)" identifier (parameter_list "(Target_powerpc<32,_false> *this,Symbol_table *symtab,Layout *layout)" ( (parameter_declaration "Target_powerpc" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "Reloc_section *pRVar2;" type_identifier (pointer_declarator "*pRVar2" * identifier) ;) (declaration "Output_section *pOVar3;" type_identifier (pointer_declarator "*pOVar3" * identifier) ;) (expression_statement "Output_data_plt_powerpc<32,_false> *pOVar4;" (update_expression "Output_data_plt_powerpc<32,_false> *pOVar4" (binary_expression "Output_data_plt_powerpc<32,_false> *pOVar4" (binary_expression "Output_data_plt_powerpc<32" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*pOVar4" * identifier)) --) ;) (declaration "Output_section_data *posd;" type_identifier (pointer_declarator "*posd" * identifier) ;) (declaration "uint64_t uVar5;" primitive_type identifier ;) (expression_statement "Output_data_plt_powerpc<32,_false> *posd_00;" (update_expression "Output_data_plt_powerpc<32,_false> *posd_00" (binary_expression "Output_data_plt_powerpc<32,_false> *posd_00" (binary_expression "Output_data_plt_powerpc<32" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*posd_00" * identifier)) --) ;) (if_statement "if (this->iplt_ != (Output_data_plt_powerpc<32,_false> *)0x0) {\n    return;\n  }" if (parenthesized_expression "(this->iplt_ != (Output_data_plt_powerpc<32,_false> *)0x0)" ( (binary_expression "this->iplt_ != (Output_data_plt_powerpc<32,_false> *)0x0)" (field_expression "this->iplt_" identifier -> field_identifier) != (parenthesized_expression "(Output_data_plt_powerpc<32,_false> *)0x0)" ( (comma_expression "Output_data_plt_powerpc<32,_false> *)0x0" (binary_expression "Output_data_plt_powerpc<32" identifier < number_literal) , (binary_expression "_false> *)0x0" identifier > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "make_plt_section(this,symtab,layout);" (call_expression "make_plt_section(this,symtab,layout)" identifier (argument_list "(this,symtab,layout)" ( identifier , identifier , identifier ))) ;) (expression_statement "make_lplt_section(this,layout);" (call_expression "make_lplt_section(this,layout)" identifier (argument_list "(this,layout)" ( identifier , identifier ))) ;) (expression_statement "posd = (Output_section_data *)operator_new(0x60);" (assignment_expression "posd = (Output_section_data *)operator_new(0x60)" identifier = (cast_expression "(Output_section_data *)operator_new(0x60)" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x60)" identifier (argument_list "(0x60)" ( number_literal ))))) ;) comment (ERROR "uVar5 = gold::" (assignment_expression "uVar5 = gold" identifier = identifier) : :) (labeled_statement "Output_data::default_alignment_for_size(0x20);" statement_identifier : (ERROR ":" :) (expression_statement "default_alignment_for_size(0x20);" (call_expression "default_alignment_for_size(0x20)" identifier (argument_list "(0x20)" ( number_literal ))) ;)) (expression_statement "posd->addralign_ = uVar5;" (assignment_expression "posd->addralign_ = uVar5" (field_expression "posd->addralign_" identifier -> field_identifier) = identifier) ;) (expression_statement "(posd->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_reloc_004ad730;" (assignment_expression "(posd->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_reloc_004ad730" (field_expression "(posd->super_Output_data)._vptr_Output_data" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_reloc_004ad730" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_reloc_004ad730" & identifier))) ;) (expression_statement "pRVar2 = this->rela_dyn_;" (assignment_expression "pRVar2 = this->rela_dyn_" identifier = (field_expression "this->rela_dyn_" identifier -> field_identifier)) ;) (expression_statement "posd->output_section_ = (Output_section *)0x0;" (assignment_expression "posd->output_section_ = (Output_section *)0x0" (field_expression "posd->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pOVar3 = (pRVar2->super_Output_data_reloc_base<4,_true,_32,_false>).\n           super_Output_data_reloc_generic.super_Output_section_data_build.super_Output_section_data\n           .output_section_;" (assignment_expression "pOVar3 = (pRVar2->super_Output_data_reloc_base<4,_true,_32,_false>).\n           super_Output_data_reloc_generic.super_Output_section_data_build.super_Output_section_data\n           .output_section_" identifier = (field_expression "(pRVar2->super_Output_data_reloc_base<4,_true,_32,_false>).\n           super_Output_data_reloc_generic.super_Output_section_data_build.super_Output_section_data\n           .output_section_" (field_expression "(pRVar2->super_Output_data_reloc_base<4,_true,_32,_false>).\n           super_Output_data_reloc_generic.super_Output_section_data_build.super_Output_section_data" (field_expression "(pRVar2->super_Output_data_reloc_base<4,_true,_32,_false>).\n           super_Output_data_reloc_generic.super_Output_section_data_build" (field_expression "(pRVar2->super_Output_data_reloc_base<4,_true,_32,_false>).\n           super_Output_data_reloc_generic" (parenthesized_expression "(pRVar2->super_Output_data_reloc_base<4,_true,_32,_false>)" ( (comma_expression "pRVar2->super_Output_data_reloc_base<4,_true,_32,_false" (binary_expression "pRVar2->super_Output_data_reloc_base<4" (field_expression "pRVar2->super_Output_data_reloc_base" identifier -> field_identifier) < number_literal) , (comma_expression "_true,_32,_false" identifier , (comma_expression "_32,_false" identifier , identifier))) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "(posd->super_Output_data).address_ = 0;" (assignment_expression "(posd->super_Output_data).address_ = 0" (field_expression "(posd->super_Output_data).address_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(posd->super_Output_data).data_size_ = 0;" (assignment_expression "(posd->super_Output_data).data_size_ = 0" (field_expression "(posd->super_Output_data).data_size_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(posd->super_Output_data).offset_ = -1;" (assignment_expression "(posd->super_Output_data).offset_ = -1" (field_expression "(posd->super_Output_data).offset_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "puVar1 = &(posd->super_Output_data).field_0x20;" (assignment_expression "puVar1 = &(posd->super_Output_data).field_0x20" identifier = (pointer_expression "&(posd->super_Output_data).field_0x20" & (field_expression "(posd->super_Output_data).field_0x20" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 & 0xe0;" (assignment_expression "*puVar1 = *puVar1 & 0xe0" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 & 0xe0" (pointer_expression "*puVar1" * identifier) & number_literal)) ;) (expression_statement "posd[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;" (assignment_expression "posd[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0" (field_expression "posd[1].super_Output_data._vptr_Output_data" (field_expression "posd[1].super_Output_data" (subscript_expression "posd[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "*(undefined1 *)&posd[1].super_Output_data.address_ = 0;" (assignment_expression "*(undefined1 *)&posd[1].super_Output_data.address_ = 0" (pointer_expression "*(undefined1 *)&posd[1].super_Output_data.address_" * (cast_expression "(undefined1 *)&posd[1].super_Output_data.address_" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&posd[1].super_Output_data.address_" & (field_expression "posd[1].super_Output_data.address_" (field_expression "posd[1].super_Output_data" (subscript_expression "posd[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = number_literal) ;) (expression_statement "posd[1].super_Output_data.data_size_ = 0;" (assignment_expression "posd[1].super_Output_data.data_size_ = 0" (field_expression "posd[1].super_Output_data.data_size_" (field_expression "posd[1].super_Output_data" (subscript_expression "posd[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "posd[1].super_Output_data.offset_ = 0;" (assignment_expression "posd[1].super_Output_data.offset_ = 0" (field_expression "posd[1].super_Output_data.offset_" (field_expression "posd[1].super_Output_data" (subscript_expression "posd[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "*(undefined8 *)&posd[1].super_Output_data.field_0x20 = 0;" (assignment_expression "*(undefined8 *)&posd[1].super_Output_data.field_0x20 = 0" (pointer_expression "*(undefined8 *)&posd[1].super_Output_data.field_0x20" * (cast_expression "(undefined8 *)&posd[1].super_Output_data.field_0x20" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&posd[1].super_Output_data.field_0x20" & (field_expression "posd[1].super_Output_data.field_0x20" (field_expression "posd[1].super_Output_data" (subscript_expression "posd[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = number_literal) ;) (if_statement "if (pOVar3 != (Output_section *)0x0) {\n    gold::Output_section::add_output_section_data(pOVar3,posd);\n  }" if (parenthesized_expression "(pOVar3 != (Output_section *)0x0)" ( (binary_expression "pOVar3 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    gold::Output_section::add_output_section_data(pOVar3,posd);\n  }" { (labeled_statement "gold::Output_section::add_output_section_data(pOVar3,posd);" statement_identifier : (ERROR ":" :) (labeled_statement "Output_section::add_output_section_data(pOVar3,posd);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data(pOVar3,posd);" (call_expression "add_output_section_data(pOVar3,posd)" identifier (argument_list "(pOVar3,posd)" ( identifier , identifier ))) ;))) })) (expression_statement "posd_00 = (Output_data_plt_powerpc<32,_false> *)operator_new(0x50);" (assignment_expression "posd_00 = (Output_data_plt_powerpc<32,_false> *)operator_new(0x50)" identifier = (parenthesized_expression "(Output_data_plt_powerpc<32,_false> *)operator_new(0x50)" ( (comma_expression "Output_data_plt_powerpc<32,_false> *)operator_new(0x50)" (binary_expression "Output_data_plt_powerpc<32" identifier < number_literal) , (binary_expression "_false> *)operator_new(0x50)" identifier > (pointer_expression "*)operator_new(0x50)" * (ERROR ")" )) (call_expression "operator_new(0x50)" identifier (argument_list "(0x50)" ( number_literal )))))) ))) ;) (expression_statement "pOVar4 = this->plt_;" (assignment_expression "pOVar4 = this->plt_" identifier = (field_expression "this->plt_" identifier -> field_identifier)) ;) (expression_statement "(posd_00->super_Output_section_data_build).super_Output_section_data.output_section_ =\n       (Output_section *)0x0;" (assignment_expression "(posd_00->super_Output_section_data_build).super_Output_section_data.output_section_ =\n       (Output_section *)0x0" (field_expression "(posd_00->super_Output_section_data_build).super_Output_section_data.output_section_" (field_expression "(posd_00->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(posd_00->super_Output_section_data_build)" ( (field_expression "posd_00->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pOVar3 = (pOVar4->super_Output_section_data_build).super_Output_section_data.output_section_;" (assignment_expression "pOVar3 = (pOVar4->super_Output_section_data_build).super_Output_section_data.output_section_" identifier = (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.output_section_" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar4->super_Output_section_data_build)" ( (field_expression "pOVar4->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n  _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_plt_powerpc_004ab240;" (assignment_expression "(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n  _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_plt_powerpc_004ab240" (field_expression "(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n  _vptr_Output_data" (field_expression "(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(posd_00->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(posd_00->super_Output_section_data_build)" ( (field_expression "posd_00->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_plt_powerpc_004ab240" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_plt_powerpc_004ab240" & identifier))) ;) (expression_statement "(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.address_ =\n       0;" (assignment_expression "(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.address_ =\n       0" (field_expression "(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.address_" (field_expression "(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(posd_00->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(posd_00->super_Output_section_data_build)" ( (field_expression "posd_00->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.data_size_\n       = 0;" (assignment_expression "(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.data_size_\n       = 0" (field_expression "(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.data_size_" (field_expression "(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(posd_00->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(posd_00->super_Output_section_data_build)" ( (field_expression "posd_00->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_ =\n       -1;" (assignment_expression "(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_ =\n       -1" (field_expression "(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_" (field_expression "(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(posd_00->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(posd_00->super_Output_section_data_build)" ( (field_expression "posd_00->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "puVar1 = &(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n            field_0x20;" (assignment_expression "puVar1 = &(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n            field_0x20" identifier = (pointer_expression "&(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n            field_0x20" & (field_expression "(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n            field_0x20" (field_expression "(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(posd_00->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(posd_00->super_Output_section_data_build)" ( (field_expression "posd_00->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 & 0xe0;" (assignment_expression "*puVar1 = *puVar1 & 0xe0" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 & 0xe0" (pointer_expression "*puVar1" * identifier) & number_literal)) ;) (expression_statement "(posd_00->super_Output_section_data_build).super_Output_section_data.addralign_ = 4;" (assignment_expression "(posd_00->super_Output_section_data_build).super_Output_section_data.addralign_ = 4" (field_expression "(posd_00->super_Output_section_data_build).super_Output_section_data.addralign_" (field_expression "(posd_00->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(posd_00->super_Output_section_data_build)" ( (field_expression "posd_00->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "posd_00->rel_ = (Reloc_section *)posd;" (assignment_expression "posd_00->rel_ = (Reloc_section *)posd" (field_expression "posd_00->rel_" identifier -> field_identifier) = (cast_expression "(Reloc_section *)posd" ( (type_descriptor "Reloc_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "posd_00->targ_ = this;" (assignment_expression "posd_00->targ_ = this" (field_expression "posd_00->targ_" identifier -> field_identifier) = identifier) ;) (expression_statement "posd_00->name_ = "** IPLT";" (assignment_expression "posd_00->name_ = "** IPLT"" (field_expression "posd_00->name_" identifier -> field_identifier) = (string_literal ""** IPLT"" " string_content ")) ;) (expression_statement "this->iplt_ = posd_00;" (assignment_expression "this->iplt_ = posd_00" (field_expression "this->iplt_" identifier -> field_identifier) = identifier) ;) (if_statement "if (pOVar3 != (Output_section *)0x0) {\n    gold::Output_section::add_output_section_data(pOVar3,(Output_section_data *)posd_00);\n    return;\n  }" if (parenthesized_expression "(pOVar3 != (Output_section *)0x0)" ( (binary_expression "pOVar3 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    gold::Output_section::add_output_section_data(pOVar3,(Output_section_data *)posd_00);\n    return;\n  }" { (labeled_statement "gold::Output_section::add_output_section_data(pOVar3,(Output_section_data *)posd_00);" statement_identifier : (ERROR ":" :) (labeled_statement "Output_section::add_output_section_data(pOVar3,(Output_section_data *)posd_00);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data(pOVar3,(Output_section_data *)posd_00);" (call_expression "add_output_section_data(pOVar3,(Output_section_data *)posd_00)" identifier (argument_list "(pOVar3,(Output_section_data *)posd_00)" ( identifier , (cast_expression "(Output_section_data *)posd_00" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;))) (return_statement "return;" return ;) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_001726e0(long param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  long lVar1;\n  undefined8 *puVar2;\n  undefined8 uVar3;\n  undefined8 *puVar4;\n  \n  if (*(long *)(param_1 + 0x30) != 0) {\n    return;\n  }\n  FUN_001722a0();\n  FUN_00171c80(param_1,param_3);\n  puVar2 = (undefined8 *)FUN_00337280(0x60);\n                    \n  uVar3 = FUN_00260a50(0x20);\n  puVar2[6] = uVar3;\n  *puVar2 = &PTR_FUN_004ad730;\n  lVar1 = *(long *)(param_1 + 0x50);\n  puVar2[5] = 0;\n  lVar1 = *(long *)(lVar1 + 0x28);\n  puVar2[1] = 0;\n  puVar2[2] = 0;\n  puVar2[3] = 0xffffffffffffffff;\n  *(byte *)(puVar2 + 4) = *(byte *)(puVar2 + 4) & 0xe0;\n  puVar2[7] = 0;\n  *(undefined1 *)(puVar2 + 8) = 0;\n  puVar2[9] = 0;\n  puVar2[10] = 0;\n  puVar2[0xb] = 0;\n  if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar2);\n  }\n  puVar4 = (undefined8 *)FUN_00337280(0x50);\n  lVar1 = *(long *)(param_1 + 0x28);\n  puVar4[5] = 0;\n  lVar1 = *(long *)(lVar1 + 0x28);\n  *puVar4 = &PTR_FUN_004ab240;\n  puVar4[1] = 0;\n  puVar4[2] = 0;\n  puVar4[3] = 0xffffffffffffffff;\n  *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n  puVar4[6] = 4;\n  puVar4[7] = puVar2;\n  puVar4[8] = param_1;\n  puVar4[9] = "** IPLT";\n  *(undefined8 **)(param_1 + 0x30) = puVar4;\n  if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar4);\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_001726e0(long param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  long lVar1;\n  undefined8 *puVar2;\n  undefined8 uVar3;\n  undefined8 *puVar4;\n  \n  if (*(long *)(param_1 + 0x30) != 0) {\n    return;\n  }\n  FUN_001722a0();\n  FUN_00171c80(param_1,param_3);\n  puVar2 = (undefined8 *)FUN_00337280(0x60);\n                    \n  uVar3 = FUN_00260a50(0x20);\n  puVar2[6] = uVar3;\n  *puVar2 = &PTR_FUN_004ad730;\n  lVar1 = *(long *)(param_1 + 0x50);\n  puVar2[5] = 0;\n  lVar1 = *(long *)(lVar1 + 0x28);\n  puVar2[1] = 0;\n  puVar2[2] = 0;\n  puVar2[3] = 0xffffffffffffffff;\n  *(byte *)(puVar2 + 4) = *(byte *)(puVar2 + 4) & 0xe0;\n  puVar2[7] = 0;\n  *(undefined1 *)(puVar2 + 8) = 0;\n  puVar2[9] = 0;\n  puVar2[10] = 0;\n  puVar2[0xb] = 0;\n  if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar2);\n  }\n  puVar4 = (undefined8 *)FUN_00337280(0x50);\n  lVar1 = *(long *)(param_1 + 0x28);\n  puVar4[5] = 0;\n  lVar1 = *(long *)(lVar1 + 0x28);\n  *puVar4 = &PTR_FUN_004ab240;\n  puVar4[1] = 0;\n  puVar4[2] = 0;\n  puVar4[3] = 0xffffffffffffffff;\n  *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n  puVar4[6] = 4;\n  puVar4[7] = puVar2;\n  puVar4[8] = param_1;\n  puVar4[9] = "** IPLT";\n  *(undefined8 **)(param_1 + 0x30) = puVar4;\n  if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar4);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001726e0(long param_1,undefined8 param_2,undefined8 param_3)" identifier (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) ))) (compound_statement "{\n  long lVar1;\n  undefined8 *puVar2;\n  undefined8 uVar3;\n  undefined8 *puVar4;\n  \n  if (*(long *)(param_1 + 0x30) != 0) {\n    return;\n  }\n  FUN_001722a0();\n  FUN_00171c80(param_1,param_3);\n  puVar2 = (undefined8 *)FUN_00337280(0x60);\n                    \n  uVar3 = FUN_00260a50(0x20);\n  puVar2[6] = uVar3;\n  *puVar2 = &PTR_FUN_004ad730;\n  lVar1 = *(long *)(param_1 + 0x50);\n  puVar2[5] = 0;\n  lVar1 = *(long *)(lVar1 + 0x28);\n  puVar2[1] = 0;\n  puVar2[2] = 0;\n  puVar2[3] = 0xffffffffffffffff;\n  *(byte *)(puVar2 + 4) = *(byte *)(puVar2 + 4) & 0xe0;\n  puVar2[7] = 0;\n  *(undefined1 *)(puVar2 + 8) = 0;\n  puVar2[9] = 0;\n  puVar2[10] = 0;\n  puVar2[0xb] = 0;\n  if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar2);\n  }\n  puVar4 = (undefined8 *)FUN_00337280(0x50);\n  lVar1 = *(long *)(param_1 + 0x28);\n  puVar4[5] = 0;\n  lVar1 = *(long *)(lVar1 + 0x28);\n  *puVar4 = &PTR_FUN_004ab240;\n  puVar4[1] = 0;\n  puVar4[2] = 0;\n  puVar4[3] = 0xffffffffffffffff;\n  *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n  puVar4[6] = 4;\n  puVar4[7] = puVar2;\n  puVar4[8] = param_1;\n  puVar4[9] = "** IPLT";\n  *(undefined8 **)(param_1 + 0x30) = puVar4;\n  if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar4);\n    return;\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (if_statement "if (*(long *)(param_1 + 0x30) != 0) {\n    return;\n  }" if (parenthesized_expression "(*(long *)(param_1 + 0x30) != 0)" ( (binary_expression "*(long *)(param_1 + 0x30) != 0" (pointer_expression "*(long *)(param_1 + 0x30)" * (cast_expression "(long *)(param_1 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_001722a0();" (call_expression "FUN_001722a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00171c80(param_1,param_3);" (call_expression "FUN_00171c80(param_1,param_3)" identifier (argument_list "(param_1,param_3)" ( identifier , identifier ))) ;) (expression_statement "puVar2 = (undefined8 *)FUN_00337280(0x60);" (assignment_expression "puVar2 = (undefined8 *)FUN_00337280(0x60)" identifier = (cast_expression "(undefined8 *)FUN_00337280(0x60)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00337280(0x60)" identifier (argument_list "(0x60)" ( number_literal ))))) ;) (expression_statement "uVar3 = FUN_00260a50(0x20);" (assignment_expression "uVar3 = FUN_00260a50(0x20)" identifier = (call_expression "FUN_00260a50(0x20)" identifier (argument_list "(0x20)" ( number_literal )))) ;) (expression_statement "puVar2[6] = uVar3;" (assignment_expression "puVar2[6] = uVar3" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar2 = &PTR_FUN_004ad730;" (assignment_expression "*puVar2 = &PTR_FUN_004ad730" (pointer_expression "*puVar2" * identifier) = (pointer_expression "&PTR_FUN_004ad730" & identifier)) ;) (expression_statement "lVar1 = *(long *)(param_1 + 0x50);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x50)" identifier = (pointer_expression "*(long *)(param_1 + 0x50)" * (cast_expression "(long *)(param_1 + 0x50)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "puVar2[5] = 0;" (assignment_expression "puVar2[5] = 0" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "lVar1 = *(long *)(lVar1 + 0x28);" (assignment_expression "lVar1 = *(long *)(lVar1 + 0x28)" identifier = (pointer_expression "*(long *)(lVar1 + 0x28)" * (cast_expression "(long *)(lVar1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x28)" ( (binary_expression "lVar1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[2] = 0;" (assignment_expression "puVar2[2] = 0" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[3] = 0xffffffffffffffff;" (assignment_expression "puVar2[3] = 0xffffffffffffffff" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar2 + 4) = *(byte *)(puVar2 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar2 + 4) = *(byte *)(puVar2 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar2 + 4)" * (cast_expression "(byte *)(puVar2 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 4)" ( (binary_expression "puVar2 + 4" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar2 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar2 + 4)" * (cast_expression "(byte *)(puVar2 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 4)" ( (binary_expression "puVar2 + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar2[7] = 0;" (assignment_expression "puVar2[7] = 0" (subscript_expression "puVar2[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar2 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar2 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar2 + 8)" * (cast_expression "(undefined1 *)(puVar2 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 8)" ( (binary_expression "puVar2 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar2[9] = 0;" (assignment_expression "puVar2[9] = 0" (subscript_expression "puVar2[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[10] = 0;" (assignment_expression "puVar2[10] = 0" (subscript_expression "puVar2[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0xb] = 0;" (assignment_expression "puVar2[0xb] = 0" (subscript_expression "puVar2[0xb]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar2);\n  }" if (parenthesized_expression "(lVar1 != 0)" ( (binary_expression "lVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_002652b0(lVar1,puVar2);\n  }" { (expression_statement "FUN_002652b0(lVar1,puVar2);" (call_expression "FUN_002652b0(lVar1,puVar2)" identifier (argument_list "(lVar1,puVar2)" ( identifier , identifier ))) ;) })) (expression_statement "puVar4 = (undefined8 *)FUN_00337280(0x50);" (assignment_expression "puVar4 = (undefined8 *)FUN_00337280(0x50)" identifier = (cast_expression "(undefined8 *)FUN_00337280(0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00337280(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "lVar1 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x28)" identifier = (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar4[5] = 0;" (assignment_expression "puVar4[5] = 0" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "lVar1 = *(long *)(lVar1 + 0x28);" (assignment_expression "lVar1 = *(long *)(lVar1 + 0x28)" identifier = (pointer_expression "*(long *)(lVar1 + 0x28)" * (cast_expression "(long *)(lVar1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x28)" ( (binary_expression "lVar1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*puVar4 = &PTR_FUN_004ab240;" (assignment_expression "*puVar4 = &PTR_FUN_004ab240" (pointer_expression "*puVar4" * identifier) = (pointer_expression "&PTR_FUN_004ab240" & identifier)) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[3] = 0xffffffffffffffff;" (assignment_expression "puVar4[3] = 0xffffffffffffffff" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 4)" * (cast_expression "(byte *)(puVar4 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 4)" ( (binary_expression "puVar4 + 4" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar4 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 4)" * (cast_expression "(byte *)(puVar4 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 4)" ( (binary_expression "puVar4 + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar4[6] = 4;" (assignment_expression "puVar4[6] = 4" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[7] = puVar2;" (assignment_expression "puVar4[7] = puVar2" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[8] = param_1;" (assignment_expression "puVar4[8] = param_1" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[9] = "** IPLT";" (assignment_expression "puVar4[9] = "** IPLT"" (subscript_expression "puVar4[9]" identifier [ number_literal ]) = (string_literal ""** IPLT"" " string_content ")) ;) (expression_statement "*(undefined8 **)(param_1 + 0x30) = puVar4;" (assignment_expression "*(undefined8 **)(param_1 + 0x30) = puVar4" (pointer_expression "*(undefined8 **)(param_1 + 0x30)" * (cast_expression "(undefined8 **)(param_1 + 0x30)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) (if_statement "if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar4);\n    return;\n  }" if (parenthesized_expression "(lVar1 != 0)" ( (binary_expression "lVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_002652b0(lVar1,puVar4);\n    return;\n  }" { (expression_statement "FUN_002652b0(lVar1,puVar4);" (call_expression "FUN_002652b0(lVar1,puVar4)" identifier (argument_list "(lVar1,puVar4)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return ;) })) (return_statement return ;) })))
(function_definition "void FUN_001726e0(long param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  long lVar1;\n  undefined8 *puVar2;\n  undefined8 uVar3;\n  undefined8 *puVar4;\n  \n  if (*(long *)(param_1 + 0x30) != 0) {\n    return;\n  }\n  FUN_001722a0();\n  FUN_00171c80(param_1,param_3);\n  puVar2 = (undefined8 *)FUN_00337280(0x60);\n                    \n  uVar3 = FUN_00260a50(0x20);\n  puVar2[6] = uVar3;\n  *puVar2 = &PTR_FUN_004ad730;\n  lVar1 = *(long *)(param_1 + 0x50);\n  puVar2[5] = 0;\n  lVar1 = *(long *)(lVar1 + 0x28);\n  puVar2[1] = 0;\n  puVar2[2] = 0;\n  puVar2[3] = 0xffffffffffffffff;\n  *(byte *)(puVar2 + 4) = *(byte *)(puVar2 + 4) & 0xe0;\n  puVar2[7] = 0;\n  *(undefined1 *)(puVar2 + 8) = 0;\n  puVar2[9] = 0;\n  puVar2[10] = 0;\n  puVar2[0xb] = 0;\n  if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar2);\n  }\n  puVar4 = (undefined8 *)FUN_00337280(0x50);\n  lVar1 = *(long *)(param_1 + 0x28);\n  puVar4[5] = 0;\n  lVar1 = *(long *)(lVar1 + 0x28);\n  *puVar4 = &PTR_FUN_004ab240;\n  puVar4[1] = 0;\n  puVar4[2] = 0;\n  puVar4[3] = 0xffffffffffffffff;\n  *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n  puVar4[6] = 4;\n  puVar4[7] = puVar2;\n  puVar4[8] = param_1;\n  puVar4[9] = "** IPLT";\n  *(undefined8 **)(param_1 + 0x30) = puVar4;\n  if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar4);\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001726e0(long param_1,undefined8 param_2,undefined8 param_3)" (identifier "FUN_001726e0") (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) () ")"))) (compound_statement "{\n  long lVar1;\n  undefined8 *puVar2;\n  undefined8 uVar3;\n  undefined8 *puVar4;\n  \n  if (*(long *)(param_1 + 0x30) != 0) {\n    return;\n  }\n  FUN_001722a0();\n  FUN_00171c80(param_1,param_3);\n  puVar2 = (undefined8 *)FUN_00337280(0x60);\n                    \n  uVar3 = FUN_00260a50(0x20);\n  puVar2[6] = uVar3;\n  *puVar2 = &PTR_FUN_004ad730;\n  lVar1 = *(long *)(param_1 + 0x50);\n  puVar2[5] = 0;\n  lVar1 = *(long *)(lVar1 + 0x28);\n  puVar2[1] = 0;\n  puVar2[2] = 0;\n  puVar2[3] = 0xffffffffffffffff;\n  *(byte *)(puVar2 + 4) = *(byte *)(puVar2 + 4) & 0xe0;\n  puVar2[7] = 0;\n  *(undefined1 *)(puVar2 + 8) = 0;\n  puVar2[9] = 0;\n  puVar2[10] = 0;\n  puVar2[0xb] = 0;\n  if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar2);\n  }\n  puVar4 = (undefined8 *)FUN_00337280(0x50);\n  lVar1 = *(long *)(param_1 + 0x28);\n  puVar4[5] = 0;\n  lVar1 = *(long *)(lVar1 + 0x28);\n  *puVar4 = &PTR_FUN_004ab240;\n  puVar4[1] = 0;\n  puVar4[2] = 0;\n  puVar4[3] = 0xffffffffffffffff;\n  *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n  puVar4[6] = 4;\n  puVar4[7] = puVar2;\n  puVar4[8] = param_1;\n  puVar4[9] = "** IPLT";\n  *(undefined8 **)(param_1 + 0x30) = puVar4;\n  if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar4);\n    return;\n  }\n  return;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "undefined8 *puVar2;" (type_identifier "undefined8") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "undefined8 *puVar4;" (type_identifier "undefined8") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (if_statement "if (*(long *)(param_1 + 0x30) != 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x30) != 0)" (( "(") (binary_expression "*(long *)(param_1 + 0x30) != 0" (pointer_expression "*(long *)(param_1 + 0x30)" (* "*") (cast_expression "(long *)(param_1 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_001722a0();" (call_expression "FUN_001722a0()" (identifier "FUN_001722a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00171c80(param_1,param_3);" (call_expression "FUN_00171c80(param_1,param_3)" (identifier "FUN_00171c80") (argument_list "(param_1,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "puVar2 = (undefined8 *)FUN_00337280(0x60);" (assignment_expression "puVar2 = (undefined8 *)FUN_00337280(0x60)" (identifier "puVar2") (= "=") (cast_expression "(undefined8 *)FUN_00337280(0x60)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00337280(0x60)" (identifier "FUN_00337280") (argument_list "(0x60)" (( "(") (number_literal "0x60") () ")"))))) (; ";")) (expression_statement "uVar3 = FUN_00260a50(0x20);" (assignment_expression "uVar3 = FUN_00260a50(0x20)" (identifier "uVar3") (= "=") (call_expression "FUN_00260a50(0x20)" (identifier "FUN_00260a50") (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")")))) (; ";")) (expression_statement "puVar2[6] = uVar3;" (assignment_expression "puVar2[6] = uVar3" (subscript_expression "puVar2[6]" (identifier "puVar2") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "*puVar2 = &PTR_FUN_004ad730;" (assignment_expression "*puVar2 = &PTR_FUN_004ad730" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (pointer_expression "&PTR_FUN_004ad730" (& "&") (identifier "PTR_FUN_004ad730"))) (; ";")) (expression_statement "lVar1 = *(long *)(param_1 + 0x50);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x50)" (identifier "lVar1") (= "=") (pointer_expression "*(long *)(param_1 + 0x50)" (* "*") (cast_expression "(long *)(param_1 + 0x50)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "puVar2[5] = 0;" (assignment_expression "puVar2[5] = 0" (subscript_expression "puVar2[5]" (identifier "puVar2") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar1 = *(long *)(lVar1 + 0x28);" (assignment_expression "lVar1 = *(long *)(lVar1 + 0x28)" (identifier "lVar1") (= "=") (pointer_expression "*(long *)(lVar1 + 0x28)" (* "*") (cast_expression "(long *)(lVar1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x28)" (( "(") (binary_expression "lVar1 + 0x28" (identifier "lVar1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[2] = 0;" (assignment_expression "puVar2[2] = 0" (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[3] = 0xffffffffffffffff;" (assignment_expression "puVar2[3] = 0xffffffffffffffff" (subscript_expression "puVar2[3]" (identifier "puVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "*(byte *)(puVar2 + 4) = *(byte *)(puVar2 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar2 + 4) = *(byte *)(puVar2 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar2 + 4)" (* "*") (cast_expression "(byte *)(puVar2 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 4)" (( "(") (binary_expression "puVar2 + 4" (identifier "puVar2") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar2 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar2 + 4)" (* "*") (cast_expression "(byte *)(puVar2 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 4)" (( "(") (binary_expression "puVar2 + 4" (identifier "puVar2") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xe0"))) (; ";")) (expression_statement "puVar2[7] = 0;" (assignment_expression "puVar2[7] = 0" (subscript_expression "puVar2[7]" (identifier "puVar2") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar2 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar2 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar2 + 8)" (* "*") (cast_expression "(undefined1 *)(puVar2 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 8)" (( "(") (binary_expression "puVar2 + 8" (identifier "puVar2") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[9] = 0;" (assignment_expression "puVar2[9] = 0" (subscript_expression "puVar2[9]" (identifier "puVar2") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[10] = 0;" (assignment_expression "puVar2[10] = 0" (subscript_expression "puVar2[10]" (identifier "puVar2") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[0xb] = 0;" (assignment_expression "puVar2[0xb] = 0" (subscript_expression "puVar2[0xb]" (identifier "puVar2") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar2);\n  }" (if "if") (parenthesized_expression "(lVar1 != 0)" (( "(") (binary_expression "lVar1 != 0" (identifier "lVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_002652b0(lVar1,puVar2);\n  }" ({ "{") (expression_statement "FUN_002652b0(lVar1,puVar2);" (call_expression "FUN_002652b0(lVar1,puVar2)" (identifier "FUN_002652b0") (argument_list "(lVar1,puVar2)" (( "(") (identifier "lVar1") (, ",") (identifier "puVar2") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar4 = (undefined8 *)FUN_00337280(0x50);" (assignment_expression "puVar4 = (undefined8 *)FUN_00337280(0x50)" (identifier "puVar4") (= "=") (cast_expression "(undefined8 *)FUN_00337280(0x50)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00337280(0x50)" (identifier "FUN_00337280") (argument_list "(0x50)" (( "(") (number_literal "0x50") () ")"))))) (; ";")) (expression_statement "lVar1 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x28)" (identifier "lVar1") (= "=") (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "puVar4[5] = 0;" (assignment_expression "puVar4[5] = 0" (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar1 = *(long *)(lVar1 + 0x28);" (assignment_expression "lVar1 = *(long *)(lVar1 + 0x28)" (identifier "lVar1") (= "=") (pointer_expression "*(long *)(lVar1 + 0x28)" (* "*") (cast_expression "(long *)(lVar1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x28)" (( "(") (binary_expression "lVar1 + 0x28" (identifier "lVar1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*puVar4 = &PTR_FUN_004ab240;" (assignment_expression "*puVar4 = &PTR_FUN_004ab240" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "&PTR_FUN_004ab240" (& "&") (identifier "PTR_FUN_004ab240"))) (; ";")) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[3] = 0xffffffffffffffff;" (assignment_expression "puVar4[3] = 0xffffffffffffffff" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 4)" (* "*") (cast_expression "(byte *)(puVar4 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 4)" (( "(") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar4 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 4)" (* "*") (cast_expression "(byte *)(puVar4 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 4)" (( "(") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xe0"))) (; ";")) (expression_statement "puVar4[6] = 4;" (assignment_expression "puVar4[6] = 4" (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "4")) (; ";")) (expression_statement "puVar4[7] = puVar2;" (assignment_expression "puVar4[7] = puVar2" (subscript_expression "puVar4[7]" (identifier "puVar4") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "puVar4[8] = param_1;" (assignment_expression "puVar4[8] = param_1" (subscript_expression "puVar4[8]" (identifier "puVar4") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "puVar4[9] = "** IPLT";" (assignment_expression "puVar4[9] = "** IPLT"" (subscript_expression "puVar4[9]" (identifier "puVar4") ([ "[") (number_literal "9") (] "]")) (= "=") (string_literal ""** IPLT"" (" """) (string_content "** IPLT") (" """))) (; ";")) (expression_statement "*(undefined8 **)(param_1 + 0x30) = puVar4;" (assignment_expression "*(undefined8 **)(param_1 + 0x30) = puVar4" (pointer_expression "*(undefined8 **)(param_1 + 0x30)" (* "*") (cast_expression "(undefined8 **)(param_1 + 0x30)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (if_statement "if (lVar1 != 0) {\n    FUN_002652b0(lVar1,puVar4);\n    return;\n  }" (if "if") (parenthesized_expression "(lVar1 != 0)" (( "(") (binary_expression "lVar1 != 0" (identifier "lVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_002652b0(lVar1,puVar4);\n    return;\n  }" ({ "{") (expression_statement "FUN_002652b0(lVar1,puVar4);" (call_expression "FUN_002652b0(lVar1,puVar4)" (identifier "FUN_002652b0") (argument_list "(lVar1,puVar4)" (( "(") (identifier "lVar1") (, ",") (identifier "puVar4") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void make_iplt_section(Target_powerpc<32,_false> * this, Symbol_table *
   symtab, Layout * layout) */

void __thiscall
anon_unknown.dwarf_2cac9f::Target_powerpc<32,var_2>::make_iplt_section
          (Target_powerpc<32,var_2> *this,Symbol_table *symtab,Layout *layout)

{
  type_5 *puVar1;
  type_1 *pRVar2;
  type_2 *var_7;
  var_1<32,var_2> *pOVar4;
  type_3 *posd;
  uint64_t uVar5;
  var_1<32,var_2> *posd_00;
  
  if (this->iplt_ != (var_1<32,var_2> *)0x0) {
    return;
  }
  var_3(this,symtab,layout);
  var_4(this,layout);
  posd = (type_3 *)var_5(0x60);
                    /* try { // try from 0017271e to 00172722 has its CatchHandler @ 00172807 */
  uVar5 = gold::Output_data::var_6(0x20);
  posd->addralign_ = uVar5;
  (posd->super_Output_data)._vptr_Output_data =
       (type_4 **)&PTR__Output_data_reloc_004ad730;
  pRVar2 = this->rela_dyn_;
  posd->output_section_ = (type_2 *)0x0;
  var_7 = (pRVar2->super_Output_data_reloc_base<4,_true,_32,var_2>).
           super_Output_data_reloc_generic.super_Output_section_data_build.super_Output_section_data
           .output_section_;
  (posd->super_Output_data).address_ = 0;
  (posd->super_Output_data).data_size_ = 0;
  (posd->super_Output_data).offset_ = -1;
  puVar1 = &(posd->super_Output_data).field_0x20;
  *puVar1 = *puVar1 & 0xe0;
  posd[1].super_Output_data._vptr_Output_data = (type_4 **)0x0;
  *(type_5 *)&posd[1].super_Output_data.address_ = 0;
  posd[1].super_Output_data.data_size_ = 0;
  posd[1].super_Output_data.offset_ = 0;
  *(type_6 *)&posd[1].super_Output_data.field_0x20 = 0;
  if (var_7 != (type_2 *)0x0) {
    gold::Output_section::var_8(var_7,posd);
  }
  posd_00 = (var_1<32,var_2> *)var_5(0x50);
  pOVar4 = this->plt_;
  (posd_00->super_Output_section_data_build).super_Output_section_data.output_section_ =
       (type_2 *)0x0;
  var_7 = (pOVar4->super_Output_section_data_build).super_Output_section_data.output_section_;
  (posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.
  _vptr_Output_data = (type_4 **)&PTR__Output_data_plt_powerpc_004ab240;
  (posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.address_ =
       0;
  (posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.data_size_
       = 0;
  (posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_ =
       -1;
  puVar1 = &(posd_00->super_Output_section_data_build).super_Output_section_data.super_Output_data.
            field_0x20;
  *puVar1 = *puVar1 & 0xe0;
  (posd_00->super_Output_section_data_build).super_Output_section_data.addralign_ = 4;
  posd_00->rel_ = (type_1 *)posd;
  posd_00->targ_ = this;
  posd_00->name_ = "** IPLT";
  this->iplt_ = posd_00;
  if (var_7 != (type_2 *)0x0) {
    gold::Output_section::var_8(var_7,(type_3 *)posd_00);
    return;
  }
  return;
}


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

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

{
  long lVar1;
  undefined8 *puVar2;
  undefined8 uVar3;
  undefined8 *puVar4;
  
  if (*(long *)(param_1 + 0x30) != 0) {
    return;
  }
  FUN_001722a0();
  FUN_00171c80(param_1,param_3);
  puVar2 = (undefined8 *)FUN_00337280(0x60);
                    /* try { // try from 0017271e to 00172722 has its CatchHandler @ 00172807 */
  uVar3 = FUN_00260a50(0x20);
  puVar2[6] = uVar3;
  *puVar2 = &PTR_FUN_004ad730;
  lVar1 = *(long *)(param_1 + 0x50);
  puVar2[5] = 0;
  lVar1 = *(long *)(lVar1 + 0x28);
  puVar2[1] = 0;
  puVar2[2] = 0;
  puVar2[3] = 0xffffffffffffffff;
  *(byte *)(puVar2 + 4) = *(byte *)(puVar2 + 4) & 0xe0;
  puVar2[7] = 0;
  *(undefined1 *)(puVar2 + 8) = 0;
  puVar2[9] = 0;
  puVar2[10] = 0;
  puVar2[0xb] = 0;
  if (lVar1 != 0) {
    FUN_002652b0(lVar1,puVar2);
  }
  puVar4 = (undefined8 *)FUN_00337280(0x50);
  lVar1 = *(long *)(param_1 + 0x28);
  puVar4[5] = 0;
  lVar1 = *(long *)(lVar1 + 0x28);
  *puVar4 = &PTR_FUN_004ab240;
  puVar4[1] = 0;
  puVar4[2] = 0;
  puVar4[3] = 0xffffffffffffffff;
  *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;
  puVar4[6] = 4;
  puVar4[7] = puVar2;
  puVar4[8] = param_1;
  puVar4[9] = "** IPLT";
  *(undefined8 **)(param_1 + 0x30) = puVar4;
  if (lVar1 != 0) {
    FUN_002652b0(lVar1,puVar4);
    return;
  }
  return;
}

