
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: Output_section * create_note(Layout * this, char * name, int note_type,
   char * section_name, size_t descsz, bool allocate, size_t * trailing_padding) */

Output_section * __thiscall
gold::Layout::create_note
          (Layout *this,char *name,int note_type,char *section_name,size_t descsz,bool allocate,
          size_t *trailing_padding)

{
  _func_int_varargs *__n;
  byte bVar1;
  size_t sVar2;
  _func_int_varargs **__s;
  uint uVar3;
  Output_section *this_00;
  Output_section_data *posd;
  Output_section_order order;
  uint __n_00;
  
  sVar2 = strlen(name);
  __n = (_func_int_varargs *)(sVar2 + 1);
  __n_00 = (sVar2 + 4 & 0xfffffffc) + 0xc;
  __s = (_func_int_varargs **)operator_new__(__n_00);
  memset(__s,0,__n_00);
  if (parameters->target_ != (Target *)0x0) {
    if (*(char *)(*(int *)(parameters->target_ + 4) + 4) == '\0') {
      *__s = __n;
      __s[1] = (_func_int_varargs *)descsz;
      __s[2] = (_func_int_varargs *)note_type;
    }
    else {
      *__s = (_func_int_varargs *)
             ((uint)__n >> 0x18 | ((uint)__n & 0xff0000) >> 8 | ((uint)__n & 0xff00) << 8 |
             (int)__n * 0x1000000);
      __s[1] = (_func_int_varargs *)
               (descsz >> 0x18 | (descsz & 0xff0000) >> 8 | (descsz & 0xff00) << 8 | descsz << 0x18)
      ;
      __s[2] = (_func_int_varargs *)
               ((uint)note_type >> 0x18 | (note_type & 0xff0000U) >> 8 | (note_type & 0xff00U) << 8
               | note_type << 0x18);
    }
    memcpy(__s + 3,name,(size_t)__n);
    if (allocate) {
      order = ORDER_RO_NOTE;
      uVar3 = 2;
    }
    else {
      order = ORDER_INVALID;
      uVar3 = 0;
    }
    this_00 = choose_output_section
                        (this,(Relobj *)0x0,section_name,7,(ulonglong)uVar3,false,order,false,false,
                         true);
    if (this_00 != (Output_section *)0x0) {
      posd = (Output_section_data *)operator_new(0x34);
      bVar1 = (posd->super_Output_data).field_0x1c;
      *(undefined4 *)&(posd->super_Output_data).address_ = 0;
      *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = 0;
      posd->output_section_ = (Output_section *)0x0;
      *(undefined4 *)&posd->addralign_ = 4;
      (posd->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;
      *(undefined4 *)((int)&posd->addralign_ + 4) = 0;
      *(uint *)&(posd->super_Output_data).data_size_ = __n_00;
      (posd->super_Output_data)._vptr_Output_data =
           (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;
      *(undefined4 *)((int)&(posd->super_Output_data).data_size_ + 4) = 0;
      *(undefined4 *)&(posd->super_Output_data).offset_ = 0xffffffff;
      *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0xffffffff;
      posd[1].super_Output_data._vptr_Output_data = __s;
      *(char **)&posd[1].super_Output_data.address_ = "** note header";
      Output_section::add_output_section_data(this_00,posd);
      *trailing_padding = (descsz + 3 & 0xfffffffc) - descsz;
    }
    return this_00;
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/parameters.h",0x69,"target");
}



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

int FUN_000a0960(undefined4 param_1,char *param_2,uint param_3,undefined4 param_4,uint param_5,
                char param_6,int *param_7)

{
  uint __n;
  size_t sVar1;
  uint *__s;
  undefined4 uVar2;
  int iVar3;
  undefined4 *puVar4;
  undefined4 uVar5;
  
  sVar1 = strlen(param_2);
  __n = sVar1 + 1;
  sVar1 = (sVar1 + 4 & 0xfffffffc) + 0xc;
  __s = (uint *)FUN_001e5180(sVar1);
  memset(__s,0,sVar1);
  if (*(int *)(DAT_0038f378 + 0xc) != 0) {
    if (*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0') {
      *__s = __n;
      __s[1] = param_5;
      __s[2] = param_3;
    }
    else {
      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;
      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |
               param_5 << 0x18;
      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |
               param_3 << 0x18;
    }
    memcpy(__s + 3,param_2,__n);
    if (param_6 == '\0') {
      uVar5 = 0;
      uVar2 = 0;
    }
    else {
      uVar5 = 2;
      uVar2 = 2;
    }
    iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1);
    if (iVar3 != 0) {
      puVar4 = (undefined4 *)FUN_001e5200(0x34);
      puVar4[1] = 0;
      puVar4[2] = 0;
      puVar4[8] = 0;
      puVar4[9] = 4;
      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;
      puVar4[10] = 0;
      puVar4[3] = sVar1;
      *puVar4 = &PTR_FUN_00383c70;
      puVar4[4] = 0;
      puVar4[5] = 0xffffffff;
      puVar4[6] = 0xffffffff;
      puVar4[0xb] = __s;
      puVar4[0xc] = "** note header";
      FUN_000f2600(iVar3,puVar4);
      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;
    }
    return iVar3;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00069d00("../../gold/parameters.h",0x69,"target",sVar1);
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00035840
ADD EBX,0x2ee697
SUB ESP,0x28
MOV EAX,dword ptr [ESP + 0x50]
MOV dword ptr [ESP + 0x14],EAX
PUSH dword ptr [ESP + 0x40]
CALL 0x000295f0
LEA EBP,[EAX + 0x1]
MOV EAX,dword ptr [ESP + 0x50]
LEA ESI,[EBP + 0x3]
ADD EAX,0x3
AND ESI,0xfffffffc
AND EAX,0xfffffffc
ADD ESI,0xc
MOV dword ptr [ESP + 0x1c],EAX
MOV dword ptr [ESP],ESI
CALL 0x001e5180
ADD ESP,0xc
PUSH ESI
MOV EDI,EAX
PUSH 0x0
PUSH EAX
CALL 0x000292f0
LEA EAX,[EBX + 0x378]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x000a0afb
MOV EAX,dword ptr [EAX + 0x4]
CMP byte ptr [EAX + 0x4],0x0
JZ 0x000a0ad8
MOV EAX,EBP
BSWAP EAX
MOV dword ptr [EDI],EAX
MOV EAX,dword ptr [ESP + 0x40]
BSWAP EAX
MOV dword ptr [EDI + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x38]
BSWAP EAX
MOV dword ptr [EDI + 0x8],EAX
SUB ESP,0x4
LEA EAX,[EDI + 0xc]
PUSH EBP
PUSH dword ptr [ESP + 0x3c]
PUSH EAX
CALL 0x000295c0
ADD ESP,0x10
CMP byte ptr [ESP + 0x8],0x0
JZ 0x000a0af0
MOV ECX,0x2
MOV EAX,0x2
XOR EDX,EDX
SUB ESP,0x4
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH ECX
PUSH 0x0
PUSH EDX
PUSH EAX
PUSH 0x7
PUSH dword ptr [ESP + 0x60]
PUSH 0x0
PUSH dword ptr [ESP + 0x5c]
CALL 0x0009fff0
ADD ESP,0x30
MOV EBP,EAX
TEST EAX,EAX
JZ 0x000a0ac8
SUB ESP,0xc
PUSH 0x34
CALL 0x001e5200
MOVZX EDX,byte ptr [EAX + 0x1c]
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x8],0x0
AND EDX,0xffffffe0
MOV dword ptr [EAX + 0x20],0x0
OR EDX,0xa
MOV dword ptr [EAX + 0x24],0x4
MOV byte ptr [EAX + 0x1c],DL
LEA EDX,[EBX + 0xffff4c68]
MOV dword ptr [EAX + 0x28],0x0
ADD EDX,0x8
MOV dword ptr [EAX + 0xc],ESI
MOV dword ptr [EAX],EDX
LEA EDX,[EBX + 0xffefb760]
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x14],0xffffffff
MOV dword ptr [EAX + 0x18],0xffffffff
MOV dword ptr [EAX + 0x2c],EDI
MOV dword ptr [EAX + 0x30],EDX
POP EDX
POP ECX
PUSH EAX
PUSH EBP
CALL 0x000f2600
MOV EDX,dword ptr [ESP + 0x58]
MOV EAX,dword ptr [ESP + 0x1c]
SUB EAX,dword ptr [ESP + 0x50]
ADD ESP,0x10
MOV dword ptr [EDX],EAX
ADD ESP,0x1c
MOV EAX,EBP
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x40]
MOV dword ptr [EDI],EBP
MOV dword ptr [EDI + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x38]
MOV dword ptr [EDI + 0x8],EAX
JMP 0x000a09ee
XOR ECX,ECX
XOR EAX,EAX
XOR EDX,EDX
JMP 0x000a0a19
LEA EAX,[EBX + 0xffefc9f8]
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xffef8210]
PUSH 0x69
PUSH EAX
CALL 0x00069d00
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint FUN_000a0960(undefined4 param_1,char *param_2,uint param_3,undefined4 param_4,uint param_5,\n                char param_6,int *param_7)\n\n{\n  uint __n;\n  size_t sVar1;\n  uint *__s;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  \n  sVar1 = strlen(param_2);\n  __n = sVar1 + 1;\n  sVar1 = (sVar1 + 4 & 0xfffffffc) + 0xc;\n  __s = (uint *)FUN_001e5180(sVar1);\n  memset(__s,0,sVar1);\n  if (*(int *)(DAT_0038f378 + 0xc) != 0) {\n    if (*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = param_5;\n      __s[2] = param_3;\n    }\n    else {\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }\n    memcpy(__s + 3,param_2,__n);\n    if (param_6 == '\0') {\n      uVar5 = 0;\n      uVar2 = 0;\n    }\n    else {\n      uVar5 = 2;\n      uVar2 = 2;\n    }\n    iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1);\n    if (iVar3 != 0) {\n      puVar4 = (undefined4 *)FUN_001e5200(0x34);\n      puVar4[1] = 0;\n      puVar4[2] = 0;\n      puVar4[8] = 0;\n      puVar4[9] = 4;\n      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;\n      puVar4[10] = 0;\n      puVar4[3] = sVar1;\n      *puVar4 = &PTR_FUN_00383c70;\n      puVar4[4] = 0;\n      puVar4[5] = 0xffffffff;\n      puVar4[6] = 0xffffffff;\n      puVar4[0xb] = __s;\n      puVar4[0xc] = "** note header";\n      FUN_000f2600(iVar3,puVar4);\n      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;\n    }\n    return iVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/parameters.h",0x69,"target",sVar1);\n}\n\n" comment (function_definition "int FUN_000a0960(undefined4 param_1,char *param_2,uint param_3,undefined4 param_4,uint param_5,\n                char param_6,int *param_7)\n\n{\n  uint __n;\n  size_t sVar1;\n  uint *__s;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  \n  sVar1 = strlen(param_2);\n  __n = sVar1 + 1;\n  sVar1 = (sVar1 + 4 & 0xfffffffc) + 0xc;\n  __s = (uint *)FUN_001e5180(sVar1);\n  memset(__s,0,sVar1);\n  if (*(int *)(DAT_0038f378 + 0xc) != 0) {\n    if (*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = param_5;\n      __s[2] = param_3;\n    }\n    else {\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }\n    memcpy(__s + 3,param_2,__n);\n    if (param_6 == '\0') {\n      uVar5 = 0;\n      uVar2 = 0;\n    }\n    else {\n      uVar5 = 2;\n      uVar2 = 2;\n    }\n    iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1);\n    if (iVar3 != 0) {\n      puVar4 = (undefined4 *)FUN_001e5200(0x34);\n      puVar4[1] = 0;\n      puVar4[2] = 0;\n      puVar4[8] = 0;\n      puVar4[9] = 4;\n      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;\n      puVar4[10] = 0;\n      puVar4[3] = sVar1;\n      *puVar4 = &PTR_FUN_00383c70;\n      puVar4[4] = 0;\n      puVar4[5] = 0xffffffff;\n      puVar4[6] = 0xffffffff;\n      puVar4[0xb] = __s;\n      puVar4[0xc] = "** note header";\n      FUN_000f2600(iVar3,puVar4);\n      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;\n    }\n    return iVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/parameters.h",0x69,"target",sVar1);\n}" primitive_type (function_declarator "FUN_000a0960(undefined4 param_1,char *param_2,uint param_3,undefined4 param_4,uint param_5,\n                char param_6,int *param_7)" identifier (parameter_list "(undefined4 param_1,char *param_2,uint param_3,undefined4 param_4,uint param_5,\n                char param_6,int *param_7)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "char param_6" primitive_type identifier) , (parameter_declaration "int *param_7" primitive_type (pointer_declarator "*param_7" * identifier)) ))) (compound_statement "{\n  uint __n;\n  size_t sVar1;\n  uint *__s;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  \n  sVar1 = strlen(param_2);\n  __n = sVar1 + 1;\n  sVar1 = (sVar1 + 4 & 0xfffffffc) + 0xc;\n  __s = (uint *)FUN_001e5180(sVar1);\n  memset(__s,0,sVar1);\n  if (*(int *)(DAT_0038f378 + 0xc) != 0) {\n    if (*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = param_5;\n      __s[2] = param_3;\n    }\n    else {\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }\n    memcpy(__s + 3,param_2,__n);\n    if (param_6 == '\0') {\n      uVar5 = 0;\n      uVar2 = 0;\n    }\n    else {\n      uVar5 = 2;\n      uVar2 = 2;\n    }\n    iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1);\n    if (iVar3 != 0) {\n      puVar4 = (undefined4 *)FUN_001e5200(0x34);\n      puVar4[1] = 0;\n      puVar4[2] = 0;\n      puVar4[8] = 0;\n      puVar4[9] = 4;\n      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;\n      puVar4[10] = 0;\n      puVar4[3] = sVar1;\n      *puVar4 = &PTR_FUN_00383c70;\n      puVar4[4] = 0;\n      puVar4[5] = 0xffffffff;\n      puVar4[6] = 0xffffffff;\n      puVar4[0xb] = __s;\n      puVar4[0xc] = "** note header";\n      FUN_000f2600(iVar3,puVar4);\n      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;\n    }\n    return iVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/parameters.h",0x69,"target",sVar1);\n}" { (declaration "uint __n;" type_identifier identifier ;) (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "uint *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (expression_statement "sVar1 = strlen(param_2);" (assignment_expression "sVar1 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "__n = sVar1 + 1;" (assignment_expression "__n = sVar1 + 1" identifier = (binary_expression "sVar1 + 1" identifier + number_literal)) ;) (expression_statement "sVar1 = (sVar1 + 4 & 0xfffffffc) + 0xc;" (assignment_expression "sVar1 = (sVar1 + 4 & 0xfffffffc) + 0xc" identifier = (binary_expression "(sVar1 + 4 & 0xfffffffc) + 0xc" (parenthesized_expression "(sVar1 + 4 & 0xfffffffc)" ( (binary_expression "sVar1 + 4 & 0xfffffffc" (binary_expression "sVar1 + 4" identifier + number_literal) & number_literal) )) + number_literal)) ;) (expression_statement "__s = (uint *)FUN_001e5180(sVar1);" (assignment_expression "__s = (uint *)FUN_001e5180(sVar1)" identifier = (cast_expression "(uint *)FUN_001e5180(sVar1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5180(sVar1)" identifier (argument_list "(sVar1)" ( identifier ))))) ;) (expression_statement "memset(__s,0,sVar1);" (call_expression "memset(__s,0,sVar1)" identifier (argument_list "(__s,0,sVar1)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (*(int *)(DAT_0038f378 + 0xc) != 0) {\n    if (*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = param_5;\n      __s[2] = param_3;\n    }\n    else {\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }\n    memcpy(__s + 3,param_2,__n);\n    if (param_6 == '\0') {\n      uVar5 = 0;\n      uVar2 = 0;\n    }\n    else {\n      uVar5 = 2;\n      uVar2 = 2;\n    }\n    iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1);\n    if (iVar3 != 0) {\n      puVar4 = (undefined4 *)FUN_001e5200(0x34);\n      puVar4[1] = 0;\n      puVar4[2] = 0;\n      puVar4[8] = 0;\n      puVar4[9] = 4;\n      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;\n      puVar4[10] = 0;\n      puVar4[3] = sVar1;\n      *puVar4 = &PTR_FUN_00383c70;\n      puVar4[4] = 0;\n      puVar4[5] = 0xffffffff;\n      puVar4[6] = 0xffffffff;\n      puVar4[0xb] = __s;\n      puVar4[0xc] = "** note header";\n      FUN_000f2600(iVar3,puVar4);\n      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;\n    }\n    return iVar3;\n  }" if (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) != 0)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) != 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    if (*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = param_5;\n      __s[2] = param_3;\n    }\n    else {\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }\n    memcpy(__s + 3,param_2,__n);\n    if (param_6 == '\0') {\n      uVar5 = 0;\n      uVar2 = 0;\n    }\n    else {\n      uVar5 = 2;\n      uVar2 = 2;\n    }\n    iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1);\n    if (iVar3 != 0) {\n      puVar4 = (undefined4 *)FUN_001e5200(0x34);\n      puVar4[1] = 0;\n      puVar4[2] = 0;\n      puVar4[8] = 0;\n      puVar4[9] = 4;\n      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;\n      puVar4[10] = 0;\n      puVar4[3] = sVar1;\n      *puVar4 = &PTR_FUN_00383c70;\n      puVar4[4] = 0;\n      puVar4[5] = 0xffffffff;\n      puVar4[6] = 0xffffffff;\n      puVar4[0xb] = __s;\n      puVar4[0xc] = "** note header";\n      FUN_000f2600(iVar3,puVar4);\n      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;\n    }\n    return iVar3;\n  }" { (if_statement "if (*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = param_5;\n      __s[2] = param_3;\n    }\n    else {\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }" if (parenthesized_expression "(*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" * (cast_expression "(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" ( (binary_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4" (pointer_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *__s = __n;\n      __s[1] = param_5;\n      __s[2] = param_3;\n    }" { (expression_statement "*__s = __n;" (assignment_expression "*__s = __n" (pointer_expression "*__s" * identifier) = identifier) ;) (expression_statement "__s[1] = param_5;" (assignment_expression "__s[1] = param_5" (subscript_expression "__s[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__s[2] = param_3;" (assignment_expression "__s[2] = param_3" (subscript_expression "__s[2]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }" else (compound_statement "{\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }" { (expression_statement "*__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;" (assignment_expression "*__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000" (pointer_expression "*__s" * identifier) = (binary_expression "__n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000" (binary_expression "__n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8" (binary_expression "__n >> 0x18 | (__n & 0xff0000) >> 8" (binary_expression "__n >> 0x18" identifier >> number_literal) | (binary_expression "(__n & 0xff0000) >> 8" (parenthesized_expression "(__n & 0xff0000)" ( (binary_expression "__n & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(__n & 0xff00) << 8" (parenthesized_expression "(__n & 0xff00)" ( (binary_expression "__n & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "__n * 0x1000000" identifier * number_literal))) ;) (expression_statement "__s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;" (assignment_expression "__s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18" (subscript_expression "__s[1]" identifier [ number_literal ]) = (binary_expression "param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18" (binary_expression "param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8" (binary_expression "param_5 >> 0x18 | (param_5 & 0xff0000) >> 8" (binary_expression "param_5 >> 0x18" identifier >> number_literal) | (binary_expression "(param_5 & 0xff0000) >> 8" (parenthesized_expression "(param_5 & 0xff0000)" ( (binary_expression "param_5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_5 & 0xff00) << 8" (parenthesized_expression "(param_5 & 0xff00)" ( (binary_expression "param_5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "param_5 << 0x18" identifier << number_literal))) ;) (expression_statement "__s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;" (assignment_expression "__s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18" (subscript_expression "__s[2]" identifier [ number_literal ]) = (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8" (binary_expression "param_3 >> 0x18" identifier >> number_literal) | (binary_expression "(param_3 & 0xff0000) >> 8" (parenthesized_expression "(param_3 & 0xff0000)" ( (binary_expression "param_3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_3 & 0xff00) << 8" (parenthesized_expression "(param_3 & 0xff00)" ( (binary_expression "param_3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "param_3 << 0x18" identifier << number_literal))) ;) }))) (expression_statement "memcpy(__s + 3,param_2,__n);" (call_expression "memcpy(__s + 3,param_2,__n)" identifier (argument_list "(__s + 3,param_2,__n)" ( (binary_expression "__s + 3" identifier + number_literal) , identifier , identifier ))) ;) (if_statement "if (param_6 == '\0') {\n      uVar5 = 0;\n      uVar2 = 0;\n    }\n    else {\n      uVar5 = 2;\n      uVar2 = 2;\n    }" if (parenthesized_expression "(param_6 == '\0')" ( (binary_expression "param_6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar5 = 0;\n      uVar2 = 0;\n    }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uVar5 = 2;\n      uVar2 = 2;\n    }" else (compound_statement "{\n      uVar5 = 2;\n      uVar2 = 2;\n    }" { (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" identifier = number_literal) ;) }))) (expression_statement "iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1);" (assignment_expression "iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1)" identifier = (call_expression "FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1)" identifier (argument_list "(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1)" ( identifier , number_literal , identifier , number_literal , identifier , number_literal , number_literal , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n      puVar4 = (undefined4 *)FUN_001e5200(0x34);\n      puVar4[1] = 0;\n      puVar4[2] = 0;\n      puVar4[8] = 0;\n      puVar4[9] = 4;\n      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;\n      puVar4[10] = 0;\n      puVar4[3] = sVar1;\n      *puVar4 = &PTR_FUN_00383c70;\n      puVar4[4] = 0;\n      puVar4[5] = 0xffffffff;\n      puVar4[6] = 0xffffffff;\n      puVar4[0xb] = __s;\n      puVar4[0xc] = "** note header";\n      FUN_000f2600(iVar3,puVar4);\n      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar4 = (undefined4 *)FUN_001e5200(0x34);\n      puVar4[1] = 0;\n      puVar4[2] = 0;\n      puVar4[8] = 0;\n      puVar4[9] = 4;\n      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;\n      puVar4[10] = 0;\n      puVar4[3] = sVar1;\n      *puVar4 = &PTR_FUN_00383c70;\n      puVar4[4] = 0;\n      puVar4[5] = 0xffffffff;\n      puVar4[6] = 0xffffffff;\n      puVar4[0xb] = __s;\n      puVar4[0xc] = "** note header";\n      FUN_000f2600(iVar3,puVar4);\n      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;\n    }" { (expression_statement "puVar4 = (undefined4 *)FUN_001e5200(0x34);" (assignment_expression "puVar4 = (undefined4 *)FUN_001e5200(0x34)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[8] = 0;" (assignment_expression "puVar4[8] = 0" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[9] = 4;" (assignment_expression "puVar4[9] = 4" (subscript_expression "puVar4[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar4 + 7)" * (cast_expression "(byte *)(puVar4 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar4 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar4 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 7)" * (cast_expression "(byte *)(puVar4 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar4[10] = 0;" (assignment_expression "puVar4[10] = 0" (subscript_expression "puVar4[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[3] = sVar1;" (assignment_expression "puVar4[3] = sVar1" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar4 = &PTR_FUN_00383c70;" (assignment_expression "*puVar4 = &PTR_FUN_00383c70" (pointer_expression "*puVar4" * identifier) = (pointer_expression "&PTR_FUN_00383c70" & identifier)) ;) (expression_statement "puVar4[4] = 0;" (assignment_expression "puVar4[4] = 0" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[5] = 0xffffffff;" (assignment_expression "puVar4[5] = 0xffffffff" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[6] = 0xffffffff;" (assignment_expression "puVar4[6] = 0xffffffff" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[0xb] = __s;" (assignment_expression "puVar4[0xb] = __s" (subscript_expression "puVar4[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[0xc] = "** note header";" (assignment_expression "puVar4[0xc] = "** note header"" (subscript_expression "puVar4[0xc]" identifier [ number_literal ]) = (string_literal ""** note header"" " string_content ")) ;) (expression_statement "FUN_000f2600(iVar3,puVar4);" (call_expression "FUN_000f2600(iVar3,puVar4)" identifier (argument_list "(iVar3,puVar4)" ( identifier , identifier ))) ;) (expression_statement "*param_7 = (param_5 + 3 & 0xfffffffc) - param_5;" (assignment_expression "*param_7 = (param_5 + 3 & 0xfffffffc) - param_5" (pointer_expression "*param_7" * identifier) = (binary_expression "(param_5 + 3 & 0xfffffffc) - param_5" (parenthesized_expression "(param_5 + 3 & 0xfffffffc)" ( (binary_expression "param_5 + 3 & 0xfffffffc" (binary_expression "param_5 + 3" identifier + number_literal) & number_literal) )) - identifier)) ;) })) (return_statement "return iVar3;" return identifier ;) })) comment (expression_statement "FUN_00069d00("../../gold/parameters.h",0x69,"target",sVar1);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x69,"target",sVar1)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",sVar1)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , identifier ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: Output_section * create_note(Layout * this, char * name, int note_type,\n   char * section_name, size_t descsz, bool allocate, size_t * trailing_padding) */\n\nOutput_section * __thiscall\ngold::Layout::create_note\n          (Layout *this,char *name,int note_type,char *section_name,size_t descsz,bool allocate,\n          size_t *trailing_padding)\n\n{\n  _func_int_varargs *__n;\n  byte bVar1;\n  size_t sVar2;\n  _func_int_varargs **__s;\n  uint uVar3;\n  Output_section *this_00;\n  Output_section_data *posd;\n  Output_section_order order;\n  uint __n_00;\n  \n  sVar2 = strlen(name);\n  __n = (_func_int_varargs *)(sVar2 + 1);\n  __n_00 = (sVar2 + 4 & 0xfffffffc) + 0xc;\n  __s = (_func_int_varargs **)operator_new__(__n_00);\n  memset(__s,0,__n_00);\n  if (parameters->target_ != (Target *)0x0) {\n    if (*(char *)(*(int *)(parameters->target_ + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = (_func_int_varargs *)descsz;\n      __s[2] = (_func_int_varargs *)note_type;\n    }\n    else {\n      *__s = (_func_int_varargs *)\n             ((uint)__n >> 0x18 | ((uint)__n & 0xff0000) >> 8 | ((uint)__n & 0xff00) << 8 |\n             (int)__n * 0x1000000);\n      __s[1] = (_func_int_varargs *)\n               (descsz >> 0x18 | (descsz & 0xff0000) >> 8 | (descsz & 0xff00) << 8 | descsz << 0x18)\n      ;\n      __s[2] = (_func_int_varargs *)\n               ((uint)note_type >> 0x18 | (note_type & 0xff0000U) >> 8 | (note_type & 0xff00U) << 8\n               | note_type << 0x18);\n    }\n    memcpy(__s + 3,name,(size_t)__n);\n    if (allocate) {\n      order = ORDER_RO_NOTE;\n      uVar3 = 2;\n    }\n    else {\n      order = ORDER_INVALID;\n      uVar3 = 0;\n    }\n    this_00 = choose_output_section\n                        (this,(Relobj *)0x0,section_name,7,(ulonglong)uVar3,false,order,false,false,\n                         true);\n    if (this_00 != (Output_section *)0x0) {\n      posd = (Output_section_data *)operator_new(0x34);\n      bVar1 = (posd->super_Output_data).field_0x1c;\n      *(undefined4 *)&(posd->super_Output_data).address_ = 0;\n      *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = 0;\n      posd->output_section_ = (Output_section *)0x0;\n      *(undefined4 *)&posd->addralign_ = 4;\n      (posd->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;\n      *(undefined4 *)((int)&posd->addralign_ + 4) = 0;\n      *(uint *)&(posd->super_Output_data).data_size_ = __n_00;\n      (posd->super_Output_data)._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n      *(undefined4 *)((int)&(posd->super_Output_data).data_size_ + 4) = 0;\n      *(undefined4 *)&(posd->super_Output_data).offset_ = 0xffffffff;\n      *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0xffffffff;\n      posd[1].super_Output_data._vptr_Output_data = __s;\n      *(char **)&posd[1].super_Output_data.address_ = "** note header";\n      Output_section::add_output_section_data(this_00,posd);\n      *trailing_padding = (descsz + 3 & 0xfffffffc) - descsz;\n    }\n    return this_00;\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n}\n\n" comment comment comment (ERROR "Output_section * __thiscall\ngold::Layout::create_note\n          (Layout *this,char *name,int note_type,char *section_name,size_t descsz,bool allocate,\n          size_t *trailing_padding)" (binary_expression "Output_section * __thiscall\ngold::Layout::create_note\n          (Layout *this,char *name,int note_type,char *section_name,size_t descsz,bool allocate,\n          size_t *trailing_padding)" identifier * (call_expression "__thiscall\ngold::Layout::create_note\n          (Layout *this,char *name,int note_type,char *section_name,size_t descsz,bool allocate,\n          size_t *trailing_padding)" identifier (ERROR "gold::Layout::create_note" identifier : : identifier : : identifier) (argument_list "(Layout *this,char *name,int note_type,char *section_name,size_t descsz,bool allocate,\n          size_t *trailing_padding)" ( (binary_expression "Layout *this" identifier * identifier) , (binary_expression "char *name" identifier * identifier) , (ERROR "int" identifier) identifier , (binary_expression "char *section_name" identifier * identifier) , identifier (ERROR "descsz" identifier) , (ERROR "bool" identifier) identifier , (binary_expression "size_t *trailing_padding" identifier * identifier) ))))) (compound_statement "{\n  _func_int_varargs *__n;\n  byte bVar1;\n  size_t sVar2;\n  _func_int_varargs **__s;\n  uint uVar3;\n  Output_section *this_00;\n  Output_section_data *posd;\n  Output_section_order order;\n  uint __n_00;\n  \n  sVar2 = strlen(name);\n  __n = (_func_int_varargs *)(sVar2 + 1);\n  __n_00 = (sVar2 + 4 & 0xfffffffc) + 0xc;\n  __s = (_func_int_varargs **)operator_new__(__n_00);\n  memset(__s,0,__n_00);\n  if (parameters->target_ != (Target *)0x0) {\n    if (*(char *)(*(int *)(parameters->target_ + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = (_func_int_varargs *)descsz;\n      __s[2] = (_func_int_varargs *)note_type;\n    }\n    else {\n      *__s = (_func_int_varargs *)\n             ((uint)__n >> 0x18 | ((uint)__n & 0xff0000) >> 8 | ((uint)__n & 0xff00) << 8 |\n             (int)__n * 0x1000000);\n      __s[1] = (_func_int_varargs *)\n               (descsz >> 0x18 | (descsz & 0xff0000) >> 8 | (descsz & 0xff00) << 8 | descsz << 0x18)\n      ;\n      __s[2] = (_func_int_varargs *)\n               ((uint)note_type >> 0x18 | (note_type & 0xff0000U) >> 8 | (note_type & 0xff00U) << 8\n               | note_type << 0x18);\n    }\n    memcpy(__s + 3,name,(size_t)__n);\n    if (allocate) {\n      order = ORDER_RO_NOTE;\n      uVar3 = 2;\n    }\n    else {\n      order = ORDER_INVALID;\n      uVar3 = 0;\n    }\n    this_00 = choose_output_section\n                        (this,(Relobj *)0x0,section_name,7,(ulonglong)uVar3,false,order,false,false,\n                         true);\n    if (this_00 != (Output_section *)0x0) {\n      posd = (Output_section_data *)operator_new(0x34);\n      bVar1 = (posd->super_Output_data).field_0x1c;\n      *(undefined4 *)&(posd->super_Output_data).address_ = 0;\n      *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = 0;\n      posd->output_section_ = (Output_section *)0x0;\n      *(undefined4 *)&posd->addralign_ = 4;\n      (posd->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;\n      *(undefined4 *)((int)&posd->addralign_ + 4) = 0;\n      *(uint *)&(posd->super_Output_data).data_size_ = __n_00;\n      (posd->super_Output_data)._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n      *(undefined4 *)((int)&(posd->super_Output_data).data_size_ + 4) = 0;\n      *(undefined4 *)&(posd->super_Output_data).offset_ = 0xffffffff;\n      *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0xffffffff;\n      posd[1].super_Output_data._vptr_Output_data = __s;\n      *(char **)&posd[1].super_Output_data.address_ = "** note header";\n      Output_section::add_output_section_data(this_00,posd);\n      *trailing_padding = (descsz + 3 & 0xfffffffc) - descsz;\n    }\n    return this_00;\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n}" { (declaration "_func_int_varargs *__n;" type_identifier (pointer_declarator "*__n" * identifier) ;) (declaration "byte bVar1;" type_identifier identifier ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "_func_int_varargs **__s;" type_identifier (pointer_declarator "**__s" * (pointer_declarator "*__s" * identifier)) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "Output_section *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "Output_section_data *posd;" type_identifier (pointer_declarator "*posd" * identifier) ;) (declaration "Output_section_order order;" type_identifier identifier ;) (declaration "uint __n_00;" type_identifier identifier ;) (expression_statement "sVar2 = strlen(name);" (assignment_expression "sVar2 = strlen(name)" identifier = (call_expression "strlen(name)" identifier (argument_list "(name)" ( identifier )))) ;) (expression_statement "__n = (_func_int_varargs *)(sVar2 + 1);" (assignment_expression "__n = (_func_int_varargs *)(sVar2 + 1)" identifier = (cast_expression "(_func_int_varargs *)(sVar2 + 1)" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar2 + 1)" ( (binary_expression "sVar2 + 1" identifier + number_literal) )))) ;) (expression_statement "__n_00 = (sVar2 + 4 & 0xfffffffc) + 0xc;" (assignment_expression "__n_00 = (sVar2 + 4 & 0xfffffffc) + 0xc" identifier = (binary_expression "(sVar2 + 4 & 0xfffffffc) + 0xc" (parenthesized_expression "(sVar2 + 4 & 0xfffffffc)" ( (binary_expression "sVar2 + 4 & 0xfffffffc" (binary_expression "sVar2 + 4" identifier + number_literal) & number_literal) )) + number_literal)) ;) (expression_statement "__s = (_func_int_varargs **)operator_new__(__n_00);" (assignment_expression "__s = (_func_int_varargs **)operator_new__(__n_00)" identifier = (cast_expression "(_func_int_varargs **)operator_new__(__n_00)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "operator_new__(__n_00)" identifier (argument_list "(__n_00)" ( identifier ))))) ;) (expression_statement "memset(__s,0,__n_00);" (call_expression "memset(__s,0,__n_00)" identifier (argument_list "(__s,0,__n_00)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (parameters->target_ != (Target *)0x0) {\n    if (*(char *)(*(int *)(parameters->target_ + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = (_func_int_varargs *)descsz;\n      __s[2] = (_func_int_varargs *)note_type;\n    }\n    else {\n      *__s = (_func_int_varargs *)\n             ((uint)__n >> 0x18 | ((uint)__n & 0xff0000) >> 8 | ((uint)__n & 0xff00) << 8 |\n             (int)__n * 0x1000000);\n      __s[1] = (_func_int_varargs *)\n               (descsz >> 0x18 | (descsz & 0xff0000) >> 8 | (descsz & 0xff00) << 8 | descsz << 0x18)\n      ;\n      __s[2] = (_func_int_varargs *)\n               ((uint)note_type >> 0x18 | (note_type & 0xff0000U) >> 8 | (note_type & 0xff00U) << 8\n               | note_type << 0x18);\n    }\n    memcpy(__s + 3,name,(size_t)__n);\n    if (allocate) {\n      order = ORDER_RO_NOTE;\n      uVar3 = 2;\n    }\n    else {\n      order = ORDER_INVALID;\n      uVar3 = 0;\n    }\n    this_00 = choose_output_section\n                        (this,(Relobj *)0x0,section_name,7,(ulonglong)uVar3,false,order,false,false,\n                         true);\n    if (this_00 != (Output_section *)0x0) {\n      posd = (Output_section_data *)operator_new(0x34);\n      bVar1 = (posd->super_Output_data).field_0x1c;\n      *(undefined4 *)&(posd->super_Output_data).address_ = 0;\n      *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = 0;\n      posd->output_section_ = (Output_section *)0x0;\n      *(undefined4 *)&posd->addralign_ = 4;\n      (posd->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;\n      *(undefined4 *)((int)&posd->addralign_ + 4) = 0;\n      *(uint *)&(posd->super_Output_data).data_size_ = __n_00;\n      (posd->super_Output_data)._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n      *(undefined4 *)((int)&(posd->super_Output_data).data_size_ + 4) = 0;\n      *(undefined4 *)&(posd->super_Output_data).offset_ = 0xffffffff;\n      *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0xffffffff;\n      posd[1].super_Output_data._vptr_Output_data = __s;\n      *(char **)&posd[1].super_Output_data.address_ = "** note header";\n      Output_section::add_output_section_data(this_00,posd);\n      *trailing_padding = (descsz + 3 & 0xfffffffc) - descsz;\n    }\n    return this_00;\n  }" if (parenthesized_expression "(parameters->target_ != (Target *)0x0)" ( (binary_expression "parameters->target_ != (Target *)0x0" (field_expression "parameters->target_" identifier -> field_identifier) != (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (*(char *)(*(int *)(parameters->target_ + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = (_func_int_varargs *)descsz;\n      __s[2] = (_func_int_varargs *)note_type;\n    }\n    else {\n      *__s = (_func_int_varargs *)\n             ((uint)__n >> 0x18 | ((uint)__n & 0xff0000) >> 8 | ((uint)__n & 0xff00) << 8 |\n             (int)__n * 0x1000000);\n      __s[1] = (_func_int_varargs *)\n               (descsz >> 0x18 | (descsz & 0xff0000) >> 8 | (descsz & 0xff00) << 8 | descsz << 0x18)\n      ;\n      __s[2] = (_func_int_varargs *)\n               ((uint)note_type >> 0x18 | (note_type & 0xff0000U) >> 8 | (note_type & 0xff00U) << 8\n               | note_type << 0x18);\n    }\n    memcpy(__s + 3,name,(size_t)__n);\n    if (allocate) {\n      order = ORDER_RO_NOTE;\n      uVar3 = 2;\n    }\n    else {\n      order = ORDER_INVALID;\n      uVar3 = 0;\n    }\n    this_00 = choose_output_section\n                        (this,(Relobj *)0x0,section_name,7,(ulonglong)uVar3,false,order,false,false,\n                         true);\n    if (this_00 != (Output_section *)0x0) {\n      posd = (Output_section_data *)operator_new(0x34);\n      bVar1 = (posd->super_Output_data).field_0x1c;\n      *(undefined4 *)&(posd->super_Output_data).address_ = 0;\n      *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = 0;\n      posd->output_section_ = (Output_section *)0x0;\n      *(undefined4 *)&posd->addralign_ = 4;\n      (posd->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;\n      *(undefined4 *)((int)&posd->addralign_ + 4) = 0;\n      *(uint *)&(posd->super_Output_data).data_size_ = __n_00;\n      (posd->super_Output_data)._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n      *(undefined4 *)((int)&(posd->super_Output_data).data_size_ + 4) = 0;\n      *(undefined4 *)&(posd->super_Output_data).offset_ = 0xffffffff;\n      *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0xffffffff;\n      posd[1].super_Output_data._vptr_Output_data = __s;\n      *(char **)&posd[1].super_Output_data.address_ = "** note header";\n      Output_section::add_output_section_data(this_00,posd);\n      *trailing_padding = (descsz + 3 & 0xfffffffc) - descsz;\n    }\n    return this_00;\n  }" { (if_statement "if (*(char *)(*(int *)(parameters->target_ + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = (_func_int_varargs *)descsz;\n      __s[2] = (_func_int_varargs *)note_type;\n    }\n    else {\n      *__s = (_func_int_varargs *)\n             ((uint)__n >> 0x18 | ((uint)__n & 0xff0000) >> 8 | ((uint)__n & 0xff00) << 8 |\n             (int)__n * 0x1000000);\n      __s[1] = (_func_int_varargs *)\n               (descsz >> 0x18 | (descsz & 0xff0000) >> 8 | (descsz & 0xff00) << 8 | descsz << 0x18)\n      ;\n      __s[2] = (_func_int_varargs *)\n               ((uint)note_type >> 0x18 | (note_type & 0xff0000U) >> 8 | (note_type & 0xff00U) << 8\n               | note_type << 0x18);\n    }" if (parenthesized_expression "(*(char *)(*(int *)(parameters->target_ + 4) + 4) == '\0')" ( (binary_expression "*(char *)(*(int *)(parameters->target_ + 4) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(parameters->target_ + 4) + 4)" * (cast_expression "(char *)(*(int *)(parameters->target_ + 4) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(parameters->target_ + 4) + 4)" ( (binary_expression "*(int *)(parameters->target_ + 4) + 4" (pointer_expression "*(int *)(parameters->target_ + 4)" * (cast_expression "(int *)(parameters->target_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(parameters->target_ + 4)" ( (binary_expression "parameters->target_ + 4" (field_expression "parameters->target_" identifier -> field_identifier) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *__s = __n;\n      __s[1] = (_func_int_varargs *)descsz;\n      __s[2] = (_func_int_varargs *)note_type;\n    }" { (expression_statement "*__s = __n;" (assignment_expression "*__s = __n" (pointer_expression "*__s" * identifier) = identifier) ;) (expression_statement "__s[1] = (_func_int_varargs *)descsz;" (assignment_expression "__s[1] = (_func_int_varargs *)descsz" (subscript_expression "__s[1]" identifier [ number_literal ]) = (cast_expression "(_func_int_varargs *)descsz" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "__s[2] = (_func_int_varargs *)note_type;" (assignment_expression "__s[2] = (_func_int_varargs *)note_type" (subscript_expression "__s[2]" identifier [ number_literal ]) = (cast_expression "(_func_int_varargs *)note_type" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n      *__s = (_func_int_varargs *)\n             ((uint)__n >> 0x18 | ((uint)__n & 0xff0000) >> 8 | ((uint)__n & 0xff00) << 8 |\n             (int)__n * 0x1000000);\n      __s[1] = (_func_int_varargs *)\n               (descsz >> 0x18 | (descsz & 0xff0000) >> 8 | (descsz & 0xff00) << 8 | descsz << 0x18)\n      ;\n      __s[2] = (_func_int_varargs *)\n               ((uint)note_type >> 0x18 | (note_type & 0xff0000U) >> 8 | (note_type & 0xff00U) << 8\n               | note_type << 0x18);\n    }" else (compound_statement "{\n      *__s = (_func_int_varargs *)\n             ((uint)__n >> 0x18 | ((uint)__n & 0xff0000) >> 8 | ((uint)__n & 0xff00) << 8 |\n             (int)__n * 0x1000000);\n      __s[1] = (_func_int_varargs *)\n               (descsz >> 0x18 | (descsz & 0xff0000) >> 8 | (descsz & 0xff00) << 8 | descsz << 0x18)\n      ;\n      __s[2] = (_func_int_varargs *)\n               ((uint)note_type >> 0x18 | (note_type & 0xff0000U) >> 8 | (note_type & 0xff00U) << 8\n               | note_type << 0x18);\n    }" { (expression_statement "*__s = (_func_int_varargs *)\n             ((uint)__n >> 0x18 | ((uint)__n & 0xff0000) >> 8 | ((uint)__n & 0xff00) << 8 |\n             (int)__n * 0x1000000);" (assignment_expression "*__s = (_func_int_varargs *)\n             ((uint)__n >> 0x18 | ((uint)__n & 0xff0000) >> 8 | ((uint)__n & 0xff00) << 8 |\n             (int)__n * 0x1000000)" (pointer_expression "*__s" * identifier) = (cast_expression "(_func_int_varargs *)\n             ((uint)__n >> 0x18 | ((uint)__n & 0xff0000) >> 8 | ((uint)__n & 0xff00) << 8 |\n             (int)__n * 0x1000000)" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)__n >> 0x18 | ((uint)__n & 0xff0000) >> 8 | ((uint)__n & 0xff00) << 8 |\n             (int)__n * 0x1000000)" ( (binary_expression "(uint)__n >> 0x18 | ((uint)__n & 0xff0000) >> 8 | ((uint)__n & 0xff00) << 8 |\n             (int)__n * 0x1000000" (binary_expression "(uint)__n >> 0x18 | ((uint)__n & 0xff0000) >> 8 | ((uint)__n & 0xff00) << 8" (binary_expression "(uint)__n >> 0x18 | ((uint)__n & 0xff0000) >> 8" (binary_expression "(uint)__n >> 0x18" (cast_expression "(uint)__n" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "((uint)__n & 0xff0000) >> 8" (parenthesized_expression "((uint)__n & 0xff0000)" ( (binary_expression "(uint)__n & 0xff0000" (cast_expression "(uint)__n" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((uint)__n & 0xff00) << 8" (parenthesized_expression "((uint)__n & 0xff00)" ( (binary_expression "(uint)__n & 0xff00" (cast_expression "(uint)__n" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "(int)__n * 0x1000000" (cast_expression "(int)__n" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "__s[1] = (_func_int_varargs *)\n               (descsz >> 0x18 | (descsz & 0xff0000) >> 8 | (descsz & 0xff00) << 8 | descsz << 0x18)\n      ;" (assignment_expression "__s[1] = (_func_int_varargs *)\n               (descsz >> 0x18 | (descsz & 0xff0000) >> 8 | (descsz & 0xff00) << 8 | descsz << 0x18)" (subscript_expression "__s[1]" identifier [ number_literal ]) = (cast_expression "(_func_int_varargs *)\n               (descsz >> 0x18 | (descsz & 0xff0000) >> 8 | (descsz & 0xff00) << 8 | descsz << 0x18)" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(descsz >> 0x18 | (descsz & 0xff0000) >> 8 | (descsz & 0xff00) << 8 | descsz << 0x18)" ( (binary_expression "descsz >> 0x18 | (descsz & 0xff0000) >> 8 | (descsz & 0xff00) << 8 | descsz << 0x18" (binary_expression "descsz >> 0x18 | (descsz & 0xff0000) >> 8 | (descsz & 0xff00) << 8" (binary_expression "descsz >> 0x18 | (descsz & 0xff0000) >> 8" (binary_expression "descsz >> 0x18" identifier >> number_literal) | (binary_expression "(descsz & 0xff0000) >> 8" (parenthesized_expression "(descsz & 0xff0000)" ( (binary_expression "descsz & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(descsz & 0xff00) << 8" (parenthesized_expression "(descsz & 0xff00)" ( (binary_expression "descsz & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "descsz << 0x18" identifier << number_literal)) )))) ;) (expression_statement "__s[2] = (_func_int_varargs *)\n               ((uint)note_type >> 0x18 | (note_type & 0xff0000U) >> 8 | (note_type & 0xff00U) << 8\n               | note_type << 0x18);" (assignment_expression "__s[2] = (_func_int_varargs *)\n               ((uint)note_type >> 0x18 | (note_type & 0xff0000U) >> 8 | (note_type & 0xff00U) << 8\n               | note_type << 0x18)" (subscript_expression "__s[2]" identifier [ number_literal ]) = (cast_expression "(_func_int_varargs *)\n               ((uint)note_type >> 0x18 | (note_type & 0xff0000U) >> 8 | (note_type & 0xff00U) << 8\n               | note_type << 0x18)" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)note_type >> 0x18 | (note_type & 0xff0000U) >> 8 | (note_type & 0xff00U) << 8\n               | note_type << 0x18)" ( (binary_expression "(uint)note_type >> 0x18 | (note_type & 0xff0000U) >> 8 | (note_type & 0xff00U) << 8\n               | note_type << 0x18" (binary_expression "(uint)note_type >> 0x18 | (note_type & 0xff0000U) >> 8 | (note_type & 0xff00U) << 8" (binary_expression "(uint)note_type >> 0x18 | (note_type & 0xff0000U) >> 8" (binary_expression "(uint)note_type >> 0x18" (cast_expression "(uint)note_type" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "(note_type & 0xff0000U) >> 8" (parenthesized_expression "(note_type & 0xff0000U)" ( (binary_expression "note_type & 0xff0000U" identifier & number_literal) )) >> number_literal)) | (binary_expression "(note_type & 0xff00U) << 8" (parenthesized_expression "(note_type & 0xff00U)" ( (binary_expression "note_type & 0xff00U" identifier & number_literal) )) << number_literal)) | (binary_expression "note_type << 0x18" identifier << number_literal)) )))) ;) }))) (expression_statement "memcpy(__s + 3,name,(size_t)__n);" (call_expression "memcpy(__s + 3,name,(size_t)__n)" identifier (argument_list "(__s + 3,name,(size_t)__n)" ( (binary_expression "__s + 3" identifier + number_literal) , identifier , (cast_expression "(size_t)__n" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) (if_statement "if (allocate) {\n      order = ORDER_RO_NOTE;\n      uVar3 = 2;\n    }\n    else {\n      order = ORDER_INVALID;\n      uVar3 = 0;\n    }" if (parenthesized_expression "(allocate)" ( identifier )) (compound_statement "{\n      order = ORDER_RO_NOTE;\n      uVar3 = 2;\n    }" { (expression_statement "order = ORDER_RO_NOTE;" (assignment_expression "order = ORDER_RO_NOTE" identifier = identifier) ;) (expression_statement "uVar3 = 2;" (assignment_expression "uVar3 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      order = ORDER_INVALID;\n      uVar3 = 0;\n    }" else (compound_statement "{\n      order = ORDER_INVALID;\n      uVar3 = 0;\n    }" { (expression_statement "order = ORDER_INVALID;" (assignment_expression "order = ORDER_INVALID" identifier = identifier) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }))) (expression_statement "this_00 = choose_output_section\n                        (this,(Relobj *)0x0,section_name,7,(ulonglong)uVar3,false,order,false,false,\n                         true);" (assignment_expression "this_00 = choose_output_section\n                        (this,(Relobj *)0x0,section_name,7,(ulonglong)uVar3,false,order,false,false,\n                         true)" identifier = (call_expression "choose_output_section\n                        (this,(Relobj *)0x0,section_name,7,(ulonglong)uVar3,false,order,false,false,\n                         true)" identifier (argument_list "(this,(Relobj *)0x0,section_name,7,(ulonglong)uVar3,false,order,false,false,\n                         true)" ( identifier , (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , number_literal , (cast_expression "(ulonglong)uVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) , false , identifier , false , false , true )))) ;) (if_statement "if (this_00 != (Output_section *)0x0) {\n      posd = (Output_section_data *)operator_new(0x34);\n      bVar1 = (posd->super_Output_data).field_0x1c;\n      *(undefined4 *)&(posd->super_Output_data).address_ = 0;\n      *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = 0;\n      posd->output_section_ = (Output_section *)0x0;\n      *(undefined4 *)&posd->addralign_ = 4;\n      (posd->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;\n      *(undefined4 *)((int)&posd->addralign_ + 4) = 0;\n      *(uint *)&(posd->super_Output_data).data_size_ = __n_00;\n      (posd->super_Output_data)._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n      *(undefined4 *)((int)&(posd->super_Output_data).data_size_ + 4) = 0;\n      *(undefined4 *)&(posd->super_Output_data).offset_ = 0xffffffff;\n      *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0xffffffff;\n      posd[1].super_Output_data._vptr_Output_data = __s;\n      *(char **)&posd[1].super_Output_data.address_ = "** note header";\n      Output_section::add_output_section_data(this_00,posd);\n      *trailing_padding = (descsz + 3 & 0xfffffffc) - descsz;\n    }" if (parenthesized_expression "(this_00 != (Output_section *)0x0)" ( (binary_expression "this_00 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      posd = (Output_section_data *)operator_new(0x34);\n      bVar1 = (posd->super_Output_data).field_0x1c;\n      *(undefined4 *)&(posd->super_Output_data).address_ = 0;\n      *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = 0;\n      posd->output_section_ = (Output_section *)0x0;\n      *(undefined4 *)&posd->addralign_ = 4;\n      (posd->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;\n      *(undefined4 *)((int)&posd->addralign_ + 4) = 0;\n      *(uint *)&(posd->super_Output_data).data_size_ = __n_00;\n      (posd->super_Output_data)._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n      *(undefined4 *)((int)&(posd->super_Output_data).data_size_ + 4) = 0;\n      *(undefined4 *)&(posd->super_Output_data).offset_ = 0xffffffff;\n      *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0xffffffff;\n      posd[1].super_Output_data._vptr_Output_data = __s;\n      *(char **)&posd[1].super_Output_data.address_ = "** note header";\n      Output_section::add_output_section_data(this_00,posd);\n      *trailing_padding = (descsz + 3 & 0xfffffffc) - descsz;\n    }" { (expression_statement "posd = (Output_section_data *)operator_new(0x34);" (assignment_expression "posd = (Output_section_data *)operator_new(0x34)" identifier = (cast_expression "(Output_section_data *)operator_new(0x34)" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "bVar1 = (posd->super_Output_data).field_0x1c;" (assignment_expression "bVar1 = (posd->super_Output_data).field_0x1c" identifier = (field_expression "(posd->super_Output_data).field_0x1c" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(undefined4 *)&(posd->super_Output_data).address_ = 0;" (assignment_expression "*(undefined4 *)&(posd->super_Output_data).address_ = 0" (pointer_expression "*(undefined4 *)&(posd->super_Output_data).address_" * (cast_expression "(undefined4 *)&(posd->super_Output_data).address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(posd->super_Output_data).address_" & (field_expression "(posd->super_Output_data).address_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(posd->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(posd->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(posd->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(posd->super_Output_data).address_ + 4" (cast_expression "(int)&(posd->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(posd->super_Output_data).address_" & (field_expression "(posd->super_Output_data).address_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "posd->output_section_ = (Output_section *)0x0;" (assignment_expression "posd->output_section_ = (Output_section *)0x0" (field_expression "posd->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)&posd->addralign_ = 4;" (assignment_expression "*(undefined4 *)&posd->addralign_ = 4" (pointer_expression "*(undefined4 *)&posd->addralign_" * (cast_expression "(undefined4 *)&posd->addralign_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&posd->addralign_" & (field_expression "posd->addralign_" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "(posd->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;" (assignment_expression "(posd->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10" (field_expression "(posd->super_Output_data).field_0x1c" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar1 & 0xe0 | 10" (binary_expression "bVar1 & 0xe0" identifier & number_literal) | number_literal)) ;) (expression_statement "*(undefined4 *)((int)&posd->addralign_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&posd->addralign_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&posd->addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&posd->addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&posd->addralign_ + 4)" ( (binary_expression "(int)&posd->addralign_ + 4" (cast_expression "(int)&posd->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&posd->addralign_" & (field_expression "posd->addralign_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)&(posd->super_Output_data).data_size_ = __n_00;" (assignment_expression "*(uint *)&(posd->super_Output_data).data_size_ = __n_00" (pointer_expression "*(uint *)&(posd->super_Output_data).data_size_" * (cast_expression "(uint *)&(posd->super_Output_data).data_size_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(posd->super_Output_data).data_size_" & (field_expression "(posd->super_Output_data).data_size_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "(posd->super_Output_data)._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;" (assignment_expression "(posd->super_Output_data)._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70" (field_expression "(posd->super_Output_data)._vptr_Output_data" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_const_buffer_00383c70" & identifier))) ;) (expression_statement "*(undefined4 *)((int)&(posd->super_Output_data).data_size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(posd->super_Output_data).data_size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(posd->super_Output_data).data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&(posd->super_Output_data).data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(posd->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(posd->super_Output_data).data_size_ + 4" (cast_expression "(int)&(posd->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(posd->super_Output_data).data_size_" & (field_expression "(posd->super_Output_data).data_size_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(posd->super_Output_data).offset_ = 0xffffffff;" (assignment_expression "*(undefined4 *)&(posd->super_Output_data).offset_ = 0xffffffff" (pointer_expression "*(undefined4 *)&(posd->super_Output_data).offset_" * (cast_expression "(undefined4 *)&(posd->super_Output_data).offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(posd->super_Output_data).offset_" & (field_expression "(posd->super_Output_data).offset_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4)" * (cast_expression "(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(posd->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(posd->super_Output_data).offset_ + 4" (cast_expression "(int)&(posd->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(posd->super_Output_data).offset_" & (field_expression "(posd->super_Output_data).offset_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "posd[1].super_Output_data._vptr_Output_data = __s;" (assignment_expression "posd[1].super_Output_data._vptr_Output_data = __s" (field_expression "posd[1].super_Output_data._vptr_Output_data" (field_expression "posd[1].super_Output_data" (subscript_expression "posd[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "*(char **)&posd[1].super_Output_data.address_ = "** note header";" (assignment_expression "*(char **)&posd[1].super_Output_data.address_ = "** note header"" (pointer_expression "*(char **)&posd[1].super_Output_data.address_" * (cast_expression "(char **)&posd[1].super_Output_data.address_" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&posd[1].super_Output_data.address_" & (field_expression "posd[1].super_Output_data.address_" (field_expression "posd[1].super_Output_data" (subscript_expression "posd[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = (string_literal ""** note header"" " string_content ")) ;) (labeled_statement "Output_section::add_output_section_data(this_00,posd);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data(this_00,posd);" (call_expression "add_output_section_data(this_00,posd)" identifier (argument_list "(this_00,posd)" ( identifier , identifier ))) ;)) (expression_statement "*trailing_padding = (descsz + 3 & 0xfffffffc) - descsz;" (assignment_expression "*trailing_padding = (descsz + 3 & 0xfffffffc) - descsz" (pointer_expression "*trailing_padding" * identifier) = (binary_expression "(descsz + 3 & 0xfffffffc) - descsz" (parenthesized_expression "(descsz + 3 & 0xfffffffc)" ( (binary_expression "descsz + 3 & 0xfffffffc" (binary_expression "descsz + 3" identifier + number_literal) & number_literal) )) - identifier)) ;) })) (return_statement "return this_00;" return identifier ;) })) comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x69,"target");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) }))
(translation_unit "int FUN_000a0960(undefined4 param_1,char *param_2,uint param_3,undefined4 param_4,uint param_5,\n                char param_6,int *param_7)\n\n{\n  uint __n;\n  size_t sVar1;\n  uint *__s;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  \n  sVar1 = strlen(param_2);\n  __n = sVar1 + 1;\n  sVar1 = (sVar1 + 4 & 0xfffffffc) + 0xc;\n  __s = (uint *)FUN_001e5180(sVar1);\n  memset(__s,0,sVar1);\n  if (*(int *)(DAT_0038f378 + 0xc) != 0) {\n    if (*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = param_5;\n      __s[2] = param_3;\n    }\n    else {\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }\n    memcpy(__s + 3,param_2,__n);\n    if (param_6 == '\0') {\n      uVar5 = 0;\n      uVar2 = 0;\n    }\n    else {\n      uVar5 = 2;\n      uVar2 = 2;\n    }\n    iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1);\n    if (iVar3 != 0) {\n      puVar4 = (undefined4 *)FUN_001e5200(0x34);\n      puVar4[1] = 0;\n      puVar4[2] = 0;\n      puVar4[8] = 0;\n      puVar4[9] = 4;\n      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;\n      puVar4[10] = 0;\n      puVar4[3] = sVar1;\n      *puVar4 = &PTR_FUN_00383c70;\n      puVar4[4] = 0;\n      puVar4[5] = 0xffffffff;\n      puVar4[6] = 0xffffffff;\n      puVar4[0xb] = __s;\n      puVar4[0xc] = "** note header";\n      FUN_000f2600(iVar3,puVar4);\n      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;\n    }\n    return iVar3;\n  }\n                    \n  FUN_00069d00("../../gold/parameters.h",0x69,"target",sVar1);\n}\n\n" (function_definition "int FUN_000a0960(undefined4 param_1,char *param_2,uint param_3,undefined4 param_4,uint param_5,\n                char param_6,int *param_7)\n\n{\n  uint __n;\n  size_t sVar1;\n  uint *__s;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  \n  sVar1 = strlen(param_2);\n  __n = sVar1 + 1;\n  sVar1 = (sVar1 + 4 & 0xfffffffc) + 0xc;\n  __s = (uint *)FUN_001e5180(sVar1);\n  memset(__s,0,sVar1);\n  if (*(int *)(DAT_0038f378 + 0xc) != 0) {\n    if (*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = param_5;\n      __s[2] = param_3;\n    }\n    else {\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }\n    memcpy(__s + 3,param_2,__n);\n    if (param_6 == '\0') {\n      uVar5 = 0;\n      uVar2 = 0;\n    }\n    else {\n      uVar5 = 2;\n      uVar2 = 2;\n    }\n    iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1);\n    if (iVar3 != 0) {\n      puVar4 = (undefined4 *)FUN_001e5200(0x34);\n      puVar4[1] = 0;\n      puVar4[2] = 0;\n      puVar4[8] = 0;\n      puVar4[9] = 4;\n      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;\n      puVar4[10] = 0;\n      puVar4[3] = sVar1;\n      *puVar4 = &PTR_FUN_00383c70;\n      puVar4[4] = 0;\n      puVar4[5] = 0xffffffff;\n      puVar4[6] = 0xffffffff;\n      puVar4[0xb] = __s;\n      puVar4[0xc] = "** note header";\n      FUN_000f2600(iVar3,puVar4);\n      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;\n    }\n    return iVar3;\n  }\n                    \n  FUN_00069d00("../../gold/parameters.h",0x69,"target",sVar1);\n}" primitive_type (function_declarator "FUN_000a0960(undefined4 param_1,char *param_2,uint param_3,undefined4 param_4,uint param_5,\n                char param_6,int *param_7)" identifier (parameter_list "(undefined4 param_1,char *param_2,uint param_3,undefined4 param_4,uint param_5,\n                char param_6,int *param_7)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "char param_6" primitive_type identifier) , (parameter_declaration "int *param_7" primitive_type (pointer_declarator "*param_7" * identifier)) ))) (compound_statement "{\n  uint __n;\n  size_t sVar1;\n  uint *__s;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  \n  sVar1 = strlen(param_2);\n  __n = sVar1 + 1;\n  sVar1 = (sVar1 + 4 & 0xfffffffc) + 0xc;\n  __s = (uint *)FUN_001e5180(sVar1);\n  memset(__s,0,sVar1);\n  if (*(int *)(DAT_0038f378 + 0xc) != 0) {\n    if (*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = param_5;\n      __s[2] = param_3;\n    }\n    else {\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }\n    memcpy(__s + 3,param_2,__n);\n    if (param_6 == '\0') {\n      uVar5 = 0;\n      uVar2 = 0;\n    }\n    else {\n      uVar5 = 2;\n      uVar2 = 2;\n    }\n    iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1);\n    if (iVar3 != 0) {\n      puVar4 = (undefined4 *)FUN_001e5200(0x34);\n      puVar4[1] = 0;\n      puVar4[2] = 0;\n      puVar4[8] = 0;\n      puVar4[9] = 4;\n      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;\n      puVar4[10] = 0;\n      puVar4[3] = sVar1;\n      *puVar4 = &PTR_FUN_00383c70;\n      puVar4[4] = 0;\n      puVar4[5] = 0xffffffff;\n      puVar4[6] = 0xffffffff;\n      puVar4[0xb] = __s;\n      puVar4[0xc] = "** note header";\n      FUN_000f2600(iVar3,puVar4);\n      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;\n    }\n    return iVar3;\n  }\n                    \n  FUN_00069d00("../../gold/parameters.h",0x69,"target",sVar1);\n}" { (declaration "uint __n;" type_identifier identifier ;) (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "uint *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (expression_statement "sVar1 = strlen(param_2);" (assignment_expression "sVar1 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "__n = sVar1 + 1;" (assignment_expression "__n = sVar1 + 1" identifier = (binary_expression "sVar1 + 1" identifier + number_literal)) ;) (expression_statement "sVar1 = (sVar1 + 4 & 0xfffffffc) + 0xc;" (assignment_expression "sVar1 = (sVar1 + 4 & 0xfffffffc) + 0xc" identifier = (binary_expression "(sVar1 + 4 & 0xfffffffc) + 0xc" (parenthesized_expression "(sVar1 + 4 & 0xfffffffc)" ( (binary_expression "sVar1 + 4 & 0xfffffffc" (binary_expression "sVar1 + 4" identifier + number_literal) & number_literal) )) + number_literal)) ;) (expression_statement "__s = (uint *)FUN_001e5180(sVar1);" (assignment_expression "__s = (uint *)FUN_001e5180(sVar1)" identifier = (cast_expression "(uint *)FUN_001e5180(sVar1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5180(sVar1)" identifier (argument_list "(sVar1)" ( identifier ))))) ;) (expression_statement "memset(__s,0,sVar1);" (call_expression "memset(__s,0,sVar1)" identifier (argument_list "(__s,0,sVar1)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (*(int *)(DAT_0038f378 + 0xc) != 0) {\n    if (*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = param_5;\n      __s[2] = param_3;\n    }\n    else {\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }\n    memcpy(__s + 3,param_2,__n);\n    if (param_6 == '\0') {\n      uVar5 = 0;\n      uVar2 = 0;\n    }\n    else {\n      uVar5 = 2;\n      uVar2 = 2;\n    }\n    iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1);\n    if (iVar3 != 0) {\n      puVar4 = (undefined4 *)FUN_001e5200(0x34);\n      puVar4[1] = 0;\n      puVar4[2] = 0;\n      puVar4[8] = 0;\n      puVar4[9] = 4;\n      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;\n      puVar4[10] = 0;\n      puVar4[3] = sVar1;\n      *puVar4 = &PTR_FUN_00383c70;\n      puVar4[4] = 0;\n      puVar4[5] = 0xffffffff;\n      puVar4[6] = 0xffffffff;\n      puVar4[0xb] = __s;\n      puVar4[0xc] = "** note header";\n      FUN_000f2600(iVar3,puVar4);\n      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;\n    }\n    return iVar3;\n  }" if (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) != 0)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) != 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    if (*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = param_5;\n      __s[2] = param_3;\n    }\n    else {\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }\n    memcpy(__s + 3,param_2,__n);\n    if (param_6 == '\0') {\n      uVar5 = 0;\n      uVar2 = 0;\n    }\n    else {\n      uVar5 = 2;\n      uVar2 = 2;\n    }\n    iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1);\n    if (iVar3 != 0) {\n      puVar4 = (undefined4 *)FUN_001e5200(0x34);\n      puVar4[1] = 0;\n      puVar4[2] = 0;\n      puVar4[8] = 0;\n      puVar4[9] = 4;\n      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;\n      puVar4[10] = 0;\n      puVar4[3] = sVar1;\n      *puVar4 = &PTR_FUN_00383c70;\n      puVar4[4] = 0;\n      puVar4[5] = 0xffffffff;\n      puVar4[6] = 0xffffffff;\n      puVar4[0xb] = __s;\n      puVar4[0xc] = "** note header";\n      FUN_000f2600(iVar3,puVar4);\n      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;\n    }\n    return iVar3;\n  }" { (if_statement "if (*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = param_5;\n      __s[2] = param_3;\n    }\n    else {\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }" if (parenthesized_expression "(*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" * (cast_expression "(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" ( (binary_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4" (pointer_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *__s = __n;\n      __s[1] = param_5;\n      __s[2] = param_3;\n    }" { (expression_statement "*__s = __n;" (assignment_expression "*__s = __n" (pointer_expression "*__s" * identifier) = identifier) ;) (expression_statement "__s[1] = param_5;" (assignment_expression "__s[1] = param_5" (subscript_expression "__s[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__s[2] = param_3;" (assignment_expression "__s[2] = param_3" (subscript_expression "__s[2]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }" else (compound_statement "{\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }" { (expression_statement "*__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;" (assignment_expression "*__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000" (pointer_expression "*__s" * identifier) = (binary_expression "__n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000" (binary_expression "__n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8" (binary_expression "__n >> 0x18 | (__n & 0xff0000) >> 8" (binary_expression "__n >> 0x18" identifier >> number_literal) | (binary_expression "(__n & 0xff0000) >> 8" (parenthesized_expression "(__n & 0xff0000)" ( (binary_expression "__n & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(__n & 0xff00) << 8" (parenthesized_expression "(__n & 0xff00)" ( (binary_expression "__n & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "__n * 0x1000000" identifier * number_literal))) ;) (expression_statement "__s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;" (assignment_expression "__s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18" (subscript_expression "__s[1]" identifier [ number_literal ]) = (binary_expression "param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18" (binary_expression "param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8" (binary_expression "param_5 >> 0x18 | (param_5 & 0xff0000) >> 8" (binary_expression "param_5 >> 0x18" identifier >> number_literal) | (binary_expression "(param_5 & 0xff0000) >> 8" (parenthesized_expression "(param_5 & 0xff0000)" ( (binary_expression "param_5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_5 & 0xff00) << 8" (parenthesized_expression "(param_5 & 0xff00)" ( (binary_expression "param_5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "param_5 << 0x18" identifier << number_literal))) ;) (expression_statement "__s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;" (assignment_expression "__s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18" (subscript_expression "__s[2]" identifier [ number_literal ]) = (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8" (binary_expression "param_3 >> 0x18" identifier >> number_literal) | (binary_expression "(param_3 & 0xff0000) >> 8" (parenthesized_expression "(param_3 & 0xff0000)" ( (binary_expression "param_3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_3 & 0xff00) << 8" (parenthesized_expression "(param_3 & 0xff00)" ( (binary_expression "param_3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "param_3 << 0x18" identifier << number_literal))) ;) }))) (expression_statement "memcpy(__s + 3,param_2,__n);" (call_expression "memcpy(__s + 3,param_2,__n)" identifier (argument_list "(__s + 3,param_2,__n)" ( (binary_expression "__s + 3" identifier + number_literal) , identifier , identifier ))) ;) (if_statement "if (param_6 == '\0') {\n      uVar5 = 0;\n      uVar2 = 0;\n    }\n    else {\n      uVar5 = 2;\n      uVar2 = 2;\n    }" if (parenthesized_expression "(param_6 == '\0')" ( (binary_expression "param_6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar5 = 0;\n      uVar2 = 0;\n    }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uVar5 = 2;\n      uVar2 = 2;\n    }" else (compound_statement "{\n      uVar5 = 2;\n      uVar2 = 2;\n    }" { (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" identifier = number_literal) ;) }))) (expression_statement "iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1);" (assignment_expression "iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1)" identifier = (call_expression "FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1)" identifier (argument_list "(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1)" ( identifier , number_literal , identifier , number_literal , identifier , number_literal , number_literal , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n      puVar4 = (undefined4 *)FUN_001e5200(0x34);\n      puVar4[1] = 0;\n      puVar4[2] = 0;\n      puVar4[8] = 0;\n      puVar4[9] = 4;\n      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;\n      puVar4[10] = 0;\n      puVar4[3] = sVar1;\n      *puVar4 = &PTR_FUN_00383c70;\n      puVar4[4] = 0;\n      puVar4[5] = 0xffffffff;\n      puVar4[6] = 0xffffffff;\n      puVar4[0xb] = __s;\n      puVar4[0xc] = "** note header";\n      FUN_000f2600(iVar3,puVar4);\n      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar4 = (undefined4 *)FUN_001e5200(0x34);\n      puVar4[1] = 0;\n      puVar4[2] = 0;\n      puVar4[8] = 0;\n      puVar4[9] = 4;\n      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;\n      puVar4[10] = 0;\n      puVar4[3] = sVar1;\n      *puVar4 = &PTR_FUN_00383c70;\n      puVar4[4] = 0;\n      puVar4[5] = 0xffffffff;\n      puVar4[6] = 0xffffffff;\n      puVar4[0xb] = __s;\n      puVar4[0xc] = "** note header";\n      FUN_000f2600(iVar3,puVar4);\n      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;\n    }" { (expression_statement "puVar4 = (undefined4 *)FUN_001e5200(0x34);" (assignment_expression "puVar4 = (undefined4 *)FUN_001e5200(0x34)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[8] = 0;" (assignment_expression "puVar4[8] = 0" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[9] = 4;" (assignment_expression "puVar4[9] = 4" (subscript_expression "puVar4[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar4 + 7)" * (cast_expression "(byte *)(puVar4 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar4 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar4 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 7)" * (cast_expression "(byte *)(puVar4 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar4[10] = 0;" (assignment_expression "puVar4[10] = 0" (subscript_expression "puVar4[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[3] = sVar1;" (assignment_expression "puVar4[3] = sVar1" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar4 = &PTR_FUN_00383c70;" (assignment_expression "*puVar4 = &PTR_FUN_00383c70" (pointer_expression "*puVar4" * identifier) = (pointer_expression "&PTR_FUN_00383c70" & identifier)) ;) (expression_statement "puVar4[4] = 0;" (assignment_expression "puVar4[4] = 0" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[5] = 0xffffffff;" (assignment_expression "puVar4[5] = 0xffffffff" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[6] = 0xffffffff;" (assignment_expression "puVar4[6] = 0xffffffff" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[0xb] = __s;" (assignment_expression "puVar4[0xb] = __s" (subscript_expression "puVar4[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[0xc] = "** note header";" (assignment_expression "puVar4[0xc] = "** note header"" (subscript_expression "puVar4[0xc]" identifier [ number_literal ]) = (string_literal ""** note header"" " string_content ")) ;) (expression_statement "FUN_000f2600(iVar3,puVar4);" (call_expression "FUN_000f2600(iVar3,puVar4)" identifier (argument_list "(iVar3,puVar4)" ( identifier , identifier ))) ;) (expression_statement "*param_7 = (param_5 + 3 & 0xfffffffc) - param_5;" (assignment_expression "*param_7 = (param_5 + 3 & 0xfffffffc) - param_5" (pointer_expression "*param_7" * identifier) = (binary_expression "(param_5 + 3 & 0xfffffffc) - param_5" (parenthesized_expression "(param_5 + 3 & 0xfffffffc)" ( (binary_expression "param_5 + 3 & 0xfffffffc" (binary_expression "param_5 + 3" identifier + number_literal) & number_literal) )) - identifier)) ;) })) (return_statement "return iVar3;" return identifier ;) })) (expression_statement "FUN_00069d00("../../gold/parameters.h",0x69,"target",sVar1);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x69,"target",sVar1)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",sVar1)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , identifier ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , LIT , IDENT , LIT , LIT , IDENT , LIT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )) - IDENT)) ;) })) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })))
(function_definition "int FUN_000a0960(undefined4 param_1,char *param_2,uint param_3,undefined4 param_4,uint param_5,\n                char param_6,int *param_7)\n\n{\n  uint __n;\n  size_t sVar1;\n  uint *__s;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  \n  sVar1 = strlen(param_2);\n  __n = sVar1 + 1;\n  sVar1 = (sVar1 + 4 & 0xfffffffc) + 0xc;\n  __s = (uint *)FUN_001e5180(sVar1);\n  memset(__s,0,sVar1);\n  if (*(int *)(DAT_0038f378 + 0xc) != 0) {\n    if (*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = param_5;\n      __s[2] = param_3;\n    }\n    else {\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }\n    memcpy(__s + 3,param_2,__n);\n    if (param_6 == '\0') {\n      uVar5 = 0;\n      uVar2 = 0;\n    }\n    else {\n      uVar5 = 2;\n      uVar2 = 2;\n    }\n    iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1);\n    if (iVar3 != 0) {\n      puVar4 = (undefined4 *)FUN_001e5200(0x34);\n      puVar4[1] = 0;\n      puVar4[2] = 0;\n      puVar4[8] = 0;\n      puVar4[9] = 4;\n      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;\n      puVar4[10] = 0;\n      puVar4[3] = sVar1;\n      *puVar4 = &PTR_FUN_00383c70;\n      puVar4[4] = 0;\n      puVar4[5] = 0xffffffff;\n      puVar4[6] = 0xffffffff;\n      puVar4[0xb] = __s;\n      puVar4[0xc] = "** note header";\n      FUN_000f2600(iVar3,puVar4);\n      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;\n    }\n    return iVar3;\n  }\n                    \n  FUN_00069d00("../../gold/parameters.h",0x69,"target",sVar1);\n}" (primitive_type "int") (function_declarator "FUN_000a0960(undefined4 param_1,char *param_2,uint param_3,undefined4 param_4,uint param_5,\n                char param_6,int *param_7)" (identifier "FUN_000a0960") (parameter_list "(undefined4 param_1,char *param_2,uint param_3,undefined4 param_4,uint param_5,\n                char param_6,int *param_7)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "uint param_5" (type_identifier "uint") (identifier "param_5")) (, ",") (parameter_declaration "char param_6" (primitive_type "char") (identifier "param_6")) (, ",") (parameter_declaration "int *param_7" (primitive_type "int") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) () ")"))) (compound_statement "{\n  uint __n;\n  size_t sVar1;\n  uint *__s;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  \n  sVar1 = strlen(param_2);\n  __n = sVar1 + 1;\n  sVar1 = (sVar1 + 4 & 0xfffffffc) + 0xc;\n  __s = (uint *)FUN_001e5180(sVar1);\n  memset(__s,0,sVar1);\n  if (*(int *)(DAT_0038f378 + 0xc) != 0) {\n    if (*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = param_5;\n      __s[2] = param_3;\n    }\n    else {\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }\n    memcpy(__s + 3,param_2,__n);\n    if (param_6 == '\0') {\n      uVar5 = 0;\n      uVar2 = 0;\n    }\n    else {\n      uVar5 = 2;\n      uVar2 = 2;\n    }\n    iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1);\n    if (iVar3 != 0) {\n      puVar4 = (undefined4 *)FUN_001e5200(0x34);\n      puVar4[1] = 0;\n      puVar4[2] = 0;\n      puVar4[8] = 0;\n      puVar4[9] = 4;\n      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;\n      puVar4[10] = 0;\n      puVar4[3] = sVar1;\n      *puVar4 = &PTR_FUN_00383c70;\n      puVar4[4] = 0;\n      puVar4[5] = 0xffffffff;\n      puVar4[6] = 0xffffffff;\n      puVar4[0xb] = __s;\n      puVar4[0xc] = "** note header";\n      FUN_000f2600(iVar3,puVar4);\n      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;\n    }\n    return iVar3;\n  }\n                    \n  FUN_00069d00("../../gold/parameters.h",0x69,"target",sVar1);\n}" ({ "{") (declaration "uint __n;" (type_identifier "uint") (identifier "__n") (; ";")) (declaration "size_t sVar1;" (primitive_type "size_t") (identifier "sVar1") (; ";")) (declaration "uint *__s;" (type_identifier "uint") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (expression_statement "sVar1 = strlen(param_2);" (assignment_expression "sVar1 = strlen(param_2)" (identifier "sVar1") (= "=") (call_expression "strlen(param_2)" (identifier "strlen") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "__n = sVar1 + 1;" (assignment_expression "__n = sVar1 + 1" (identifier "__n") (= "=") (binary_expression "sVar1 + 1" (identifier "sVar1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "sVar1 = (sVar1 + 4 & 0xfffffffc) + 0xc;" (assignment_expression "sVar1 = (sVar1 + 4 & 0xfffffffc) + 0xc" (identifier "sVar1") (= "=") (binary_expression "(sVar1 + 4 & 0xfffffffc) + 0xc" (parenthesized_expression "(sVar1 + 4 & 0xfffffffc)" (( "(") (binary_expression "sVar1 + 4 & 0xfffffffc" (binary_expression "sVar1 + 4" (identifier "sVar1") (+ "+") (number_literal "4")) (& "&") (number_literal "0xfffffffc")) () ")")) (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "__s = (uint *)FUN_001e5180(sVar1);" (assignment_expression "__s = (uint *)FUN_001e5180(sVar1)" (identifier "__s") (= "=") (cast_expression "(uint *)FUN_001e5180(sVar1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e5180(sVar1)" (identifier "FUN_001e5180") (argument_list "(sVar1)" (( "(") (identifier "sVar1") () ")"))))) (; ";")) (expression_statement "memset(__s,0,sVar1);" (call_expression "memset(__s,0,sVar1)" (identifier "memset") (argument_list "(__s,0,sVar1)" (( "(") (identifier "__s") (, ",") (number_literal "0") (, ",") (identifier "sVar1") () ")"))) (; ";")) (if_statement "if (*(int *)(DAT_0038f378 + 0xc) != 0) {\n    if (*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = param_5;\n      __s[2] = param_3;\n    }\n    else {\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }\n    memcpy(__s + 3,param_2,__n);\n    if (param_6 == '\0') {\n      uVar5 = 0;\n      uVar2 = 0;\n    }\n    else {\n      uVar5 = 2;\n      uVar2 = 2;\n    }\n    iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1);\n    if (iVar3 != 0) {\n      puVar4 = (undefined4 *)FUN_001e5200(0x34);\n      puVar4[1] = 0;\n      puVar4[2] = 0;\n      puVar4[8] = 0;\n      puVar4[9] = 4;\n      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;\n      puVar4[10] = 0;\n      puVar4[3] = sVar1;\n      *puVar4 = &PTR_FUN_00383c70;\n      puVar4[4] = 0;\n      puVar4[5] = 0xffffffff;\n      puVar4[6] = 0xffffffff;\n      puVar4[0xb] = __s;\n      puVar4[0xc] = "** note header";\n      FUN_000f2600(iVar3,puVar4);\n      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;\n    }\n    return iVar3;\n  }" (if "if") (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(DAT_0038f378 + 0xc) != 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 0xc)" (( "(") (binary_expression "DAT_0038f378 + 0xc" (identifier "DAT_0038f378") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = param_5;\n      __s[2] = param_3;\n    }\n    else {\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }\n    memcpy(__s + 3,param_2,__n);\n    if (param_6 == '\0') {\n      uVar5 = 0;\n      uVar2 = 0;\n    }\n    else {\n      uVar5 = 2;\n      uVar2 = 2;\n    }\n    iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1);\n    if (iVar3 != 0) {\n      puVar4 = (undefined4 *)FUN_001e5200(0x34);\n      puVar4[1] = 0;\n      puVar4[2] = 0;\n      puVar4[8] = 0;\n      puVar4[9] = 4;\n      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;\n      puVar4[10] = 0;\n      puVar4[3] = sVar1;\n      *puVar4 = &PTR_FUN_00383c70;\n      puVar4[4] = 0;\n      puVar4[5] = 0xffffffff;\n      puVar4[6] = 0xffffffff;\n      puVar4[0xb] = __s;\n      puVar4[0xc] = "** note header";\n      FUN_000f2600(iVar3,puVar4);\n      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;\n    }\n    return iVar3;\n  }" ({ "{") (if_statement "if (*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0') {\n      *__s = __n;\n      __s[1] = param_5;\n      __s[2] = param_3;\n    }\n    else {\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" (* "*") (cast_expression "(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" (( "(") (binary_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4" (pointer_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" (* "*") (cast_expression "(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 0xc)" (( "(") (binary_expression "DAT_0038f378 + 0xc" (identifier "DAT_0038f378") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      *__s = __n;\n      __s[1] = param_5;\n      __s[2] = param_3;\n    }" ({ "{") (expression_statement "*__s = __n;" (assignment_expression "*__s = __n" (pointer_expression "*__s" (* "*") (identifier "__s")) (= "=") (identifier "__n")) (; ";")) (expression_statement "__s[1] = param_5;" (assignment_expression "__s[1] = param_5" (subscript_expression "__s[1]" (identifier "__s") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_5")) (; ";")) (expression_statement "__s[2] = param_3;" (assignment_expression "__s[2] = param_3" (subscript_expression "__s[2]" (identifier "__s") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "param_3")) (; ";")) (} "}")) (else_clause "else {\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }" (else "else") (compound_statement "{\n      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;\n      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;\n      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n    }" ({ "{") (expression_statement "*__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;" (assignment_expression "*__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000" (pointer_expression "*__s" (* "*") (identifier "__s")) (= "=") (binary_expression "__n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000" (binary_expression "__n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8" (binary_expression "__n >> 0x18 | (__n & 0xff0000) >> 8" (binary_expression "__n >> 0x18" (identifier "__n") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(__n & 0xff0000) >> 8" (parenthesized_expression "(__n & 0xff0000)" (( "(") (binary_expression "__n & 0xff0000" (identifier "__n") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(__n & 0xff00) << 8" (parenthesized_expression "(__n & 0xff00)" (( "(") (binary_expression "__n & 0xff00" (identifier "__n") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "__n * 0x1000000" (identifier "__n") (* "*") (number_literal "0x1000000")))) (; ";")) (expression_statement "__s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18;" (assignment_expression "__s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18" (subscript_expression "__s[1]" (identifier "__s") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |\n               param_5 << 0x18" (binary_expression "param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8" (binary_expression "param_5 >> 0x18 | (param_5 & 0xff0000) >> 8" (binary_expression "param_5 >> 0x18" (identifier "param_5") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(param_5 & 0xff0000) >> 8" (parenthesized_expression "(param_5 & 0xff0000)" (( "(") (binary_expression "param_5 & 0xff0000" (identifier "param_5") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(param_5 & 0xff00) << 8" (parenthesized_expression "(param_5 & 0xff00)" (( "(") (binary_expression "param_5 & 0xff00" (identifier "param_5") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "param_5 << 0x18" (identifier "param_5") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "__s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;" (assignment_expression "__s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18" (subscript_expression "__s[2]" (identifier "__s") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8" (binary_expression "param_3 >> 0x18" (identifier "param_3") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(param_3 & 0xff0000) >> 8" (parenthesized_expression "(param_3 & 0xff0000)" (( "(") (binary_expression "param_3 & 0xff0000" (identifier "param_3") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(param_3 & 0xff00) << 8" (parenthesized_expression "(param_3 & 0xff00)" (( "(") (binary_expression "param_3 & 0xff00" (identifier "param_3") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "param_3 << 0x18" (identifier "param_3") (<< "<<") (number_literal "0x18")))) (; ";")) (} "}")))) (expression_statement "memcpy(__s + 3,param_2,__n);" (call_expression "memcpy(__s + 3,param_2,__n)" (identifier "memcpy") (argument_list "(__s + 3,param_2,__n)" (( "(") (binary_expression "__s + 3" (identifier "__s") (+ "+") (number_literal "3")) (, ",") (identifier "param_2") (, ",") (identifier "__n") () ")"))) (; ";")) (if_statement "if (param_6 == '\0') {\n      uVar5 = 0;\n      uVar2 = 0;\n    }\n    else {\n      uVar5 = 2;\n      uVar2 = 2;\n    }" (if "if") (parenthesized_expression "(param_6 == '\0')" (( "(") (binary_expression "param_6 == '\0'" (identifier "param_6") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar5 = 0;\n      uVar2 = 0;\n    }" ({ "{") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      uVar5 = 2;\n      uVar2 = 2;\n    }" (else "else") (compound_statement "{\n      uVar5 = 2;\n      uVar2 = 2;\n    }" ({ "{") (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" (identifier "uVar5") (= "=") (number_literal "2")) (; ";")) (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" (identifier "uVar2") (= "=") (number_literal "2")) (; ";")) (} "}")))) (expression_statement "iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1);" (assignment_expression "iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1)" (identifier "iVar3") (= "=") (call_expression "FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1)" (identifier "FUN_0009fff0") (argument_list "(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "7") (, ",") (identifier "uVar2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "uVar5") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      puVar4 = (undefined4 *)FUN_001e5200(0x34);\n      puVar4[1] = 0;\n      puVar4[2] = 0;\n      puVar4[8] = 0;\n      puVar4[9] = 4;\n      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;\n      puVar4[10] = 0;\n      puVar4[3] = sVar1;\n      *puVar4 = &PTR_FUN_00383c70;\n      puVar4[4] = 0;\n      puVar4[5] = 0xffffffff;\n      puVar4[6] = 0xffffffff;\n      puVar4[0xb] = __s;\n      puVar4[0xc] = "** note header";\n      FUN_000f2600(iVar3,puVar4);\n      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      puVar4 = (undefined4 *)FUN_001e5200(0x34);\n      puVar4[1] = 0;\n      puVar4[2] = 0;\n      puVar4[8] = 0;\n      puVar4[9] = 4;\n      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;\n      puVar4[10] = 0;\n      puVar4[3] = sVar1;\n      *puVar4 = &PTR_FUN_00383c70;\n      puVar4[4] = 0;\n      puVar4[5] = 0xffffffff;\n      puVar4[6] = 0xffffffff;\n      puVar4[0xb] = __s;\n      puVar4[0xc] = "** note header";\n      FUN_000f2600(iVar3,puVar4);\n      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;\n    }" ({ "{") (expression_statement "puVar4 = (undefined4 *)FUN_001e5200(0x34);" (assignment_expression "puVar4 = (undefined4 *)FUN_001e5200(0x34)" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)FUN_001e5200(0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e5200(0x34)" (identifier "FUN_001e5200") (argument_list "(0x34)" (( "(") (number_literal "0x34") () ")"))))) (; ";")) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[8] = 0;" (assignment_expression "puVar4[8] = 0" (subscript_expression "puVar4[8]" (identifier "puVar4") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[9] = 4;" (assignment_expression "puVar4[9] = 4" (subscript_expression "puVar4[9]" (identifier "puVar4") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "4")) (; ";")) (expression_statement "*(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar4 + 7)" (* "*") (cast_expression "(byte *)(puVar4 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 7)" (( "(") (binary_expression "puVar4 + 7" (identifier "puVar4") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar4 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar4 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 7)" (* "*") (cast_expression "(byte *)(puVar4 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 7)" (( "(") (binary_expression "puVar4 + 7" (identifier "puVar4") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xe0")) (| "|") (number_literal "10"))) (; ";")) (expression_statement "puVar4[10] = 0;" (assignment_expression "puVar4[10] = 0" (subscript_expression "puVar4[10]" (identifier "puVar4") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[3] = sVar1;" (assignment_expression "puVar4[3] = sVar1" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "sVar1")) (; ";")) (expression_statement "*puVar4 = &PTR_FUN_00383c70;" (assignment_expression "*puVar4 = &PTR_FUN_00383c70" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "&PTR_FUN_00383c70" (& "&") (identifier "PTR_FUN_00383c70"))) (; ";")) (expression_statement "puVar4[4] = 0;" (assignment_expression "puVar4[4] = 0" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[5] = 0xffffffff;" (assignment_expression "puVar4[5] = 0xffffffff" (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar4[6] = 0xffffffff;" (assignment_expression "puVar4[6] = 0xffffffff" (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar4[0xb] = __s;" (assignment_expression "puVar4[0xb] = __s" (subscript_expression "puVar4[0xb]" (identifier "puVar4") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "__s")) (; ";")) (expression_statement "puVar4[0xc] = "** note header";" (assignment_expression "puVar4[0xc] = "** note header"" (subscript_expression "puVar4[0xc]" (identifier "puVar4") ([ "[") (number_literal "0xc") (] "]")) (= "=") (string_literal ""** note header"" (" """) (string_content "** note header") (" """))) (; ";")) (expression_statement "FUN_000f2600(iVar3,puVar4);" (call_expression "FUN_000f2600(iVar3,puVar4)" (identifier "FUN_000f2600") (argument_list "(iVar3,puVar4)" (( "(") (identifier "iVar3") (, ",") (identifier "puVar4") () ")"))) (; ";")) (expression_statement "*param_7 = (param_5 + 3 & 0xfffffffc) - param_5;" (assignment_expression "*param_7 = (param_5 + 3 & 0xfffffffc) - param_5" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (binary_expression "(param_5 + 3 & 0xfffffffc) - param_5" (parenthesized_expression "(param_5 + 3 & 0xfffffffc)" (( "(") (binary_expression "param_5 + 3 & 0xfffffffc" (binary_expression "param_5 + 3" (identifier "param_5") (+ "+") (number_literal "3")) (& "&") (number_literal "0xfffffffc")) () ")")) (- "-") (identifier "param_5"))) (; ";")) (} "}"))) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (expression_statement "FUN_00069d00("../../gold/parameters.h",0x69,"target",sVar1);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x69,"target",sVar1)" (identifier "FUN_00069d00") (argument_list "("../../gold/parameters.h",0x69,"target",sVar1)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x69") (, ",") (string_literal ""target"" (" """) (string_content "target") (" """)) (, ",") (identifier "sVar1") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: Output_section * create_note(Layout * this, char * name, int note_type,
   char * section_name, size_t descsz, bool allocate, size_t * trailing_padding) */

type_4 * __thiscall
gold::Layout::create_note
          (Layout *this,char *name,int var_6,char *section_name,size_t var_5,bool allocate,
          size_t *trailing_padding)

{
  type_1 *__n;
  type_2 var_12;
  size_t var_2;
  type_1 **var_8;
  type_3 uVar3;
  type_4 *var_10;
  type_5 *posd;
  type_6 order;
  type_3 __n_00;
  
  var_2 = var_1(name);
  __n = (type_1 *)(var_2 + 1);
  __n_00 = (var_2 + 4 & 0xfffffffc) + 0xc;
  var_8 = (type_1 **)var_3(__n_00);
  var_4(var_8,0,__n_00);
  if (parameters->target_ != (type_7 *)0x0) {
    if (*(char *)(*(int *)(parameters->target_ + 4) + 4) == '\0') {
      *var_8 = __n;
      var_8[1] = (type_1 *)var_5;
      var_8[2] = (type_1 *)var_6;
    }
    else {
      *var_8 = (type_1 *)
             ((type_3)__n >> 0x18 | ((type_3)__n & 0xff0000) >> 8 | ((type_3)__n & 0xff00) << 8 |
             (int)__n * 0x1000000);
      var_8[1] = (type_1 *)
               (var_5 >> 0x18 | (var_5 & 0xff0000) >> 8 | (var_5 & 0xff00) << 8 | var_5 << 0x18)
      ;
      var_8[2] = (type_1 *)
               ((type_3)var_6 >> 0x18 | (var_6 & 0xff0000U) >> 8 | (var_6 & 0xff00U) << 8
               | var_6 << 0x18);
    }
    var_7(var_8 + 3,name,(size_t)__n);
    if (allocate) {
      order = ORDER_RO_NOTE;
      uVar3 = 2;
    }
    else {
      order = ORDER_INVALID;
      uVar3 = 0;
    }
    var_10 = var_9
                        (this,(type_8 *)0x0,section_name,7,(type_9)uVar3,false,order,false,false,
                         true);
    if (var_10 != (type_4 *)0x0) {
      posd = (type_5 *)var_11(0x34);
      var_12 = (posd->super_Output_data).field_0x1c;
      *(type_10 *)&(posd->super_Output_data).address_ = 0;
      *(type_10 *)((int)&(posd->super_Output_data).address_ + 4) = 0;
      posd->output_section_ = (type_4 *)0x0;
      *(type_10 *)&posd->addralign_ = 4;
      (posd->super_Output_data).field_0x1c = var_12 & 0xe0 | 10;
      *(type_10 *)((int)&posd->addralign_ + 4) = 0;
      *(type_3 *)&(posd->super_Output_data).data_size_ = __n_00;
      (posd->super_Output_data)._vptr_Output_data =
           (type_1 **)&PTR__Output_data_const_buffer_00383c70;
      *(type_10 *)((int)&(posd->super_Output_data).data_size_ + 4) = 0;
      *(type_10 *)&(posd->super_Output_data).offset_ = 0xffffffff;
      *(type_10 *)((int)&(posd->super_Output_data).offset_ + 4) = 0xffffffff;
      posd[1].super_Output_data._vptr_Output_data = var_8;
      *(char **)&posd[1].super_Output_data.address_ = "** note header";
      Output_section::var_13(var_10,posd);
      *trailing_padding = (var_5 + 3 & 0xfffffffc) - var_5;
    }
    return var_10;
  }
                    /* WARNING: Subroutine does not return */
  var_14("../../gold/parameters.h",0x69,"target");
}


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

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

int MASKED(undefined4 param_1,char *param_2,uint param_3,undefined4 param_4,uint param_5,
                char param_6,int *param_7)

{
  uint __n;
  size_t sVar1;
  uint *__s;
  undefined4 uVar2;
  int iVar3;
  undefined4 *puVar4;
  undefined4 uVar5;
  
  sVar1 = strlen(param_2);
  __n = sVar1 + 1;
  sVar1 = (sVar1 + 4 & 0xfffffffc) + 0xc;
  __s = (uint *)FUN_001e5180(sVar1);
  memset(__s,0,sVar1);
  if (*(int *)(DAT_0038f378 + 0xc) != 0) {
    if (*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4) == '\0') {
      *__s = __n;
      __s[1] = param_5;
      __s[2] = param_3;
    }
    else {
      *__s = __n >> 0x18 | (__n & 0xff0000) >> 8 | (__n & 0xff00) << 8 | __n * 0x1000000;
      __s[1] = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 |
               param_5 << 0x18;
      __s[2] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |
               param_3 << 0x18;
    }
    memcpy(__s + 3,param_2,__n);
    if (param_6 == '\0') {
      uVar5 = 0;
      uVar2 = 0;
    }
    else {
      uVar5 = 2;
      uVar2 = 2;
    }
    iVar3 = FUN_0009fff0(param_1,0,param_4,7,uVar2,0,0,uVar5,0,0,1);
    if (iVar3 != 0) {
      puVar4 = (undefined4 *)FUN_001e5200(0x34);
      puVar4[1] = 0;
      puVar4[2] = 0;
      puVar4[8] = 0;
      puVar4[9] = 4;
      *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0 | 10;
      puVar4[10] = 0;
      puVar4[3] = sVar1;
      *puVar4 = &PTR_FUN_00383c70;
      puVar4[4] = 0;
      puVar4[5] = 0xffffffff;
      puVar4[6] = 0xffffffff;
      puVar4[0xb] = __s;
      puVar4[0xc] = "** note header";
      FUN_000f2600(iVar3,puVar4);
      *param_7 = (param_5 + 3 & 0xfffffffc) - param_5;
    }
    return iVar3;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00069d00("../../gold/parameters.h",0x69,"target",sVar1);
}

