
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: Target * do_instantiate_target(Target_selector_sparc<32,_true> * this)
    */

Target * __thiscall
anon_unknown.dwarf_4cd88d::Target_selector_sparc<32,_true>::do_instantiate_target
          (Target_selector_sparc<32,_true> *this)

{
  EM EVar1;
  Target *pTVar2;
  Elf_Word *pEVar3;
  Elf_Word *pEVar4;
  bool bVar5;
  
  pTVar2 = (Target *)operator_new(0xf0);
  bVar5 = Target_sparc<32,_true>::sparc_info.size != 0x20;
  pTVar2->pti_ = &Target_sparc<32,_true>::sparc_info;
  pTVar2->processor_specific_flags_ = 0;
  pTVar2->are_processor_specific_flags_set_ = false;
  pTVar2->osabi_ = ELFOSABI_NONE;
  pTVar2->_vptr_Target = (_func_int_varargs **)&DAT_00663008;
  if (bVar5) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001c5424 to 001c5440 has its CatchHandler @ 001c5441 */
    gold::do_gold_unreachable("../../gold/target.h",0x48b,"Sized_target");
  }
  if (Target_sparc<32,_true>::sparc_info.is_big_endian != false) {
    pTVar2[1]._vptr_Target = (_func_int_varargs **)0x0;
    pTVar2->_vptr_Target = (_func_int_varargs **)&PTR__Target_sparc_00662478;
    EVar1 = Target_sparc<32,_true>::sparc_info.machine_code;
    pTVar2[1].pti_ = (Target_info *)0x0;
    pTVar2[1].processor_specific_flags_ = 0;
    pTVar2[1].are_processor_specific_flags_set_ = false;
    *(undefined3 *)&pTVar2[1].field_0x15 = 0;
    *(undefined8 *)&pTVar2[1].osabi_ = 0;
    pTVar2[2]._vptr_Target = (_func_int_varargs **)0x0;
    pTVar2[2].pti_ = (Target_info *)0x0;
    pTVar2[2].processor_specific_flags_ = 0;
    pTVar2[2].are_processor_specific_flags_set_ = false;
    *(undefined3 *)&pTVar2[2].field_0x15 = 0;
    pTVar2[2].osabi_ = 0x13;
    pTVar2[3]._vptr_Target = (_func_int_varargs **)0x0;
    pTVar2[3].pti_ = (Target_info *)0x0;
    pTVar2[3].processor_specific_flags_ = 0xffffffff;
    *(undefined8 *)&pTVar2[3].osabi_ = 0;
    *(undefined4 *)((long)&pTVar2[4]._vptr_Target + 4) = 0;
    *(undefined1 *)&pTVar2[4].pti_ = 0;
    *(short *)&pTVar2[4]._vptr_Target = (short)EVar1;
    pEVar3 = &pTVar2[4].processor_specific_flags_;
    do {
      *(undefined8 *)pEVar3 = 0;
      pEVar4 = pEVar3 + 6;
      pEVar3[2] = ELFOSABI_NONE;
      *(undefined8 *)(pEVar3 + 4) = 0;
      pEVar3 = pEVar4;
    } while (pEVar4 != &pTVar2[7].processor_specific_flags_);
    return pTVar2;
  }
                    /* WARNING: Subroutine does not return */
  gold::do_gold_unreachable("../../gold/target.h",0x48c,"Sized_target");
}



undefined8 * FUN_001c5300(void)

{
  undefined4 uVar1;
  undefined8 *puVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  bool bVar5;
  
  puVar2 = (undefined8 *)FUN_0049cb60(0xf0);
  bVar5 = DAT_0067c640 != 0x20;
  puVar2[1] = &DAT_0067c640;
  *(undefined4 *)(puVar2 + 2) = 0;
  *(undefined1 *)((long)puVar2 + 0x14) = 0;
  *(undefined4 *)(puVar2 + 3) = 0;
  *puVar2 = &DAT_00663008;
  if (bVar5) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001c5424 to 001c5440 has its CatchHandler @ 001c5441 */
    FUN_00352af0("../../gold/target.h",0x48b,"Sized_target");
  }
  if (DAT_0067c644 != '\0') {
    puVar2[4] = 0;
    *puVar2 = &PTR_FUN_00662478;
    uVar1 = DAT_0067c648;
    puVar2[5] = 0;
    puVar2[6] = 0;
    puVar2[7] = 0;
    puVar2[8] = 0;
    puVar2[9] = 0;
    puVar2[10] = 0;
    *(undefined4 *)(puVar2 + 0xb) = 0x13;
    puVar2[0xc] = 0;
    puVar2[0xd] = 0;
    *(undefined4 *)(puVar2 + 0xe) = 0xffffffff;
    puVar2[0xf] = 0;
    *(undefined4 *)((long)puVar2 + 0x84) = 0;
    *(undefined1 *)(puVar2 + 0x11) = 0;
    *(short *)(puVar2 + 0x10) = (short)uVar1;
    puVar3 = puVar2 + 0x12;
    do {
      *puVar3 = 0;
      puVar4 = puVar3 + 3;
      *(undefined4 *)(puVar3 + 1) = 0;
      puVar3[2] = 0;
      puVar3 = puVar4;
    } while (puVar4 != puVar2 + 0x1e);
    return puVar2;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00352af0("../../gold/target.h",0x48c,"Sized_target");
}


PUSH RBP
MOV EDI,0xf0
PUSH RBX
SUB RSP,0x8
CALL 0x0049cb60
CMP dword ptr [0x0067c640],0x20
MOV RBX,RAX
LEA RAX,[0x67c640]
MOV qword ptr [RBX + 0x8],RAX
LEA RAX,[0x663008]
MOV dword ptr [RBX + 0x10],0x0
MOV byte ptr [RBX + 0x14],0x0
MOV dword ptr [RBX + 0x18],0x0
MOV qword ptr [RBX],RAX
JNZ 0x001c5411
CMP byte ptr [0x0067c644],0x0
JZ 0x001c5429
LEA RAX,[0x662478]
MOV qword ptr [RBX + 0x20],0x0
LEA RDX,[RBX + 0xf0]
MOV qword ptr [RBX],RAX
MOV EAX,dword ptr [0x0067c648]
MOV qword ptr [RBX + 0x28],0x0
MOV qword ptr [RBX + 0x30],0x0
MOV qword ptr [RBX + 0x38],0x0
MOV qword ptr [RBX + 0x40],0x0
MOV qword ptr [RBX + 0x48],0x0
MOV qword ptr [RBX + 0x50],0x0
MOV dword ptr [RBX + 0x58],0x13
MOV qword ptr [RBX + 0x60],0x0
MOV qword ptr [RBX + 0x68],0x0
MOV dword ptr [RBX + 0x70],0xffffffff
MOV qword ptr [RBX + 0x78],0x0
MOV dword ptr [RBX + 0x84],0x0
MOV byte ptr [RBX + 0x88],0x0
MOV word ptr [RBX + 0x80],AX
LEA RAX,[RBX + 0x90]
MOV qword ptr [RAX],0x0
ADD RAX,0x18
MOV dword ptr [RAX + -0x10],0x0
MOV qword ptr [RAX + -0x8],0x0
CMP RAX,RDX
JNZ 0x001c53e8
ADD RSP,0x8
MOV RAX,RBX
POP RBX
POP RBP
RET
LEA RDX,[0x53bc98]
MOV ESI,0x48b
LEA RDI,[0x533398]
CALL 0x00352af0
LEA RDX,[0x53bc98]
MOV ESI,0x48c
LEA RDI,[0x533398]
CALL 0x00352af0
(translation_unit "undefined8 * FUN_001c5300(void)\n\n{\n  undefined4 uVar1;\n  undefined8 *puVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  bool bVar5;\n  \n  puVar2 = (undefined8 *)FUN_0049cb60(0xf0);\n  bVar5 = DAT_0067c640 != 0x20;\n  puVar2[1] = &DAT_0067c640;\n  *(undefined4 *)(puVar2 + 2) = 0;\n  *(undefined1 *)((long)puVar2 + 0x14) = 0;\n  *(undefined4 *)(puVar2 + 3) = 0;\n  *puVar2 = &DAT_00663008;\n  if (bVar5) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001c5424 to 001c5440 has its CatchHandler @ 001c5441 */\n    FUN_00352af0("../../gold/target.h",0x48b,"Sized_target");\n  }\n  if (DAT_0067c644 != '\0') {\n    puVar2[4] = 0;\n    *puVar2 = &PTR_FUN_00662478;\n    uVar1 = DAT_0067c648;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    puVar2[7] = 0;\n    puVar2[8] = 0;\n    puVar2[9] = 0;\n    puVar2[10] = 0;\n    *(undefined4 *)(puVar2 + 0xb) = 0x13;\n    puVar2[0xc] = 0;\n    puVar2[0xd] = 0;\n    *(undefined4 *)(puVar2 + 0xe) = 0xffffffff;\n    puVar2[0xf] = 0;\n    *(undefined4 *)((long)puVar2 + 0x84) = 0;\n    *(undefined1 *)(puVar2 + 0x11) = 0;\n    *(short *)(puVar2 + 0x10) = (short)uVar1;\n    puVar3 = puVar2 + 0x12;\n    do {\n      *puVar3 = 0;\n      puVar4 = puVar3 + 3;\n      *(undefined4 *)(puVar3 + 1) = 0;\n      puVar3[2] = 0;\n      puVar3 = puVar4;\n    } while (puVar4 != puVar2 + 0x1e);\n    return puVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00352af0("../../gold/target.h",0x48c,"Sized_target");\n}\n\n" (function_definition "undefined8 * FUN_001c5300(void)\n\n{\n  undefined4 uVar1;\n  undefined8 *puVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  bool bVar5;\n  \n  puVar2 = (undefined8 *)FUN_0049cb60(0xf0);\n  bVar5 = DAT_0067c640 != 0x20;\n  puVar2[1] = &DAT_0067c640;\n  *(undefined4 *)(puVar2 + 2) = 0;\n  *(undefined1 *)((long)puVar2 + 0x14) = 0;\n  *(undefined4 *)(puVar2 + 3) = 0;\n  *puVar2 = &DAT_00663008;\n  if (bVar5) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001c5424 to 001c5440 has its CatchHandler @ 001c5441 */\n    FUN_00352af0("../../gold/target.h",0x48b,"Sized_target");\n  }\n  if (DAT_0067c644 != '\0') {\n    puVar2[4] = 0;\n    *puVar2 = &PTR_FUN_00662478;\n    uVar1 = DAT_0067c648;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    puVar2[7] = 0;\n    puVar2[8] = 0;\n    puVar2[9] = 0;\n    puVar2[10] = 0;\n    *(undefined4 *)(puVar2 + 0xb) = 0x13;\n    puVar2[0xc] = 0;\n    puVar2[0xd] = 0;\n    *(undefined4 *)(puVar2 + 0xe) = 0xffffffff;\n    puVar2[0xf] = 0;\n    *(undefined4 *)((long)puVar2 + 0x84) = 0;\n    *(undefined1 *)(puVar2 + 0x11) = 0;\n    *(short *)(puVar2 + 0x10) = (short)uVar1;\n    puVar3 = puVar2 + 0x12;\n    do {\n      *puVar3 = 0;\n      puVar4 = puVar3 + 3;\n      *(undefined4 *)(puVar3 + 1) = 0;\n      puVar3[2] = 0;\n      puVar3 = puVar4;\n    } while (puVar4 != puVar2 + 0x1e);\n    return puVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00352af0("../../gold/target.h",0x48c,"Sized_target");\n}" type_identifier (pointer_declarator "* FUN_001c5300(void)" * (function_declarator "FUN_001c5300(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  undefined4 uVar1;\n  undefined8 *puVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  bool bVar5;\n  \n  puVar2 = (undefined8 *)FUN_0049cb60(0xf0);\n  bVar5 = DAT_0067c640 != 0x20;\n  puVar2[1] = &DAT_0067c640;\n  *(undefined4 *)(puVar2 + 2) = 0;\n  *(undefined1 *)((long)puVar2 + 0x14) = 0;\n  *(undefined4 *)(puVar2 + 3) = 0;\n  *puVar2 = &DAT_00663008;\n  if (bVar5) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001c5424 to 001c5440 has its CatchHandler @ 001c5441 */\n    FUN_00352af0("../../gold/target.h",0x48b,"Sized_target");\n  }\n  if (DAT_0067c644 != '\0') {\n    puVar2[4] = 0;\n    *puVar2 = &PTR_FUN_00662478;\n    uVar1 = DAT_0067c648;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    puVar2[7] = 0;\n    puVar2[8] = 0;\n    puVar2[9] = 0;\n    puVar2[10] = 0;\n    *(undefined4 *)(puVar2 + 0xb) = 0x13;\n    puVar2[0xc] = 0;\n    puVar2[0xd] = 0;\n    *(undefined4 *)(puVar2 + 0xe) = 0xffffffff;\n    puVar2[0xf] = 0;\n    *(undefined4 *)((long)puVar2 + 0x84) = 0;\n    *(undefined1 *)(puVar2 + 0x11) = 0;\n    *(short *)(puVar2 + 0x10) = (short)uVar1;\n    puVar3 = puVar2 + 0x12;\n    do {\n      *puVar3 = 0;\n      puVar4 = puVar3 + 3;\n      *(undefined4 *)(puVar3 + 1) = 0;\n      puVar3[2] = 0;\n      puVar3 = puVar4;\n    } while (puVar4 != puVar2 + 0x1e);\n    return puVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00352af0("../../gold/target.h",0x48c,"Sized_target");\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "bool bVar5;" primitive_type identifier ;) (expression_statement "puVar2 = (undefined8 *)FUN_0049cb60(0xf0);" (assignment_expression "puVar2 = (undefined8 *)FUN_0049cb60(0xf0)" identifier = (cast_expression "(undefined8 *)FUN_0049cb60(0xf0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0049cb60(0xf0)" identifier (argument_list "(0xf0)" ( number_literal ))))) ;) (expression_statement "bVar5 = DAT_0067c640 != 0x20;" (assignment_expression "bVar5 = DAT_0067c640 != 0x20" identifier = (binary_expression "DAT_0067c640 != 0x20" identifier != number_literal)) ;) (expression_statement "puVar2[1] = &DAT_0067c640;" (assignment_expression "puVar2[1] = &DAT_0067c640" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (pointer_expression "&DAT_0067c640" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar2 + 2) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + 2) = 0" (pointer_expression "*(undefined4 *)(puVar2 + 2)" * (cast_expression "(undefined4 *)(puVar2 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 2)" ( (binary_expression "puVar2 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)puVar2 + 0x14) = 0;" (assignment_expression "*(undefined1 *)((long)puVar2 + 0x14) = 0" (pointer_expression "*(undefined1 *)((long)puVar2 + 0x14)" * (cast_expression "(undefined1 *)((long)puVar2 + 0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar2 + 0x14)" ( (binary_expression "(long)puVar2 + 0x14" (cast_expression "(long)puVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar2 + 3) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + 3) = 0" (pointer_expression "*(undefined4 *)(puVar2 + 3)" * (cast_expression "(undefined4 *)(puVar2 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 3)" ( (binary_expression "puVar2 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar2 = &DAT_00663008;" (assignment_expression "*puVar2 = &DAT_00663008" (pointer_expression "*puVar2" * identifier) = (pointer_expression "&DAT_00663008" & identifier)) ;) (if_statement "if (bVar5) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001c5424 to 001c5440 has its CatchHandler @ 001c5441 */\n    FUN_00352af0("../../gold/target.h",0x48b,"Sized_target");\n  }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001c5424 to 001c5440 has its CatchHandler @ 001c5441 */\n    FUN_00352af0("../../gold/target.h",0x48b,"Sized_target");\n  }" { comment comment (expression_statement "FUN_00352af0("../../gold/target.h",0x48b,"Sized_target");" (call_expression "FUN_00352af0("../../gold/target.h",0x48b,"Sized_target")" identifier (argument_list "("../../gold/target.h",0x48b,"Sized_target")" ( (string_literal ""../../gold/target.h"" " string_content ") , number_literal , (string_literal ""Sized_target"" " string_content ") ))) ;) })) (if_statement "if (DAT_0067c644 != '\0') {\n    puVar2[4] = 0;\n    *puVar2 = &PTR_FUN_00662478;\n    uVar1 = DAT_0067c648;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    puVar2[7] = 0;\n    puVar2[8] = 0;\n    puVar2[9] = 0;\n    puVar2[10] = 0;\n    *(undefined4 *)(puVar2 + 0xb) = 0x13;\n    puVar2[0xc] = 0;\n    puVar2[0xd] = 0;\n    *(undefined4 *)(puVar2 + 0xe) = 0xffffffff;\n    puVar2[0xf] = 0;\n    *(undefined4 *)((long)puVar2 + 0x84) = 0;\n    *(undefined1 *)(puVar2 + 0x11) = 0;\n    *(short *)(puVar2 + 0x10) = (short)uVar1;\n    puVar3 = puVar2 + 0x12;\n    do {\n      *puVar3 = 0;\n      puVar4 = puVar3 + 3;\n      *(undefined4 *)(puVar3 + 1) = 0;\n      puVar3[2] = 0;\n      puVar3 = puVar4;\n    } while (puVar4 != puVar2 + 0x1e);\n    return puVar2;\n  }" if (parenthesized_expression "(DAT_0067c644 != '\0')" ( (binary_expression "DAT_0067c644 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar2[4] = 0;\n    *puVar2 = &PTR_FUN_00662478;\n    uVar1 = DAT_0067c648;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    puVar2[7] = 0;\n    puVar2[8] = 0;\n    puVar2[9] = 0;\n    puVar2[10] = 0;\n    *(undefined4 *)(puVar2 + 0xb) = 0x13;\n    puVar2[0xc] = 0;\n    puVar2[0xd] = 0;\n    *(undefined4 *)(puVar2 + 0xe) = 0xffffffff;\n    puVar2[0xf] = 0;\n    *(undefined4 *)((long)puVar2 + 0x84) = 0;\n    *(undefined1 *)(puVar2 + 0x11) = 0;\n    *(short *)(puVar2 + 0x10) = (short)uVar1;\n    puVar3 = puVar2 + 0x12;\n    do {\n      *puVar3 = 0;\n      puVar4 = puVar3 + 3;\n      *(undefined4 *)(puVar3 + 1) = 0;\n      puVar3[2] = 0;\n      puVar3 = puVar4;\n    } while (puVar4 != puVar2 + 0x1e);\n    return puVar2;\n  }" { (expression_statement "puVar2[4] = 0;" (assignment_expression "puVar2[4] = 0" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar2 = &PTR_FUN_00662478;" (assignment_expression "*puVar2 = &PTR_FUN_00662478" (pointer_expression "*puVar2" * identifier) = (pointer_expression "&PTR_FUN_00662478" & identifier)) ;) (expression_statement "uVar1 = DAT_0067c648;" (assignment_expression "uVar1 = DAT_0067c648" identifier = identifier) ;) (expression_statement "puVar2[5] = 0;" (assignment_expression "puVar2[5] = 0" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[6] = 0;" (assignment_expression "puVar2[6] = 0" (subscript_expression "puVar2[6]" 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 "puVar2[8] = 0;" (assignment_expression "puVar2[8] = 0" (subscript_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 "*(undefined4 *)(puVar2 + 0xb) = 0x13;" (assignment_expression "*(undefined4 *)(puVar2 + 0xb) = 0x13" (pointer_expression "*(undefined4 *)(puVar2 + 0xb)" * (cast_expression "(undefined4 *)(puVar2 + 0xb)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0xb)" ( (binary_expression "puVar2 + 0xb" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar2[0xc] = 0;" (assignment_expression "puVar2[0xc] = 0" (subscript_expression "puVar2[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0xd] = 0;" (assignment_expression "puVar2[0xd] = 0" (subscript_expression "puVar2[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar2 + 0xe) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar2 + 0xe) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar2 + 0xe)" * (cast_expression "(undefined4 *)(puVar2 + 0xe)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0xe)" ( (binary_expression "puVar2 + 0xe" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar2[0xf] = 0;" (assignment_expression "puVar2[0xf] = 0" (subscript_expression "puVar2[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)((long)puVar2 + 0x84) = 0;" (assignment_expression "*(undefined4 *)((long)puVar2 + 0x84) = 0" (pointer_expression "*(undefined4 *)((long)puVar2 + 0x84)" * (cast_expression "(undefined4 *)((long)puVar2 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar2 + 0x84)" ( (binary_expression "(long)puVar2 + 0x84" (cast_expression "(long)puVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar2 + 0x11) = 0;" (assignment_expression "*(undefined1 *)(puVar2 + 0x11) = 0" (pointer_expression "*(undefined1 *)(puVar2 + 0x11)" * (cast_expression "(undefined1 *)(puVar2 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11)" ( (binary_expression "puVar2 + 0x11" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(short *)(puVar2 + 0x10) = (short)uVar1;" (assignment_expression "*(short *)(puVar2 + 0x10) = (short)uVar1" (pointer_expression "*(short *)(puVar2 + 0x10)" * (cast_expression "(short *)(puVar2 + 0x10)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x10)" ( (binary_expression "puVar2 + 0x10" identifier + number_literal) )))) = (cast_expression "(short)uVar1" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "puVar3 = puVar2 + 0x12;" (assignment_expression "puVar3 = puVar2 + 0x12" identifier = (binary_expression "puVar2 + 0x12" identifier + number_literal)) ;) (do_statement "do {\n      *puVar3 = 0;\n      puVar4 = puVar3 + 3;\n      *(undefined4 *)(puVar3 + 1) = 0;\n      puVar3[2] = 0;\n      puVar3 = puVar4;\n    } while (puVar4 != puVar2 + 0x1e);" do (compound_statement "{\n      *puVar3 = 0;\n      puVar4 = puVar3 + 3;\n      *(undefined4 *)(puVar3 + 1) = 0;\n      puVar3[2] = 0;\n      puVar3 = puVar4;\n    }" { (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (expression_statement "puVar4 = puVar3 + 3;" (assignment_expression "puVar4 = puVar3 + 3" identifier = (binary_expression "puVar3 + 3" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar3 + 1) = 0;" (assignment_expression "*(undefined4 *)(puVar3 + 1) = 0" (pointer_expression "*(undefined4 *)(puVar3 + 1)" * (cast_expression "(undefined4 *)(puVar3 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 1)" ( (binary_expression "puVar3 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3 = puVar4;" (assignment_expression "puVar3 = puVar4" identifier = identifier) ;) }) while (parenthesized_expression "(puVar4 != puVar2 + 0x1e)" ( (binary_expression "puVar4 != puVar2 + 0x1e" identifier != (binary_expression "puVar2 + 0x1e" identifier + number_literal)) )) ;) (return_statement "return puVar2;" return identifier ;) })) comment (expression_statement "FUN_00352af0("../../gold/target.h",0x48c,"Sized_target");" (call_expression "FUN_00352af0("../../gold/target.h",0x48c,"Sized_target")" identifier (argument_list "("../../gold/target.h",0x48c,"Sized_target")" ( (string_literal ""../../gold/target.h"" " string_content ") , number_literal , (string_literal ""Sized_target"" " string_content ") ))) ;) })))
(translation_unit "/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original prototype: Target * do_instantiate_target(Target_selector_sparc<32,_true> * this)\n    */\n\nTarget * __thiscall\nanon_unknown.dwarf_4cd88d::Target_selector_sparc<32,_true>::do_instantiate_target\n          (Target_selector_sparc<32,_true> *this)\n\n{\n  EM EVar1;\n  Target *pTVar2;\n  Elf_Word *pEVar3;\n  Elf_Word *pEVar4;\n  bool bVar5;\n  \n  pTVar2 = (Target *)operator_new(0xf0);\n  bVar5 = Target_sparc<32,_true>::sparc_info.size != 0x20;\n  pTVar2->pti_ = &Target_sparc<32,_true>::sparc_info;\n  pTVar2->processor_specific_flags_ = 0;\n  pTVar2->are_processor_specific_flags_set_ = false;\n  pTVar2->osabi_ = ELFOSABI_NONE;\n  pTVar2->_vptr_Target = (_func_int_varargs **)&DAT_00663008;\n  if (bVar5) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001c5424 to 001c5440 has its CatchHandler @ 001c5441 */\n    gold::do_gold_unreachable("../../gold/target.h",0x48b,"Sized_target");\n  }\n  if (Target_sparc<32,_true>::sparc_info.is_big_endian != false) {\n    pTVar2[1]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2->_vptr_Target = (_func_int_varargs **)&PTR__Target_sparc_00662478;\n    EVar1 = Target_sparc<32,_true>::sparc_info.machine_code;\n    pTVar2[1].pti_ = (Target_info *)0x0;\n    pTVar2[1].processor_specific_flags_ = 0;\n    pTVar2[1].are_processor_specific_flags_set_ = false;\n    *(undefined3 *)&pTVar2[1].field_0x15 = 0;\n    *(undefined8 *)&pTVar2[1].osabi_ = 0;\n    pTVar2[2]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[2].pti_ = (Target_info *)0x0;\n    pTVar2[2].processor_specific_flags_ = 0;\n    pTVar2[2].are_processor_specific_flags_set_ = false;\n    *(undefined3 *)&pTVar2[2].field_0x15 = 0;\n    pTVar2[2].osabi_ = 0x13;\n    pTVar2[3]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[3].pti_ = (Target_info *)0x0;\n    pTVar2[3].processor_specific_flags_ = 0xffffffff;\n    *(undefined8 *)&pTVar2[3].osabi_ = 0;\n    *(undefined4 *)((long)&pTVar2[4]._vptr_Target + 4) = 0;\n    *(undefined1 *)&pTVar2[4].pti_ = 0;\n    *(short *)&pTVar2[4]._vptr_Target = (short)EVar1;\n    pEVar3 = &pTVar2[4].processor_specific_flags_;\n    do {\n      *(undefined8 *)pEVar3 = 0;\n      pEVar4 = pEVar3 + 6;\n      pEVar3[2] = ELFOSABI_NONE;\n      *(undefined8 *)(pEVar3 + 4) = 0;\n      pEVar3 = pEVar4;\n    } while (pEVar4 != &pTVar2[7].processor_specific_flags_);\n    return pTVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  gold::do_gold_unreachable("../../gold/target.h",0x48c,"Sized_target");\n}\n\n" comment comment (ERROR "Target * __thiscall\nanon_unknown.dwarf_4cd88d::Target_selector_sparc<32,_true>::do_instantiate_target\n          (Target_selector_sparc<32,_true> *this)" (binary_expression "Target * __thiscall\nanon_unknown.dwarf_4cd88d::Target_selector_sparc<32,_true>::do_instantiate_target\n          (Target_selector_sparc<32,_true> *this)" (binary_expression "Target * __thiscall\nanon_unknown.dwarf_4cd88d::Target_selector_sparc<32" (binary_expression "Target * __thiscall\nanon_unknown.dwarf_4cd88d" identifier * (ERROR "__thiscall" identifier) (field_expression "anon_unknown.dwarf_4cd88d" identifier . field_identifier)) (ERROR "::Target_selector_sparc" : : identifier) < number_literal) (ERROR ",_true" , identifier) > (ERROR "::" : :) (call_expression "do_instantiate_target\n          (Target_selector_sparc<32,_true> *this)" identifier (argument_list "(Target_selector_sparc<32,_true> *this)" ( (binary_expression "Target_selector_sparc<32" identifier < number_literal) , (binary_expression "_true> *this" identifier > (pointer_expression "*this" * identifier)) ))))) (compound_statement "{\n  EM EVar1;\n  Target *pTVar2;\n  Elf_Word *pEVar3;\n  Elf_Word *pEVar4;\n  bool bVar5;\n  \n  pTVar2 = (Target *)operator_new(0xf0);\n  bVar5 = Target_sparc<32,_true>::sparc_info.size != 0x20;\n  pTVar2->pti_ = &Target_sparc<32,_true>::sparc_info;\n  pTVar2->processor_specific_flags_ = 0;\n  pTVar2->are_processor_specific_flags_set_ = false;\n  pTVar2->osabi_ = ELFOSABI_NONE;\n  pTVar2->_vptr_Target = (_func_int_varargs **)&DAT_00663008;\n  if (bVar5) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001c5424 to 001c5440 has its CatchHandler @ 001c5441 */\n    gold::do_gold_unreachable("../../gold/target.h",0x48b,"Sized_target");\n  }\n  if (Target_sparc<32,_true>::sparc_info.is_big_endian != false) {\n    pTVar2[1]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2->_vptr_Target = (_func_int_varargs **)&PTR__Target_sparc_00662478;\n    EVar1 = Target_sparc<32,_true>::sparc_info.machine_code;\n    pTVar2[1].pti_ = (Target_info *)0x0;\n    pTVar2[1].processor_specific_flags_ = 0;\n    pTVar2[1].are_processor_specific_flags_set_ = false;\n    *(undefined3 *)&pTVar2[1].field_0x15 = 0;\n    *(undefined8 *)&pTVar2[1].osabi_ = 0;\n    pTVar2[2]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[2].pti_ = (Target_info *)0x0;\n    pTVar2[2].processor_specific_flags_ = 0;\n    pTVar2[2].are_processor_specific_flags_set_ = false;\n    *(undefined3 *)&pTVar2[2].field_0x15 = 0;\n    pTVar2[2].osabi_ = 0x13;\n    pTVar2[3]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[3].pti_ = (Target_info *)0x0;\n    pTVar2[3].processor_specific_flags_ = 0xffffffff;\n    *(undefined8 *)&pTVar2[3].osabi_ = 0;\n    *(undefined4 *)((long)&pTVar2[4]._vptr_Target + 4) = 0;\n    *(undefined1 *)&pTVar2[4].pti_ = 0;\n    *(short *)&pTVar2[4]._vptr_Target = (short)EVar1;\n    pEVar3 = &pTVar2[4].processor_specific_flags_;\n    do {\n      *(undefined8 *)pEVar3 = 0;\n      pEVar4 = pEVar3 + 6;\n      pEVar3[2] = ELFOSABI_NONE;\n      *(undefined8 *)(pEVar3 + 4) = 0;\n      pEVar3 = pEVar4;\n    } while (pEVar4 != &pTVar2[7].processor_specific_flags_);\n    return pTVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  gold::do_gold_unreachable("../../gold/target.h",0x48c,"Sized_target");\n}" { (declaration "EM EVar1;" type_identifier identifier ;) (declaration "Target *pTVar2;" type_identifier (pointer_declarator "*pTVar2" * identifier) ;) (declaration "Elf_Word *pEVar3;" type_identifier (pointer_declarator "*pEVar3" * identifier) ;) (declaration "Elf_Word *pEVar4;" type_identifier (pointer_declarator "*pEVar4" * identifier) ;) (declaration "bool bVar5;" primitive_type identifier ;) (expression_statement "pTVar2 = (Target *)operator_new(0xf0);" (assignment_expression "pTVar2 = (Target *)operator_new(0xf0)" identifier = (cast_expression "(Target *)operator_new(0xf0)" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0xf0)" identifier (argument_list "(0xf0)" ( number_literal ))))) ;) (expression_statement "bVar5 = Target_sparc<32,_true>::sparc_info.size != 0x20;" (comma_expression "bVar5 = Target_sparc<32,_true>::sparc_info.size != 0x20" (assignment_expression "bVar5 = Target_sparc<32" identifier = (binary_expression "Target_sparc<32" identifier < number_literal)) , (binary_expression "_true>::sparc_info.size != 0x20" (binary_expression "_true>::sparc_info.size" identifier > (ERROR "::" : :) (field_expression "sparc_info.size" identifier . field_identifier)) != number_literal)) ;) (expression_statement "pTVar2->pti_ = &Target_sparc<32,_true>::sparc_info;" (comma_expression "pTVar2->pti_ = &Target_sparc<32,_true>::sparc_info" (assignment_expression "pTVar2->pti_ = &Target_sparc<32" (field_expression "pTVar2->pti_" identifier -> field_identifier) = (binary_expression "&Target_sparc<32" (pointer_expression "&Target_sparc" & identifier) < number_literal)) , (binary_expression "_true>::sparc_info" identifier > (ERROR "::" : :) identifier)) ;) (expression_statement "pTVar2->processor_specific_flags_ = 0;" (assignment_expression "pTVar2->processor_specific_flags_ = 0" (field_expression "pTVar2->processor_specific_flags_" identifier -> field_identifier) = number_literal) ;) (expression_statement "pTVar2->are_processor_specific_flags_set_ = false;" (assignment_expression "pTVar2->are_processor_specific_flags_set_ = false" (field_expression "pTVar2->are_processor_specific_flags_set_" identifier -> field_identifier) = false) ;) (expression_statement "pTVar2->osabi_ = ELFOSABI_NONE;" (assignment_expression "pTVar2->osabi_ = ELFOSABI_NONE" (field_expression "pTVar2->osabi_" identifier -> field_identifier) = identifier) ;) (expression_statement "pTVar2->_vptr_Target = (_func_int_varargs **)&DAT_00663008;" (assignment_expression "pTVar2->_vptr_Target = (_func_int_varargs **)&DAT_00663008" (field_expression "pTVar2->_vptr_Target" identifier -> field_identifier) = (cast_expression "(_func_int_varargs **)&DAT_00663008" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_00663008" & identifier))) ;) (if_statement "if (bVar5) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001c5424 to 001c5440 has its CatchHandler @ 001c5441 */\n    gold::do_gold_unreachable("../../gold/target.h",0x48b,"Sized_target");\n  }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001c5424 to 001c5440 has its CatchHandler @ 001c5441 */\n    gold::do_gold_unreachable("../../gold/target.h",0x48b,"Sized_target");\n  }" { comment comment (labeled_statement "gold::do_gold_unreachable("../../gold/target.h",0x48b,"Sized_target");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/target.h",0x48b,"Sized_target");" (call_expression "do_gold_unreachable("../../gold/target.h",0x48b,"Sized_target")" identifier (argument_list "("../../gold/target.h",0x48b,"Sized_target")" ( (string_literal ""../../gold/target.h"" " string_content ") , number_literal , (string_literal ""Sized_target"" " string_content ") ))) ;)) })) (if_statement "if (Target_sparc<32,_true>::sparc_info.is_big_endian != false) {\n    pTVar2[1]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2->_vptr_Target = (_func_int_varargs **)&PTR__Target_sparc_00662478;\n    EVar1 = Target_sparc<32,_true>::sparc_info.machine_code;\n    pTVar2[1].pti_ = (Target_info *)0x0;\n    pTVar2[1].processor_specific_flags_ = 0;\n    pTVar2[1].are_processor_specific_flags_set_ = false;\n    *(undefined3 *)&pTVar2[1].field_0x15 = 0;\n    *(undefined8 *)&pTVar2[1].osabi_ = 0;\n    pTVar2[2]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[2].pti_ = (Target_info *)0x0;\n    pTVar2[2].processor_specific_flags_ = 0;\n    pTVar2[2].are_processor_specific_flags_set_ = false;\n    *(undefined3 *)&pTVar2[2].field_0x15 = 0;\n    pTVar2[2].osabi_ = 0x13;\n    pTVar2[3]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[3].pti_ = (Target_info *)0x0;\n    pTVar2[3].processor_specific_flags_ = 0xffffffff;\n    *(undefined8 *)&pTVar2[3].osabi_ = 0;\n    *(undefined4 *)((long)&pTVar2[4]._vptr_Target + 4) = 0;\n    *(undefined1 *)&pTVar2[4].pti_ = 0;\n    *(short *)&pTVar2[4]._vptr_Target = (short)EVar1;\n    pEVar3 = &pTVar2[4].processor_specific_flags_;\n    do {\n      *(undefined8 *)pEVar3 = 0;\n      pEVar4 = pEVar3 + 6;\n      pEVar3[2] = ELFOSABI_NONE;\n      *(undefined8 *)(pEVar3 + 4) = 0;\n      pEVar3 = pEVar4;\n    } while (pEVar4 != &pTVar2[7].processor_specific_flags_);\n    return pTVar2;\n  }" if (parenthesized_expression "(Target_sparc<32,_true>::sparc_info.is_big_endian != false)" ( (comma_expression "Target_sparc<32,_true>::sparc_info.is_big_endian != false" (binary_expression "Target_sparc<32" identifier < number_literal) , (binary_expression "_true>::sparc_info.is_big_endian != false" (binary_expression "_true>::sparc_info.is_big_endian" identifier > (ERROR "::" : :) (field_expression "sparc_info.is_big_endian" identifier . field_identifier)) != false)) )) (compound_statement "{\n    pTVar2[1]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2->_vptr_Target = (_func_int_varargs **)&PTR__Target_sparc_00662478;\n    EVar1 = Target_sparc<32,_true>::sparc_info.machine_code;\n    pTVar2[1].pti_ = (Target_info *)0x0;\n    pTVar2[1].processor_specific_flags_ = 0;\n    pTVar2[1].are_processor_specific_flags_set_ = false;\n    *(undefined3 *)&pTVar2[1].field_0x15 = 0;\n    *(undefined8 *)&pTVar2[1].osabi_ = 0;\n    pTVar2[2]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[2].pti_ = (Target_info *)0x0;\n    pTVar2[2].processor_specific_flags_ = 0;\n    pTVar2[2].are_processor_specific_flags_set_ = false;\n    *(undefined3 *)&pTVar2[2].field_0x15 = 0;\n    pTVar2[2].osabi_ = 0x13;\n    pTVar2[3]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[3].pti_ = (Target_info *)0x0;\n    pTVar2[3].processor_specific_flags_ = 0xffffffff;\n    *(undefined8 *)&pTVar2[3].osabi_ = 0;\n    *(undefined4 *)((long)&pTVar2[4]._vptr_Target + 4) = 0;\n    *(undefined1 *)&pTVar2[4].pti_ = 0;\n    *(short *)&pTVar2[4]._vptr_Target = (short)EVar1;\n    pEVar3 = &pTVar2[4].processor_specific_flags_;\n    do {\n      *(undefined8 *)pEVar3 = 0;\n      pEVar4 = pEVar3 + 6;\n      pEVar3[2] = ELFOSABI_NONE;\n      *(undefined8 *)(pEVar3 + 4) = 0;\n      pEVar3 = pEVar4;\n    } while (pEVar4 != &pTVar2[7].processor_specific_flags_);\n    return pTVar2;\n  }" { (expression_statement "pTVar2[1]._vptr_Target = (_func_int_varargs **)0x0;" (assignment_expression "pTVar2[1]._vptr_Target = (_func_int_varargs **)0x0" (field_expression "pTVar2[1]._vptr_Target" (subscript_expression "pTVar2[1]" identifier [ number_literal ]) . 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 "pTVar2->_vptr_Target = (_func_int_varargs **)&PTR__Target_sparc_00662478;" (assignment_expression "pTVar2->_vptr_Target = (_func_int_varargs **)&PTR__Target_sparc_00662478" (field_expression "pTVar2->_vptr_Target" identifier -> field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Target_sparc_00662478" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Target_sparc_00662478" & identifier))) ;) (expression_statement "EVar1 = Target_sparc<32,_true>::sparc_info.machine_code;" (comma_expression "EVar1 = Target_sparc<32,_true>::sparc_info.machine_code" (assignment_expression "EVar1 = Target_sparc<32" identifier = (binary_expression "Target_sparc<32" identifier < number_literal)) , (binary_expression "_true>::sparc_info.machine_code" identifier > (ERROR "::" : :) (field_expression "sparc_info.machine_code" identifier . field_identifier))) ;) (expression_statement "pTVar2[1].pti_ = (Target_info *)0x0;" (assignment_expression "pTVar2[1].pti_ = (Target_info *)0x0" (field_expression "pTVar2[1].pti_" (subscript_expression "pTVar2[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Target_info *)0x0" ( (type_descriptor "Target_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pTVar2[1].processor_specific_flags_ = 0;" (assignment_expression "pTVar2[1].processor_specific_flags_ = 0" (field_expression "pTVar2[1].processor_specific_flags_" (subscript_expression "pTVar2[1]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "pTVar2[1].are_processor_specific_flags_set_ = false;" (assignment_expression "pTVar2[1].are_processor_specific_flags_set_ = false" (field_expression "pTVar2[1].are_processor_specific_flags_set_" (subscript_expression "pTVar2[1]" identifier [ number_literal ]) . field_identifier) = false) ;) (expression_statement "*(undefined3 *)&pTVar2[1].field_0x15 = 0;" (assignment_expression "*(undefined3 *)&pTVar2[1].field_0x15 = 0" (pointer_expression "*(undefined3 *)&pTVar2[1].field_0x15" * (cast_expression "(undefined3 *)&pTVar2[1].field_0x15" ( (type_descriptor "undefined3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar2[1].field_0x15" & (field_expression "pTVar2[1].field_0x15" (subscript_expression "pTVar2[1]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined8 *)&pTVar2[1].osabi_ = 0;" (assignment_expression "*(undefined8 *)&pTVar2[1].osabi_ = 0" (pointer_expression "*(undefined8 *)&pTVar2[1].osabi_" * (cast_expression "(undefined8 *)&pTVar2[1].osabi_" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar2[1].osabi_" & (field_expression "pTVar2[1].osabi_" (subscript_expression "pTVar2[1]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "pTVar2[2]._vptr_Target = (_func_int_varargs **)0x0;" (assignment_expression "pTVar2[2]._vptr_Target = (_func_int_varargs **)0x0" (field_expression "pTVar2[2]._vptr_Target" (subscript_expression "pTVar2[2]" identifier [ number_literal ]) . 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 "pTVar2[2].pti_ = (Target_info *)0x0;" (assignment_expression "pTVar2[2].pti_ = (Target_info *)0x0" (field_expression "pTVar2[2].pti_" (subscript_expression "pTVar2[2]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Target_info *)0x0" ( (type_descriptor "Target_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pTVar2[2].processor_specific_flags_ = 0;" (assignment_expression "pTVar2[2].processor_specific_flags_ = 0" (field_expression "pTVar2[2].processor_specific_flags_" (subscript_expression "pTVar2[2]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "pTVar2[2].are_processor_specific_flags_set_ = false;" (assignment_expression "pTVar2[2].are_processor_specific_flags_set_ = false" (field_expression "pTVar2[2].are_processor_specific_flags_set_" (subscript_expression "pTVar2[2]" identifier [ number_literal ]) . field_identifier) = false) ;) (expression_statement "*(undefined3 *)&pTVar2[2].field_0x15 = 0;" (assignment_expression "*(undefined3 *)&pTVar2[2].field_0x15 = 0" (pointer_expression "*(undefined3 *)&pTVar2[2].field_0x15" * (cast_expression "(undefined3 *)&pTVar2[2].field_0x15" ( (type_descriptor "undefined3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar2[2].field_0x15" & (field_expression "pTVar2[2].field_0x15" (subscript_expression "pTVar2[2]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "pTVar2[2].osabi_ = 0x13;" (assignment_expression "pTVar2[2].osabi_ = 0x13" (field_expression "pTVar2[2].osabi_" (subscript_expression "pTVar2[2]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "pTVar2[3]._vptr_Target = (_func_int_varargs **)0x0;" (assignment_expression "pTVar2[3]._vptr_Target = (_func_int_varargs **)0x0" (field_expression "pTVar2[3]._vptr_Target" (subscript_expression "pTVar2[3]" identifier [ number_literal ]) . 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 "pTVar2[3].pti_ = (Target_info *)0x0;" (assignment_expression "pTVar2[3].pti_ = (Target_info *)0x0" (field_expression "pTVar2[3].pti_" (subscript_expression "pTVar2[3]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Target_info *)0x0" ( (type_descriptor "Target_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pTVar2[3].processor_specific_flags_ = 0xffffffff;" (assignment_expression "pTVar2[3].processor_specific_flags_ = 0xffffffff" (field_expression "pTVar2[3].processor_specific_flags_" (subscript_expression "pTVar2[3]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "*(undefined8 *)&pTVar2[3].osabi_ = 0;" (assignment_expression "*(undefined8 *)&pTVar2[3].osabi_ = 0" (pointer_expression "*(undefined8 *)&pTVar2[3].osabi_" * (cast_expression "(undefined8 *)&pTVar2[3].osabi_" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar2[3].osabi_" & (field_expression "pTVar2[3].osabi_" (subscript_expression "pTVar2[3]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((long)&pTVar2[4]._vptr_Target + 4) = 0;" (assignment_expression "*(undefined4 *)((long)&pTVar2[4]._vptr_Target + 4) = 0" (pointer_expression "*(undefined4 *)((long)&pTVar2[4]._vptr_Target + 4)" * (cast_expression "(undefined4 *)((long)&pTVar2[4]._vptr_Target + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pTVar2[4]._vptr_Target + 4)" ( (binary_expression "(long)&pTVar2[4]._vptr_Target + 4" (cast_expression "(long)&pTVar2[4]._vptr_Target" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pTVar2[4]._vptr_Target" & (field_expression "pTVar2[4]._vptr_Target" (subscript_expression "pTVar2[4]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)&pTVar2[4].pti_ = 0;" (assignment_expression "*(undefined1 *)&pTVar2[4].pti_ = 0" (pointer_expression "*(undefined1 *)&pTVar2[4].pti_" * (cast_expression "(undefined1 *)&pTVar2[4].pti_" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar2[4].pti_" & (field_expression "pTVar2[4].pti_" (subscript_expression "pTVar2[4]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "*(short *)&pTVar2[4]._vptr_Target = (short)EVar1;" (assignment_expression "*(short *)&pTVar2[4]._vptr_Target = (short)EVar1" (pointer_expression "*(short *)&pTVar2[4]._vptr_Target" * (cast_expression "(short *)&pTVar2[4]._vptr_Target" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar2[4]._vptr_Target" & (field_expression "pTVar2[4]._vptr_Target" (subscript_expression "pTVar2[4]" identifier [ number_literal ]) . field_identifier)))) = (cast_expression "(short)EVar1" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "pEVar3 = &pTVar2[4].processor_specific_flags_;" (assignment_expression "pEVar3 = &pTVar2[4].processor_specific_flags_" identifier = (pointer_expression "&pTVar2[4].processor_specific_flags_" & (field_expression "pTVar2[4].processor_specific_flags_" (subscript_expression "pTVar2[4]" identifier [ number_literal ]) . field_identifier))) ;) (do_statement "do {\n      *(undefined8 *)pEVar3 = 0;\n      pEVar4 = pEVar3 + 6;\n      pEVar3[2] = ELFOSABI_NONE;\n      *(undefined8 *)(pEVar3 + 4) = 0;\n      pEVar3 = pEVar4;\n    } while (pEVar4 != &pTVar2[7].processor_specific_flags_);" do (compound_statement "{\n      *(undefined8 *)pEVar3 = 0;\n      pEVar4 = pEVar3 + 6;\n      pEVar3[2] = ELFOSABI_NONE;\n      *(undefined8 *)(pEVar3 + 4) = 0;\n      pEVar3 = pEVar4;\n    }" { (expression_statement "*(undefined8 *)pEVar3 = 0;" (assignment_expression "*(undefined8 *)pEVar3 = 0" (pointer_expression "*(undefined8 *)pEVar3" * (cast_expression "(undefined8 *)pEVar3" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "pEVar4 = pEVar3 + 6;" (assignment_expression "pEVar4 = pEVar3 + 6" identifier = (binary_expression "pEVar3 + 6" identifier + number_literal)) ;) (expression_statement "pEVar3[2] = ELFOSABI_NONE;" (assignment_expression "pEVar3[2] = ELFOSABI_NONE" (subscript_expression "pEVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined8 *)(pEVar3 + 4) = 0;" (assignment_expression "*(undefined8 *)(pEVar3 + 4) = 0" (pointer_expression "*(undefined8 *)(pEVar3 + 4)" * (cast_expression "(undefined8 *)(pEVar3 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar3 + 4)" ( (binary_expression "pEVar3 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pEVar3 = pEVar4;" (assignment_expression "pEVar3 = pEVar4" identifier = identifier) ;) }) while (parenthesized_expression "(pEVar4 != &pTVar2[7].processor_specific_flags_)" ( (binary_expression "pEVar4 != &pTVar2[7].processor_specific_flags_" identifier != (pointer_expression "&pTVar2[7].processor_specific_flags_" & (field_expression "pTVar2[7].processor_specific_flags_" (subscript_expression "pTVar2[7]" identifier [ number_literal ]) . field_identifier))) )) ;) (return_statement "return pTVar2;" return identifier ;) })) comment (labeled_statement "gold::do_gold_unreachable("../../gold/target.h",0x48c,"Sized_target");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/target.h",0x48c,"Sized_target");" (call_expression "do_gold_unreachable("../../gold/target.h",0x48c,"Sized_target")" identifier (argument_list "("../../gold/target.h",0x48c,"Sized_target")" ( (string_literal ""../../gold/target.h"" " string_content ") , number_literal , (string_literal ""Sized_target"" " string_content ") ))) ;)) }))
(translation_unit "undefined8 * FUN_001c5300(void)\n\n{\n  undefined4 uVar1;\n  undefined8 *puVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  bool bVar5;\n  \n  puVar2 = (undefined8 *)FUN_0049cb60(0xf0);\n  bVar5 = DAT_0067c640 != 0x20;\n  puVar2[1] = &DAT_0067c640;\n  *(undefined4 *)(puVar2 + 2) = 0;\n  *(undefined1 *)((long)puVar2 + 0x14) = 0;\n  *(undefined4 *)(puVar2 + 3) = 0;\n  *puVar2 = &DAT_00663008;\n  if (bVar5) {\n                    \n                    \n    FUN_00352af0("../../gold/target.h",0x48b,"Sized_target");\n  }\n  if (DAT_0067c644 != '\0') {\n    puVar2[4] = 0;\n    *puVar2 = &PTR_FUN_00662478;\n    uVar1 = DAT_0067c648;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    puVar2[7] = 0;\n    puVar2[8] = 0;\n    puVar2[9] = 0;\n    puVar2[10] = 0;\n    *(undefined4 *)(puVar2 + 0xb) = 0x13;\n    puVar2[0xc] = 0;\n    puVar2[0xd] = 0;\n    *(undefined4 *)(puVar2 + 0xe) = 0xffffffff;\n    puVar2[0xf] = 0;\n    *(undefined4 *)((long)puVar2 + 0x84) = 0;\n    *(undefined1 *)(puVar2 + 0x11) = 0;\n    *(short *)(puVar2 + 0x10) = (short)uVar1;\n    puVar3 = puVar2 + 0x12;\n    do {\n      *puVar3 = 0;\n      puVar4 = puVar3 + 3;\n      *(undefined4 *)(puVar3 + 1) = 0;\n      puVar3[2] = 0;\n      puVar3 = puVar4;\n    } while (puVar4 != puVar2 + 0x1e);\n    return puVar2;\n  }\n                    \n  FUN_00352af0("../../gold/target.h",0x48c,"Sized_target");\n}\n\n" (function_definition "undefined8 * FUN_001c5300(void)\n\n{\n  undefined4 uVar1;\n  undefined8 *puVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  bool bVar5;\n  \n  puVar2 = (undefined8 *)FUN_0049cb60(0xf0);\n  bVar5 = DAT_0067c640 != 0x20;\n  puVar2[1] = &DAT_0067c640;\n  *(undefined4 *)(puVar2 + 2) = 0;\n  *(undefined1 *)((long)puVar2 + 0x14) = 0;\n  *(undefined4 *)(puVar2 + 3) = 0;\n  *puVar2 = &DAT_00663008;\n  if (bVar5) {\n                    \n                    \n    FUN_00352af0("../../gold/target.h",0x48b,"Sized_target");\n  }\n  if (DAT_0067c644 != '\0') {\n    puVar2[4] = 0;\n    *puVar2 = &PTR_FUN_00662478;\n    uVar1 = DAT_0067c648;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    puVar2[7] = 0;\n    puVar2[8] = 0;\n    puVar2[9] = 0;\n    puVar2[10] = 0;\n    *(undefined4 *)(puVar2 + 0xb) = 0x13;\n    puVar2[0xc] = 0;\n    puVar2[0xd] = 0;\n    *(undefined4 *)(puVar2 + 0xe) = 0xffffffff;\n    puVar2[0xf] = 0;\n    *(undefined4 *)((long)puVar2 + 0x84) = 0;\n    *(undefined1 *)(puVar2 + 0x11) = 0;\n    *(short *)(puVar2 + 0x10) = (short)uVar1;\n    puVar3 = puVar2 + 0x12;\n    do {\n      *puVar3 = 0;\n      puVar4 = puVar3 + 3;\n      *(undefined4 *)(puVar3 + 1) = 0;\n      puVar3[2] = 0;\n      puVar3 = puVar4;\n    } while (puVar4 != puVar2 + 0x1e);\n    return puVar2;\n  }\n                    \n  FUN_00352af0("../../gold/target.h",0x48c,"Sized_target");\n}" type_identifier (pointer_declarator "* FUN_001c5300(void)" * (function_declarator "FUN_001c5300(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  undefined4 uVar1;\n  undefined8 *puVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  bool bVar5;\n  \n  puVar2 = (undefined8 *)FUN_0049cb60(0xf0);\n  bVar5 = DAT_0067c640 != 0x20;\n  puVar2[1] = &DAT_0067c640;\n  *(undefined4 *)(puVar2 + 2) = 0;\n  *(undefined1 *)((long)puVar2 + 0x14) = 0;\n  *(undefined4 *)(puVar2 + 3) = 0;\n  *puVar2 = &DAT_00663008;\n  if (bVar5) {\n                    \n                    \n    FUN_00352af0("../../gold/target.h",0x48b,"Sized_target");\n  }\n  if (DAT_0067c644 != '\0') {\n    puVar2[4] = 0;\n    *puVar2 = &PTR_FUN_00662478;\n    uVar1 = DAT_0067c648;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    puVar2[7] = 0;\n    puVar2[8] = 0;\n    puVar2[9] = 0;\n    puVar2[10] = 0;\n    *(undefined4 *)(puVar2 + 0xb) = 0x13;\n    puVar2[0xc] = 0;\n    puVar2[0xd] = 0;\n    *(undefined4 *)(puVar2 + 0xe) = 0xffffffff;\n    puVar2[0xf] = 0;\n    *(undefined4 *)((long)puVar2 + 0x84) = 0;\n    *(undefined1 *)(puVar2 + 0x11) = 0;\n    *(short *)(puVar2 + 0x10) = (short)uVar1;\n    puVar3 = puVar2 + 0x12;\n    do {\n      *puVar3 = 0;\n      puVar4 = puVar3 + 3;\n      *(undefined4 *)(puVar3 + 1) = 0;\n      puVar3[2] = 0;\n      puVar3 = puVar4;\n    } while (puVar4 != puVar2 + 0x1e);\n    return puVar2;\n  }\n                    \n  FUN_00352af0("../../gold/target.h",0x48c,"Sized_target");\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "bool bVar5;" primitive_type identifier ;) (expression_statement "puVar2 = (undefined8 *)FUN_0049cb60(0xf0);" (assignment_expression "puVar2 = (undefined8 *)FUN_0049cb60(0xf0)" identifier = (cast_expression "(undefined8 *)FUN_0049cb60(0xf0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0049cb60(0xf0)" identifier (argument_list "(0xf0)" ( number_literal ))))) ;) (expression_statement "bVar5 = DAT_0067c640 != 0x20;" (assignment_expression "bVar5 = DAT_0067c640 != 0x20" identifier = (binary_expression "DAT_0067c640 != 0x20" identifier != number_literal)) ;) (expression_statement "puVar2[1] = &DAT_0067c640;" (assignment_expression "puVar2[1] = &DAT_0067c640" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (pointer_expression "&DAT_0067c640" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar2 + 2) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + 2) = 0" (pointer_expression "*(undefined4 *)(puVar2 + 2)" * (cast_expression "(undefined4 *)(puVar2 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 2)" ( (binary_expression "puVar2 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)puVar2 + 0x14) = 0;" (assignment_expression "*(undefined1 *)((long)puVar2 + 0x14) = 0" (pointer_expression "*(undefined1 *)((long)puVar2 + 0x14)" * (cast_expression "(undefined1 *)((long)puVar2 + 0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar2 + 0x14)" ( (binary_expression "(long)puVar2 + 0x14" (cast_expression "(long)puVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar2 + 3) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + 3) = 0" (pointer_expression "*(undefined4 *)(puVar2 + 3)" * (cast_expression "(undefined4 *)(puVar2 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 3)" ( (binary_expression "puVar2 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar2 = &DAT_00663008;" (assignment_expression "*puVar2 = &DAT_00663008" (pointer_expression "*puVar2" * identifier) = (pointer_expression "&DAT_00663008" & identifier)) ;) (if_statement "if (bVar5) {\n                    \n                    \n    FUN_00352af0("../../gold/target.h",0x48b,"Sized_target");\n  }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n                    \n                    \n    FUN_00352af0("../../gold/target.h",0x48b,"Sized_target");\n  }" { (expression_statement "FUN_00352af0("../../gold/target.h",0x48b,"Sized_target");" (call_expression "FUN_00352af0("../../gold/target.h",0x48b,"Sized_target")" identifier (argument_list "("../../gold/target.h",0x48b,"Sized_target")" ( (string_literal ""../../gold/target.h"" " string_content ") , number_literal , (string_literal ""Sized_target"" " string_content ") ))) ;) })) (if_statement "if (DAT_0067c644 != '\0') {\n    puVar2[4] = 0;\n    *puVar2 = &PTR_FUN_00662478;\n    uVar1 = DAT_0067c648;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    puVar2[7] = 0;\n    puVar2[8] = 0;\n    puVar2[9] = 0;\n    puVar2[10] = 0;\n    *(undefined4 *)(puVar2 + 0xb) = 0x13;\n    puVar2[0xc] = 0;\n    puVar2[0xd] = 0;\n    *(undefined4 *)(puVar2 + 0xe) = 0xffffffff;\n    puVar2[0xf] = 0;\n    *(undefined4 *)((long)puVar2 + 0x84) = 0;\n    *(undefined1 *)(puVar2 + 0x11) = 0;\n    *(short *)(puVar2 + 0x10) = (short)uVar1;\n    puVar3 = puVar2 + 0x12;\n    do {\n      *puVar3 = 0;\n      puVar4 = puVar3 + 3;\n      *(undefined4 *)(puVar3 + 1) = 0;\n      puVar3[2] = 0;\n      puVar3 = puVar4;\n    } while (puVar4 != puVar2 + 0x1e);\n    return puVar2;\n  }" if (parenthesized_expression "(DAT_0067c644 != '\0')" ( (binary_expression "DAT_0067c644 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar2[4] = 0;\n    *puVar2 = &PTR_FUN_00662478;\n    uVar1 = DAT_0067c648;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    puVar2[7] = 0;\n    puVar2[8] = 0;\n    puVar2[9] = 0;\n    puVar2[10] = 0;\n    *(undefined4 *)(puVar2 + 0xb) = 0x13;\n    puVar2[0xc] = 0;\n    puVar2[0xd] = 0;\n    *(undefined4 *)(puVar2 + 0xe) = 0xffffffff;\n    puVar2[0xf] = 0;\n    *(undefined4 *)((long)puVar2 + 0x84) = 0;\n    *(undefined1 *)(puVar2 + 0x11) = 0;\n    *(short *)(puVar2 + 0x10) = (short)uVar1;\n    puVar3 = puVar2 + 0x12;\n    do {\n      *puVar3 = 0;\n      puVar4 = puVar3 + 3;\n      *(undefined4 *)(puVar3 + 1) = 0;\n      puVar3[2] = 0;\n      puVar3 = puVar4;\n    } while (puVar4 != puVar2 + 0x1e);\n    return puVar2;\n  }" { (expression_statement "puVar2[4] = 0;" (assignment_expression "puVar2[4] = 0" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar2 = &PTR_FUN_00662478;" (assignment_expression "*puVar2 = &PTR_FUN_00662478" (pointer_expression "*puVar2" * identifier) = (pointer_expression "&PTR_FUN_00662478" & identifier)) ;) (expression_statement "uVar1 = DAT_0067c648;" (assignment_expression "uVar1 = DAT_0067c648" identifier = identifier) ;) (expression_statement "puVar2[5] = 0;" (assignment_expression "puVar2[5] = 0" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[6] = 0;" (assignment_expression "puVar2[6] = 0" (subscript_expression "puVar2[6]" 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 "puVar2[8] = 0;" (assignment_expression "puVar2[8] = 0" (subscript_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 "*(undefined4 *)(puVar2 + 0xb) = 0x13;" (assignment_expression "*(undefined4 *)(puVar2 + 0xb) = 0x13" (pointer_expression "*(undefined4 *)(puVar2 + 0xb)" * (cast_expression "(undefined4 *)(puVar2 + 0xb)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0xb)" ( (binary_expression "puVar2 + 0xb" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar2[0xc] = 0;" (assignment_expression "puVar2[0xc] = 0" (subscript_expression "puVar2[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0xd] = 0;" (assignment_expression "puVar2[0xd] = 0" (subscript_expression "puVar2[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar2 + 0xe) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar2 + 0xe) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar2 + 0xe)" * (cast_expression "(undefined4 *)(puVar2 + 0xe)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0xe)" ( (binary_expression "puVar2 + 0xe" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar2[0xf] = 0;" (assignment_expression "puVar2[0xf] = 0" (subscript_expression "puVar2[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)((long)puVar2 + 0x84) = 0;" (assignment_expression "*(undefined4 *)((long)puVar2 + 0x84) = 0" (pointer_expression "*(undefined4 *)((long)puVar2 + 0x84)" * (cast_expression "(undefined4 *)((long)puVar2 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar2 + 0x84)" ( (binary_expression "(long)puVar2 + 0x84" (cast_expression "(long)puVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar2 + 0x11) = 0;" (assignment_expression "*(undefined1 *)(puVar2 + 0x11) = 0" (pointer_expression "*(undefined1 *)(puVar2 + 0x11)" * (cast_expression "(undefined1 *)(puVar2 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11)" ( (binary_expression "puVar2 + 0x11" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(short *)(puVar2 + 0x10) = (short)uVar1;" (assignment_expression "*(short *)(puVar2 + 0x10) = (short)uVar1" (pointer_expression "*(short *)(puVar2 + 0x10)" * (cast_expression "(short *)(puVar2 + 0x10)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x10)" ( (binary_expression "puVar2 + 0x10" identifier + number_literal) )))) = (cast_expression "(short)uVar1" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "puVar3 = puVar2 + 0x12;" (assignment_expression "puVar3 = puVar2 + 0x12" identifier = (binary_expression "puVar2 + 0x12" identifier + number_literal)) ;) (do_statement "do {\n      *puVar3 = 0;\n      puVar4 = puVar3 + 3;\n      *(undefined4 *)(puVar3 + 1) = 0;\n      puVar3[2] = 0;\n      puVar3 = puVar4;\n    } while (puVar4 != puVar2 + 0x1e);" do (compound_statement "{\n      *puVar3 = 0;\n      puVar4 = puVar3 + 3;\n      *(undefined4 *)(puVar3 + 1) = 0;\n      puVar3[2] = 0;\n      puVar3 = puVar4;\n    }" { (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (expression_statement "puVar4 = puVar3 + 3;" (assignment_expression "puVar4 = puVar3 + 3" identifier = (binary_expression "puVar3 + 3" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar3 + 1) = 0;" (assignment_expression "*(undefined4 *)(puVar3 + 1) = 0" (pointer_expression "*(undefined4 *)(puVar3 + 1)" * (cast_expression "(undefined4 *)(puVar3 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 1)" ( (binary_expression "puVar3 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3 = puVar4;" (assignment_expression "puVar3 = puVar4" identifier = identifier) ;) }) while (parenthesized_expression "(puVar4 != puVar2 + 0x1e)" ( (binary_expression "puVar4 != puVar2 + 0x1e" identifier != (binary_expression "puVar2 + 0x1e" identifier + number_literal)) )) ;) (return_statement "return puVar2;" return identifier ;) })) (expression_statement "FUN_00352af0("../../gold/target.h",0x48c,"Sized_target");" (call_expression "FUN_00352af0("../../gold/target.h",0x48c,"Sized_target")" identifier (argument_list "("../../gold/target.h",0x48c,"Sized_target")" ( (string_literal ""../../gold/target.h"" " string_content ") , number_literal , (string_literal ""Sized_target"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 = (binary_expression IDENT != LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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 (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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 (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "undefined8 * FUN_001c5300(void)\n\n{\n  undefined4 uVar1;\n  undefined8 *puVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  bool bVar5;\n  \n  puVar2 = (undefined8 *)FUN_0049cb60(0xf0);\n  bVar5 = DAT_0067c640 != 0x20;\n  puVar2[1] = &DAT_0067c640;\n  *(undefined4 *)(puVar2 + 2) = 0;\n  *(undefined1 *)((long)puVar2 + 0x14) = 0;\n  *(undefined4 *)(puVar2 + 3) = 0;\n  *puVar2 = &DAT_00663008;\n  if (bVar5) {\n                    \n                    \n    FUN_00352af0("../../gold/target.h",0x48b,"Sized_target");\n  }\n  if (DAT_0067c644 != '\0') {\n    puVar2[4] = 0;\n    *puVar2 = &PTR_FUN_00662478;\n    uVar1 = DAT_0067c648;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    puVar2[7] = 0;\n    puVar2[8] = 0;\n    puVar2[9] = 0;\n    puVar2[10] = 0;\n    *(undefined4 *)(puVar2 + 0xb) = 0x13;\n    puVar2[0xc] = 0;\n    puVar2[0xd] = 0;\n    *(undefined4 *)(puVar2 + 0xe) = 0xffffffff;\n    puVar2[0xf] = 0;\n    *(undefined4 *)((long)puVar2 + 0x84) = 0;\n    *(undefined1 *)(puVar2 + 0x11) = 0;\n    *(short *)(puVar2 + 0x10) = (short)uVar1;\n    puVar3 = puVar2 + 0x12;\n    do {\n      *puVar3 = 0;\n      puVar4 = puVar3 + 3;\n      *(undefined4 *)(puVar3 + 1) = 0;\n      puVar3[2] = 0;\n      puVar3 = puVar4;\n    } while (puVar4 != puVar2 + 0x1e);\n    return puVar2;\n  }\n                    \n  FUN_00352af0("../../gold/target.h",0x48c,"Sized_target");\n}" (type_identifier "undefined8") (pointer_declarator "* FUN_001c5300(void)" (* "*") (function_declarator "FUN_001c5300(void)" (identifier "FUN_001c5300") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")")))) (compound_statement "{\n  undefined4 uVar1;\n  undefined8 *puVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  bool bVar5;\n  \n  puVar2 = (undefined8 *)FUN_0049cb60(0xf0);\n  bVar5 = DAT_0067c640 != 0x20;\n  puVar2[1] = &DAT_0067c640;\n  *(undefined4 *)(puVar2 + 2) = 0;\n  *(undefined1 *)((long)puVar2 + 0x14) = 0;\n  *(undefined4 *)(puVar2 + 3) = 0;\n  *puVar2 = &DAT_00663008;\n  if (bVar5) {\n                    \n                    \n    FUN_00352af0("../../gold/target.h",0x48b,"Sized_target");\n  }\n  if (DAT_0067c644 != '\0') {\n    puVar2[4] = 0;\n    *puVar2 = &PTR_FUN_00662478;\n    uVar1 = DAT_0067c648;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    puVar2[7] = 0;\n    puVar2[8] = 0;\n    puVar2[9] = 0;\n    puVar2[10] = 0;\n    *(undefined4 *)(puVar2 + 0xb) = 0x13;\n    puVar2[0xc] = 0;\n    puVar2[0xd] = 0;\n    *(undefined4 *)(puVar2 + 0xe) = 0xffffffff;\n    puVar2[0xf] = 0;\n    *(undefined4 *)((long)puVar2 + 0x84) = 0;\n    *(undefined1 *)(puVar2 + 0x11) = 0;\n    *(short *)(puVar2 + 0x10) = (short)uVar1;\n    puVar3 = puVar2 + 0x12;\n    do {\n      *puVar3 = 0;\n      puVar4 = puVar3 + 3;\n      *(undefined4 *)(puVar3 + 1) = 0;\n      puVar3[2] = 0;\n      puVar3 = puVar4;\n    } while (puVar4 != puVar2 + 0x1e);\n    return puVar2;\n  }\n                    \n  FUN_00352af0("../../gold/target.h",0x48c,"Sized_target");\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "undefined8 *puVar2;" (type_identifier "undefined8") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined8 *puVar3;" (type_identifier "undefined8") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined8 *puVar4;" (type_identifier "undefined8") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "bool bVar5;" (primitive_type "bool") (identifier "bVar5") (; ";")) (expression_statement "puVar2 = (undefined8 *)FUN_0049cb60(0xf0);" (assignment_expression "puVar2 = (undefined8 *)FUN_0049cb60(0xf0)" (identifier "puVar2") (= "=") (cast_expression "(undefined8 *)FUN_0049cb60(0xf0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0049cb60(0xf0)" (identifier "FUN_0049cb60") (argument_list "(0xf0)" (( "(") (number_literal "0xf0") () ")"))))) (; ";")) (expression_statement "bVar5 = DAT_0067c640 != 0x20;" (assignment_expression "bVar5 = DAT_0067c640 != 0x20" (identifier "bVar5") (= "=") (binary_expression "DAT_0067c640 != 0x20" (identifier "DAT_0067c640") (!= "!=") (number_literal "0x20"))) (; ";")) (expression_statement "puVar2[1] = &DAT_0067c640;" (assignment_expression "puVar2[1] = &DAT_0067c640" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "&DAT_0067c640" (& "&") (identifier "DAT_0067c640"))) (; ";")) (expression_statement "*(undefined4 *)(puVar2 + 2) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + 2) = 0" (pointer_expression "*(undefined4 *)(puVar2 + 2)" (* "*") (cast_expression "(undefined4 *)(puVar2 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 2)" (( "(") (binary_expression "puVar2 + 2" (identifier "puVar2") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((long)puVar2 + 0x14) = 0;" (assignment_expression "*(undefined1 *)((long)puVar2 + 0x14) = 0" (pointer_expression "*(undefined1 *)((long)puVar2 + 0x14)" (* "*") (cast_expression "(undefined1 *)((long)puVar2 + 0x14)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar2 + 0x14)" (( "(") (binary_expression "(long)puVar2 + 0x14" (cast_expression "(long)puVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar2")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar2 + 3) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + 3) = 0" (pointer_expression "*(undefined4 *)(puVar2 + 3)" (* "*") (cast_expression "(undefined4 *)(puVar2 + 3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 3)" (( "(") (binary_expression "puVar2 + 3" (identifier "puVar2") (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar2 = &DAT_00663008;" (assignment_expression "*puVar2 = &DAT_00663008" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (pointer_expression "&DAT_00663008" (& "&") (identifier "DAT_00663008"))) (; ";")) (if_statement "if (bVar5) {\n                    \n                    \n    FUN_00352af0("../../gold/target.h",0x48b,"Sized_target");\n  }" (if "if") (parenthesized_expression "(bVar5)" (( "(") (identifier "bVar5") () ")")) (compound_statement "{\n                    \n                    \n    FUN_00352af0("../../gold/target.h",0x48b,"Sized_target");\n  }" ({ "{") (expression_statement "FUN_00352af0("../../gold/target.h",0x48b,"Sized_target");" (call_expression "FUN_00352af0("../../gold/target.h",0x48b,"Sized_target")" (identifier "FUN_00352af0") (argument_list "("../../gold/target.h",0x48b,"Sized_target")" (( "(") (string_literal ""../../gold/target.h"" (" """) (string_content "../../gold/target.h") (" """)) (, ",") (number_literal "0x48b") (, ",") (string_literal ""Sized_target"" (" """) (string_content "Sized_target") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_0067c644 != '\0') {\n    puVar2[4] = 0;\n    *puVar2 = &PTR_FUN_00662478;\n    uVar1 = DAT_0067c648;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    puVar2[7] = 0;\n    puVar2[8] = 0;\n    puVar2[9] = 0;\n    puVar2[10] = 0;\n    *(undefined4 *)(puVar2 + 0xb) = 0x13;\n    puVar2[0xc] = 0;\n    puVar2[0xd] = 0;\n    *(undefined4 *)(puVar2 + 0xe) = 0xffffffff;\n    puVar2[0xf] = 0;\n    *(undefined4 *)((long)puVar2 + 0x84) = 0;\n    *(undefined1 *)(puVar2 + 0x11) = 0;\n    *(short *)(puVar2 + 0x10) = (short)uVar1;\n    puVar3 = puVar2 + 0x12;\n    do {\n      *puVar3 = 0;\n      puVar4 = puVar3 + 3;\n      *(undefined4 *)(puVar3 + 1) = 0;\n      puVar3[2] = 0;\n      puVar3 = puVar4;\n    } while (puVar4 != puVar2 + 0x1e);\n    return puVar2;\n  }" (if "if") (parenthesized_expression "(DAT_0067c644 != '\0')" (( "(") (binary_expression "DAT_0067c644 != '\0'" (identifier "DAT_0067c644") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    puVar2[4] = 0;\n    *puVar2 = &PTR_FUN_00662478;\n    uVar1 = DAT_0067c648;\n    puVar2[5] = 0;\n    puVar2[6] = 0;\n    puVar2[7] = 0;\n    puVar2[8] = 0;\n    puVar2[9] = 0;\n    puVar2[10] = 0;\n    *(undefined4 *)(puVar2 + 0xb) = 0x13;\n    puVar2[0xc] = 0;\n    puVar2[0xd] = 0;\n    *(undefined4 *)(puVar2 + 0xe) = 0xffffffff;\n    puVar2[0xf] = 0;\n    *(undefined4 *)((long)puVar2 + 0x84) = 0;\n    *(undefined1 *)(puVar2 + 0x11) = 0;\n    *(short *)(puVar2 + 0x10) = (short)uVar1;\n    puVar3 = puVar2 + 0x12;\n    do {\n      *puVar3 = 0;\n      puVar4 = puVar3 + 3;\n      *(undefined4 *)(puVar3 + 1) = 0;\n      puVar3[2] = 0;\n      puVar3 = puVar4;\n    } while (puVar4 != puVar2 + 0x1e);\n    return puVar2;\n  }" ({ "{") (expression_statement "puVar2[4] = 0;" (assignment_expression "puVar2[4] = 0" (subscript_expression "puVar2[4]" (identifier "puVar2") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar2 = &PTR_FUN_00662478;" (assignment_expression "*puVar2 = &PTR_FUN_00662478" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (pointer_expression "&PTR_FUN_00662478" (& "&") (identifier "PTR_FUN_00662478"))) (; ";")) (expression_statement "uVar1 = DAT_0067c648;" (assignment_expression "uVar1 = DAT_0067c648" (identifier "uVar1") (= "=") (identifier "DAT_0067c648")) (; ";")) (expression_statement "puVar2[5] = 0;" (assignment_expression "puVar2[5] = 0" (subscript_expression "puVar2[5]" (identifier "puVar2") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[6] = 0;" (assignment_expression "puVar2[6] = 0" (subscript_expression "puVar2[6]" (identifier "puVar2") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[7] = 0;" (assignment_expression "puVar2[7] = 0" (subscript_expression "puVar2[7]" (identifier "puVar2") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[8] = 0;" (assignment_expression "puVar2[8] = 0" (subscript_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 "*(undefined4 *)(puVar2 + 0xb) = 0x13;" (assignment_expression "*(undefined4 *)(puVar2 + 0xb) = 0x13" (pointer_expression "*(undefined4 *)(puVar2 + 0xb)" (* "*") (cast_expression "(undefined4 *)(puVar2 + 0xb)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0xb)" (( "(") (binary_expression "puVar2 + 0xb" (identifier "puVar2") (+ "+") (number_literal "0xb")) () ")")))) (= "=") (number_literal "0x13")) (; ";")) (expression_statement "puVar2[0xc] = 0;" (assignment_expression "puVar2[0xc] = 0" (subscript_expression "puVar2[0xc]" (identifier "puVar2") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[0xd] = 0;" (assignment_expression "puVar2[0xd] = 0" (subscript_expression "puVar2[0xd]" (identifier "puVar2") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar2 + 0xe) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar2 + 0xe) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar2 + 0xe)" (* "*") (cast_expression "(undefined4 *)(puVar2 + 0xe)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0xe)" (( "(") (binary_expression "puVar2 + 0xe" (identifier "puVar2") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar2[0xf] = 0;" (assignment_expression "puVar2[0xf] = 0" (subscript_expression "puVar2[0xf]" (identifier "puVar2") ([ "[") (number_literal "0xf") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((long)puVar2 + 0x84) = 0;" (assignment_expression "*(undefined4 *)((long)puVar2 + 0x84) = 0" (pointer_expression "*(undefined4 *)((long)puVar2 + 0x84)" (* "*") (cast_expression "(undefined4 *)((long)puVar2 + 0x84)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar2 + 0x84)" (( "(") (binary_expression "(long)puVar2 + 0x84" (cast_expression "(long)puVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar2")) (+ "+") (number_literal "0x84")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar2 + 0x11) = 0;" (assignment_expression "*(undefined1 *)(puVar2 + 0x11) = 0" (pointer_expression "*(undefined1 *)(puVar2 + 0x11)" (* "*") (cast_expression "(undefined1 *)(puVar2 + 0x11)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x11)" (( "(") (binary_expression "puVar2 + 0x11" (identifier "puVar2") (+ "+") (number_literal "0x11")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(short *)(puVar2 + 0x10) = (short)uVar1;" (assignment_expression "*(short *)(puVar2 + 0x10) = (short)uVar1" (pointer_expression "*(short *)(puVar2 + 0x10)" (* "*") (cast_expression "(short *)(puVar2 + 0x10)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x10)" (( "(") (binary_expression "puVar2 + 0x10" (identifier "puVar2") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (cast_expression "(short)uVar1" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "uVar1"))) (; ";")) (expression_statement "puVar3 = puVar2 + 0x12;" (assignment_expression "puVar3 = puVar2 + 0x12" (identifier "puVar3") (= "=") (binary_expression "puVar2 + 0x12" (identifier "puVar2") (+ "+") (number_literal "0x12"))) (; ";")) (do_statement "do {\n      *puVar3 = 0;\n      puVar4 = puVar3 + 3;\n      *(undefined4 *)(puVar3 + 1) = 0;\n      puVar3[2] = 0;\n      puVar3 = puVar4;\n    } while (puVar4 != puVar2 + 0x1e);" (do "do") (compound_statement "{\n      *puVar3 = 0;\n      puVar4 = puVar3 + 3;\n      *(undefined4 *)(puVar3 + 1) = 0;\n      puVar3[2] = 0;\n      puVar3 = puVar4;\n    }" ({ "{") (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4 = puVar3 + 3;" (assignment_expression "puVar4 = puVar3 + 3" (identifier "puVar4") (= "=") (binary_expression "puVar3 + 3" (identifier "puVar3") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "*(undefined4 *)(puVar3 + 1) = 0;" (assignment_expression "*(undefined4 *)(puVar3 + 1) = 0" (pointer_expression "*(undefined4 *)(puVar3 + 1)" (* "*") (cast_expression "(undefined4 *)(puVar3 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 1)" (( "(") (binary_expression "puVar3 + 1" (identifier "puVar3") (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3 = puVar4;" (assignment_expression "puVar3 = puVar4" (identifier "puVar3") (= "=") (identifier "puVar4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar4 != puVar2 + 0x1e)" (( "(") (binary_expression "puVar4 != puVar2 + 0x1e" (identifier "puVar4") (!= "!=") (binary_expression "puVar2 + 0x1e" (identifier "puVar2") (+ "+") (number_literal "0x1e"))) () ")")) (; ";")) (return_statement "return puVar2;" (return "return") (identifier "puVar2") (; ";")) (} "}"))) (expression_statement "FUN_00352af0("../../gold/target.h",0x48c,"Sized_target");" (call_expression "FUN_00352af0("../../gold/target.h",0x48c,"Sized_target")" (identifier "FUN_00352af0") (argument_list "("../../gold/target.h",0x48c,"Sized_target")" (( "(") (string_literal ""../../gold/target.h"" (" """) (string_content "../../gold/target.h") (" """)) (, ",") (number_literal "0x48c") (, ",") (string_literal ""Sized_target"" (" """) (string_content "Sized_target") (" """)) () ")"))) (; ";")) (} "}")))

/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: Target * do_instantiate_target(Target_selector_sparc<32,_true> * this)
    */

type_2 * __thiscall
anon_unknown.dwarf_4cd88d::Target_selector_sparc<32,var_3>::do_instantiate_target
          (Target_selector_sparc<32,var_3> *this)

{
  type_1 EVar1;
  type_2 *pTVar2;
  type_3 *var_6;
  type_3 *var_7;
  bool bVar5;
  
  pTVar2 = (type_2 *)var_1(0xf0);
  bVar5 = var_2<32,var_3>::var_4.size != 0x20;
  pTVar2->pti_ = &var_2<32,var_3>::var_4;
  pTVar2->processor_specific_flags_ = 0;
  pTVar2->are_processor_specific_flags_set_ = false;
  pTVar2->osabi_ = ELFOSABI_NONE;
  pTVar2->_vptr_Target = (type_4 **)&DAT_00663008;
  if (bVar5) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001c5424 to 001c5440 has its CatchHandler @ 001c5441 */
    gold::var_5("../../gold/target.h",0x48b,"Sized_target");
  }
  if (var_2<32,var_3>::var_4.is_big_endian != false) {
    pTVar2[1]._vptr_Target = (type_4 **)0x0;
    pTVar2->_vptr_Target = (type_4 **)&PTR__Target_sparc_00662478;
    EVar1 = var_2<32,var_3>::var_4.machine_code;
    pTVar2[1].pti_ = (type_5 *)0x0;
    pTVar2[1].processor_specific_flags_ = 0;
    pTVar2[1].are_processor_specific_flags_set_ = false;
    *(type_6 *)&pTVar2[1].field_0x15 = 0;
    *(type_7 *)&pTVar2[1].osabi_ = 0;
    pTVar2[2]._vptr_Target = (type_4 **)0x0;
    pTVar2[2].pti_ = (type_5 *)0x0;
    pTVar2[2].processor_specific_flags_ = 0;
    pTVar2[2].are_processor_specific_flags_set_ = false;
    *(type_6 *)&pTVar2[2].field_0x15 = 0;
    pTVar2[2].osabi_ = 0x13;
    pTVar2[3]._vptr_Target = (type_4 **)0x0;
    pTVar2[3].pti_ = (type_5 *)0x0;
    pTVar2[3].processor_specific_flags_ = 0xffffffff;
    *(type_7 *)&pTVar2[3].osabi_ = 0;
    *(type_8 *)((long)&pTVar2[4]._vptr_Target + 4) = 0;
    *(type_9 *)&pTVar2[4].pti_ = 0;
    *(short *)&pTVar2[4]._vptr_Target = (short)EVar1;
    var_6 = &pTVar2[4].processor_specific_flags_;
    do {
      *(type_7 *)var_6 = 0;
      var_7 = var_6 + 6;
      var_6[2] = ELFOSABI_NONE;
      *(type_7 *)(var_6 + 4) = 0;
      var_6 = var_7;
    } while (var_7 != &pTVar2[7].processor_specific_flags_);
    return pTVar2;
  }
                    /* WARNING: Subroutine does not return */
  gold::var_5("../../gold/target.h",0x48c,"Sized_target");
}


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

undefined8 * MASKED(void)

{
  undefined4 uVar1;
  undefined8 *puVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  bool bVar5;
  
  puVar2 = (undefined8 *)FUN_0049cb60(0xf0);
  bVar5 = DAT_0067c640 != 0x20;
  puVar2[1] = &DAT_0067c640;
  *(undefined4 *)(puVar2 + 2) = 0;
  *(undefined1 *)((long)puVar2 + 0x14) = 0;
  *(undefined4 *)(puVar2 + 3) = 0;
  *puVar2 = &DAT_00663008;
  if (bVar5) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001c5424 to 001c5440 has its CatchHandler @ 001c5441 */
    FUN_00352af0("../../gold/target.h",0x48b,"Sized_target");
  }
  if (DAT_0067c644 != '\0') {
    puVar2[4] = 0;
    *puVar2 = &PTR_FUN_00662478;
    uVar1 = DAT_0067c648;
    puVar2[5] = 0;
    puVar2[6] = 0;
    puVar2[7] = 0;
    puVar2[8] = 0;
    puVar2[9] = 0;
    puVar2[10] = 0;
    *(undefined4 *)(puVar2 + 0xb) = 0x13;
    puVar2[0xc] = 0;
    puVar2[0xd] = 0;
    *(undefined4 *)(puVar2 + 0xe) = 0xffffffff;
    puVar2[0xf] = 0;
    *(undefined4 *)((long)puVar2 + 0x84) = 0;
    *(undefined1 *)(puVar2 + 0x11) = 0;
    *(short *)(puVar2 + 0x10) = (short)uVar1;
    puVar3 = puVar2 + 0x12;
    do {
      *puVar3 = 0;
      puVar4 = puVar3 + 3;
      *(undefined4 *)(puVar3 + 1) = 0;
      puVar3[2] = 0;
      puVar3 = puVar4;
    } while (puVar4 != puVar2 + 0x1e);
    return puVar2;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00352af0("../../gold/target.h",0x48c,"Sized_target");
}

