
/* DWARF original name: write_file_header<64, true>
   DWARF original prototype: void write_file_header<64,_true>(Binary_to_elf * this, uchar * * ppout)
    */

void __thiscall gold::Binary_to_elf::write_file_header<64,_true>(Binary_to_elf *this,uchar **ppout)

{
  undefined2 uVar1;
  uchar *puVar2;
  uchar e_ident [16];
  
  puVar2 = *ppout;
  puVar2[4] = '\x02';
  puVar2[5] = '\x02';
  puVar2[6] = '\x01';
  puVar2[7] = '\0';
  puVar2[0] = '\x7f';
  puVar2[1] = 'E';
  puVar2[2] = 'L';
  puVar2[3] = 'F';
  puVar2[8] = '\0';
  puVar2[9] = '\0';
  puVar2[10] = '\0';
  puVar2[0xb] = '\0';
  puVar2[0xc] = '\0';
  puVar2[0xd] = '\0';
  puVar2[0xe] = '\0';
  puVar2[0xf] = '\0';
  puVar2[0x10] = '\0';
  puVar2[0x11] = '\x01';
  uVar1 = (undefined2)this->elf_machine_;
  puVar2[0x14] = '\0';
  puVar2[0x15] = '\0';
  puVar2[0x16] = '\0';
  puVar2[0x17] = '\x01';
  puVar2[0x18] = '\0';
  puVar2[0x19] = '\0';
  puVar2[0x1a] = '\0';
  puVar2[0x1b] = '\0';
  puVar2[0x1c] = '\0';
  puVar2[0x1d] = '\0';
  puVar2[0x1e] = '\0';
  puVar2[0x1f] = '\0';
  *(ushort *)(puVar2 + 0x12) = uVar1 << 8 | (ushort)uVar1 >> 8;
  puVar2[0x20] = '\0';
  puVar2[0x21] = '\0';
  puVar2[0x22] = '\0';
  puVar2[0x23] = '\0';
  puVar2[0x24] = '\0';
  puVar2[0x25] = '\0';
  puVar2[0x26] = '\0';
  puVar2[0x27] = '\0';
  puVar2[0x28] = '\0';
  puVar2[0x29] = '\0';
  puVar2[0x2a] = '\0';
  puVar2[0x2b] = '\0';
  puVar2[0x2c] = '\0';
  puVar2[0x2d] = '\0';
  puVar2[0x2e] = '\0';
  puVar2[0x2f] = '@';
  puVar2[0x30] = '\0';
  puVar2[0x31] = '\0';
  puVar2[0x32] = '\0';
  puVar2[0x33] = '\0';
  puVar2[0x34] = '\0';
  puVar2[0x35] = '@';
  puVar2[0x36] = '\0';
  puVar2[0x37] = '\0';
  puVar2[0x38] = '\0';
  puVar2[0x39] = '\0';
  puVar2[0x3a] = '\0';
  puVar2[0x3b] = '@';
  puVar2[0x3c] = '\0';
  puVar2[0x3d] = '\x05';
  puVar2[0x3e] = '\0';
  puVar2[0x3f] = '\x04';
  *ppout = *ppout + 0x40;
  return;
}



void FUN_00199440(ushort *param_1,int *param_2)

{
  ushort uVar1;
  undefined4 *puVar2;
  
  puVar2 = (undefined4 *)*param_2;
  puVar2[1] = 0x10202;
  *puVar2 = 0x464c457f;
  puVar2[2] = 0;
  puVar2[3] = 0;
  *(undefined2 *)(puVar2 + 4) = 0x100;
  uVar1 = *param_1;
  puVar2[5] = 0x1000000;
  puVar2[6] = 0;
  puVar2[7] = 0;
  *(ushort *)((int)puVar2 + 0x12) = uVar1 << 8 | uVar1 >> 8;
  puVar2[8] = 0;
  puVar2[9] = 0;
  puVar2[10] = 0;
  puVar2[0xb] = 0x40000000;
  puVar2[0xc] = 0;
  puVar2[0xd] = 0x4000;
  puVar2[0xe] = 0x40000000;
  puVar2[0xf] = 0x4000500;
  *param_2 = *param_2 + 0x40;
  return;
}


SUB ESP,0x10
XOR ECX,ECX
MOV EDX,dword ptr [ESP + 0x18]
MOV word ptr [ESP + 0xe],CX
MOV ECX,0x202
MOV dword ptr [ESP + 0x6],0x0
MOV EAX,dword ptr [EDX]
MOV word ptr [ESP + 0x4],CX
MOV byte ptr [ESP + 0x6],0x1
MOV ECX,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0xa],0x0
MOV dword ptr [EAX + 0x4],ECX
MOV ECX,dword ptr [ESP + 0x8]
MOV dword ptr [EAX],0x464c457f
MOV dword ptr [EAX + 0x8],ECX
MOV ECX,dword ptr [ESP + 0xc]
MOV dword ptr [EAX + 0xc],ECX
MOV ECX,0x100
MOV word ptr [EAX + 0x10],CX
MOV ECX,dword ptr [ESP + 0x14]
MOVZX ECX,word ptr [ECX]
MOV dword ptr [EAX + 0x14],0x1000000
MOV dword ptr [EAX + 0x18],0x0
ROL CX,0x8
MOV dword ptr [EAX + 0x1c],0x0
MOV word ptr [EAX + 0x12],CX
MOV dword ptr [EAX + 0x20],0x0
MOV dword ptr [EAX + 0x24],0x0
MOV dword ptr [EAX + 0x28],0x0
MOV dword ptr [EAX + 0x2c],0x40000000
MOV dword ptr [EAX + 0x30],0x0
MOV dword ptr [EAX + 0x34],0x4000
MOV dword ptr [EAX + 0x38],0x40000000
MOV dword ptr [EAX + 0x3c],0x4000500
ADD dword ptr [EDX],0x40
ADD ESP,0x10
RET
(translation_unit "void FUN_00199440(ushort *param_1,int *param_2)\n\n{\n  ushort uVar1;\n  undefined4 *puVar2;\n  \n  puVar2 = (undefined4 *)*param_2;\n  puVar2[1] = 0x10202;\n  *puVar2 = 0x464c457f;\n  puVar2[2] = 0;\n  puVar2[3] = 0;\n  *(undefined2 *)(puVar2 + 4) = 0x100;\n  uVar1 = *param_1;\n  puVar2[5] = 0x1000000;\n  puVar2[6] = 0;\n  puVar2[7] = 0;\n  *(ushort *)((int)puVar2 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n  puVar2[8] = 0;\n  puVar2[9] = 0;\n  puVar2[10] = 0;\n  puVar2[0xb] = 0x40000000;\n  puVar2[0xc] = 0;\n  puVar2[0xd] = 0x4000;\n  puVar2[0xe] = 0x40000000;\n  puVar2[0xf] = 0x4000500;\n  *param_2 = *param_2 + 0x40;\n  return;\n}\n\n" (function_definition "void FUN_00199440(ushort *param_1,int *param_2)\n\n{\n  ushort uVar1;\n  undefined4 *puVar2;\n  \n  puVar2 = (undefined4 *)*param_2;\n  puVar2[1] = 0x10202;\n  *puVar2 = 0x464c457f;\n  puVar2[2] = 0;\n  puVar2[3] = 0;\n  *(undefined2 *)(puVar2 + 4) = 0x100;\n  uVar1 = *param_1;\n  puVar2[5] = 0x1000000;\n  puVar2[6] = 0;\n  puVar2[7] = 0;\n  *(ushort *)((int)puVar2 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n  puVar2[8] = 0;\n  puVar2[9] = 0;\n  puVar2[10] = 0;\n  puVar2[0xb] = 0x40000000;\n  puVar2[0xc] = 0;\n  puVar2[0xd] = 0x4000;\n  puVar2[0xe] = 0x40000000;\n  puVar2[0xf] = 0x4000500;\n  *param_2 = *param_2 + 0x40;\n  return;\n}" primitive_type (function_declarator "FUN_00199440(ushort *param_1,int *param_2)" identifier (parameter_list "(ushort *param_1,int *param_2)" ( (parameter_declaration "ushort *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  undefined4 *puVar2;\n  \n  puVar2 = (undefined4 *)*param_2;\n  puVar2[1] = 0x10202;\n  *puVar2 = 0x464c457f;\n  puVar2[2] = 0;\n  puVar2[3] = 0;\n  *(undefined2 *)(puVar2 + 4) = 0x100;\n  uVar1 = *param_1;\n  puVar2[5] = 0x1000000;\n  puVar2[6] = 0;\n  puVar2[7] = 0;\n  *(ushort *)((int)puVar2 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n  puVar2[8] = 0;\n  puVar2[9] = 0;\n  puVar2[10] = 0;\n  puVar2[0xb] = 0x40000000;\n  puVar2[0xc] = 0;\n  puVar2[0xd] = 0x4000;\n  puVar2[0xe] = 0x40000000;\n  puVar2[0xf] = 0x4000500;\n  *param_2 = *param_2 + 0x40;\n  return;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (expression_statement "puVar2 = (undefined4 *)*param_2;" (assignment_expression "puVar2 = (undefined4 *)*param_2" identifier = (cast_expression "(undefined4 *)*param_2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "puVar2[1] = 0x10202;" (assignment_expression "puVar2[1] = 0x10202" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar2 = 0x464c457f;" (assignment_expression "*puVar2 = 0x464c457f" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (expression_statement "puVar2[2] = 0;" (assignment_expression "puVar2[2] = 0" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[3] = 0;" (assignment_expression "puVar2[3] = 0" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar2 + 4) = 0x100;" (assignment_expression "*(undefined2 *)(puVar2 + 4) = 0x100" (pointer_expression "*(undefined2 *)(puVar2 + 4)" * (cast_expression "(undefined2 *)(puVar2 + 4)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 4)" ( (binary_expression "puVar2 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "puVar2[5] = 0x1000000;" (assignment_expression "puVar2[5] = 0x1000000" (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 "*(ushort *)((int)puVar2 + 0x12) = uVar1 << 8 | uVar1 >> 8;" (assignment_expression "*(ushort *)((int)puVar2 + 0x12) = uVar1 << 8 | uVar1 >> 8" (pointer_expression "*(ushort *)((int)puVar2 + 0x12)" * (cast_expression "(ushort *)((int)puVar2 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + 0x12)" ( (binary_expression "(int)puVar2 + 0x12" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar1 << 8 | uVar1 >> 8" (binary_expression "uVar1 << 8" identifier << number_literal) | (binary_expression "uVar1 >> 8" identifier >> 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 "puVar2[0xb] = 0x40000000;" (assignment_expression "puVar2[0xb] = 0x40000000" (subscript_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] = 0x4000;" (assignment_expression "puVar2[0xd] = 0x4000" (subscript_expression "puVar2[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0xe] = 0x40000000;" (assignment_expression "puVar2[0xe] = 0x40000000" (subscript_expression "puVar2[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0xf] = 0x4000500;" (assignment_expression "puVar2[0xf] = 0x4000500" (subscript_expression "puVar2[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_2 = *param_2 + 0x40;" (assignment_expression "*param_2 = *param_2 + 0x40" (pointer_expression "*param_2" * identifier) = (binary_expression "*param_2 + 0x40" (pointer_expression "*param_2" * identifier) + number_literal)) ;) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original name: write_file_header<64, true>\n   DWARF original prototype: void write_file_header<64,_true>(Binary_to_elf * this, uchar * * ppout)\n    */\n\nvoid __thiscall gold::Binary_to_elf::write_file_header<64,_true>(Binary_to_elf *this,uchar **ppout)\n\n{\n  undefined2 uVar1;\n  uchar *puVar2;\n  uchar e_ident [16];\n  \n  puVar2 = *ppout;\n  puVar2[4] = '\x02';\n  puVar2[5] = '\x02';\n  puVar2[6] = '\x01';\n  puVar2[7] = '\0';\n  puVar2[0] = '\x7f';\n  puVar2[1] = 'E';\n  puVar2[2] = 'L';\n  puVar2[3] = 'F';\n  puVar2[8] = '\0';\n  puVar2[9] = '\0';\n  puVar2[10] = '\0';\n  puVar2[0xb] = '\0';\n  puVar2[0xc] = '\0';\n  puVar2[0xd] = '\0';\n  puVar2[0xe] = '\0';\n  puVar2[0xf] = '\0';\n  puVar2[0x10] = '\0';\n  puVar2[0x11] = '\x01';\n  uVar1 = (undefined2)this->elf_machine_;\n  puVar2[0x14] = '\0';\n  puVar2[0x15] = '\0';\n  puVar2[0x16] = '\0';\n  puVar2[0x17] = '\x01';\n  puVar2[0x18] = '\0';\n  puVar2[0x19] = '\0';\n  puVar2[0x1a] = '\0';\n  puVar2[0x1b] = '\0';\n  puVar2[0x1c] = '\0';\n  puVar2[0x1d] = '\0';\n  puVar2[0x1e] = '\0';\n  puVar2[0x1f] = '\0';\n  *(ushort *)(puVar2 + 0x12) = uVar1 << 8 | (ushort)uVar1 >> 8;\n  puVar2[0x20] = '\0';\n  puVar2[0x21] = '\0';\n  puVar2[0x22] = '\0';\n  puVar2[0x23] = '\0';\n  puVar2[0x24] = '\0';\n  puVar2[0x25] = '\0';\n  puVar2[0x26] = '\0';\n  puVar2[0x27] = '\0';\n  puVar2[0x28] = '\0';\n  puVar2[0x29] = '\0';\n  puVar2[0x2a] = '\0';\n  puVar2[0x2b] = '\0';\n  puVar2[0x2c] = '\0';\n  puVar2[0x2d] = '\0';\n  puVar2[0x2e] = '\0';\n  puVar2[0x2f] = '@';\n  puVar2[0x30] = '\0';\n  puVar2[0x31] = '\0';\n  puVar2[0x32] = '\0';\n  puVar2[0x33] = '\0';\n  puVar2[0x34] = '\0';\n  puVar2[0x35] = '@';\n  puVar2[0x36] = '\0';\n  puVar2[0x37] = '\0';\n  puVar2[0x38] = '\0';\n  puVar2[0x39] = '\0';\n  puVar2[0x3a] = '\0';\n  puVar2[0x3b] = '@';\n  puVar2[0x3c] = '\0';\n  puVar2[0x3d] = '\x05';\n  puVar2[0x3e] = '\0';\n  puVar2[0x3f] = '\x04';\n  *ppout = *ppout + 0x40;\n  return;\n}\n\n" comment (declaration "void __thiscall gold::Binary_to_elf::write_file_header<64,_true>(Binary_to_elf *this,uchar **ppout)\n\n{\n  undefined2 uVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Binary_to_elf::" identifier : : identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_true>(Binary_to_elf" identifier > ( identifier) (pointer_declarator "*this" * identifier) , (ERROR "uchar **ppout)\n\n{\n  undefined2" identifier (pointer_declarator "**ppout" * (pointer_declarator "*ppout" * identifier)) ) { identifier) identifier ;) (declaration "uchar *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uchar e_ident [16];" type_identifier (array_declarator "e_ident [16]" identifier [ number_literal ]) ;) (expression_statement "puVar2 = *ppout;" (assignment_expression "puVar2 = *ppout" identifier = (pointer_expression "*ppout" * identifier)) ;) (expression_statement "puVar2[4] = '\x02';" (assignment_expression "puVar2[4] = '\x02'" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "puVar2[5] = '\x02';" (assignment_expression "puVar2[5] = '\x02'" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "puVar2[6] = '\x01';" (assignment_expression "puVar2[6] = '\x01'" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "puVar2[7] = '\0';" (assignment_expression "puVar2[7] = '\0'" (subscript_expression "puVar2[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0] = '\x7f';" (assignment_expression "puVar2[0] = '\x7f'" (subscript_expression "puVar2[0]" identifier [ number_literal ]) = (char_literal "'\x7f'" ' escape_sequence ')) ;) (expression_statement "puVar2[1] = 'E';" (assignment_expression "puVar2[1] = 'E'" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (char_literal "'E'" ' character ')) ;) (expression_statement "puVar2[2] = 'L';" (assignment_expression "puVar2[2] = 'L'" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = (char_literal "'L'" ' character ')) ;) (expression_statement "puVar2[3] = 'F';" (assignment_expression "puVar2[3] = 'F'" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = (char_literal "'F'" ' character ')) ;) (expression_statement "puVar2[8] = '\0';" (assignment_expression "puVar2[8] = '\0'" (subscript_expression "puVar2[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[9] = '\0';" (assignment_expression "puVar2[9] = '\0'" (subscript_expression "puVar2[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[10] = '\0';" (assignment_expression "puVar2[10] = '\0'" (subscript_expression "puVar2[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0xb] = '\0';" (assignment_expression "puVar2[0xb] = '\0'" (subscript_expression "puVar2[0xb]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0xc] = '\0';" (assignment_expression "puVar2[0xc] = '\0'" (subscript_expression "puVar2[0xc]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0xd] = '\0';" (assignment_expression "puVar2[0xd] = '\0'" (subscript_expression "puVar2[0xd]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0xe] = '\0';" (assignment_expression "puVar2[0xe] = '\0'" (subscript_expression "puVar2[0xe]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0xf] = '\0';" (assignment_expression "puVar2[0xf] = '\0'" (subscript_expression "puVar2[0xf]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x10] = '\0';" (assignment_expression "puVar2[0x10] = '\0'" (subscript_expression "puVar2[0x10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x11] = '\x01';" (assignment_expression "puVar2[0x11] = '\x01'" (subscript_expression "puVar2[0x11]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "uVar1 = (undefined2)this->elf_machine_;" (assignment_expression "uVar1 = (undefined2)this->elf_machine_" identifier = (cast_expression "(undefined2)this->elf_machine_" ( (type_descriptor "undefined2" type_identifier) ) (field_expression "this->elf_machine_" identifier -> field_identifier))) ;) (expression_statement "puVar2[0x14] = '\0';" (assignment_expression "puVar2[0x14] = '\0'" (subscript_expression "puVar2[0x14]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x15] = '\0';" (assignment_expression "puVar2[0x15] = '\0'" (subscript_expression "puVar2[0x15]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x16] = '\0';" (assignment_expression "puVar2[0x16] = '\0'" (subscript_expression "puVar2[0x16]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x17] = '\x01';" (assignment_expression "puVar2[0x17] = '\x01'" (subscript_expression "puVar2[0x17]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x18] = '\0';" (assignment_expression "puVar2[0x18] = '\0'" (subscript_expression "puVar2[0x18]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x19] = '\0';" (assignment_expression "puVar2[0x19] = '\0'" (subscript_expression "puVar2[0x19]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x1a] = '\0';" (assignment_expression "puVar2[0x1a] = '\0'" (subscript_expression "puVar2[0x1a]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x1b] = '\0';" (assignment_expression "puVar2[0x1b] = '\0'" (subscript_expression "puVar2[0x1b]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x1c] = '\0';" (assignment_expression "puVar2[0x1c] = '\0'" (subscript_expression "puVar2[0x1c]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x1d] = '\0';" (assignment_expression "puVar2[0x1d] = '\0'" (subscript_expression "puVar2[0x1d]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x1e] = '\0';" (assignment_expression "puVar2[0x1e] = '\0'" (subscript_expression "puVar2[0x1e]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x1f] = '\0';" (assignment_expression "puVar2[0x1f] = '\0'" (subscript_expression "puVar2[0x1f]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(ushort *)(puVar2 + 0x12) = uVar1 << 8 | (ushort)uVar1 >> 8;" (assignment_expression "*(ushort *)(puVar2 + 0x12) = uVar1 << 8 | (ushort)uVar1 >> 8" (pointer_expression "*(ushort *)(puVar2 + 0x12)" * (cast_expression "(ushort *)(puVar2 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x12)" ( (binary_expression "puVar2 + 0x12" identifier + number_literal) )))) = (binary_expression "uVar1 << 8 | (ushort)uVar1 >> 8" (binary_expression "uVar1 << 8" identifier << number_literal) | (binary_expression "(ushort)uVar1 >> 8" (cast_expression "(ushort)uVar1" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal))) ;) (expression_statement "puVar2[0x20] = '\0';" (assignment_expression "puVar2[0x20] = '\0'" (subscript_expression "puVar2[0x20]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x21] = '\0';" (assignment_expression "puVar2[0x21] = '\0'" (subscript_expression "puVar2[0x21]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x22] = '\0';" (assignment_expression "puVar2[0x22] = '\0'" (subscript_expression "puVar2[0x22]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x23] = '\0';" (assignment_expression "puVar2[0x23] = '\0'" (subscript_expression "puVar2[0x23]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x24] = '\0';" (assignment_expression "puVar2[0x24] = '\0'" (subscript_expression "puVar2[0x24]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x25] = '\0';" (assignment_expression "puVar2[0x25] = '\0'" (subscript_expression "puVar2[0x25]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x26] = '\0';" (assignment_expression "puVar2[0x26] = '\0'" (subscript_expression "puVar2[0x26]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x27] = '\0';" (assignment_expression "puVar2[0x27] = '\0'" (subscript_expression "puVar2[0x27]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x28] = '\0';" (assignment_expression "puVar2[0x28] = '\0'" (subscript_expression "puVar2[0x28]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x29] = '\0';" (assignment_expression "puVar2[0x29] = '\0'" (subscript_expression "puVar2[0x29]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x2a] = '\0';" (assignment_expression "puVar2[0x2a] = '\0'" (subscript_expression "puVar2[0x2a]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x2b] = '\0';" (assignment_expression "puVar2[0x2b] = '\0'" (subscript_expression "puVar2[0x2b]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x2c] = '\0';" (assignment_expression "puVar2[0x2c] = '\0'" (subscript_expression "puVar2[0x2c]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x2d] = '\0';" (assignment_expression "puVar2[0x2d] = '\0'" (subscript_expression "puVar2[0x2d]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x2e] = '\0';" (assignment_expression "puVar2[0x2e] = '\0'" (subscript_expression "puVar2[0x2e]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x2f] = '@';" (assignment_expression "puVar2[0x2f] = '@'" (subscript_expression "puVar2[0x2f]" identifier [ number_literal ]) = (char_literal "'@'" ' character ')) ;) (expression_statement "puVar2[0x30] = '\0';" (assignment_expression "puVar2[0x30] = '\0'" (subscript_expression "puVar2[0x30]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x31] = '\0';" (assignment_expression "puVar2[0x31] = '\0'" (subscript_expression "puVar2[0x31]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x32] = '\0';" (assignment_expression "puVar2[0x32] = '\0'" (subscript_expression "puVar2[0x32]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x33] = '\0';" (assignment_expression "puVar2[0x33] = '\0'" (subscript_expression "puVar2[0x33]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x34] = '\0';" (assignment_expression "puVar2[0x34] = '\0'" (subscript_expression "puVar2[0x34]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x35] = '@';" (assignment_expression "puVar2[0x35] = '@'" (subscript_expression "puVar2[0x35]" identifier [ number_literal ]) = (char_literal "'@'" ' character ')) ;) (expression_statement "puVar2[0x36] = '\0';" (assignment_expression "puVar2[0x36] = '\0'" (subscript_expression "puVar2[0x36]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x37] = '\0';" (assignment_expression "puVar2[0x37] = '\0'" (subscript_expression "puVar2[0x37]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x38] = '\0';" (assignment_expression "puVar2[0x38] = '\0'" (subscript_expression "puVar2[0x38]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x39] = '\0';" (assignment_expression "puVar2[0x39] = '\0'" (subscript_expression "puVar2[0x39]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x3a] = '\0';" (assignment_expression "puVar2[0x3a] = '\0'" (subscript_expression "puVar2[0x3a]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x3b] = '@';" (assignment_expression "puVar2[0x3b] = '@'" (subscript_expression "puVar2[0x3b]" identifier [ number_literal ]) = (char_literal "'@'" ' character ')) ;) (expression_statement "puVar2[0x3c] = '\0';" (assignment_expression "puVar2[0x3c] = '\0'" (subscript_expression "puVar2[0x3c]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x3d] = '\x05';" (assignment_expression "puVar2[0x3d] = '\x05'" (subscript_expression "puVar2[0x3d]" identifier [ number_literal ]) = (char_literal "'\x05'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x3e] = '\0';" (assignment_expression "puVar2[0x3e] = '\0'" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar2[0x3f] = '\x04';" (assignment_expression "puVar2[0x3f] = '\x04'" (subscript_expression "puVar2[0x3f]" identifier [ number_literal ]) = (char_literal "'\x04'" ' escape_sequence ')) ;) (expression_statement "*ppout = *ppout + 0x40;" (assignment_expression "*ppout = *ppout + 0x40" (pointer_expression "*ppout" * identifier) = (binary_expression "*ppout + 0x40" (pointer_expression "*ppout" * identifier) + number_literal)) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_00199440(ushort *param_1,int *param_2)\n\n{\n  ushort uVar1;\n  undefined4 *puVar2;\n  \n  puVar2 = (undefined4 *)*param_2;\n  puVar2[1] = 0x10202;\n  *puVar2 = 0x464c457f;\n  puVar2[2] = 0;\n  puVar2[3] = 0;\n  *(undefined2 *)(puVar2 + 4) = 0x100;\n  uVar1 = *param_1;\n  puVar2[5] = 0x1000000;\n  puVar2[6] = 0;\n  puVar2[7] = 0;\n  *(ushort *)((int)puVar2 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n  puVar2[8] = 0;\n  puVar2[9] = 0;\n  puVar2[10] = 0;\n  puVar2[0xb] = 0x40000000;\n  puVar2[0xc] = 0;\n  puVar2[0xd] = 0x4000;\n  puVar2[0xe] = 0x40000000;\n  puVar2[0xf] = 0x4000500;\n  *param_2 = *param_2 + 0x40;\n  return;\n}\n\n" (function_definition "void FUN_00199440(ushort *param_1,int *param_2)\n\n{\n  ushort uVar1;\n  undefined4 *puVar2;\n  \n  puVar2 = (undefined4 *)*param_2;\n  puVar2[1] = 0x10202;\n  *puVar2 = 0x464c457f;\n  puVar2[2] = 0;\n  puVar2[3] = 0;\n  *(undefined2 *)(puVar2 + 4) = 0x100;\n  uVar1 = *param_1;\n  puVar2[5] = 0x1000000;\n  puVar2[6] = 0;\n  puVar2[7] = 0;\n  *(ushort *)((int)puVar2 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n  puVar2[8] = 0;\n  puVar2[9] = 0;\n  puVar2[10] = 0;\n  puVar2[0xb] = 0x40000000;\n  puVar2[0xc] = 0;\n  puVar2[0xd] = 0x4000;\n  puVar2[0xe] = 0x40000000;\n  puVar2[0xf] = 0x4000500;\n  *param_2 = *param_2 + 0x40;\n  return;\n}" primitive_type (function_declarator "FUN_00199440(ushort *param_1,int *param_2)" identifier (parameter_list "(ushort *param_1,int *param_2)" ( (parameter_declaration "ushort *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  undefined4 *puVar2;\n  \n  puVar2 = (undefined4 *)*param_2;\n  puVar2[1] = 0x10202;\n  *puVar2 = 0x464c457f;\n  puVar2[2] = 0;\n  puVar2[3] = 0;\n  *(undefined2 *)(puVar2 + 4) = 0x100;\n  uVar1 = *param_1;\n  puVar2[5] = 0x1000000;\n  puVar2[6] = 0;\n  puVar2[7] = 0;\n  *(ushort *)((int)puVar2 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n  puVar2[8] = 0;\n  puVar2[9] = 0;\n  puVar2[10] = 0;\n  puVar2[0xb] = 0x40000000;\n  puVar2[0xc] = 0;\n  puVar2[0xd] = 0x4000;\n  puVar2[0xe] = 0x40000000;\n  puVar2[0xf] = 0x4000500;\n  *param_2 = *param_2 + 0x40;\n  return;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (expression_statement "puVar2 = (undefined4 *)*param_2;" (assignment_expression "puVar2 = (undefined4 *)*param_2" identifier = (cast_expression "(undefined4 *)*param_2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "puVar2[1] = 0x10202;" (assignment_expression "puVar2[1] = 0x10202" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar2 = 0x464c457f;" (assignment_expression "*puVar2 = 0x464c457f" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (expression_statement "puVar2[2] = 0;" (assignment_expression "puVar2[2] = 0" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[3] = 0;" (assignment_expression "puVar2[3] = 0" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar2 + 4) = 0x100;" (assignment_expression "*(undefined2 *)(puVar2 + 4) = 0x100" (pointer_expression "*(undefined2 *)(puVar2 + 4)" * (cast_expression "(undefined2 *)(puVar2 + 4)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 4)" ( (binary_expression "puVar2 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "puVar2[5] = 0x1000000;" (assignment_expression "puVar2[5] = 0x1000000" (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 "*(ushort *)((int)puVar2 + 0x12) = uVar1 << 8 | uVar1 >> 8;" (assignment_expression "*(ushort *)((int)puVar2 + 0x12) = uVar1 << 8 | uVar1 >> 8" (pointer_expression "*(ushort *)((int)puVar2 + 0x12)" * (cast_expression "(ushort *)((int)puVar2 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + 0x12)" ( (binary_expression "(int)puVar2 + 0x12" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar1 << 8 | uVar1 >> 8" (binary_expression "uVar1 << 8" identifier << number_literal) | (binary_expression "uVar1 >> 8" identifier >> 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 "puVar2[0xb] = 0x40000000;" (assignment_expression "puVar2[0xb] = 0x40000000" (subscript_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] = 0x4000;" (assignment_expression "puVar2[0xd] = 0x4000" (subscript_expression "puVar2[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0xe] = 0x40000000;" (assignment_expression "puVar2[0xe] = 0x40000000" (subscript_expression "puVar2[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0xf] = 0x4000500;" (assignment_expression "puVar2[0xf] = 0x4000500" (subscript_expression "puVar2[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_2 = *param_2 + 0x40;" (assignment_expression "*param_2 = *param_2 + 0x40" (pointer_expression "*param_2" * identifier) = (binary_expression "*param_2 + 0x40" (pointer_expression "*param_2" * identifier) + number_literal)) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (return_statement return ;) })))
(function_definition "void FUN_00199440(ushort *param_1,int *param_2)\n\n{\n  ushort uVar1;\n  undefined4 *puVar2;\n  \n  puVar2 = (undefined4 *)*param_2;\n  puVar2[1] = 0x10202;\n  *puVar2 = 0x464c457f;\n  puVar2[2] = 0;\n  puVar2[3] = 0;\n  *(undefined2 *)(puVar2 + 4) = 0x100;\n  uVar1 = *param_1;\n  puVar2[5] = 0x1000000;\n  puVar2[6] = 0;\n  puVar2[7] = 0;\n  *(ushort *)((int)puVar2 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n  puVar2[8] = 0;\n  puVar2[9] = 0;\n  puVar2[10] = 0;\n  puVar2[0xb] = 0x40000000;\n  puVar2[0xc] = 0;\n  puVar2[0xd] = 0x4000;\n  puVar2[0xe] = 0x40000000;\n  puVar2[0xf] = 0x4000500;\n  *param_2 = *param_2 + 0x40;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00199440(ushort *param_1,int *param_2)" (identifier "FUN_00199440") (parameter_list "(ushort *param_1,int *param_2)" (( "(") (parameter_declaration "ushort *param_1" (type_identifier "ushort") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  ushort uVar1;\n  undefined4 *puVar2;\n  \n  puVar2 = (undefined4 *)*param_2;\n  puVar2[1] = 0x10202;\n  *puVar2 = 0x464c457f;\n  puVar2[2] = 0;\n  puVar2[3] = 0;\n  *(undefined2 *)(puVar2 + 4) = 0x100;\n  uVar1 = *param_1;\n  puVar2[5] = 0x1000000;\n  puVar2[6] = 0;\n  puVar2[7] = 0;\n  *(ushort *)((int)puVar2 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n  puVar2[8] = 0;\n  puVar2[9] = 0;\n  puVar2[10] = 0;\n  puVar2[0xb] = 0x40000000;\n  puVar2[0xc] = 0;\n  puVar2[0xd] = 0x4000;\n  puVar2[0xe] = 0x40000000;\n  puVar2[0xf] = 0x4000500;\n  *param_2 = *param_2 + 0x40;\n  return;\n}" ({ "{") (declaration "ushort uVar1;" (type_identifier "ushort") (identifier "uVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (expression_statement "puVar2 = (undefined4 *)*param_2;" (assignment_expression "puVar2 = (undefined4 *)*param_2" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)*param_2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "puVar2[1] = 0x10202;" (assignment_expression "puVar2[1] = 0x10202" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x10202")) (; ";")) (expression_statement "*puVar2 = 0x464c457f;" (assignment_expression "*puVar2 = 0x464c457f" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (number_literal "0x464c457f")) (; ";")) (expression_statement "puVar2[2] = 0;" (assignment_expression "puVar2[2] = 0" (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[3] = 0;" (assignment_expression "puVar2[3] = 0" (subscript_expression "puVar2[3]" (identifier "puVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined2 *)(puVar2 + 4) = 0x100;" (assignment_expression "*(undefined2 *)(puVar2 + 4) = 0x100" (pointer_expression "*(undefined2 *)(puVar2 + 4)" (* "*") (cast_expression "(undefined2 *)(puVar2 + 4)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 4)" (( "(") (binary_expression "puVar2 + 4" (identifier "puVar2") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0x100")) (; ";")) (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" (identifier "uVar1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "puVar2[5] = 0x1000000;" (assignment_expression "puVar2[5] = 0x1000000" (subscript_expression "puVar2[5]" (identifier "puVar2") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0x1000000")) (; ";")) (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 "*(ushort *)((int)puVar2 + 0x12) = uVar1 << 8 | uVar1 >> 8;" (assignment_expression "*(ushort *)((int)puVar2 + 0x12) = uVar1 << 8 | uVar1 >> 8" (pointer_expression "*(ushort *)((int)puVar2 + 0x12)" (* "*") (cast_expression "(ushort *)((int)puVar2 + 0x12)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar2 + 0x12)" (( "(") (binary_expression "(int)puVar2 + 0x12" (cast_expression "(int)puVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar2")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (binary_expression "uVar1 << 8 | uVar1 >> 8" (binary_expression "uVar1 << 8" (identifier "uVar1") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar1 >> 8" (identifier "uVar1") (>> ">>") (number_literal "8")))) (; ";")) (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 "puVar2[0xb] = 0x40000000;" (assignment_expression "puVar2[0xb] = 0x40000000" (subscript_expression "puVar2[0xb]" (identifier "puVar2") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0x40000000")) (; ";")) (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] = 0x4000;" (assignment_expression "puVar2[0xd] = 0x4000" (subscript_expression "puVar2[0xd]" (identifier "puVar2") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0x4000")) (; ";")) (expression_statement "puVar2[0xe] = 0x40000000;" (assignment_expression "puVar2[0xe] = 0x40000000" (subscript_expression "puVar2[0xe]" (identifier "puVar2") ([ "[") (number_literal "0xe") (] "]")) (= "=") (number_literal "0x40000000")) (; ";")) (expression_statement "puVar2[0xf] = 0x4000500;" (assignment_expression "puVar2[0xf] = 0x4000500" (subscript_expression "puVar2[0xf]" (identifier "puVar2") ([ "[") (number_literal "0xf") (] "]")) (= "=") (number_literal "0x4000500")) (; ";")) (expression_statement "*param_2 = *param_2 + 0x40;" (assignment_expression "*param_2 = *param_2 + 0x40" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (binary_expression "*param_2 + 0x40" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x40"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original name: write_file_header<64, true>
   DWARF original prototype: void write_file_header<64,_true>(Binary_to_elf * this, uchar * * ppout)
    */

void __thiscall gold::Binary_to_elf::write_file_header<64,_true>(Binary_to_elf *this,type_1 **ppout)

{
  type_2 var_2;
  type_1 *var_1;
  type_1 e_ident [16];
  
  var_1 = *ppout;
  var_1[4] = '\x02';
  var_1[5] = '\x02';
  var_1[6] = '\x01';
  var_1[7] = '\0';
  var_1[0] = '\x7f';
  var_1[1] = 'E';
  var_1[2] = 'L';
  var_1[3] = 'F';
  var_1[8] = '\0';
  var_1[9] = '\0';
  var_1[10] = '\0';
  var_1[0xb] = '\0';
  var_1[0xc] = '\0';
  var_1[0xd] = '\0';
  var_1[0xe] = '\0';
  var_1[0xf] = '\0';
  var_1[0x10] = '\0';
  var_1[0x11] = '\x01';
  var_2 = (type_2)this->elf_machine_;
  var_1[0x14] = '\0';
  var_1[0x15] = '\0';
  var_1[0x16] = '\0';
  var_1[0x17] = '\x01';
  var_1[0x18] = '\0';
  var_1[0x19] = '\0';
  var_1[0x1a] = '\0';
  var_1[0x1b] = '\0';
  var_1[0x1c] = '\0';
  var_1[0x1d] = '\0';
  var_1[0x1e] = '\0';
  var_1[0x1f] = '\0';
  *(type_3 *)(var_1 + 0x12) = var_2 << 8 | (type_3)var_2 >> 8;
  var_1[0x20] = '\0';
  var_1[0x21] = '\0';
  var_1[0x22] = '\0';
  var_1[0x23] = '\0';
  var_1[0x24] = '\0';
  var_1[0x25] = '\0';
  var_1[0x26] = '\0';
  var_1[0x27] = '\0';
  var_1[0x28] = '\0';
  var_1[0x29] = '\0';
  var_1[0x2a] = '\0';
  var_1[0x2b] = '\0';
  var_1[0x2c] = '\0';
  var_1[0x2d] = '\0';
  var_1[0x2e] = '\0';
  var_1[0x2f] = '@';
  var_1[0x30] = '\0';
  var_1[0x31] = '\0';
  var_1[0x32] = '\0';
  var_1[0x33] = '\0';
  var_1[0x34] = '\0';
  var_1[0x35] = '@';
  var_1[0x36] = '\0';
  var_1[0x37] = '\0';
  var_1[0x38] = '\0';
  var_1[0x39] = '\0';
  var_1[0x3a] = '\0';
  var_1[0x3b] = '@';
  var_1[0x3c] = '\0';
  var_1[0x3d] = '\x05';
  var_1[0x3e] = '\0';
  var_1[0x3f] = '\x04';
  *ppout = *ppout + 0x40;
  return;
}


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

void MASKED(ushort *param_1,int *param_2)

{
  ushort uVar1;
  undefined4 *puVar2;
  
  puVar2 = (undefined4 *)*param_2;
  puVar2[1] = 0x10202;
  *puVar2 = 0x464c457f;
  puVar2[2] = 0;
  puVar2[3] = 0;
  *(undefined2 *)(puVar2 + 4) = 0x100;
  uVar1 = *param_1;
  puVar2[5] = 0x1000000;
  puVar2[6] = 0;
  puVar2[7] = 0;
  *(ushort *)((int)puVar2 + 0x12) = uVar1 << 8 | uVar1 >> 8;
  puVar2[8] = 0;
  puVar2[9] = 0;
  puVar2[10] = 0;
  puVar2[0xb] = 0x40000000;
  puVar2[0xc] = 0;
  puVar2[0xd] = 0x4000;
  puVar2[0xe] = 0x40000000;
  puVar2[0xf] = 0x4000500;
  *param_2 = *param_2 + 0x40;
  return;
}

