
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void pep_exe_fill_sections(bfd *abfd,bfd_link_info *info)

{
  pep_dll_id_target(abfd->xvec->name);
  pep_output_file_set_long_section_names(abfd);
  image_base._4_4_ =
       *(undefined4 *)((int)&(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4);
  image_base._0_4_ = (undefined4)(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags;
  generate_reloc(abfd,info);
  if (reloc_sz != 0) {
    bfd_set_section_size(filler_bfd,reloc_s,reloc_sz,0);
    lang_reset_memory_regions();
    lang_size_sections((bfd_boolean *)0x0,1);
    ldemul_after_allocation();
    lang_do_assignments(lang_final_phase_enum);
  }
  reloc_s->contents = reloc_d;
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_000615c0(int param_1)

{
  FUN_0005cca0(**(undefined4 **)(param_1 + 4));
  FUN_0005fed0(param_1);
  DAT_001d11f4 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8);
  DAT_001d11f0 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4);
  FUN_0005adb0();
  if (DAT_001d11d0 != 0) {
    bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0);
    FUN_00028950();
    FUN_00028b30(0,1);
    FUN_000335b0();
    FUN_00027310(4);
  }
  *(undefined4 *)(DAT_001d11e0 + 0x84) = DAT_001d11d8;
  return;
}


PUSH ESI
PUSH EBX
CALL 0x00017b80
ADD EBX,0x16da39
SUB ESP,0x10
MOV ESI,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [ESI + 0x4]
PUSH dword ptr [EAX]
CALL 0x0005cca0
MOV dword ptr [ESP],ESI
CALL 0x0005fed0
MOV EAX,dword ptr [ESI + 0xa0]
MOV EDX,dword ptr [EAX + 0xa8]
MOV EAX,dword ptr [EAX + 0xa4]
MOV dword ptr [EBX + 0x21f4],EDX
MOV EDX,dword ptr [ESP + 0x24]
MOV dword ptr [EBX + 0x21f0],EAX
MOV EAX,ESI
CALL 0x0005adb0
MOV EAX,dword ptr [EBX + 0x21d0]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00061638
MOV EAX,dword ptr [EBX + 0x21e0]
MOV EDX,dword ptr [EBX + 0x21d8]
MOV dword ptr [EAX + 0x84],EDX
ADD ESP,0x4
POP EBX
POP ESI
RET
XOR EDX,EDX
PUSH EDX
PUSH EAX
PUSH dword ptr [EBX + 0x21e0]
PUSH dword ptr [EBX + 0x21e8]
CALL 0x000167f0
CALL 0x00028950
POP EAX
POP EDX
PUSH 0x1
PUSH 0x0
CALL 0x00028b30
CALL 0x000335b0
MOV dword ptr [ESP],0x4
CALL 0x00027310
ADD ESP,0x10
JMP 0x0006161c
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_000615c0(int param_1)\n\n{\n  FUN_0005cca0(**(undefined4 **)(param_1 + 4));\n  FUN_0005fed0(param_1);\n  DAT_001d11f4 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8);\n  DAT_001d11f0 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4);\n  FUN_0005adb0();\n  if (DAT_001d11d0 != 0) {\n    bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0);\n    FUN_00028950();\n    FUN_00028b30(0,1);\n    FUN_000335b0();\n    FUN_00027310(4);\n  }\n  *(undefined4 *)(DAT_001d11e0 + 0x84) = DAT_001d11d8;\n  return;\n}\n\n" comment (function_definition "void FUN_000615c0(int param_1)\n\n{\n  FUN_0005cca0(**(undefined4 **)(param_1 + 4));\n  FUN_0005fed0(param_1);\n  DAT_001d11f4 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8);\n  DAT_001d11f0 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4);\n  FUN_0005adb0();\n  if (DAT_001d11d0 != 0) {\n    bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0);\n    FUN_00028950();\n    FUN_00028b30(0,1);\n    FUN_000335b0();\n    FUN_00027310(4);\n  }\n  *(undefined4 *)(DAT_001d11e0 + 0x84) = DAT_001d11d8;\n  return;\n}" primitive_type (function_declarator "FUN_000615c0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  FUN_0005cca0(**(undefined4 **)(param_1 + 4));\n  FUN_0005fed0(param_1);\n  DAT_001d11f4 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8);\n  DAT_001d11f0 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4);\n  FUN_0005adb0();\n  if (DAT_001d11d0 != 0) {\n    bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0);\n    FUN_00028950();\n    FUN_00028b30(0,1);\n    FUN_000335b0();\n    FUN_00027310(4);\n  }\n  *(undefined4 *)(DAT_001d11e0 + 0x84) = DAT_001d11d8;\n  return;\n}" { (expression_statement "FUN_0005cca0(**(undefined4 **)(param_1 + 4));" (call_expression "FUN_0005cca0(**(undefined4 **)(param_1 + 4))" identifier (argument_list "(**(undefined4 **)(param_1 + 4))" ( (pointer_expression "**(undefined4 **)(param_1 + 4)" * (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ))) ;) (expression_statement "FUN_0005fed0(param_1);" (call_expression "FUN_0005fed0(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "DAT_001d11f4 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8);" (assignment_expression "DAT_001d11f4 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xa0) + 0xa8)" ( (binary_expression "*(int *)(param_1 + 0xa0) + 0xa8" (pointer_expression "*(int *)(param_1 + 0xa0)" * (cast_expression "(int *)(param_1 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "DAT_001d11f0 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4);" (assignment_expression "DAT_001d11f0 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xa0) + 0xa4)" ( (binary_expression "*(int *)(param_1 + 0xa0) + 0xa4" (pointer_expression "*(int *)(param_1 + 0xa0)" * (cast_expression "(int *)(param_1 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "FUN_0005adb0();" (call_expression "FUN_0005adb0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_001d11d0 != 0) {\n    bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0);\n    FUN_00028950();\n    FUN_00028b30(0,1);\n    FUN_000335b0();\n    FUN_00027310(4);\n  }" if (parenthesized_expression "(DAT_001d11d0 != 0)" ( (binary_expression "DAT_001d11d0 != 0" identifier != number_literal) )) (compound_statement "{\n    bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0);\n    FUN_00028950();\n    FUN_00028b30(0,1);\n    FUN_000335b0();\n    FUN_00027310(4);\n  }" { (expression_statement "bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0);" (call_expression "bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0)" identifier (argument_list "(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "FUN_00028950();" (call_expression "FUN_00028950()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00028b30(0,1);" (call_expression "FUN_00028b30(0,1)" identifier (argument_list "(0,1)" ( number_literal , number_literal ))) ;) (expression_statement "FUN_000335b0();" (call_expression "FUN_000335b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00027310(4);" (call_expression "FUN_00027310(4)" identifier (argument_list "(4)" ( number_literal ))) ;) })) (expression_statement "*(undefined4 *)(DAT_001d11e0 + 0x84) = DAT_001d11d8;" (assignment_expression "*(undefined4 *)(DAT_001d11e0 + 0x84) = DAT_001d11d8" (pointer_expression "*(undefined4 *)(DAT_001d11e0 + 0x84)" * (cast_expression "(undefined4 *)(DAT_001d11e0 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d11e0 + 0x84)" ( (binary_expression "DAT_001d11e0 + 0x84" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nvoid pep_exe_fill_sections(bfd *abfd,bfd_link_info *info)\n\n{\n  pep_dll_id_target(abfd->xvec->name);\n  pep_output_file_set_long_section_names(abfd);\n  image_base._4_4_ =\n       *(undefined4 *)((int)&(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4);\n  image_base._0_4_ = (undefined4)(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags;\n  generate_reloc(abfd,info);\n  if (reloc_sz != 0) {\n    bfd_set_section_size(filler_bfd,reloc_s,reloc_sz,0);\n    lang_reset_memory_regions();\n    lang_size_sections((bfd_boolean *)0x0,1);\n    ldemul_after_allocation();\n    lang_do_assignments(lang_final_phase_enum);\n  }\n  reloc_s->contents = reloc_d;\n  return;\n}\n\n" comment comment (function_definition "void pep_exe_fill_sections(bfd *abfd,bfd_link_info *info)\n\n{\n  pep_dll_id_target(abfd->xvec->name);\n  pep_output_file_set_long_section_names(abfd);\n  image_base._4_4_ =\n       *(undefined4 *)((int)&(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4);\n  image_base._0_4_ = (undefined4)(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags;\n  generate_reloc(abfd,info);\n  if (reloc_sz != 0) {\n    bfd_set_section_size(filler_bfd,reloc_s,reloc_sz,0);\n    lang_reset_memory_regions();\n    lang_size_sections((bfd_boolean *)0x0,1);\n    ldemul_after_allocation();\n    lang_do_assignments(lang_final_phase_enum);\n  }\n  reloc_s->contents = reloc_d;\n  return;\n}" primitive_type (function_declarator "pep_exe_fill_sections(bfd *abfd,bfd_link_info *info)" identifier (parameter_list "(bfd *abfd,bfd_link_info *info)" ( (parameter_declaration "bfd *abfd" type_identifier (pointer_declarator "*abfd" * identifier)) , (parameter_declaration "bfd_link_info *info" type_identifier (pointer_declarator "*info" * identifier)) ))) (compound_statement "{\n  pep_dll_id_target(abfd->xvec->name);\n  pep_output_file_set_long_section_names(abfd);\n  image_base._4_4_ =\n       *(undefined4 *)((int)&(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4);\n  image_base._0_4_ = (undefined4)(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags;\n  generate_reloc(abfd,info);\n  if (reloc_sz != 0) {\n    bfd_set_section_size(filler_bfd,reloc_s,reloc_sz,0);\n    lang_reset_memory_regions();\n    lang_size_sections((bfd_boolean *)0x0,1);\n    ldemul_after_allocation();\n    lang_do_assignments(lang_final_phase_enum);\n  }\n  reloc_s->contents = reloc_d;\n  return;\n}" { (expression_statement "pep_dll_id_target(abfd->xvec->name);" (call_expression "pep_dll_id_target(abfd->xvec->name)" identifier (argument_list "(abfd->xvec->name)" ( (field_expression "abfd->xvec->name" (field_expression "abfd->xvec" identifier -> field_identifier) -> field_identifier) ))) ;) (expression_statement "pep_output_file_set_long_section_names(abfd);" (call_expression "pep_output_file_set_long_section_names(abfd)" identifier (argument_list "(abfd)" ( identifier ))) ;) (expression_statement "image_base._4_4_ =\n       *(undefined4 *)((int)&(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4);" (assignment_expression "image_base._4_4_ =\n       *(undefined4 *)((int)&(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)" (field_expression "image_base._4_4_" identifier . field_identifier) = (pointer_expression "*(undefined4 *)((int)&(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)" * (cast_expression "(undefined4 *)((int)&(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4)" ( (binary_expression "(int)&(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4" (cast_expression "(int)&(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags" & (field_expression "(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags" (parenthesized_expression "(((abfd->tdata).elf_obj_data)->shstrtab_hdr)" ( (field_expression "((abfd->tdata).elf_obj_data)->shstrtab_hdr" (parenthesized_expression "((abfd->tdata).elf_obj_data)" ( (field_expression "(abfd->tdata).elf_obj_data" (parenthesized_expression "(abfd->tdata)" ( (field_expression "abfd->tdata" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "image_base._0_4_ = (undefined4)(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags;" (assignment_expression "image_base._0_4_ = (undefined4)(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags" (field_expression "image_base._0_4_" identifier . field_identifier) = (field_expression "(undefined4)(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags" (call_expression "(undefined4)(((abfd->tdata).elf_obj_data)->shstrtab_hdr)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "(((abfd->tdata).elf_obj_data)->shstrtab_hdr)" ( (field_expression "((abfd->tdata).elf_obj_data)->shstrtab_hdr" (parenthesized_expression "((abfd->tdata).elf_obj_data)" ( (field_expression "(abfd->tdata).elf_obj_data" (parenthesized_expression "(abfd->tdata)" ( (field_expression "abfd->tdata" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) ))) . field_identifier)) ;) (expression_statement "generate_reloc(abfd,info);" (call_expression "generate_reloc(abfd,info)" identifier (argument_list "(abfd,info)" ( identifier , identifier ))) ;) (if_statement "if (reloc_sz != 0) {\n    bfd_set_section_size(filler_bfd,reloc_s,reloc_sz,0);\n    lang_reset_memory_regions();\n    lang_size_sections((bfd_boolean *)0x0,1);\n    ldemul_after_allocation();\n    lang_do_assignments(lang_final_phase_enum);\n  }" if (parenthesized_expression "(reloc_sz != 0)" ( (binary_expression "reloc_sz != 0" identifier != number_literal) )) (compound_statement "{\n    bfd_set_section_size(filler_bfd,reloc_s,reloc_sz,0);\n    lang_reset_memory_regions();\n    lang_size_sections((bfd_boolean *)0x0,1);\n    ldemul_after_allocation();\n    lang_do_assignments(lang_final_phase_enum);\n  }" { (expression_statement "bfd_set_section_size(filler_bfd,reloc_s,reloc_sz,0);" (call_expression "bfd_set_section_size(filler_bfd,reloc_s,reloc_sz,0)" identifier (argument_list "(filler_bfd,reloc_s,reloc_sz,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "lang_reset_memory_regions();" (call_expression "lang_reset_memory_regions()" identifier (argument_list "()" ( ))) ;) (expression_statement "lang_size_sections((bfd_boolean *)0x0,1);" (call_expression "lang_size_sections((bfd_boolean *)0x0,1)" identifier (argument_list "((bfd_boolean *)0x0,1)" ( (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;) (expression_statement "ldemul_after_allocation();" (call_expression "ldemul_after_allocation()" identifier (argument_list "()" ( ))) ;) (expression_statement "lang_do_assignments(lang_final_phase_enum);" (call_expression "lang_do_assignments(lang_final_phase_enum)" identifier (argument_list "(lang_final_phase_enum)" ( identifier ))) ;) })) (expression_statement "reloc_s->contents = reloc_d;" (assignment_expression "reloc_s->contents = reloc_d" (field_expression "reloc_s->contents" identifier -> field_identifier) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000615c0(int param_1)\n\n{\n  FUN_0005cca0(**(undefined4 **)(param_1 + 4));\n  FUN_0005fed0(param_1);\n  DAT_001d11f4 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8);\n  DAT_001d11f0 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4);\n  FUN_0005adb0();\n  if (DAT_001d11d0 != 0) {\n    bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0);\n    FUN_00028950();\n    FUN_00028b30(0,1);\n    FUN_000335b0();\n    FUN_00027310(4);\n  }\n  *(undefined4 *)(DAT_001d11e0 + 0x84) = DAT_001d11d8;\n  return;\n}\n\n" (function_definition "void FUN_000615c0(int param_1)\n\n{\n  FUN_0005cca0(**(undefined4 **)(param_1 + 4));\n  FUN_0005fed0(param_1);\n  DAT_001d11f4 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8);\n  DAT_001d11f0 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4);\n  FUN_0005adb0();\n  if (DAT_001d11d0 != 0) {\n    bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0);\n    FUN_00028950();\n    FUN_00028b30(0,1);\n    FUN_000335b0();\n    FUN_00027310(4);\n  }\n  *(undefined4 *)(DAT_001d11e0 + 0x84) = DAT_001d11d8;\n  return;\n}" primitive_type (function_declarator "FUN_000615c0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  FUN_0005cca0(**(undefined4 **)(param_1 + 4));\n  FUN_0005fed0(param_1);\n  DAT_001d11f4 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8);\n  DAT_001d11f0 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4);\n  FUN_0005adb0();\n  if (DAT_001d11d0 != 0) {\n    bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0);\n    FUN_00028950();\n    FUN_00028b30(0,1);\n    FUN_000335b0();\n    FUN_00027310(4);\n  }\n  *(undefined4 *)(DAT_001d11e0 + 0x84) = DAT_001d11d8;\n  return;\n}" { (expression_statement "FUN_0005cca0(**(undefined4 **)(param_1 + 4));" (call_expression "FUN_0005cca0(**(undefined4 **)(param_1 + 4))" identifier (argument_list "(**(undefined4 **)(param_1 + 4))" ( (pointer_expression "**(undefined4 **)(param_1 + 4)" * (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ))) ;) (expression_statement "FUN_0005fed0(param_1);" (call_expression "FUN_0005fed0(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "DAT_001d11f4 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8);" (assignment_expression "DAT_001d11f4 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xa0) + 0xa8)" ( (binary_expression "*(int *)(param_1 + 0xa0) + 0xa8" (pointer_expression "*(int *)(param_1 + 0xa0)" * (cast_expression "(int *)(param_1 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "DAT_001d11f0 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4);" (assignment_expression "DAT_001d11f0 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xa0) + 0xa4)" ( (binary_expression "*(int *)(param_1 + 0xa0) + 0xa4" (pointer_expression "*(int *)(param_1 + 0xa0)" * (cast_expression "(int *)(param_1 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "FUN_0005adb0();" (call_expression "FUN_0005adb0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_001d11d0 != 0) {\n    bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0);\n    FUN_00028950();\n    FUN_00028b30(0,1);\n    FUN_000335b0();\n    FUN_00027310(4);\n  }" if (parenthesized_expression "(DAT_001d11d0 != 0)" ( (binary_expression "DAT_001d11d0 != 0" identifier != number_literal) )) (compound_statement "{\n    bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0);\n    FUN_00028950();\n    FUN_00028b30(0,1);\n    FUN_000335b0();\n    FUN_00027310(4);\n  }" { (expression_statement "bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0);" (call_expression "bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0)" identifier (argument_list "(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "FUN_00028950();" (call_expression "FUN_00028950()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00028b30(0,1);" (call_expression "FUN_00028b30(0,1)" identifier (argument_list "(0,1)" ( number_literal , number_literal ))) ;) (expression_statement "FUN_000335b0();" (call_expression "FUN_000335b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00027310(4);" (call_expression "FUN_00027310(4)" identifier (argument_list "(4)" ( number_literal ))) ;) })) (expression_statement "*(undefined4 *)(DAT_001d11e0 + 0x84) = DAT_001d11d8;" (assignment_expression "*(undefined4 *)(DAT_001d11e0 + 0x84) = DAT_001d11d8" (pointer_expression "*(undefined4 *)(DAT_001d11e0 + 0x84)" * (cast_expression "(undefined4 *)(DAT_001d11e0 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d11e0 + 0x84)" ( (binary_expression "DAT_001d11e0 + 0x84" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })))
(function_definition "void FUN_000615c0(int param_1)\n\n{\n  FUN_0005cca0(**(undefined4 **)(param_1 + 4));\n  FUN_0005fed0(param_1);\n  DAT_001d11f4 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8);\n  DAT_001d11f0 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4);\n  FUN_0005adb0();\n  if (DAT_001d11d0 != 0) {\n    bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0);\n    FUN_00028950();\n    FUN_00028b30(0,1);\n    FUN_000335b0();\n    FUN_00027310(4);\n  }\n  *(undefined4 *)(DAT_001d11e0 + 0x84) = DAT_001d11d8;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000615c0(int param_1)" (identifier "FUN_000615c0") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  FUN_0005cca0(**(undefined4 **)(param_1 + 4));\n  FUN_0005fed0(param_1);\n  DAT_001d11f4 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8);\n  DAT_001d11f0 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4);\n  FUN_0005adb0();\n  if (DAT_001d11d0 != 0) {\n    bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0);\n    FUN_00028950();\n    FUN_00028b30(0,1);\n    FUN_000335b0();\n    FUN_00027310(4);\n  }\n  *(undefined4 *)(DAT_001d11e0 + 0x84) = DAT_001d11d8;\n  return;\n}" ({ "{") (expression_statement "FUN_0005cca0(**(undefined4 **)(param_1 + 4));" (call_expression "FUN_0005cca0(**(undefined4 **)(param_1 + 4))" (identifier "FUN_0005cca0") (argument_list "(**(undefined4 **)(param_1 + 4))" (( "(") (pointer_expression "**(undefined4 **)(param_1 + 4)" (* "*") (pointer_expression "*(undefined4 **)(param_1 + 4)" (* "*") (cast_expression "(undefined4 **)(param_1 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) () ")"))) (; ";")) (expression_statement "FUN_0005fed0(param_1);" (call_expression "FUN_0005fed0(param_1)" (identifier "FUN_0005fed0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "DAT_001d11f4 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8);" (assignment_expression "DAT_001d11f4 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8)" (identifier "DAT_001d11f4") (= "=") (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0xa0) + 0xa8)" (( "(") (binary_expression "*(int *)(param_1 + 0xa0) + 0xa8" (pointer_expression "*(int *)(param_1 + 0xa0)" (* "*") (cast_expression "(int *)(param_1 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa0)" (( "(") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0")) () ")")))) (+ "+") (number_literal "0xa8")) () ")"))))) (; ";")) (expression_statement "DAT_001d11f0 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4);" (assignment_expression "DAT_001d11f0 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4)" (identifier "DAT_001d11f0") (= "=") (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0xa0) + 0xa4)" (( "(") (binary_expression "*(int *)(param_1 + 0xa0) + 0xa4" (pointer_expression "*(int *)(param_1 + 0xa0)" (* "*") (cast_expression "(int *)(param_1 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa0)" (( "(") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0")) () ")")))) (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "FUN_0005adb0();" (call_expression "FUN_0005adb0()" (identifier "FUN_0005adb0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (DAT_001d11d0 != 0) {\n    bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0);\n    FUN_00028950();\n    FUN_00028b30(0,1);\n    FUN_000335b0();\n    FUN_00027310(4);\n  }" (if "if") (parenthesized_expression "(DAT_001d11d0 != 0)" (( "(") (binary_expression "DAT_001d11d0 != 0" (identifier "DAT_001d11d0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0);\n    FUN_00028950();\n    FUN_00028b30(0,1);\n    FUN_000335b0();\n    FUN_00027310(4);\n  }" ({ "{") (expression_statement "bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0);" (call_expression "bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0)" (identifier "bfd_set_section_size") (argument_list "(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0)" (( "(") (identifier "DAT_001d11e8") (, ",") (identifier "DAT_001d11e0") (, ",") (identifier "DAT_001d11d0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_00028950();" (call_expression "FUN_00028950()" (identifier "FUN_00028950") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00028b30(0,1);" (call_expression "FUN_00028b30(0,1)" (identifier "FUN_00028b30") (argument_list "(0,1)" (( "(") (number_literal "0") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_000335b0();" (call_expression "FUN_000335b0()" (identifier "FUN_000335b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00027310(4);" (call_expression "FUN_00027310(4)" (identifier "FUN_00027310") (argument_list "(4)" (( "(") (number_literal "4") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(DAT_001d11e0 + 0x84) = DAT_001d11d8;" (assignment_expression "*(undefined4 *)(DAT_001d11e0 + 0x84) = DAT_001d11d8" (pointer_expression "*(undefined4 *)(DAT_001d11e0 + 0x84)" (* "*") (cast_expression "(undefined4 *)(DAT_001d11e0 + 0x84)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d11e0 + 0x84)" (( "(") (binary_expression "DAT_001d11e0 + 0x84" (identifier "DAT_001d11e0") (+ "+") (number_literal "0x84")) () ")")))) (= "=") (identifier "DAT_001d11d8")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void function_1(type_1 *abfd,type_2 *info)

{
  var_1(abfd->xvec->name);
  var_2(abfd);
  image_base._4_4_ =
       *(type_3 *)((int)&(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags + 4);
  image_base._0_4_ = (type_3)(((abfd->tdata).elf_obj_data)->shstrtab_hdr).sh_flags;
  var_3(abfd,info);
  if (var_4 != 0) {
    var_5(filler_bfd,reloc_s,var_4,0);
    var_6();
    var_7((type_4 *)0x0,1);
    var_8();
    var_9(lang_final_phase_enum);
  }
  reloc_s->contents = reloc_d;
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void MASKED(int param_1)

{
  FUN_0005cca0(**(undefined4 **)(param_1 + 4));
  FUN_0005fed0(param_1);
  DAT_001d11f4 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa8);
  DAT_001d11f0 = *(undefined4 *)(*(int *)(param_1 + 0xa0) + 0xa4);
  FUN_0005adb0();
  if (DAT_001d11d0 != 0) {
    bfd_set_section_size(DAT_001d11e8,DAT_001d11e0,DAT_001d11d0,0);
    FUN_00028950();
    FUN_00028b30(0,1);
    FUN_000335b0();
    FUN_00027310(4);
  }
  *(undefined4 *)(DAT_001d11e0 + 0x84) = DAT_001d11d8;
  return;
}

