
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Variable defined which should be unmapped: e_ident */
/* DWARF original name: sized_write_ehdr<64, false>
   DWARF original prototype: void sized_write_ehdr<64,_false>(Dwp_output_file * this) */

void __thiscall gold::Dwp_output_file::sized_write_ehdr<64,_false>(Dwp_output_file *this)

{
  char *pcVar1;
  uint uVar2;
  size_t sVar3;
  char *format;
  undefined4 uVar4;
  FILE *__s;
  uchar e_ident [16];
  uchar buf [64];
  
  buf._44_4_ = *(undefined4 *)((int)&this->shoff_ + 4);
  buf[4] = '\x02';
  buf[5] = '\x01';
  buf[6] = '\x01';
  buf[7] = '\0';
  buf[8] = '\0';
  buf[9] = '\0';
  buf[10] = '\0';
  buf[0xb] = '\0';
  buf[0xc] = '\0';
  buf[0xd] = '\0';
  buf[0xe] = '\0';
  buf[0xf] = '\0';
  buf[0x10] = '\x01';
  buf[0x11] = '\0';
  builtin_memcpy(buf,"\x7fELF",4);
  buf._18_2_ = (undefined2)this->machine_;
  buf._40_4_ = *(undefined4 *)&this->shoff_;
  buf[0x14] = '\x01';
  buf[0x15] = '\0';
  buf[0x16] = '\0';
  buf[0x17] = '\0';
  buf[0x18] = '\0';
  buf[0x19] = '\0';
  buf[0x1a] = '\0';
  buf[0x1b] = '\0';
  buf[0x1c] = '\0';
  buf[0x1d] = '\0';
  buf[0x1e] = '\0';
  buf[0x1f] = '\0';
  buf[0x20] = '\0';
  buf[0x21] = '\0';
  buf[0x22] = '\0';
  buf[0x23] = '\0';
  buf[0x24] = '\0';
  buf[0x25] = '\0';
  buf[0x26] = '\0';
  buf[0x27] = '\0';
  buf[0x30] = '\0';
  buf[0x31] = '\0';
  buf[0x32] = '\0';
  buf[0x33] = '\0';
  buf[0x34] = '@';
  buf[0x35] = '\0';
  buf[0x36] = '\0';
  buf[0x37] = '\0';
  buf[0x38] = '\0';
  buf[0x39] = '\0';
  buf[0x3a] = '@';
  buf[0x3b] = '\0';
  uVar2 = this->shnum_;
  if (0xfeff < uVar2) {
    uVar2 = 0;
  }
  buf._60_2_ = (undefined2)uVar2;
  uVar2 = this->shstrndx_;
  if (0xfeff < uVar2) {
    uVar2 = 0xffff;
  }
  buf._62_2_ = (undefined2)uVar2;
  fseek((FILE *)this->fd_,0,0);
  __s = (FILE *)this->fd_;
  uVar4 = 0x40;
  sVar3 = fwrite(buf,1,0x40,__s);
  if (0x3f < sVar3) {
    return;
  }
  pcVar1 = this->name_;
  format = (char *)gettext("%s: error writing ELF header");
                    /* WARNING: Subroutine does not return */
  gold_fatal(format,pcVar1,uVar4,__s,0x464c457f);
}



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

void FUN_0004ac20(undefined4 *param_1)

{
  undefined4 uVar1;
  uint uVar2;
  size_t sVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  FILE *__s;
  undefined4 uVar6;
  undefined4 local_4c;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  undefined2 local_3c;
  undefined2 local_3a;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 local_1c;
  undefined4 local_18;
  undefined4 local_14;
  undefined2 local_10;
  undefined2 local_e;
  undefined4 uStack_c;
  
  uStack_c = 0x4ac29;
  local_20 = param_1[0x11];
  local_48 = 0x10102;
  local_44 = 0;
  local_40 = 0;
  uVar6 = 0x464c457f;
  local_3c = 1;
  local_4c = 0x464c457f;
  local_3a = (undefined2)param_1[1];
  local_24 = param_1[0x10];
  local_38 = 1;
  local_34 = 0;
  local_30 = 0;
  local_2c = 0;
  local_28 = 0;
  local_1c = 0;
  local_18 = 0x40;
  local_14 = 0x400000;
  uVar2 = param_1[9];
  if (0xfeff < uVar2) {
    uVar2 = 0;
  }
  local_10 = (undefined2)uVar2;
  uVar2 = param_1[0x12];
  if (0xfeff < uVar2) {
    uVar2 = 0xffff;
  }
  local_e = (undefined2)uVar2;
  fseek((FILE *)param_1[6],0,0);
  __s = (FILE *)param_1[6];
  uVar5 = 0x40;
  sVar3 = fwrite(&local_4c,1,0x40,__s);
  if (0x3f < sVar3) {
    return;
  }
  uVar1 = *param_1;
  uVar4 = gettext("%s: error writing ELF header");
                    /* WARNING: Subroutine does not return */
  FUN_00065450(uVar4,uVar1,uVar5,__s,uVar6);
}


PUSH ESI
XOR EAX,EAX
PUSH EBX
CALL 0x00035840
ADD EBX,0x3443d7
SUB ESP,0x58
MOV word ptr [ESP + 0x12],AX
MOV EAX,0x102
MOV ESI,dword ptr [ESP + 0x64]
MOV dword ptr [ESP + 0xa],0x0
MOV word ptr [ESP + 0x8],AX
MOV EDX,dword ptr [ESI + 0x44]
MOV byte ptr [ESP + 0xa],0x1
MOV EAX,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0xe],0x0
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x40],EDX
MOV EDX,0x0
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x4],0x464c457f
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,0x1
MOV word ptr [ESP + 0x24],AX
MOV EAX,dword ptr [ESI + 0x4]
MOV dword ptr [ESP + 0x14],0x464c457f
MOV word ptr [ESP + 0x26],AX
MOV EAX,dword ptr [ESI + 0x40]
MOV dword ptr [ESP + 0x28],0x1
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x30],0x0
MOV dword ptr [ESP + 0x34],0x0
MOV dword ptr [ESP + 0x38],0x0
MOV dword ptr [ESP + 0x3c],EAX
MOV dword ptr [ESP + 0x44],0x0
MOV dword ptr [ESP + 0x48],0x40
MOV dword ptr [ESP + 0x4c],0x400000
MOV EAX,dword ptr [ESI + 0x24]
CMP EAX,0xff00
CMOVNC EAX,EDX
MOV EDX,0xffff
MOV word ptr [ESP + 0x50],AX
MOV EAX,dword ptr [ESI + 0x48]
CMP EAX,0xff00
CMOVNC EAX,EDX
MOV word ptr [ESP + 0x52],AX
PUSH 0x0
PUSH 0x0
PUSH dword ptr [ESI + 0x18]
CALL 0x000294f0
ADD ESP,0x10
PUSH dword ptr [ESI + 0x18]
PUSH 0x40
PUSH 0x1
LEA EAX,[ESP + 0x1c]
PUSH EAX
CALL 0x00029730
ADD ESP,0x10
CMP EAX,0x3f
JBE 0x0004ad3a
ADD ESP,0x54
POP EBX
POP ESI
RET
SUB ESP,0xc
LEA EAX,[EBX + 0xffef17e9]
MOV ESI,dword ptr [ESI]
PUSH EAX
CALL 0x000293b0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x00065450
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0004ac20(undefined4 *param_1)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  size_t sVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  FILE *__s;\n  undefined4 uVar6;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined2 local_3c;\n  undefined2 local_3a;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  undefined4 local_14;\n  undefined2 local_10;\n  undefined2 local_e;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x4ac29;\n  local_20 = param_1[0x11];\n  local_48 = 0x10102;\n  local_44 = 0;\n  local_40 = 0;\n  uVar6 = 0x464c457f;\n  local_3c = 1;\n  local_4c = 0x464c457f;\n  local_3a = (undefined2)param_1[1];\n  local_24 = param_1[0x10];\n  local_38 = 1;\n  local_34 = 0;\n  local_30 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_1c = 0;\n  local_18 = 0x40;\n  local_14 = 0x400000;\n  uVar2 = param_1[9];\n  if (0xfeff < uVar2) {\n    uVar2 = 0;\n  }\n  local_10 = (undefined2)uVar2;\n  uVar2 = param_1[0x12];\n  if (0xfeff < uVar2) {\n    uVar2 = 0xffff;\n  }\n  local_e = (undefined2)uVar2;\n  fseek((FILE *)param_1[6],0,0);\n  __s = (FILE *)param_1[6];\n  uVar5 = 0x40;\n  sVar3 = fwrite(&local_4c,1,0x40,__s);\n  if (0x3f < sVar3) {\n    return;\n  }\n  uVar1 = *param_1;\n  uVar4 = gettext("%s: error writing ELF header");\n                    /* WARNING: Subroutine does not return */\n  FUN_00065450(uVar4,uVar1,uVar5,__s,uVar6);\n}\n\n" comment (function_definition "void FUN_0004ac20(undefined4 *param_1)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  size_t sVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  FILE *__s;\n  undefined4 uVar6;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined2 local_3c;\n  undefined2 local_3a;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  undefined4 local_14;\n  undefined2 local_10;\n  undefined2 local_e;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x4ac29;\n  local_20 = param_1[0x11];\n  local_48 = 0x10102;\n  local_44 = 0;\n  local_40 = 0;\n  uVar6 = 0x464c457f;\n  local_3c = 1;\n  local_4c = 0x464c457f;\n  local_3a = (undefined2)param_1[1];\n  local_24 = param_1[0x10];\n  local_38 = 1;\n  local_34 = 0;\n  local_30 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_1c = 0;\n  local_18 = 0x40;\n  local_14 = 0x400000;\n  uVar2 = param_1[9];\n  if (0xfeff < uVar2) {\n    uVar2 = 0;\n  }\n  local_10 = (undefined2)uVar2;\n  uVar2 = param_1[0x12];\n  if (0xfeff < uVar2) {\n    uVar2 = 0xffff;\n  }\n  local_e = (undefined2)uVar2;\n  fseek((FILE *)param_1[6],0,0);\n  __s = (FILE *)param_1[6];\n  uVar5 = 0x40;\n  sVar3 = fwrite(&local_4c,1,0x40,__s);\n  if (0x3f < sVar3) {\n    return;\n  }\n  uVar1 = *param_1;\n  uVar4 = gettext("%s: error writing ELF header");\n                    /* WARNING: Subroutine does not return */\n  FUN_00065450(uVar4,uVar1,uVar5,__s,uVar6);\n}" primitive_type (function_declarator "FUN_0004ac20(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  uint uVar2;\n  size_t sVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  FILE *__s;\n  undefined4 uVar6;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined2 local_3c;\n  undefined2 local_3a;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  undefined4 local_14;\n  undefined2 local_10;\n  undefined2 local_e;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x4ac29;\n  local_20 = param_1[0x11];\n  local_48 = 0x10102;\n  local_44 = 0;\n  local_40 = 0;\n  uVar6 = 0x464c457f;\n  local_3c = 1;\n  local_4c = 0x464c457f;\n  local_3a = (undefined2)param_1[1];\n  local_24 = param_1[0x10];\n  local_38 = 1;\n  local_34 = 0;\n  local_30 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_1c = 0;\n  local_18 = 0x40;\n  local_14 = 0x400000;\n  uVar2 = param_1[9];\n  if (0xfeff < uVar2) {\n    uVar2 = 0;\n  }\n  local_10 = (undefined2)uVar2;\n  uVar2 = param_1[0x12];\n  if (0xfeff < uVar2) {\n    uVar2 = 0xffff;\n  }\n  local_e = (undefined2)uVar2;\n  fseek((FILE *)param_1[6],0,0);\n  __s = (FILE *)param_1[6];\n  uVar5 = 0x40;\n  sVar3 = fwrite(&local_4c,1,0x40,__s);\n  if (0x3f < sVar3) {\n    return;\n  }\n  uVar1 = *param_1;\n  uVar4 = gettext("%s: error writing ELF header");\n                    /* WARNING: Subroutine does not return */\n  FUN_00065450(uVar4,uVar1,uVar5,__s,uVar6);\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "FILE *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined2 local_3c;" type_identifier identifier ;) (declaration "undefined2 local_3a;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 local_1c;" type_identifier identifier ;) (declaration "undefined4 local_18;" type_identifier identifier ;) (declaration "undefined4 local_14;" type_identifier identifier ;) (declaration "undefined2 local_10;" type_identifier identifier ;) (declaration "undefined2 local_e;" type_identifier identifier ;) (declaration "undefined4 uStack_c;" type_identifier identifier ;) (expression_statement "uStack_c = 0x4ac29;" (assignment_expression "uStack_c = 0x4ac29" identifier = number_literal) ;) (expression_statement "local_20 = param_1[0x11];" (assignment_expression "local_20 = param_1[0x11]" identifier = (subscript_expression "param_1[0x11]" identifier [ number_literal ])) ;) (expression_statement "local_48 = 0x10102;" (assignment_expression "local_48 = 0x10102" identifier = number_literal) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0x464c457f;" (assignment_expression "uVar6 = 0x464c457f" identifier = number_literal) ;) (expression_statement "local_3c = 1;" (assignment_expression "local_3c = 1" identifier = number_literal) ;) (expression_statement "local_4c = 0x464c457f;" (assignment_expression "local_4c = 0x464c457f" identifier = number_literal) ;) (expression_statement "local_3a = (undefined2)param_1[1];" (assignment_expression "local_3a = (undefined2)param_1[1]" identifier = (cast_expression "(undefined2)param_1[1]" ( (type_descriptor "undefined2" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "local_24 = param_1[0x10];" (assignment_expression "local_24 = param_1[0x10]" identifier = (subscript_expression "param_1[0x10]" identifier [ number_literal ])) ;) (expression_statement "local_38 = 1;" (assignment_expression "local_38 = 1" identifier = number_literal) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_1c = 0;" (assignment_expression "local_1c = 0" identifier = number_literal) ;) (expression_statement "local_18 = 0x40;" (assignment_expression "local_18 = 0x40" identifier = number_literal) ;) (expression_statement "local_14 = 0x400000;" (assignment_expression "local_14 = 0x400000" identifier = number_literal) ;) (expression_statement "uVar2 = param_1[9];" (assignment_expression "uVar2 = param_1[9]" identifier = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (if_statement "if (0xfeff < uVar2) {\n    uVar2 = 0;\n  }" if (parenthesized_expression "(0xfeff < uVar2)" ( (binary_expression "0xfeff < uVar2" number_literal < identifier) )) (compound_statement "{\n    uVar2 = 0;\n  }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) })) (expression_statement "local_10 = (undefined2)uVar2;" (assignment_expression "local_10 = (undefined2)uVar2" identifier = (cast_expression "(undefined2)uVar2" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) (expression_statement "uVar2 = param_1[0x12];" (assignment_expression "uVar2 = param_1[0x12]" identifier = (subscript_expression "param_1[0x12]" identifier [ number_literal ])) ;) (if_statement "if (0xfeff < uVar2) {\n    uVar2 = 0xffff;\n  }" if (parenthesized_expression "(0xfeff < uVar2)" ( (binary_expression "0xfeff < uVar2" number_literal < identifier) )) (compound_statement "{\n    uVar2 = 0xffff;\n  }" { (expression_statement "uVar2 = 0xffff;" (assignment_expression "uVar2 = 0xffff" identifier = number_literal) ;) })) (expression_statement "local_e = (undefined2)uVar2;" (assignment_expression "local_e = (undefined2)uVar2" identifier = (cast_expression "(undefined2)uVar2" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) (expression_statement "fseek((FILE *)param_1[6],0,0);" (call_expression "fseek((FILE *)param_1[6],0,0)" identifier (argument_list "((FILE *)param_1[6],0,0)" ( (cast_expression "(FILE *)param_1[6]" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ])) , number_literal , number_literal ))) ;) (expression_statement "__s = (FILE *)param_1[6];" (assignment_expression "__s = (FILE *)param_1[6]" identifier = (cast_expression "(FILE *)param_1[6]" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) (expression_statement "uVar5 = 0x40;" (assignment_expression "uVar5 = 0x40" identifier = number_literal) ;) (expression_statement "sVar3 = fwrite(&local_4c,1,0x40,__s);" (assignment_expression "sVar3 = fwrite(&local_4c,1,0x40,__s)" identifier = (call_expression "fwrite(&local_4c,1,0x40,__s)" identifier (argument_list "(&local_4c,1,0x40,__s)" ( (pointer_expression "&local_4c" & identifier) , number_literal , number_literal , identifier )))) ;) (if_statement "if (0x3f < sVar3) {\n    return;\n  }" if (parenthesized_expression "(0x3f < sVar3)" ( (binary_expression "0x3f < sVar3" number_literal < identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar4 = gettext("%s: error writing ELF header");" (assignment_expression "uVar4 = gettext("%s: error writing ELF header")" identifier = (call_expression "gettext("%s: error writing ELF header")" identifier (argument_list "("%s: error writing ELF header")" ( (string_literal ""%s: error writing ELF header"" " string_content ") )))) ;) comment (expression_statement "FUN_00065450(uVar4,uVar1,uVar5,__s,uVar6);" (call_expression "FUN_00065450(uVar4,uVar1,uVar5,__s,uVar6)" identifier (argument_list "(uVar4,uVar1,uVar5,__s,uVar6)" ( identifier , identifier , identifier , identifier , identifier ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Variable defined which should be unmapped: e_ident */\n/* DWARF original name: sized_write_ehdr<64, false>\n   DWARF original prototype: void sized_write_ehdr<64,_false>(Dwp_output_file * this) */\n\nvoid __thiscall gold::Dwp_output_file::sized_write_ehdr<64,_false>(Dwp_output_file *this)\n\n{\n  char *pcVar1;\n  uint uVar2;\n  size_t sVar3;\n  char *format;\n  undefined4 uVar4;\n  FILE *__s;\n  uchar e_ident [16];\n  uchar buf [64];\n  \n  buf._44_4_ = *(undefined4 *)((int)&this->shoff_ + 4);\n  buf[4] = '\x02';\n  buf[5] = '\x01';\n  buf[6] = '\x01';\n  buf[7] = '\0';\n  buf[8] = '\0';\n  buf[9] = '\0';\n  buf[10] = '\0';\n  buf[0xb] = '\0';\n  buf[0xc] = '\0';\n  buf[0xd] = '\0';\n  buf[0xe] = '\0';\n  buf[0xf] = '\0';\n  buf[0x10] = '\x01';\n  buf[0x11] = '\0';\n  builtin_memcpy(buf,"\x7fELF",4);\n  buf._18_2_ = (undefined2)this->machine_;\n  buf._40_4_ = *(undefined4 *)&this->shoff_;\n  buf[0x14] = '\x01';\n  buf[0x15] = '\0';\n  buf[0x16] = '\0';\n  buf[0x17] = '\0';\n  buf[0x18] = '\0';\n  buf[0x19] = '\0';\n  buf[0x1a] = '\0';\n  buf[0x1b] = '\0';\n  buf[0x1c] = '\0';\n  buf[0x1d] = '\0';\n  buf[0x1e] = '\0';\n  buf[0x1f] = '\0';\n  buf[0x20] = '\0';\n  buf[0x21] = '\0';\n  buf[0x22] = '\0';\n  buf[0x23] = '\0';\n  buf[0x24] = '\0';\n  buf[0x25] = '\0';\n  buf[0x26] = '\0';\n  buf[0x27] = '\0';\n  buf[0x30] = '\0';\n  buf[0x31] = '\0';\n  buf[0x32] = '\0';\n  buf[0x33] = '\0';\n  buf[0x34] = '@';\n  buf[0x35] = '\0';\n  buf[0x36] = '\0';\n  buf[0x37] = '\0';\n  buf[0x38] = '\0';\n  buf[0x39] = '\0';\n  buf[0x3a] = '@';\n  buf[0x3b] = '\0';\n  uVar2 = this->shnum_;\n  if (0xfeff < uVar2) {\n    uVar2 = 0;\n  }\n  buf._60_2_ = (undefined2)uVar2;\n  uVar2 = this->shstrndx_;\n  if (0xfeff < uVar2) {\n    uVar2 = 0xffff;\n  }\n  buf._62_2_ = (undefined2)uVar2;\n  fseek((FILE *)this->fd_,0,0);\n  __s = (FILE *)this->fd_;\n  uVar4 = 0x40;\n  sVar3 = fwrite(buf,1,0x40,__s);\n  if (0x3f < sVar3) {\n    return;\n  }\n  pcVar1 = this->name_;\n  format = (char *)gettext("%s: error writing ELF header");\n                    /* WARNING: Subroutine does not return */\n  gold_fatal(format,pcVar1,uVar4,__s,0x464c457f);\n}\n\n" comment comment comment (declaration "void __thiscall gold::Dwp_output_file::sized_write_ehdr<64,_false>(Dwp_output_file *this)\n\n{\n  char *pcVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Dwp_output_file::" identifier : : identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_false>(Dwp_output_file *this)\n\n{\n  char" identifier > ( identifier (pointer_declarator "*this" * identifier) ) { primitive_type) (pointer_declarator "*pcVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "FILE *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "uchar e_ident [16];" type_identifier (array_declarator "e_ident [16]" identifier [ number_literal ]) ;) (declaration "uchar buf [64];" type_identifier (array_declarator "buf [64]" identifier [ number_literal ]) ;) (expression_statement "buf._44_4_ = *(undefined4 *)((int)&this->shoff_ + 4);" (assignment_expression "buf._44_4_ = *(undefined4 *)((int)&this->shoff_ + 4)" (field_expression "buf._44_4_" identifier . field_identifier) = (pointer_expression "*(undefined4 *)((int)&this->shoff_ + 4)" * (cast_expression "(undefined4 *)((int)&this->shoff_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this->shoff_ + 4)" ( (binary_expression "(int)&this->shoff_ + 4" (cast_expression "(int)&this->shoff_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->shoff_" & (field_expression "this->shoff_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "buf[4] = '\x02';" (assignment_expression "buf[4] = '\x02'" (subscript_expression "buf[4]" identifier [ number_literal ]) = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "buf[5] = '\x01';" (assignment_expression "buf[5] = '\x01'" (subscript_expression "buf[5]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "buf[6] = '\x01';" (assignment_expression "buf[6] = '\x01'" (subscript_expression "buf[6]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "buf[7] = '\0';" (assignment_expression "buf[7] = '\0'" (subscript_expression "buf[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[8] = '\0';" (assignment_expression "buf[8] = '\0'" (subscript_expression "buf[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[9] = '\0';" (assignment_expression "buf[9] = '\0'" (subscript_expression "buf[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[10] = '\0';" (assignment_expression "buf[10] = '\0'" (subscript_expression "buf[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0xb] = '\0';" (assignment_expression "buf[0xb] = '\0'" (subscript_expression "buf[0xb]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0xc] = '\0';" (assignment_expression "buf[0xc] = '\0'" (subscript_expression "buf[0xc]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0xd] = '\0';" (assignment_expression "buf[0xd] = '\0'" (subscript_expression "buf[0xd]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0xe] = '\0';" (assignment_expression "buf[0xe] = '\0'" (subscript_expression "buf[0xe]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0xf] = '\0';" (assignment_expression "buf[0xf] = '\0'" (subscript_expression "buf[0xf]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x10] = '\x01';" (assignment_expression "buf[0x10] = '\x01'" (subscript_expression "buf[0x10]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "buf[0x11] = '\0';" (assignment_expression "buf[0x11] = '\0'" (subscript_expression "buf[0x11]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "builtin_memcpy(buf,"\x7fELF",4);" (call_expression "builtin_memcpy(buf,"\x7fELF",4)" identifier (argument_list "(buf,"\x7fELF",4)" ( identifier , (string_literal ""\x7fELF"" " escape_sequence string_content ") , number_literal ))) ;) (expression_statement "buf._18_2_ = (undefined2)this->machine_;" (assignment_expression "buf._18_2_ = (undefined2)this->machine_" (field_expression "buf._18_2_" identifier . field_identifier) = (cast_expression "(undefined2)this->machine_" ( (type_descriptor "undefined2" type_identifier) ) (field_expression "this->machine_" identifier -> field_identifier))) ;) (expression_statement "buf._40_4_ = *(undefined4 *)&this->shoff_;" (assignment_expression "buf._40_4_ = *(undefined4 *)&this->shoff_" (field_expression "buf._40_4_" identifier . field_identifier) = (pointer_expression "*(undefined4 *)&this->shoff_" * (cast_expression "(undefined4 *)&this->shoff_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->shoff_" & (field_expression "this->shoff_" identifier -> field_identifier))))) ;) (expression_statement "buf[0x14] = '\x01';" (assignment_expression "buf[0x14] = '\x01'" (subscript_expression "buf[0x14]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "buf[0x15] = '\0';" (assignment_expression "buf[0x15] = '\0'" (subscript_expression "buf[0x15]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x16] = '\0';" (assignment_expression "buf[0x16] = '\0'" (subscript_expression "buf[0x16]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x17] = '\0';" (assignment_expression "buf[0x17] = '\0'" (subscript_expression "buf[0x17]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x18] = '\0';" (assignment_expression "buf[0x18] = '\0'" (subscript_expression "buf[0x18]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x19] = '\0';" (assignment_expression "buf[0x19] = '\0'" (subscript_expression "buf[0x19]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x1a] = '\0';" (assignment_expression "buf[0x1a] = '\0'" (subscript_expression "buf[0x1a]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x1b] = '\0';" (assignment_expression "buf[0x1b] = '\0'" (subscript_expression "buf[0x1b]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x1c] = '\0';" (assignment_expression "buf[0x1c] = '\0'" (subscript_expression "buf[0x1c]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x1d] = '\0';" (assignment_expression "buf[0x1d] = '\0'" (subscript_expression "buf[0x1d]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x1e] = '\0';" (assignment_expression "buf[0x1e] = '\0'" (subscript_expression "buf[0x1e]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x1f] = '\0';" (assignment_expression "buf[0x1f] = '\0'" (subscript_expression "buf[0x1f]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x20] = '\0';" (assignment_expression "buf[0x20] = '\0'" (subscript_expression "buf[0x20]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x21] = '\0';" (assignment_expression "buf[0x21] = '\0'" (subscript_expression "buf[0x21]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x22] = '\0';" (assignment_expression "buf[0x22] = '\0'" (subscript_expression "buf[0x22]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x23] = '\0';" (assignment_expression "buf[0x23] = '\0'" (subscript_expression "buf[0x23]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x24] = '\0';" (assignment_expression "buf[0x24] = '\0'" (subscript_expression "buf[0x24]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x25] = '\0';" (assignment_expression "buf[0x25] = '\0'" (subscript_expression "buf[0x25]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x26] = '\0';" (assignment_expression "buf[0x26] = '\0'" (subscript_expression "buf[0x26]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x27] = '\0';" (assignment_expression "buf[0x27] = '\0'" (subscript_expression "buf[0x27]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x30] = '\0';" (assignment_expression "buf[0x30] = '\0'" (subscript_expression "buf[0x30]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x31] = '\0';" (assignment_expression "buf[0x31] = '\0'" (subscript_expression "buf[0x31]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x32] = '\0';" (assignment_expression "buf[0x32] = '\0'" (subscript_expression "buf[0x32]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x33] = '\0';" (assignment_expression "buf[0x33] = '\0'" (subscript_expression "buf[0x33]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x34] = '@';" (assignment_expression "buf[0x34] = '@'" (subscript_expression "buf[0x34]" identifier [ number_literal ]) = (char_literal "'@'" ' character ')) ;) (expression_statement "buf[0x35] = '\0';" (assignment_expression "buf[0x35] = '\0'" (subscript_expression "buf[0x35]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x36] = '\0';" (assignment_expression "buf[0x36] = '\0'" (subscript_expression "buf[0x36]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x37] = '\0';" (assignment_expression "buf[0x37] = '\0'" (subscript_expression "buf[0x37]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x38] = '\0';" (assignment_expression "buf[0x38] = '\0'" (subscript_expression "buf[0x38]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x39] = '\0';" (assignment_expression "buf[0x39] = '\0'" (subscript_expression "buf[0x39]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "buf[0x3a] = '@';" (assignment_expression "buf[0x3a] = '@'" (subscript_expression "buf[0x3a]" identifier [ number_literal ]) = (char_literal "'@'" ' character ')) ;) (expression_statement "buf[0x3b] = '\0';" (assignment_expression "buf[0x3b] = '\0'" (subscript_expression "buf[0x3b]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar2 = this->shnum_;" (assignment_expression "uVar2 = this->shnum_" identifier = (field_expression "this->shnum_" identifier -> field_identifier)) ;) (if_statement "if (0xfeff < uVar2) {\n    uVar2 = 0;\n  }" if (parenthesized_expression "(0xfeff < uVar2)" ( (binary_expression "0xfeff < uVar2" number_literal < identifier) )) (compound_statement "{\n    uVar2 = 0;\n  }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) })) (expression_statement "buf._60_2_ = (undefined2)uVar2;" (assignment_expression "buf._60_2_ = (undefined2)uVar2" (field_expression "buf._60_2_" identifier . field_identifier) = (cast_expression "(undefined2)uVar2" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) (expression_statement "uVar2 = this->shstrndx_;" (assignment_expression "uVar2 = this->shstrndx_" identifier = (field_expression "this->shstrndx_" identifier -> field_identifier)) ;) (if_statement "if (0xfeff < uVar2) {\n    uVar2 = 0xffff;\n  }" if (parenthesized_expression "(0xfeff < uVar2)" ( (binary_expression "0xfeff < uVar2" number_literal < identifier) )) (compound_statement "{\n    uVar2 = 0xffff;\n  }" { (expression_statement "uVar2 = 0xffff;" (assignment_expression "uVar2 = 0xffff" identifier = number_literal) ;) })) (expression_statement "buf._62_2_ = (undefined2)uVar2;" (assignment_expression "buf._62_2_ = (undefined2)uVar2" (field_expression "buf._62_2_" identifier . field_identifier) = (cast_expression "(undefined2)uVar2" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) (expression_statement "fseek((FILE *)this->fd_,0,0);" (call_expression "fseek((FILE *)this->fd_,0,0)" identifier (argument_list "((FILE *)this->fd_,0,0)" ( (cast_expression "(FILE *)this->fd_" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->fd_" identifier -> field_identifier)) , number_literal , number_literal ))) ;) (expression_statement "__s = (FILE *)this->fd_;" (assignment_expression "__s = (FILE *)this->fd_" identifier = (cast_expression "(FILE *)this->fd_" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->fd_" identifier -> field_identifier))) ;) (expression_statement "uVar4 = 0x40;" (assignment_expression "uVar4 = 0x40" identifier = number_literal) ;) (expression_statement "sVar3 = fwrite(buf,1,0x40,__s);" (assignment_expression "sVar3 = fwrite(buf,1,0x40,__s)" identifier = (call_expression "fwrite(buf,1,0x40,__s)" identifier (argument_list "(buf,1,0x40,__s)" ( identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (0x3f < sVar3) {\n    return;\n  }" if (parenthesized_expression "(0x3f < sVar3)" ( (binary_expression "0x3f < sVar3" number_literal < identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar1 = this->name_;" (assignment_expression "pcVar1 = this->name_" identifier = (field_expression "this->name_" identifier -> field_identifier)) ;) (expression_statement "format = (char *)gettext("%s: error writing ELF header");" (assignment_expression "format = (char *)gettext("%s: error writing ELF header")" identifier = (cast_expression "(char *)gettext("%s: error writing ELF header")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("%s: error writing ELF header")" identifier (argument_list "("%s: error writing ELF header")" ( (string_literal ""%s: error writing ELF header"" " string_content ") ))))) ;) comment (expression_statement "gold_fatal(format,pcVar1,uVar4,__s,0x464c457f);" (call_expression "gold_fatal(format,pcVar1,uVar4,__s,0x464c457f)" identifier (argument_list "(format,pcVar1,uVar4,__s,0x464c457f)" ( identifier , identifier , identifier , identifier , number_literal ))) ;) (ERROR "}" }))
(translation_unit "void FUN_0004ac20(undefined4 *param_1)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  size_t sVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  FILE *__s;\n  undefined4 uVar6;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined2 local_3c;\n  undefined2 local_3a;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  undefined4 local_14;\n  undefined2 local_10;\n  undefined2 local_e;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x4ac29;\n  local_20 = param_1[0x11];\n  local_48 = 0x10102;\n  local_44 = 0;\n  local_40 = 0;\n  uVar6 = 0x464c457f;\n  local_3c = 1;\n  local_4c = 0x464c457f;\n  local_3a = (undefined2)param_1[1];\n  local_24 = param_1[0x10];\n  local_38 = 1;\n  local_34 = 0;\n  local_30 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_1c = 0;\n  local_18 = 0x40;\n  local_14 = 0x400000;\n  uVar2 = param_1[9];\n  if (0xfeff < uVar2) {\n    uVar2 = 0;\n  }\n  local_10 = (undefined2)uVar2;\n  uVar2 = param_1[0x12];\n  if (0xfeff < uVar2) {\n    uVar2 = 0xffff;\n  }\n  local_e = (undefined2)uVar2;\n  fseek((FILE *)param_1[6],0,0);\n  __s = (FILE *)param_1[6];\n  uVar5 = 0x40;\n  sVar3 = fwrite(&local_4c,1,0x40,__s);\n  if (0x3f < sVar3) {\n    return;\n  }\n  uVar1 = *param_1;\n  uVar4 = gettext("%s: error writing ELF header");\n                    \n  FUN_00065450(uVar4,uVar1,uVar5,__s,uVar6);\n}\n\n" (function_definition "void FUN_0004ac20(undefined4 *param_1)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  size_t sVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  FILE *__s;\n  undefined4 uVar6;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined2 local_3c;\n  undefined2 local_3a;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  undefined4 local_14;\n  undefined2 local_10;\n  undefined2 local_e;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x4ac29;\n  local_20 = param_1[0x11];\n  local_48 = 0x10102;\n  local_44 = 0;\n  local_40 = 0;\n  uVar6 = 0x464c457f;\n  local_3c = 1;\n  local_4c = 0x464c457f;\n  local_3a = (undefined2)param_1[1];\n  local_24 = param_1[0x10];\n  local_38 = 1;\n  local_34 = 0;\n  local_30 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_1c = 0;\n  local_18 = 0x40;\n  local_14 = 0x400000;\n  uVar2 = param_1[9];\n  if (0xfeff < uVar2) {\n    uVar2 = 0;\n  }\n  local_10 = (undefined2)uVar2;\n  uVar2 = param_1[0x12];\n  if (0xfeff < uVar2) {\n    uVar2 = 0xffff;\n  }\n  local_e = (undefined2)uVar2;\n  fseek((FILE *)param_1[6],0,0);\n  __s = (FILE *)param_1[6];\n  uVar5 = 0x40;\n  sVar3 = fwrite(&local_4c,1,0x40,__s);\n  if (0x3f < sVar3) {\n    return;\n  }\n  uVar1 = *param_1;\n  uVar4 = gettext("%s: error writing ELF header");\n                    \n  FUN_00065450(uVar4,uVar1,uVar5,__s,uVar6);\n}" primitive_type (function_declarator "FUN_0004ac20(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  uint uVar2;\n  size_t sVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  FILE *__s;\n  undefined4 uVar6;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined2 local_3c;\n  undefined2 local_3a;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  undefined4 local_14;\n  undefined2 local_10;\n  undefined2 local_e;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x4ac29;\n  local_20 = param_1[0x11];\n  local_48 = 0x10102;\n  local_44 = 0;\n  local_40 = 0;\n  uVar6 = 0x464c457f;\n  local_3c = 1;\n  local_4c = 0x464c457f;\n  local_3a = (undefined2)param_1[1];\n  local_24 = param_1[0x10];\n  local_38 = 1;\n  local_34 = 0;\n  local_30 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_1c = 0;\n  local_18 = 0x40;\n  local_14 = 0x400000;\n  uVar2 = param_1[9];\n  if (0xfeff < uVar2) {\n    uVar2 = 0;\n  }\n  local_10 = (undefined2)uVar2;\n  uVar2 = param_1[0x12];\n  if (0xfeff < uVar2) {\n    uVar2 = 0xffff;\n  }\n  local_e = (undefined2)uVar2;\n  fseek((FILE *)param_1[6],0,0);\n  __s = (FILE *)param_1[6];\n  uVar5 = 0x40;\n  sVar3 = fwrite(&local_4c,1,0x40,__s);\n  if (0x3f < sVar3) {\n    return;\n  }\n  uVar1 = *param_1;\n  uVar4 = gettext("%s: error writing ELF header");\n                    \n  FUN_00065450(uVar4,uVar1,uVar5,__s,uVar6);\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "FILE *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined2 local_3c;" type_identifier identifier ;) (declaration "undefined2 local_3a;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 local_1c;" type_identifier identifier ;) (declaration "undefined4 local_18;" type_identifier identifier ;) (declaration "undefined4 local_14;" type_identifier identifier ;) (declaration "undefined2 local_10;" type_identifier identifier ;) (declaration "undefined2 local_e;" type_identifier identifier ;) (declaration "undefined4 uStack_c;" type_identifier identifier ;) (expression_statement "uStack_c = 0x4ac29;" (assignment_expression "uStack_c = 0x4ac29" identifier = number_literal) ;) (expression_statement "local_20 = param_1[0x11];" (assignment_expression "local_20 = param_1[0x11]" identifier = (subscript_expression "param_1[0x11]" identifier [ number_literal ])) ;) (expression_statement "local_48 = 0x10102;" (assignment_expression "local_48 = 0x10102" identifier = number_literal) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0x464c457f;" (assignment_expression "uVar6 = 0x464c457f" identifier = number_literal) ;) (expression_statement "local_3c = 1;" (assignment_expression "local_3c = 1" identifier = number_literal) ;) (expression_statement "local_4c = 0x464c457f;" (assignment_expression "local_4c = 0x464c457f" identifier = number_literal) ;) (expression_statement "local_3a = (undefined2)param_1[1];" (assignment_expression "local_3a = (undefined2)param_1[1]" identifier = (cast_expression "(undefined2)param_1[1]" ( (type_descriptor "undefined2" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "local_24 = param_1[0x10];" (assignment_expression "local_24 = param_1[0x10]" identifier = (subscript_expression "param_1[0x10]" identifier [ number_literal ])) ;) (expression_statement "local_38 = 1;" (assignment_expression "local_38 = 1" identifier = number_literal) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_1c = 0;" (assignment_expression "local_1c = 0" identifier = number_literal) ;) (expression_statement "local_18 = 0x40;" (assignment_expression "local_18 = 0x40" identifier = number_literal) ;) (expression_statement "local_14 = 0x400000;" (assignment_expression "local_14 = 0x400000" identifier = number_literal) ;) (expression_statement "uVar2 = param_1[9];" (assignment_expression "uVar2 = param_1[9]" identifier = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (if_statement "if (0xfeff < uVar2) {\n    uVar2 = 0;\n  }" if (parenthesized_expression "(0xfeff < uVar2)" ( (binary_expression "0xfeff < uVar2" number_literal < identifier) )) (compound_statement "{\n    uVar2 = 0;\n  }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) })) (expression_statement "local_10 = (undefined2)uVar2;" (assignment_expression "local_10 = (undefined2)uVar2" identifier = (cast_expression "(undefined2)uVar2" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) (expression_statement "uVar2 = param_1[0x12];" (assignment_expression "uVar2 = param_1[0x12]" identifier = (subscript_expression "param_1[0x12]" identifier [ number_literal ])) ;) (if_statement "if (0xfeff < uVar2) {\n    uVar2 = 0xffff;\n  }" if (parenthesized_expression "(0xfeff < uVar2)" ( (binary_expression "0xfeff < uVar2" number_literal < identifier) )) (compound_statement "{\n    uVar2 = 0xffff;\n  }" { (expression_statement "uVar2 = 0xffff;" (assignment_expression "uVar2 = 0xffff" identifier = number_literal) ;) })) (expression_statement "local_e = (undefined2)uVar2;" (assignment_expression "local_e = (undefined2)uVar2" identifier = (cast_expression "(undefined2)uVar2" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) (expression_statement "fseek((FILE *)param_1[6],0,0);" (call_expression "fseek((FILE *)param_1[6],0,0)" identifier (argument_list "((FILE *)param_1[6],0,0)" ( (cast_expression "(FILE *)param_1[6]" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ])) , number_literal , number_literal ))) ;) (expression_statement "__s = (FILE *)param_1[6];" (assignment_expression "__s = (FILE *)param_1[6]" identifier = (cast_expression "(FILE *)param_1[6]" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) (expression_statement "uVar5 = 0x40;" (assignment_expression "uVar5 = 0x40" identifier = number_literal) ;) (expression_statement "sVar3 = fwrite(&local_4c,1,0x40,__s);" (assignment_expression "sVar3 = fwrite(&local_4c,1,0x40,__s)" identifier = (call_expression "fwrite(&local_4c,1,0x40,__s)" identifier (argument_list "(&local_4c,1,0x40,__s)" ( (pointer_expression "&local_4c" & identifier) , number_literal , number_literal , identifier )))) ;) (if_statement "if (0x3f < sVar3) {\n    return;\n  }" if (parenthesized_expression "(0x3f < sVar3)" ( (binary_expression "0x3f < sVar3" number_literal < identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar4 = gettext("%s: error writing ELF header");" (assignment_expression "uVar4 = gettext("%s: error writing ELF header")" identifier = (call_expression "gettext("%s: error writing ELF header")" identifier (argument_list "("%s: error writing ELF header")" ( (string_literal ""%s: error writing ELF header"" " string_content ") )))) ;) (expression_statement "FUN_00065450(uVar4,uVar1,uVar5,__s,uVar6);" (call_expression "FUN_00065450(uVar4,uVar1,uVar5,__s,uVar6)" identifier (argument_list "(uVar4,uVar1,uVar5,__s,uVar6)" ( identifier , identifier , identifier , identifier , identifier ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) })))
(function_definition "void FUN_0004ac20(undefined4 *param_1)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  size_t sVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  FILE *__s;\n  undefined4 uVar6;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined2 local_3c;\n  undefined2 local_3a;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  undefined4 local_14;\n  undefined2 local_10;\n  undefined2 local_e;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x4ac29;\n  local_20 = param_1[0x11];\n  local_48 = 0x10102;\n  local_44 = 0;\n  local_40 = 0;\n  uVar6 = 0x464c457f;\n  local_3c = 1;\n  local_4c = 0x464c457f;\n  local_3a = (undefined2)param_1[1];\n  local_24 = param_1[0x10];\n  local_38 = 1;\n  local_34 = 0;\n  local_30 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_1c = 0;\n  local_18 = 0x40;\n  local_14 = 0x400000;\n  uVar2 = param_1[9];\n  if (0xfeff < uVar2) {\n    uVar2 = 0;\n  }\n  local_10 = (undefined2)uVar2;\n  uVar2 = param_1[0x12];\n  if (0xfeff < uVar2) {\n    uVar2 = 0xffff;\n  }\n  local_e = (undefined2)uVar2;\n  fseek((FILE *)param_1[6],0,0);\n  __s = (FILE *)param_1[6];\n  uVar5 = 0x40;\n  sVar3 = fwrite(&local_4c,1,0x40,__s);\n  if (0x3f < sVar3) {\n    return;\n  }\n  uVar1 = *param_1;\n  uVar4 = gettext("%s: error writing ELF header");\n                    \n  FUN_00065450(uVar4,uVar1,uVar5,__s,uVar6);\n}" (primitive_type "void") (function_declarator "FUN_0004ac20(undefined4 *param_1)" (identifier "FUN_0004ac20") (parameter_list "(undefined4 *param_1)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  uint uVar2;\n  size_t sVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  FILE *__s;\n  undefined4 uVar6;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined2 local_3c;\n  undefined2 local_3a;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  undefined4 local_14;\n  undefined2 local_10;\n  undefined2 local_e;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x4ac29;\n  local_20 = param_1[0x11];\n  local_48 = 0x10102;\n  local_44 = 0;\n  local_40 = 0;\n  uVar6 = 0x464c457f;\n  local_3c = 1;\n  local_4c = 0x464c457f;\n  local_3a = (undefined2)param_1[1];\n  local_24 = param_1[0x10];\n  local_38 = 1;\n  local_34 = 0;\n  local_30 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_1c = 0;\n  local_18 = 0x40;\n  local_14 = 0x400000;\n  uVar2 = param_1[9];\n  if (0xfeff < uVar2) {\n    uVar2 = 0;\n  }\n  local_10 = (undefined2)uVar2;\n  uVar2 = param_1[0x12];\n  if (0xfeff < uVar2) {\n    uVar2 = 0xffff;\n  }\n  local_e = (undefined2)uVar2;\n  fseek((FILE *)param_1[6],0,0);\n  __s = (FILE *)param_1[6];\n  uVar5 = 0x40;\n  sVar3 = fwrite(&local_4c,1,0x40,__s);\n  if (0x3f < sVar3) {\n    return;\n  }\n  uVar1 = *param_1;\n  uVar4 = gettext("%s: error writing ELF header");\n                    \n  FUN_00065450(uVar4,uVar1,uVar5,__s,uVar6);\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "size_t sVar3;" (primitive_type "size_t") (identifier "sVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "FILE *__s;" (type_identifier "FILE") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "undefined4 local_44;" (type_identifier "undefined4") (identifier "local_44") (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (declaration "undefined2 local_3c;" (type_identifier "undefined2") (identifier "local_3c") (; ";")) (declaration "undefined2 local_3a;" (type_identifier "undefined2") (identifier "local_3a") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "undefined4 local_1c;" (type_identifier "undefined4") (identifier "local_1c") (; ";")) (declaration "undefined4 local_18;" (type_identifier "undefined4") (identifier "local_18") (; ";")) (declaration "undefined4 local_14;" (type_identifier "undefined4") (identifier "local_14") (; ";")) (declaration "undefined2 local_10;" (type_identifier "undefined2") (identifier "local_10") (; ";")) (declaration "undefined2 local_e;" (type_identifier "undefined2") (identifier "local_e") (; ";")) (declaration "undefined4 uStack_c;" (type_identifier "undefined4") (identifier "uStack_c") (; ";")) (expression_statement "uStack_c = 0x4ac29;" (assignment_expression "uStack_c = 0x4ac29" (identifier "uStack_c") (= "=") (number_literal "0x4ac29")) (; ";")) (expression_statement "local_20 = param_1[0x11];" (assignment_expression "local_20 = param_1[0x11]" (identifier "local_20") (= "=") (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]"))) (; ";")) (expression_statement "local_48 = 0x10102;" (assignment_expression "local_48 = 0x10102" (identifier "local_48") (= "=") (number_literal "0x10102")) (; ";")) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = 0x464c457f;" (assignment_expression "uVar6 = 0x464c457f" (identifier "uVar6") (= "=") (number_literal "0x464c457f")) (; ";")) (expression_statement "local_3c = 1;" (assignment_expression "local_3c = 1" (identifier "local_3c") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_4c = 0x464c457f;" (assignment_expression "local_4c = 0x464c457f" (identifier "local_4c") (= "=") (number_literal "0x464c457f")) (; ";")) (expression_statement "local_3a = (undefined2)param_1[1];" (assignment_expression "local_3a = (undefined2)param_1[1]" (identifier "local_3a") (= "=") (cast_expression "(undefined2)param_1[1]" (( "(") (type_descriptor "undefined2" (type_identifier "undefined2")) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "local_24 = param_1[0x10];" (assignment_expression "local_24 = param_1[0x10]" (identifier "local_24") (= "=") (subscript_expression "param_1[0x10]" (identifier "param_1") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (expression_statement "local_38 = 1;" (assignment_expression "local_38 = 1" (identifier "local_38") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" (identifier "local_2c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_1c = 0;" (assignment_expression "local_1c = 0" (identifier "local_1c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_18 = 0x40;" (assignment_expression "local_18 = 0x40" (identifier "local_18") (= "=") (number_literal "0x40")) (; ";")) (expression_statement "local_14 = 0x400000;" (assignment_expression "local_14 = 0x400000" (identifier "local_14") (= "=") (number_literal "0x400000")) (; ";")) (expression_statement "uVar2 = param_1[9];" (assignment_expression "uVar2 = param_1[9]" (identifier "uVar2") (= "=") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]"))) (; ";")) (if_statement "if (0xfeff < uVar2) {\n    uVar2 = 0;\n  }" (if "if") (parenthesized_expression "(0xfeff < uVar2)" (( "(") (binary_expression "0xfeff < uVar2" (number_literal "0xfeff") (< "<") (identifier "uVar2")) () ")")) (compound_statement "{\n    uVar2 = 0;\n  }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "local_10 = (undefined2)uVar2;" (assignment_expression "local_10 = (undefined2)uVar2" (identifier "local_10") (= "=") (cast_expression "(undefined2)uVar2" (( "(") (type_descriptor "undefined2" (type_identifier "undefined2")) () ")") (identifier "uVar2"))) (; ";")) (expression_statement "uVar2 = param_1[0x12];" (assignment_expression "uVar2 = param_1[0x12]" (identifier "uVar2") (= "=") (subscript_expression "param_1[0x12]" (identifier "param_1") ([ "[") (number_literal "0x12") (] "]"))) (; ";")) (if_statement "if (0xfeff < uVar2) {\n    uVar2 = 0xffff;\n  }" (if "if") (parenthesized_expression "(0xfeff < uVar2)" (( "(") (binary_expression "0xfeff < uVar2" (number_literal "0xfeff") (< "<") (identifier "uVar2")) () ")")) (compound_statement "{\n    uVar2 = 0xffff;\n  }" ({ "{") (expression_statement "uVar2 = 0xffff;" (assignment_expression "uVar2 = 0xffff" (identifier "uVar2") (= "=") (number_literal "0xffff")) (; ";")) (} "}"))) (expression_statement "local_e = (undefined2)uVar2;" (assignment_expression "local_e = (undefined2)uVar2" (identifier "local_e") (= "=") (cast_expression "(undefined2)uVar2" (( "(") (type_descriptor "undefined2" (type_identifier "undefined2")) () ")") (identifier "uVar2"))) (; ";")) (expression_statement "fseek((FILE *)param_1[6],0,0);" (call_expression "fseek((FILE *)param_1[6],0,0)" (identifier "fseek") (argument_list "((FILE *)param_1[6],0,0)" (( "(") (cast_expression "(FILE *)param_1[6]" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "__s = (FILE *)param_1[6];" (assignment_expression "__s = (FILE *)param_1[6]" (identifier "__s") (= "=") (cast_expression "(FILE *)param_1[6]" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "uVar5 = 0x40;" (assignment_expression "uVar5 = 0x40" (identifier "uVar5") (= "=") (number_literal "0x40")) (; ";")) (expression_statement "sVar3 = fwrite(&local_4c,1,0x40,__s);" (assignment_expression "sVar3 = fwrite(&local_4c,1,0x40,__s)" (identifier "sVar3") (= "=") (call_expression "fwrite(&local_4c,1,0x40,__s)" (identifier "fwrite") (argument_list "(&local_4c,1,0x40,__s)" (( "(") (pointer_expression "&local_4c" (& "&") (identifier "local_4c")) (, ",") (number_literal "1") (, ",") (number_literal "0x40") (, ",") (identifier "__s") () ")")))) (; ";")) (if_statement "if (0x3f < sVar3) {\n    return;\n  }" (if "if") (parenthesized_expression "(0x3f < sVar3)" (( "(") (binary_expression "0x3f < sVar3" (number_literal "0x3f") (< "<") (identifier "sVar3")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" (identifier "uVar1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar4 = gettext("%s: error writing ELF header");" (assignment_expression "uVar4 = gettext("%s: error writing ELF header")" (identifier "uVar4") (= "=") (call_expression "gettext("%s: error writing ELF header")" (identifier "gettext") (argument_list "("%s: error writing ELF header")" (( "(") (string_literal ""%s: error writing ELF header"" (" """) (string_content "%s: error writing ELF header") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00065450(uVar4,uVar1,uVar5,__s,uVar6);" (call_expression "FUN_00065450(uVar4,uVar1,uVar5,__s,uVar6)" (identifier "FUN_00065450") (argument_list "(uVar4,uVar1,uVar5,__s,uVar6)" (( "(") (identifier "uVar4") (, ",") (identifier "uVar1") (, ",") (identifier "uVar5") (, ",") (identifier "__s") (, ",") (identifier "uVar6") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Variable defined which should be unmapped: e_ident */
/* DWARF original name: sized_write_ehdr<64, false>
   DWARF original prototype: void sized_write_ehdr<64,_false>(Dwp_output_file * this) */

void __thiscall gold::Dwp_output_file::sized_write_ehdr<64,_false>(Dwp_output_file *this)

{
  char *pcVar1;
  type_1 var_2;
  size_t var_5;
  char *format;
  type_2 uVar4;
  type_3 *__s;
  type_4 e_ident [16];
  type_4 buf [64];
  
  buf._44_4_ = *(type_2 *)((int)&this->shoff_ + 4);
  buf[4] = '\x02';
  buf[5] = '\x01';
  buf[6] = '\x01';
  buf[7] = '\0';
  buf[8] = '\0';
  buf[9] = '\0';
  buf[10] = '\0';
  buf[0xb] = '\0';
  buf[0xc] = '\0';
  buf[0xd] = '\0';
  buf[0xe] = '\0';
  buf[0xf] = '\0';
  buf[0x10] = '\x01';
  buf[0x11] = '\0';
  var_1(buf,"\x7fELF",4);
  buf._18_2_ = (type_5)this->machine_;
  buf._40_4_ = *(type_2 *)&this->shoff_;
  buf[0x14] = '\x01';
  buf[0x15] = '\0';
  buf[0x16] = '\0';
  buf[0x17] = '\0';
  buf[0x18] = '\0';
  buf[0x19] = '\0';
  buf[0x1a] = '\0';
  buf[0x1b] = '\0';
  buf[0x1c] = '\0';
  buf[0x1d] = '\0';
  buf[0x1e] = '\0';
  buf[0x1f] = '\0';
  buf[0x20] = '\0';
  buf[0x21] = '\0';
  buf[0x22] = '\0';
  buf[0x23] = '\0';
  buf[0x24] = '\0';
  buf[0x25] = '\0';
  buf[0x26] = '\0';
  buf[0x27] = '\0';
  buf[0x30] = '\0';
  buf[0x31] = '\0';
  buf[0x32] = '\0';
  buf[0x33] = '\0';
  buf[0x34] = '@';
  buf[0x35] = '\0';
  buf[0x36] = '\0';
  buf[0x37] = '\0';
  buf[0x38] = '\0';
  buf[0x39] = '\0';
  buf[0x3a] = '@';
  buf[0x3b] = '\0';
  var_2 = this->shnum_;
  if (0xfeff < var_2) {
    var_2 = 0;
  }
  buf._60_2_ = (type_5)var_2;
  var_2 = this->shstrndx_;
  if (0xfeff < var_2) {
    var_2 = 0xffff;
  }
  buf._62_2_ = (type_5)var_2;
  var_3((type_3 *)this->fd_,0,0);
  __s = (type_3 *)this->fd_;
  uVar4 = 0x40;
  var_5 = var_4(buf,1,0x40,__s);
  if (0x3f < var_5) {
    return;
  }
  pcVar1 = this->name_;
  format = (char *)var_6("%s: error writing ELF header");
                    /* WARNING: Subroutine does not return */
  var_7(format,pcVar1,uVar4,__s,0x464c457f);
}


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

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

void MASKED(undefined4 *param_1)

{
  undefined4 uVar1;
  uint uVar2;
  size_t sVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  FILE *__s;
  undefined4 uVar6;
  undefined4 local_4c;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  undefined2 local_3c;
  undefined2 local_3a;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 local_1c;
  undefined4 local_18;
  undefined4 local_14;
  undefined2 local_10;
  undefined2 local_e;
  undefined4 uStack_c;
  
  uStack_c = 0x4ac29;
  local_20 = param_1[0x11];
  local_48 = 0x10102;
  local_44 = 0;
  local_40 = 0;
  uVar6 = 0x464c457f;
  local_3c = 1;
  local_4c = 0x464c457f;
  local_3a = (undefined2)param_1[1];
  local_24 = param_1[0x10];
  local_38 = 1;
  local_34 = 0;
  local_30 = 0;
  local_2c = 0;
  local_28 = 0;
  local_1c = 0;
  local_18 = 0x40;
  local_14 = 0x400000;
  uVar2 = param_1[9];
  if (0xfeff < uVar2) {
    uVar2 = 0;
  }
  local_10 = (undefined2)uVar2;
  uVar2 = param_1[0x12];
  if (0xfeff < uVar2) {
    uVar2 = 0xffff;
  }
  local_e = (undefined2)uVar2;
  fseek((FILE *)param_1[6],0,0);
  __s = (FILE *)param_1[6];
  uVar5 = 0x40;
  sVar3 = fwrite(&local_4c,1,0x40,__s);
  if (0x3f < sVar3) {
    return;
  }
  uVar1 = *param_1;
  uVar4 = gettext("%s: error writing ELF header");
                    /* WARNING: Subroutine does not return */
  FUN_00065450(uVar4,uVar1,uVar5,__s,uVar6);
}

