
/* 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: void set_section_addresses(Output_section_element_data * this,
   Symbol_table * symtab, Layout * layout, Output_section * os, uint64_t param_4, uint64_t *
   dot_value, uint64_t * param_6, Output_section * * dot_section, string * param_8,
   Input_section_list * param_9) */

void __thiscall
gold::Output_section_element_data::set_section_addresses
          (Output_section_element_data *this,Symbol_table *symtab,Layout *layout,Output_section *os,
          uint64_t param_5,uint64_t *dot_value,uint64_t *param_7,Output_section **dot_section,
          string *param_9,Input_section_list *param_10)

{
  byte bVar1;
  bool bVar2;
  Output_section *pOVar3;
  int iVar4;
  Expression *pEVar5;
  undefined4 uVar6;
  uint uVar7;
  iterator __position;
  uint64_t uVar8;
  Output_section_data *posd;
  Output_section_data *local_20 [3];
  undefined4 uStack_14;
  
  uStack_14 = 0x1092f9;
  if (os != (Output_section *)0x0) {
    posd = (Output_section_data *)operator_new(0x48);
    *(undefined4 *)&(posd->super_Output_data).address_ = 0;
    pOVar3 = *dot_section;
    iVar4 = this->size_;
    *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = 0;
    posd->output_section_ = (Output_section *)0x0;
    *(int *)&(posd->super_Output_data).data_size_ = iVar4;
    *(int *)((int)&(posd->super_Output_data).data_size_ + 4) = iVar4 >> 0x1f;
    bVar1 = (posd->super_Output_data).field_0x1c;
    *(Output_section **)((int)&posd[1].super_Output_data.offset_ + 4) = pOVar3;
    bVar2 = this->is_signed_;
    *(undefined4 *)&posd->addralign_ = 0;
    *(bool *)&posd[1].super_Output_data._vptr_Output_data = bVar2;
    pEVar5 = this->val_;
    (posd->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;
    (posd->super_Output_data)._vptr_Output_data =
         (_func_int_varargs **)&PTR__Output_data_expression_002fe82c;
    *(Expression **)&posd[1].super_Output_data.address_ = pEVar5;
    uVar8 = *dot_value;
    *(Symbol_table **)((int)&posd[1].super_Output_data.address_ + 4) = symtab;
    uVar6 = *(undefined4 *)((int)dot_value + 4);
    *(undefined4 *)((int)&posd->addralign_ + 4) = 0;
    *(undefined4 *)&(posd->super_Output_data).offset_ = 0xffffffff;
    *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0xffffffff;
    *(Layout **)&posd[1].super_Output_data.data_size_ = layout;
    *(int *)((int)&posd[1].super_Output_data.data_size_ + 4) = (int)uVar8;
    *(undefined4 *)&posd[1].super_Output_data.offset_ = uVar6;
    Output_section::add_output_section_data(os,posd);
    if (layout->record_output_section_data_from_script_ != false) {
      __position._M_current =
           (layout->script_output_section_data_list_).
           super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>
           ._M_impl._M_finish;
      if (__position._M_current ==
          (layout->script_output_section_data_list_).
          super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>
          ._M_impl._M_end_of_storage) {
        local_20[0] = posd;
        std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>::
        _M_realloc_insert<gold::Output_section_data*_const&>
                  (&layout->script_output_section_data_list_,__position,local_20);
      }
      else {
        *__position._M_current = posd;
        (layout->script_output_section_data_list_).
        super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.
        _M_impl._M_finish = __position._M_current + 1;
      }
    }
    uVar7 = this->size_;
    uVar8 = *dot_value;
    *(uint *)dot_value = (int)*dot_value + uVar7;
    *(int *)((int)dot_value + 4) =
         *(int *)((int)dot_value + 4) + ((int)uVar7 >> 0x1f) + (uint)CARRY4((uint)uVar8,uVar7);
    return;
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/script-sections.cc",0x4a9,"set_section_addresses");
}



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

void FUN_001092f0(int param_1,undefined4 param_2,int param_3,int param_4,undefined4 param_5,
                 undefined4 param_6,uint *param_7,undefined4 param_8,undefined4 *param_9)

{
  undefined1 uVar1;
  undefined4 uVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  undefined4 *puVar6;
  undefined4 *puVar7;
  undefined4 *local_20 [3];
  undefined4 uStack_14;
  
  uStack_14 = 0x1092f9;
  if (param_4 != 0) {
    puVar7 = (undefined4 *)FUN_0017ebf0(0x48);
    puVar7[1] = 0;
    uVar2 = *param_9;
    iVar3 = *(int *)(param_1 + 4);
    puVar7[2] = 0;
    puVar7[8] = 0;
    puVar7[3] = iVar3;
    puVar7[4] = iVar3 >> 0x1f;
    puVar7[0x11] = uVar2;
    uVar1 = *(undefined1 *)(param_1 + 8);
    puVar7[9] = 0;
    *(undefined1 *)(puVar7 + 0xb) = uVar1;
    uVar2 = *(undefined4 *)(param_1 + 0xc);
    *(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10;
    *puVar7 = &PTR_FUN_002fe82c;
    puVar7[0xc] = uVar2;
    uVar4 = *param_7;
    puVar7[0xd] = param_2;
    uVar5 = param_7[1];
    puVar7[10] = 0;
    puVar7[5] = 0xffffffff;
    puVar7[6] = 0xffffffff;
    puVar7[0xe] = param_3;
    puVar7[0xf] = uVar4;
    puVar7[0x10] = uVar5;
    FUN_000bf250(param_4,puVar7);
    if (*(char *)(param_3 + 0x1d4) != '\0') {
      puVar6 = *(undefined4 **)(param_3 + 0x1dc);
      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {
        local_20[0] = puVar7;
        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);
      }
      else {
        *puVar6 = puVar7;
        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;
      }
    }
    uVar5 = *(uint *)(param_1 + 4);
    uVar4 = *param_7;
    *param_7 = *param_7 + uVar5;
    param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5);
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0005f0b0("../../gold/script-sections.cc",0x4a9,"set_section_addresses",param_3);
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00032730
ADD EBX,0x1f8d07
SUB ESP,0x2c
MOV EAX,dword ptr [ESP + 0x4c]
MOV EBP,dword ptr [ESP + 0x40]
MOV ESI,dword ptr [ESP + 0x48]
MOV EDI,dword ptr [ESP + 0x58]
TEST EAX,EAX
JZ 0x0010941a
SUB ESP,0xc
PUSH 0x48
CALL 0x0017ebf0
MOV ECX,dword ptr [ESP + 0x70]
MOV dword ptr [EAX + 0x4],0x0
MOV EDX,dword ptr [ECX]
MOV ECX,dword ptr [EBP + 0x4]
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EAX + 0x20],0x0
MOV dword ptr [EAX + 0xc],ECX
SAR ECX,0x1f
MOV dword ptr [EAX + 0x10],ECX
MOVZX ECX,byte ptr [EAX + 0x1c]
MOV dword ptr [EAX + 0x44],EDX
MOVZX EDX,byte ptr [EBP + 0x8]
AND ECX,0xffffffe0
MOV dword ptr [EAX + 0x24],0x0
OR ECX,0xa
MOV byte ptr [EAX + 0x2c],DL
MOV EDX,dword ptr [EBP + 0xc]
MOV byte ptr [EAX + 0x1c],CL
LEA ECX,[EBX + 0xffffc82c]
MOV dword ptr [EAX],ECX
MOV ECX,dword ptr [ESP + 0x54]
MOV dword ptr [EAX + 0x30],EDX
MOV EDX,dword ptr [EDI]
MOV dword ptr [EAX + 0x34],ECX
MOV ECX,dword ptr [EDI + 0x4]
MOV dword ptr [EAX + 0x28],0x0
MOV dword ptr [EAX + 0x14],0xffffffff
MOV dword ptr [EAX + 0x18],0xffffffff
MOV dword ptr [EAX + 0x38],ESI
MOV dword ptr [EAX + 0x3c],EDX
MOV dword ptr [EAX + 0x40],ECX
POP EDX
POP ECX
PUSH EAX
MOV dword ptr [ESP + 0x18],EAX
PUSH dword ptr [ESP + 0x58]
CALL 0x000bf250
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x2c],EAX
ADD ESP,0x10
CMP byte ptr [ESI + 0x1d4],0x0
JNZ 0x001093e0
MOV EAX,dword ptr [EBP + 0x4]
CDQ
ADD dword ptr [EDI],EAX
ADC dword ptr [EDI + 0x4],EDX
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ECX,dword ptr [ESI + 0x1dc]
CMP ECX,dword ptr [ESI + 0x1e0]
JZ 0x00109400
MOV dword ptr [ECX],EAX
ADD ECX,0x4
MOV dword ptr [ESI + 0x1dc],ECX
JMP 0x001093c9
SUB ESP,0x4
ADD ESI,0x1d8
LEA EAX,[ESP + 0x20]
PUSH EAX
PUSH ECX
PUSH ESI
CALL 0x0010e8b0
ADD ESP,0x10
JMP 0x001093c9
LEA EAX,[EBX + 0xfff2ca14]
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xfff2c01b]
PUSH 0x4a9
PUSH EAX
CALL 0x0005f0b0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_001092f0(int param_1,undefined4 param_2,int param_3,int param_4,undefined4 param_5,\n                 undefined4 param_6,uint *param_7,undefined4 param_8,undefined4 *param_9)\n\n{\n  undefined1 uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1092f9;\n  if (param_4 != 0) {\n    puVar7 = (undefined4 *)FUN_0017ebf0(0x48);\n    puVar7[1] = 0;\n    uVar2 = *param_9;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar7[2] = 0;\n    puVar7[8] = 0;\n    puVar7[3] = iVar3;\n    puVar7[4] = iVar3 >> 0x1f;\n    puVar7[0x11] = uVar2;\n    uVar1 = *(undefined1 *)(param_1 + 8);\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0xb) = uVar1;\n    uVar2 = *(undefined4 *)(param_1 + 0xc);\n    *(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10;\n    *puVar7 = &PTR_FUN_002fe82c;\n    puVar7[0xc] = uVar2;\n    uVar4 = *param_7;\n    puVar7[0xd] = param_2;\n    uVar5 = param_7[1];\n    puVar7[10] = 0;\n    puVar7[5] = 0xffffffff;\n    puVar7[6] = 0xffffffff;\n    puVar7[0xe] = param_3;\n    puVar7[0xf] = uVar4;\n    puVar7[0x10] = uVar5;\n    FUN_000bf250(param_4,puVar7);\n    if (*(char *)(param_3 + 0x1d4) != '\0') {\n      puVar6 = *(undefined4 **)(param_3 + 0x1dc);\n      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }\n    }\n    uVar5 = *(uint *)(param_1 + 4);\n    uVar4 = *param_7;\n    *param_7 = *param_7 + uVar5;\n    param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0005f0b0("../../gold/script-sections.cc",0x4a9,"set_section_addresses",param_3);\n}\n\n" comment (function_definition "void FUN_001092f0(int param_1,undefined4 param_2,int param_3,int param_4,undefined4 param_5,\n                 undefined4 param_6,uint *param_7,undefined4 param_8,undefined4 *param_9)\n\n{\n  undefined1 uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1092f9;\n  if (param_4 != 0) {\n    puVar7 = (undefined4 *)FUN_0017ebf0(0x48);\n    puVar7[1] = 0;\n    uVar2 = *param_9;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar7[2] = 0;\n    puVar7[8] = 0;\n    puVar7[3] = iVar3;\n    puVar7[4] = iVar3 >> 0x1f;\n    puVar7[0x11] = uVar2;\n    uVar1 = *(undefined1 *)(param_1 + 8);\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0xb) = uVar1;\n    uVar2 = *(undefined4 *)(param_1 + 0xc);\n    *(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10;\n    *puVar7 = &PTR_FUN_002fe82c;\n    puVar7[0xc] = uVar2;\n    uVar4 = *param_7;\n    puVar7[0xd] = param_2;\n    uVar5 = param_7[1];\n    puVar7[10] = 0;\n    puVar7[5] = 0xffffffff;\n    puVar7[6] = 0xffffffff;\n    puVar7[0xe] = param_3;\n    puVar7[0xf] = uVar4;\n    puVar7[0x10] = uVar5;\n    FUN_000bf250(param_4,puVar7);\n    if (*(char *)(param_3 + 0x1d4) != '\0') {\n      puVar6 = *(undefined4 **)(param_3 + 0x1dc);\n      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }\n    }\n    uVar5 = *(uint *)(param_1 + 4);\n    uVar4 = *param_7;\n    *param_7 = *param_7 + uVar5;\n    param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0005f0b0("../../gold/script-sections.cc",0x4a9,"set_section_addresses",param_3);\n}" primitive_type (function_declarator "FUN_001092f0(int param_1,undefined4 param_2,int param_3,int param_4,undefined4 param_5,\n                 undefined4 param_6,uint *param_7,undefined4 param_8,undefined4 *param_9)" identifier (parameter_list "(int param_1,undefined4 param_2,int param_3,int param_4,undefined4 param_5,\n                 undefined4 param_6,uint *param_7,undefined4 param_8,undefined4 *param_9)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "uint *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "undefined4 *param_9" type_identifier (pointer_declarator "*param_9" * identifier)) ))) (compound_statement "{\n  undefined1 uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1092f9;\n  if (param_4 != 0) {\n    puVar7 = (undefined4 *)FUN_0017ebf0(0x48);\n    puVar7[1] = 0;\n    uVar2 = *param_9;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar7[2] = 0;\n    puVar7[8] = 0;\n    puVar7[3] = iVar3;\n    puVar7[4] = iVar3 >> 0x1f;\n    puVar7[0x11] = uVar2;\n    uVar1 = *(undefined1 *)(param_1 + 8);\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0xb) = uVar1;\n    uVar2 = *(undefined4 *)(param_1 + 0xc);\n    *(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10;\n    *puVar7 = &PTR_FUN_002fe82c;\n    puVar7[0xc] = uVar2;\n    uVar4 = *param_7;\n    puVar7[0xd] = param_2;\n    uVar5 = param_7[1];\n    puVar7[10] = 0;\n    puVar7[5] = 0xffffffff;\n    puVar7[6] = 0xffffffff;\n    puVar7[0xe] = param_3;\n    puVar7[0xf] = uVar4;\n    puVar7[0x10] = uVar5;\n    FUN_000bf250(param_4,puVar7);\n    if (*(char *)(param_3 + 0x1d4) != '\0') {\n      puVar6 = *(undefined4 **)(param_3 + 0x1dc);\n      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }\n    }\n    uVar5 = *(uint *)(param_1 + 4);\n    uVar4 = *param_7;\n    *param_7 = *param_7 + uVar5;\n    param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0005f0b0("../../gold/script-sections.cc",0x4a9,"set_section_addresses",param_3);\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *local_20 [3];" type_identifier (pointer_declarator "*local_20 [3]" * (array_declarator "local_20 [3]" identifier [ number_literal ])) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1092f9;" (assignment_expression "uStack_14 = 0x1092f9" identifier = number_literal) ;) (if_statement "if (param_4 != 0) {\n    puVar7 = (undefined4 *)FUN_0017ebf0(0x48);\n    puVar7[1] = 0;\n    uVar2 = *param_9;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar7[2] = 0;\n    puVar7[8] = 0;\n    puVar7[3] = iVar3;\n    puVar7[4] = iVar3 >> 0x1f;\n    puVar7[0x11] = uVar2;\n    uVar1 = *(undefined1 *)(param_1 + 8);\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0xb) = uVar1;\n    uVar2 = *(undefined4 *)(param_1 + 0xc);\n    *(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10;\n    *puVar7 = &PTR_FUN_002fe82c;\n    puVar7[0xc] = uVar2;\n    uVar4 = *param_7;\n    puVar7[0xd] = param_2;\n    uVar5 = param_7[1];\n    puVar7[10] = 0;\n    puVar7[5] = 0xffffffff;\n    puVar7[6] = 0xffffffff;\n    puVar7[0xe] = param_3;\n    puVar7[0xf] = uVar4;\n    puVar7[0x10] = uVar5;\n    FUN_000bf250(param_4,puVar7);\n    if (*(char *)(param_3 + 0x1d4) != '\0') {\n      puVar6 = *(undefined4 **)(param_3 + 0x1dc);\n      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }\n    }\n    uVar5 = *(uint *)(param_1 + 4);\n    uVar4 = *param_7;\n    *param_7 = *param_7 + uVar5;\n    param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5);\n    return;\n  }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar7 = (undefined4 *)FUN_0017ebf0(0x48);\n    puVar7[1] = 0;\n    uVar2 = *param_9;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar7[2] = 0;\n    puVar7[8] = 0;\n    puVar7[3] = iVar3;\n    puVar7[4] = iVar3 >> 0x1f;\n    puVar7[0x11] = uVar2;\n    uVar1 = *(undefined1 *)(param_1 + 8);\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0xb) = uVar1;\n    uVar2 = *(undefined4 *)(param_1 + 0xc);\n    *(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10;\n    *puVar7 = &PTR_FUN_002fe82c;\n    puVar7[0xc] = uVar2;\n    uVar4 = *param_7;\n    puVar7[0xd] = param_2;\n    uVar5 = param_7[1];\n    puVar7[10] = 0;\n    puVar7[5] = 0xffffffff;\n    puVar7[6] = 0xffffffff;\n    puVar7[0xe] = param_3;\n    puVar7[0xf] = uVar4;\n    puVar7[0x10] = uVar5;\n    FUN_000bf250(param_4,puVar7);\n    if (*(char *)(param_3 + 0x1d4) != '\0') {\n      puVar6 = *(undefined4 **)(param_3 + 0x1dc);\n      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }\n    }\n    uVar5 = *(uint *)(param_1 + 4);\n    uVar4 = *param_7;\n    *param_7 = *param_7 + uVar5;\n    param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5);\n    return;\n  }" { (expression_statement "puVar7 = (undefined4 *)FUN_0017ebf0(0x48);" (assignment_expression "puVar7 = (undefined4 *)FUN_0017ebf0(0x48)" identifier = (cast_expression "(undefined4 *)FUN_0017ebf0(0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0017ebf0(0x48)" identifier (argument_list "(0x48)" ( number_literal ))))) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar2 = *param_9;" (assignment_expression "uVar2 = *param_9" identifier = (pointer_expression "*param_9" * identifier)) ;) (expression_statement "iVar3 = *(int *)(param_1 + 4);" (assignment_expression "iVar3 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[8] = 0;" (assignment_expression "puVar7[8] = 0" (subscript_expression "puVar7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = iVar3;" (assignment_expression "puVar7[3] = iVar3" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[4] = iVar3 >> 0x1f;" (assignment_expression "puVar7[4] = iVar3 >> 0x1f" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = (binary_expression "iVar3 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "puVar7[0x11] = uVar2;" (assignment_expression "puVar7[0x11] = uVar2" (subscript_expression "puVar7[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = *(undefined1 *)(param_1 + 8);" (assignment_expression "uVar1 = *(undefined1 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined1 *)(param_1 + 8)" * (cast_expression "(undefined1 *)(param_1 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar7[9] = 0;" (assignment_expression "puVar7[9] = 0" (subscript_expression "puVar7[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar7 + 0xb) = uVar1;" (assignment_expression "*(undefined1 *)(puVar7 + 0xb) = uVar1" (pointer_expression "*(undefined1 *)(puVar7 + 0xb)" * (cast_expression "(undefined1 *)(puVar7 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0xb)" ( (binary_expression "puVar7 + 0xb" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = *(undefined4 *)(param_1 + 0xc);" (assignment_expression "uVar2 = *(undefined4 *)(param_1 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar7 + 7)" * (cast_expression "(byte *)(puVar7 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 7)" ( (binary_expression "puVar7 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar7 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar7 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar7 + 7)" * (cast_expression "(byte *)(puVar7 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 7)" ( (binary_expression "puVar7 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "*puVar7 = &PTR_FUN_002fe82c;" (assignment_expression "*puVar7 = &PTR_FUN_002fe82c" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR_FUN_002fe82c" & identifier)) ;) (expression_statement "puVar7[0xc] = uVar2;" (assignment_expression "puVar7[0xc] = uVar2" (subscript_expression "puVar7[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = *param_7;" (assignment_expression "uVar4 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "puVar7[0xd] = param_2;" (assignment_expression "puVar7[0xd] = param_2" (subscript_expression "puVar7[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = param_7[1];" (assignment_expression "uVar5 = param_7[1]" identifier = (subscript_expression "param_7[1]" identifier [ number_literal ])) ;) (expression_statement "puVar7[10] = 0;" (assignment_expression "puVar7[10] = 0" (subscript_expression "puVar7[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[5] = 0xffffffff;" (assignment_expression "puVar7[5] = 0xffffffff" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 0xffffffff;" (assignment_expression "puVar7[6] = 0xffffffff" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[0xe] = param_3;" (assignment_expression "puVar7[0xe] = param_3" (subscript_expression "puVar7[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[0xf] = uVar4;" (assignment_expression "puVar7[0xf] = uVar4" (subscript_expression "puVar7[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[0x10] = uVar5;" (assignment_expression "puVar7[0x10] = uVar5" (subscript_expression "puVar7[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_000bf250(param_4,puVar7);" (call_expression "FUN_000bf250(param_4,puVar7)" identifier (argument_list "(param_4,puVar7)" ( identifier , identifier ))) ;) (if_statement "if (*(char *)(param_3 + 0x1d4) != '\0') {\n      puVar6 = *(undefined4 **)(param_3 + 0x1dc);\n      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }\n    }" if (parenthesized_expression "(*(char *)(param_3 + 0x1d4) != '\0')" ( (binary_expression "*(char *)(param_3 + 0x1d4) != '\0'" (pointer_expression "*(char *)(param_3 + 0x1d4)" * (cast_expression "(char *)(param_3 + 0x1d4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1d4)" ( (binary_expression "param_3 + 0x1d4" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      puVar6 = *(undefined4 **)(param_3 + 0x1dc);\n      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }\n    }" { (expression_statement "puVar6 = *(undefined4 **)(param_3 + 0x1dc);" (assignment_expression "puVar6 = *(undefined4 **)(param_3 + 0x1dc)" identifier = (pointer_expression "*(undefined4 **)(param_3 + 0x1dc)" * (cast_expression "(undefined4 **)(param_3 + 0x1dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x1dc)" ( (binary_expression "param_3 + 0x1dc" identifier + number_literal) ))))) ;) (if_statement "if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }" if (parenthesized_expression "(puVar6 == *(undefined4 **)(param_3 + 0x1e0))" ( (binary_expression "puVar6 == *(undefined4 **)(param_3 + 0x1e0)" identifier == (pointer_expression "*(undefined4 **)(param_3 + 0x1e0)" * (cast_expression "(undefined4 **)(param_3 + 0x1e0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x1e0)" ( (binary_expression "param_3 + 0x1e0" identifier + number_literal) ))))) )) (compound_statement "{\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }" { (expression_statement "local_20[0] = puVar7;" (assignment_expression "local_20[0] = puVar7" (subscript_expression "local_20[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);" (call_expression "FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20)" identifier (argument_list "(param_3 + 0x1d8,puVar6,local_20)" ( (binary_expression "param_3 + 0x1d8" identifier + number_literal) , identifier , identifier ))) ;) }) (else_clause "else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }" else (compound_statement "{\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }" { (expression_statement "*puVar6 = puVar7;" (assignment_expression "*puVar6 = puVar7" (pointer_expression "*puVar6" * identifier) = identifier) ;) (expression_statement "*(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;" (assignment_expression "*(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1" (pointer_expression "*(undefined4 **)(param_3 + 0x1dc)" * (cast_expression "(undefined4 **)(param_3 + 0x1dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x1dc)" ( (binary_expression "param_3 + 0x1dc" identifier + number_literal) )))) = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) }))) })) (expression_statement "uVar5 = *(uint *)(param_1 + 4);" (assignment_expression "uVar5 = *(uint *)(param_1 + 4)" identifier = (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *param_7;" (assignment_expression "uVar4 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "*param_7 = *param_7 + uVar5;" (assignment_expression "*param_7 = *param_7 + uVar5" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 + uVar5" (pointer_expression "*param_7" * identifier) + identifier)) ;) (expression_statement "param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5);" (assignment_expression "param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5)" (subscript_expression "param_7[1]" identifier [ number_literal ]) = (binary_expression "param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5)" (binary_expression "param_7[1] + ((int)uVar5 >> 0x1f)" (subscript_expression "param_7[1]" identifier [ number_literal ]) + (parenthesized_expression "((int)uVar5 >> 0x1f)" ( (binary_expression "(int)uVar5 >> 0x1f" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar4,uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar4,uVar5)" identifier (argument_list "(uVar4,uVar5)" ( identifier , identifier )))))) ;) (return_statement "return;" return ;) })) comment (expression_statement "FUN_0005f0b0("../../gold/script-sections.cc",0x4a9,"set_section_addresses",param_3);" (call_expression "FUN_0005f0b0("../../gold/script-sections.cc",0x4a9,"set_section_addresses",param_3)" identifier (argument_list "("../../gold/script-sections.cc",0x4a9,"set_section_addresses",param_3)" ( (string_literal ""../../gold/script-sections.cc"" " string_content ") , number_literal , (string_literal ""set_section_addresses"" " 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: void set_section_addresses(Output_section_element_data * this,\n   Symbol_table * symtab, Layout * layout, Output_section * os, uint64_t param_4, uint64_t *\n   dot_value, uint64_t * param_6, Output_section * * dot_section, string * param_8,\n   Input_section_list * param_9) */\n\nvoid __thiscall\ngold::Output_section_element_data::set_section_addresses\n          (Output_section_element_data *this,Symbol_table *symtab,Layout *layout,Output_section *os,\n          uint64_t param_5,uint64_t *dot_value,uint64_t *param_7,Output_section **dot_section,\n          string *param_9,Input_section_list *param_10)\n\n{\n  byte bVar1;\n  bool bVar2;\n  Output_section *pOVar3;\n  int iVar4;\n  Expression *pEVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  iterator __position;\n  uint64_t uVar8;\n  Output_section_data *posd;\n  Output_section_data *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1092f9;\n  if (os != (Output_section *)0x0) {\n    posd = (Output_section_data *)operator_new(0x48);\n    *(undefined4 *)&(posd->super_Output_data).address_ = 0;\n    pOVar3 = *dot_section;\n    iVar4 = this->size_;\n    *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = 0;\n    posd->output_section_ = (Output_section *)0x0;\n    *(int *)&(posd->super_Output_data).data_size_ = iVar4;\n    *(int *)((int)&(posd->super_Output_data).data_size_ + 4) = iVar4 >> 0x1f;\n    bVar1 = (posd->super_Output_data).field_0x1c;\n    *(Output_section **)((int)&posd[1].super_Output_data.offset_ + 4) = pOVar3;\n    bVar2 = this->is_signed_;\n    *(undefined4 *)&posd->addralign_ = 0;\n    *(bool *)&posd[1].super_Output_data._vptr_Output_data = bVar2;\n    pEVar5 = this->val_;\n    (posd->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;\n    (posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_expression_002fe82c;\n    *(Expression **)&posd[1].super_Output_data.address_ = pEVar5;\n    uVar8 = *dot_value;\n    *(Symbol_table **)((int)&posd[1].super_Output_data.address_ + 4) = symtab;\n    uVar6 = *(undefined4 *)((int)dot_value + 4);\n    *(undefined4 *)((int)&posd->addralign_ + 4) = 0;\n    *(undefined4 *)&(posd->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0xffffffff;\n    *(Layout **)&posd[1].super_Output_data.data_size_ = layout;\n    *(int *)((int)&posd[1].super_Output_data.data_size_ + 4) = (int)uVar8;\n    *(undefined4 *)&posd[1].super_Output_data.offset_ = uVar6;\n    Output_section::add_output_section_data(os,posd);\n    if (layout->record_output_section_data_from_script_ != false) {\n      __position._M_current =\n           (layout->script_output_section_data_list_).\n           super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n           ._M_impl._M_finish;\n      if (__position._M_current ==\n          (layout->script_output_section_data_list_).\n          super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n          ._M_impl._M_end_of_storage) {\n        local_20[0] = posd;\n        std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>::\n        _M_realloc_insert<gold::Output_section_data*_const&>\n                  (&layout->script_output_section_data_list_,__position,local_20);\n      }\n      else {\n        *__position._M_current = posd;\n        (layout->script_output_section_data_list_).\n        super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n        _M_impl._M_finish = __position._M_current + 1;\n      }\n    }\n    uVar7 = this->size_;\n    uVar8 = *dot_value;\n    *(uint *)dot_value = (int)*dot_value + uVar7;\n    *(int *)((int)dot_value + 4) =\n         *(int *)((int)dot_value + 4) + ((int)uVar7 >> 0x1f) + (uint)CARRY4((uint)uVar8,uVar7);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/script-sections.cc",0x4a9,"set_section_addresses");\n}\n\n" comment comment comment (function_definition "void __thiscall\ngold::Output_section_element_data::set_section_addresses\n          (Output_section_element_data *this,Symbol_table *symtab,Layout *layout,Output_section *os,\n          uint64_t param_5,uint64_t *dot_value,uint64_t *param_7,Output_section **dot_section,\n          string *param_9,Input_section_list *param_10)\n\n{\n  byte bVar1;\n  bool bVar2;\n  Output_section *pOVar3;\n  int iVar4;\n  Expression *pEVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  iterator __position;\n  uint64_t uVar8;\n  Output_section_data *posd;\n  Output_section_data *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1092f9;\n  if (os != (Output_section *)0x0) {\n    posd = (Output_section_data *)operator_new(0x48);\n    *(undefined4 *)&(posd->super_Output_data).address_ = 0;\n    pOVar3 = *dot_section;\n    iVar4 = this->size_;\n    *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = 0;\n    posd->output_section_ = (Output_section *)0x0;\n    *(int *)&(posd->super_Output_data).data_size_ = iVar4;\n    *(int *)((int)&(posd->super_Output_data).data_size_ + 4) = iVar4 >> 0x1f;\n    bVar1 = (posd->super_Output_data).field_0x1c;\n    *(Output_section **)((int)&posd[1].super_Output_data.offset_ + 4) = pOVar3;\n    bVar2 = this->is_signed_;\n    *(undefined4 *)&posd->addralign_ = 0;\n    *(bool *)&posd[1].super_Output_data._vptr_Output_data = bVar2;\n    pEVar5 = this->val_;\n    (posd->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;\n    (posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_expression_002fe82c;\n    *(Expression **)&posd[1].super_Output_data.address_ = pEVar5;\n    uVar8 = *dot_value;\n    *(Symbol_table **)((int)&posd[1].super_Output_data.address_ + 4) = symtab;\n    uVar6 = *(undefined4 *)((int)dot_value + 4);\n    *(undefined4 *)((int)&posd->addralign_ + 4) = 0;\n    *(undefined4 *)&(posd->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0xffffffff;\n    *(Layout **)&posd[1].super_Output_data.data_size_ = layout;\n    *(int *)((int)&posd[1].super_Output_data.data_size_ + 4) = (int)uVar8;\n    *(undefined4 *)&posd[1].super_Output_data.offset_ = uVar6;\n    Output_section::add_output_section_data(os,posd);\n    if (layout->record_output_section_data_from_script_ != false) {\n      __position._M_current =\n           (layout->script_output_section_data_list_).\n           super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n           ._M_impl._M_finish;\n      if (__position._M_current ==\n          (layout->script_output_section_data_list_).\n          super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n          ._M_impl._M_end_of_storage) {\n        local_20[0] = posd;\n        std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>::\n        _M_realloc_insert<gold::Output_section_data*_const&>\n                  (&layout->script_output_section_data_list_,__position,local_20);\n      }\n      else {\n        *__position._M_current = posd;\n        (layout->script_output_section_data_list_).\n        super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n        _M_impl._M_finish = __position._M_current + 1;\n      }\n    }\n    uVar7 = this->size_;\n    uVar8 = *dot_value;\n    *(uint *)dot_value = (int)*dot_value + uVar7;\n    *(int *)((int)dot_value + 4) =\n         *(int *)((int)dot_value + 4) + ((int)uVar7 >> 0x1f) + (uint)CARRY4((uint)uVar8,uVar7);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/script-sections.cc",0x4a9,"set_section_addresses");\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_section_element_data::" identifier : : identifier : :) (function_declarator "set_section_addresses\n          (Output_section_element_data *this,Symbol_table *symtab,Layout *layout,Output_section *os,\n          uint64_t param_5,uint64_t *dot_value,uint64_t *param_7,Output_section **dot_section,\n          string *param_9,Input_section_list *param_10)" identifier (parameter_list "(Output_section_element_data *this,Symbol_table *symtab,Layout *layout,Output_section *os,\n          uint64_t param_5,uint64_t *dot_value,uint64_t *param_7,Output_section **dot_section,\n          string *param_9,Input_section_list *param_10)" ( (parameter_declaration "Output_section_element_data *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) , (parameter_declaration "Output_section *os" type_identifier (pointer_declarator "*os" * identifier)) , (parameter_declaration "uint64_t param_5" primitive_type identifier) , (parameter_declaration "uint64_t *dot_value" primitive_type (pointer_declarator "*dot_value" * identifier)) , (parameter_declaration "uint64_t *param_7" primitive_type (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "Output_section **dot_section" type_identifier (pointer_declarator "**dot_section" * (pointer_declarator "*dot_section" * identifier))) , (parameter_declaration "string *param_9" type_identifier (pointer_declarator "*param_9" * identifier)) , (parameter_declaration "Input_section_list *param_10" type_identifier (pointer_declarator "*param_10" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  Output_section *pOVar3;\n  int iVar4;\n  Expression *pEVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  iterator __position;\n  uint64_t uVar8;\n  Output_section_data *posd;\n  Output_section_data *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1092f9;\n  if (os != (Output_section *)0x0) {\n    posd = (Output_section_data *)operator_new(0x48);\n    *(undefined4 *)&(posd->super_Output_data).address_ = 0;\n    pOVar3 = *dot_section;\n    iVar4 = this->size_;\n    *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = 0;\n    posd->output_section_ = (Output_section *)0x0;\n    *(int *)&(posd->super_Output_data).data_size_ = iVar4;\n    *(int *)((int)&(posd->super_Output_data).data_size_ + 4) = iVar4 >> 0x1f;\n    bVar1 = (posd->super_Output_data).field_0x1c;\n    *(Output_section **)((int)&posd[1].super_Output_data.offset_ + 4) = pOVar3;\n    bVar2 = this->is_signed_;\n    *(undefined4 *)&posd->addralign_ = 0;\n    *(bool *)&posd[1].super_Output_data._vptr_Output_data = bVar2;\n    pEVar5 = this->val_;\n    (posd->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;\n    (posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_expression_002fe82c;\n    *(Expression **)&posd[1].super_Output_data.address_ = pEVar5;\n    uVar8 = *dot_value;\n    *(Symbol_table **)((int)&posd[1].super_Output_data.address_ + 4) = symtab;\n    uVar6 = *(undefined4 *)((int)dot_value + 4);\n    *(undefined4 *)((int)&posd->addralign_ + 4) = 0;\n    *(undefined4 *)&(posd->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0xffffffff;\n    *(Layout **)&posd[1].super_Output_data.data_size_ = layout;\n    *(int *)((int)&posd[1].super_Output_data.data_size_ + 4) = (int)uVar8;\n    *(undefined4 *)&posd[1].super_Output_data.offset_ = uVar6;\n    Output_section::add_output_section_data(os,posd);\n    if (layout->record_output_section_data_from_script_ != false) {\n      __position._M_current =\n           (layout->script_output_section_data_list_).\n           super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n           ._M_impl._M_finish;\n      if (__position._M_current ==\n          (layout->script_output_section_data_list_).\n          super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n          ._M_impl._M_end_of_storage) {\n        local_20[0] = posd;\n        std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>::\n        _M_realloc_insert<gold::Output_section_data*_const&>\n                  (&layout->script_output_section_data_list_,__position,local_20);\n      }\n      else {\n        *__position._M_current = posd;\n        (layout->script_output_section_data_list_).\n        super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n        _M_impl._M_finish = __position._M_current + 1;\n      }\n    }\n    uVar7 = this->size_;\n    uVar8 = *dot_value;\n    *(uint *)dot_value = (int)*dot_value + uVar7;\n    *(int *)((int)dot_value + 4) =\n         *(int *)((int)dot_value + 4) + ((int)uVar7 >> 0x1f) + (uint)CARRY4((uint)uVar8,uVar7);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/script-sections.cc",0x4a9,"set_section_addresses");\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "Output_section *pOVar3;" type_identifier (pointer_declarator "*pOVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "Expression *pEVar5;" type_identifier (pointer_declarator "*pEVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "iterator __position;" type_identifier identifier ;) (declaration "uint64_t uVar8;" primitive_type identifier ;) (declaration "Output_section_data *posd;" type_identifier (pointer_declarator "*posd" * identifier) ;) (declaration "Output_section_data *local_20 [3];" type_identifier (pointer_declarator "*local_20 [3]" * (array_declarator "local_20 [3]" identifier [ number_literal ])) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1092f9;" (assignment_expression "uStack_14 = 0x1092f9" identifier = number_literal) ;) (if_statement "if (os != (Output_section *)0x0) {\n    posd = (Output_section_data *)operator_new(0x48);\n    *(undefined4 *)&(posd->super_Output_data).address_ = 0;\n    pOVar3 = *dot_section;\n    iVar4 = this->size_;\n    *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = 0;\n    posd->output_section_ = (Output_section *)0x0;\n    *(int *)&(posd->super_Output_data).data_size_ = iVar4;\n    *(int *)((int)&(posd->super_Output_data).data_size_ + 4) = iVar4 >> 0x1f;\n    bVar1 = (posd->super_Output_data).field_0x1c;\n    *(Output_section **)((int)&posd[1].super_Output_data.offset_ + 4) = pOVar3;\n    bVar2 = this->is_signed_;\n    *(undefined4 *)&posd->addralign_ = 0;\n    *(bool *)&posd[1].super_Output_data._vptr_Output_data = bVar2;\n    pEVar5 = this->val_;\n    (posd->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;\n    (posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_expression_002fe82c;\n    *(Expression **)&posd[1].super_Output_data.address_ = pEVar5;\n    uVar8 = *dot_value;\n    *(Symbol_table **)((int)&posd[1].super_Output_data.address_ + 4) = symtab;\n    uVar6 = *(undefined4 *)((int)dot_value + 4);\n    *(undefined4 *)((int)&posd->addralign_ + 4) = 0;\n    *(undefined4 *)&(posd->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0xffffffff;\n    *(Layout **)&posd[1].super_Output_data.data_size_ = layout;\n    *(int *)((int)&posd[1].super_Output_data.data_size_ + 4) = (int)uVar8;\n    *(undefined4 *)&posd[1].super_Output_data.offset_ = uVar6;\n    Output_section::add_output_section_data(os,posd);\n    if (layout->record_output_section_data_from_script_ != false) {\n      __position._M_current =\n           (layout->script_output_section_data_list_).\n           super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n           ._M_impl._M_finish;\n      if (__position._M_current ==\n          (layout->script_output_section_data_list_).\n          super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n          ._M_impl._M_end_of_storage) {\n        local_20[0] = posd;\n        std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>::\n        _M_realloc_insert<gold::Output_section_data*_const&>\n                  (&layout->script_output_section_data_list_,__position,local_20);\n      }\n      else {\n        *__position._M_current = posd;\n        (layout->script_output_section_data_list_).\n        super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n        _M_impl._M_finish = __position._M_current + 1;\n      }\n    }\n    uVar7 = this->size_;\n    uVar8 = *dot_value;\n    *(uint *)dot_value = (int)*dot_value + uVar7;\n    *(int *)((int)dot_value + 4) =\n         *(int *)((int)dot_value + 4) + ((int)uVar7 >> 0x1f) + (uint)CARRY4((uint)uVar8,uVar7);\n    return;\n  }" if (parenthesized_expression "(os != (Output_section *)0x0)" ( (binary_expression "os != (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(0x48);\n    *(undefined4 *)&(posd->super_Output_data).address_ = 0;\n    pOVar3 = *dot_section;\n    iVar4 = this->size_;\n    *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = 0;\n    posd->output_section_ = (Output_section *)0x0;\n    *(int *)&(posd->super_Output_data).data_size_ = iVar4;\n    *(int *)((int)&(posd->super_Output_data).data_size_ + 4) = iVar4 >> 0x1f;\n    bVar1 = (posd->super_Output_data).field_0x1c;\n    *(Output_section **)((int)&posd[1].super_Output_data.offset_ + 4) = pOVar3;\n    bVar2 = this->is_signed_;\n    *(undefined4 *)&posd->addralign_ = 0;\n    *(bool *)&posd[1].super_Output_data._vptr_Output_data = bVar2;\n    pEVar5 = this->val_;\n    (posd->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;\n    (posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_expression_002fe82c;\n    *(Expression **)&posd[1].super_Output_data.address_ = pEVar5;\n    uVar8 = *dot_value;\n    *(Symbol_table **)((int)&posd[1].super_Output_data.address_ + 4) = symtab;\n    uVar6 = *(undefined4 *)((int)dot_value + 4);\n    *(undefined4 *)((int)&posd->addralign_ + 4) = 0;\n    *(undefined4 *)&(posd->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0xffffffff;\n    *(Layout **)&posd[1].super_Output_data.data_size_ = layout;\n    *(int *)((int)&posd[1].super_Output_data.data_size_ + 4) = (int)uVar8;\n    *(undefined4 *)&posd[1].super_Output_data.offset_ = uVar6;\n    Output_section::add_output_section_data(os,posd);\n    if (layout->record_output_section_data_from_script_ != false) {\n      __position._M_current =\n           (layout->script_output_section_data_list_).\n           super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n           ._M_impl._M_finish;\n      if (__position._M_current ==\n          (layout->script_output_section_data_list_).\n          super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n          ._M_impl._M_end_of_storage) {\n        local_20[0] = posd;\n        std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>::\n        _M_realloc_insert<gold::Output_section_data*_const&>\n                  (&layout->script_output_section_data_list_,__position,local_20);\n      }\n      else {\n        *__position._M_current = posd;\n        (layout->script_output_section_data_list_).\n        super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n        _M_impl._M_finish = __position._M_current + 1;\n      }\n    }\n    uVar7 = this->size_;\n    uVar8 = *dot_value;\n    *(uint *)dot_value = (int)*dot_value + uVar7;\n    *(int *)((int)dot_value + 4) =\n         *(int *)((int)dot_value + 4) + ((int)uVar7 >> 0x1f) + (uint)CARRY4((uint)uVar8,uVar7);\n    return;\n  }" { (expression_statement "posd = (Output_section_data *)operator_new(0x48);" (assignment_expression "posd = (Output_section_data *)operator_new(0x48)" identifier = (cast_expression "(Output_section_data *)operator_new(0x48)" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x48)" identifier (argument_list "(0x48)" ( number_literal ))))) ;) (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 "pOVar3 = *dot_section;" (assignment_expression "pOVar3 = *dot_section" identifier = (pointer_expression "*dot_section" * identifier)) ;) (expression_statement "iVar4 = this->size_;" (assignment_expression "iVar4 = this->size_" identifier = (field_expression "this->size_" identifier -> field_identifier)) ;) (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 "*(int *)&(posd->super_Output_data).data_size_ = iVar4;" (assignment_expression "*(int *)&(posd->super_Output_data).data_size_ = iVar4" (pointer_expression "*(int *)&(posd->super_Output_data).data_size_" * (cast_expression "(int *)&(posd->super_Output_data).data_size_" ( (type_descriptor "int *" primitive_type (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 "*(int *)((int)&(posd->super_Output_data).data_size_ + 4) = iVar4 >> 0x1f;" (assignment_expression "*(int *)((int)&(posd->super_Output_data).data_size_ + 4) = iVar4 >> 0x1f" (pointer_expression "*(int *)((int)&(posd->super_Output_data).data_size_ + 4)" * (cast_expression "(int *)((int)&(posd->super_Output_data).data_size_ + 4)" ( (type_descriptor "int *" primitive_type (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) )))) = (binary_expression "iVar4 >> 0x1f" identifier >> 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 "*(Output_section **)((int)&posd[1].super_Output_data.offset_ + 4) = pOVar3;" (assignment_expression "*(Output_section **)((int)&posd[1].super_Output_data.offset_ + 4) = pOVar3" (pointer_expression "*(Output_section **)((int)&posd[1].super_Output_data.offset_ + 4)" * (cast_expression "(Output_section **)((int)&posd[1].super_Output_data.offset_ + 4)" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&posd[1].super_Output_data.offset_ + 4)" ( (binary_expression "(int)&posd[1].super_Output_data.offset_ + 4" (cast_expression "(int)&posd[1].super_Output_data.offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&posd[1].super_Output_data.offset_" & (field_expression "posd[1].super_Output_data.offset_" (field_expression "posd[1].super_Output_data" (subscript_expression "posd[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "bVar2 = this->is_signed_;" (assignment_expression "bVar2 = this->is_signed_" identifier = (field_expression "this->is_signed_" identifier -> field_identifier)) ;) (expression_statement "*(undefined4 *)&posd->addralign_ = 0;" (assignment_expression "*(undefined4 *)&posd->addralign_ = 0" (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 "*(bool *)&posd[1].super_Output_data._vptr_Output_data = bVar2;" (assignment_expression "*(bool *)&posd[1].super_Output_data._vptr_Output_data = bVar2" (pointer_expression "*(bool *)&posd[1].super_Output_data._vptr_Output_data" * (cast_expression "(bool *)&posd[1].super_Output_data._vptr_Output_data" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&posd[1].super_Output_data._vptr_Output_data" & (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 "pEVar5 = this->val_;" (assignment_expression "pEVar5 = this->val_" identifier = (field_expression "this->val_" identifier -> field_identifier)) ;) (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 "(posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_expression_002fe82c;" (assignment_expression "(posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_expression_002fe82c" (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_expression_002fe82c" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_expression_002fe82c" & identifier))) ;) (expression_statement "*(Expression **)&posd[1].super_Output_data.address_ = pEVar5;" (assignment_expression "*(Expression **)&posd[1].super_Output_data.address_ = pEVar5" (pointer_expression "*(Expression **)&posd[1].super_Output_data.address_" * (cast_expression "(Expression **)&posd[1].super_Output_data.address_" ( (type_descriptor "Expression **" type_identifier (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)))) = identifier) ;) (expression_statement "uVar8 = *dot_value;" (assignment_expression "uVar8 = *dot_value" identifier = (pointer_expression "*dot_value" * identifier)) ;) (expression_statement "*(Symbol_table **)((int)&posd[1].super_Output_data.address_ + 4) = symtab;" (assignment_expression "*(Symbol_table **)((int)&posd[1].super_Output_data.address_ + 4) = symtab" (pointer_expression "*(Symbol_table **)((int)&posd[1].super_Output_data.address_ + 4)" * (cast_expression "(Symbol_table **)((int)&posd[1].super_Output_data.address_ + 4)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&posd[1].super_Output_data.address_ + 4)" ( (binary_expression "(int)&posd[1].super_Output_data.address_ + 4" (cast_expression "(int)&posd[1].super_Output_data.address_" ( (type_descriptor "int" primitive_type) ) (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))) + number_literal) )))) = identifier) ;) (expression_statement "uVar6 = *(undefined4 *)((int)dot_value + 4);" (assignment_expression "uVar6 = *(undefined4 *)((int)dot_value + 4)" identifier = (pointer_expression "*(undefined4 *)((int)dot_value + 4)" * (cast_expression "(undefined4 *)((int)dot_value + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)dot_value + 4)" ( (binary_expression "(int)dot_value + 4" (cast_expression "(int)dot_value" ( (type_descriptor "int" primitive_type) ) identifier) + 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 "*(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 "*(Layout **)&posd[1].super_Output_data.data_size_ = layout;" (assignment_expression "*(Layout **)&posd[1].super_Output_data.data_size_ = layout" (pointer_expression "*(Layout **)&posd[1].super_Output_data.data_size_" * (cast_expression "(Layout **)&posd[1].super_Output_data.data_size_" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&posd[1].super_Output_data.data_size_" & (field_expression "posd[1].super_Output_data.data_size_" (field_expression "posd[1].super_Output_data" (subscript_expression "posd[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = identifier) ;) (expression_statement "*(int *)((int)&posd[1].super_Output_data.data_size_ + 4) = (int)uVar8;" (assignment_expression "*(int *)((int)&posd[1].super_Output_data.data_size_ + 4) = (int)uVar8" (pointer_expression "*(int *)((int)&posd[1].super_Output_data.data_size_ + 4)" * (cast_expression "(int *)((int)&posd[1].super_Output_data.data_size_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&posd[1].super_Output_data.data_size_ + 4)" ( (binary_expression "(int)&posd[1].super_Output_data.data_size_ + 4" (cast_expression "(int)&posd[1].super_Output_data.data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&posd[1].super_Output_data.data_size_" & (field_expression "posd[1].super_Output_data.data_size_" (field_expression "posd[1].super_Output_data" (subscript_expression "posd[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(undefined4 *)&posd[1].super_Output_data.offset_ = uVar6;" (assignment_expression "*(undefined4 *)&posd[1].super_Output_data.offset_ = uVar6" (pointer_expression "*(undefined4 *)&posd[1].super_Output_data.offset_" * (cast_expression "(undefined4 *)&posd[1].super_Output_data.offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&posd[1].super_Output_data.offset_" & (field_expression "posd[1].super_Output_data.offset_" (field_expression "posd[1].super_Output_data" (subscript_expression "posd[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = identifier) ;) (labeled_statement "Output_section::add_output_section_data(os,posd);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data(os,posd);" (call_expression "add_output_section_data(os,posd)" identifier (argument_list "(os,posd)" ( identifier , identifier ))) ;)) (if_statement "if (layout->record_output_section_data_from_script_ != false) {\n      __position._M_current =\n           (layout->script_output_section_data_list_).\n           super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n           ._M_impl._M_finish;\n      if (__position._M_current ==\n          (layout->script_output_section_data_list_).\n          super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n          ._M_impl._M_end_of_storage) {\n        local_20[0] = posd;\n        std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>::\n        _M_realloc_insert<gold::Output_section_data*_const&>\n                  (&layout->script_output_section_data_list_,__position,local_20);\n      }\n      else {\n        *__position._M_current = posd;\n        (layout->script_output_section_data_list_).\n        super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n        _M_impl._M_finish = __position._M_current + 1;\n      }\n    }" if (parenthesized_expression "(layout->record_output_section_data_from_script_ != false)" ( (binary_expression "layout->record_output_section_data_from_script_ != false" (field_expression "layout->record_output_section_data_from_script_" identifier -> field_identifier) != false) )) (compound_statement "{\n      __position._M_current =\n           (layout->script_output_section_data_list_).\n           super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n           ._M_impl._M_finish;\n      if (__position._M_current ==\n          (layout->script_output_section_data_list_).\n          super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n          ._M_impl._M_end_of_storage) {\n        local_20[0] = posd;\n        std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>::\n        _M_realloc_insert<gold::Output_section_data*_const&>\n                  (&layout->script_output_section_data_list_,__position,local_20);\n      }\n      else {\n        *__position._M_current = posd;\n        (layout->script_output_section_data_list_).\n        super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n        _M_impl._M_finish = __position._M_current + 1;\n      }\n    }" { (expression_statement "__position._M_current =\n           (layout->script_output_section_data_list_).\n           super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n           ._M_impl._M_finish;" (field_expression "__position._M_current =\n           (layout->script_output_section_data_list_).\n           super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n           ._M_impl._M_finish" (field_expression "__position._M_current =\n           (layout->script_output_section_data_list_).\n           super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n           ._M_impl" (binary_expression "__position._M_current =\n           (layout->script_output_section_data_list_).\n           super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_" (binary_expression "__position._M_current =\n           (layout->script_output_section_data_list_).\n           super__Vector_base<gold::Output_section_data*,_std::allocator<gold" (binary_expression "__position._M_current =\n           (layout->script_output_section_data_list_).\n           super__Vector_base<gold::Output_section_data*,_std" (assignment_expression "__position._M_current =\n           (layout->script_output_section_data_list_).\n           super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) = (binary_expression "(layout->script_output_section_data_list_).\n           super__Vector_base<gold" (field_expression "(layout->script_output_section_data_list_).\n           super__Vector_base" (parenthesized_expression "(layout->script_output_section_data_list_)" ( (field_expression "layout->script_output_section_data_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (__position._M_current ==\n          (layout->script_output_section_data_list_).\n          super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n          ._M_impl._M_end_of_storage) {\n        local_20[0] = posd;\n        std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>::\n        _M_realloc_insert<gold::Output_section_data*_const&>\n                  (&layout->script_output_section_data_list_,__position,local_20);\n      }\n      else {\n        *__position._M_current = posd;\n        (layout->script_output_section_data_list_).\n        super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n        _M_impl._M_finish = __position._M_current + 1;\n      }" if (parenthesized_expression "(__position._M_current ==\n          (layout->script_output_section_data_list_).\n          super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n          ._M_impl._M_end_of_storage)" ( (field_expression "__position._M_current ==\n          (layout->script_output_section_data_list_).\n          super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n          ._M_impl._M_end_of_storage" (field_expression "__position._M_current ==\n          (layout->script_output_section_data_list_).\n          super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>\n          ._M_impl" (binary_expression "__position._M_current ==\n          (layout->script_output_section_data_list_).\n          super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_" (binary_expression "__position._M_current ==\n          (layout->script_output_section_data_list_).\n          super__Vector_base<gold::Output_section_data*,_std::allocator<gold" (binary_expression "__position._M_current ==\n          (layout->script_output_section_data_list_).\n          super__Vector_base<gold::Output_section_data*,_std" (binary_expression "__position._M_current ==\n          (layout->script_output_section_data_list_).\n          super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) == (binary_expression "(layout->script_output_section_data_list_).\n          super__Vector_base<gold" (field_expression "(layout->script_output_section_data_list_).\n          super__Vector_base" (parenthesized_expression "(layout->script_output_section_data_list_)" ( (field_expression "layout->script_output_section_data_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n        local_20[0] = posd;\n        std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>::\n        _M_realloc_insert<gold::Output_section_data*_const&>\n                  (&layout->script_output_section_data_list_,__position,local_20);\n      }" { (expression_statement "local_20[0] = posd;" (assignment_expression "local_20[0] = posd" (subscript_expression "local_20[0]" identifier [ number_literal ]) = identifier) ;) (ERROR "std::vector<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>::\n        _M_realloc_insert<gold::" (comma_expression "std::vector<gold::Output_section_data*,_std" identifier (ERROR "::vector<gold::Output_section_data*" : : (binary_expression "vector<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Output_section_data*>_>::\n        _M_realloc_insert<gold" (binary_expression "Output_section_data*>_>::\n        _M_realloc_insert" (binary_expression "Output_section_data*>_" identifier * (ERROR ">" >) identifier) > (ERROR "::" : :) identifier) < identifier) : :) (expression_statement "Output_section_data*_const&>\n                  (&layout->script_output_section_data_list_,__position,local_20);" (binary_expression "Output_section_data*_const&>\n                  (&layout->script_output_section_data_list_,__position,local_20)" (binary_expression "Output_section_data*_const" identifier * identifier) (ERROR "&" &) > (parenthesized_expression "(&layout->script_output_section_data_list_,__position,local_20)" ( (comma_expression "&layout->script_output_section_data_list_,__position,local_20" (pointer_expression "&layout->script_output_section_data_list_" & (field_expression "layout->script_output_section_data_list_" identifier -> field_identifier)) , (comma_expression "__position,local_20" identifier , identifier)) ))) ;) }) (else_clause "else {\n        *__position._M_current = posd;\n        (layout->script_output_section_data_list_).\n        super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n        _M_impl._M_finish = __position._M_current + 1;\n      }" else (compound_statement "{\n        *__position._M_current = posd;\n        (layout->script_output_section_data_list_).\n        super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n        _M_impl._M_finish = __position._M_current + 1;\n      }" { (expression_statement "*__position._M_current = posd;" (assignment_expression "*__position._M_current = posd" (pointer_expression "*__position._M_current" * (field_expression "__position._M_current" identifier . field_identifier)) = identifier) ;) (expression_statement "(layout->script_output_section_data_list_).\n        super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n        _M_impl._M_finish = __position._M_current + 1;" (assignment_expression "(layout->script_output_section_data_list_).\n        super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n        _M_impl._M_finish = __position._M_current + 1" (field_expression "(layout->script_output_section_data_list_).\n        super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n        _M_impl._M_finish" (field_expression "(layout->script_output_section_data_list_).\n        super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_>.\n        _M_impl" (binary_expression "(layout->script_output_section_data_list_).\n        super__Vector_base<gold::Output_section_data*,_std::allocator<gold::Output_section_data*>_" (binary_expression "(layout->script_output_section_data_list_).\n        super__Vector_base<gold::Output_section_data*,_std::allocator<gold" (binary_expression "(layout->script_output_section_data_list_).\n        super__Vector_base<gold::Output_section_data*,_std" (binary_expression "(layout->script_output_section_data_list_).\n        super__Vector_base<gold" (field_expression "(layout->script_output_section_data_list_).\n        super__Vector_base" (parenthesized_expression "(layout->script_output_section_data_list_)" ( (field_expression "layout->script_output_section_data_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_section_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "__position._M_current + 1" (field_expression "__position._M_current" identifier . field_identifier) + number_literal)) ;) }))) })) (expression_statement "uVar7 = this->size_;" (assignment_expression "uVar7 = this->size_" identifier = (field_expression "this->size_" identifier -> field_identifier)) ;) (expression_statement "uVar8 = *dot_value;" (assignment_expression "uVar8 = *dot_value" identifier = (pointer_expression "*dot_value" * identifier)) ;) (expression_statement "*(uint *)dot_value = (int)*dot_value + uVar7;" (assignment_expression "*(uint *)dot_value = (int)*dot_value + uVar7" (pointer_expression "*(uint *)dot_value" * (cast_expression "(uint *)dot_value" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(int)*dot_value + uVar7" (cast_expression "(int)*dot_value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*dot_value" * identifier)) + identifier)) ;) (expression_statement "*(int *)((int)dot_value + 4) =\n         *(int *)((int)dot_value + 4) + ((int)uVar7 >> 0x1f) + (uint)CARRY4((uint)uVar8,uVar7);" (assignment_expression "*(int *)((int)dot_value + 4) =\n         *(int *)((int)dot_value + 4) + ((int)uVar7 >> 0x1f) + (uint)CARRY4((uint)uVar8,uVar7)" (pointer_expression "*(int *)((int)dot_value + 4)" * (cast_expression "(int *)((int)dot_value + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)dot_value + 4)" ( (binary_expression "(int)dot_value + 4" (cast_expression "(int)dot_value" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)dot_value + 4) + ((int)uVar7 >> 0x1f) + (uint)CARRY4((uint)uVar8,uVar7)" (binary_expression "*(int *)((int)dot_value + 4) + ((int)uVar7 >> 0x1f)" (pointer_expression "*(int *)((int)dot_value + 4)" * (cast_expression "(int *)((int)dot_value + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)dot_value + 4)" ( (binary_expression "(int)dot_value + 4" (cast_expression "(int)dot_value" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + (parenthesized_expression "((int)uVar7 >> 0x1f)" ( (binary_expression "(int)uVar7 >> 0x1f" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4((uint)uVar8,uVar7)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)uVar8,uVar7)" identifier (argument_list "((uint)uVar8,uVar7)" ( (cast_expression "(uint)uVar8" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))))) ;) (return_statement "return;" return ;) })) comment (expression_statement "do_gold_unreachable("../../gold/script-sections.cc",0x4a9,"set_section_addresses");" (call_expression "do_gold_unreachable("../../gold/script-sections.cc",0x4a9,"set_section_addresses")" identifier (argument_list "("../../gold/script-sections.cc",0x4a9,"set_section_addresses")" ( (string_literal ""../../gold/script-sections.cc"" " string_content ") , number_literal , (string_literal ""set_section_addresses"" " string_content ") ))) ;) })))
(translation_unit "void FUN_001092f0(int param_1,undefined4 param_2,int param_3,int param_4,undefined4 param_5,\n                 undefined4 param_6,uint *param_7,undefined4 param_8,undefined4 *param_9)\n\n{\n  undefined1 uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1092f9;\n  if (param_4 != 0) {\n    puVar7 = (undefined4 *)FUN_0017ebf0(0x48);\n    puVar7[1] = 0;\n    uVar2 = *param_9;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar7[2] = 0;\n    puVar7[8] = 0;\n    puVar7[3] = iVar3;\n    puVar7[4] = iVar3 >> 0x1f;\n    puVar7[0x11] = uVar2;\n    uVar1 = *(undefined1 *)(param_1 + 8);\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0xb) = uVar1;\n    uVar2 = *(undefined4 *)(param_1 + 0xc);\n    *(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10;\n    *puVar7 = &PTR_FUN_002fe82c;\n    puVar7[0xc] = uVar2;\n    uVar4 = *param_7;\n    puVar7[0xd] = param_2;\n    uVar5 = param_7[1];\n    puVar7[10] = 0;\n    puVar7[5] = 0xffffffff;\n    puVar7[6] = 0xffffffff;\n    puVar7[0xe] = param_3;\n    puVar7[0xf] = uVar4;\n    puVar7[0x10] = uVar5;\n    FUN_000bf250(param_4,puVar7);\n    if (*(char *)(param_3 + 0x1d4) != '\0') {\n      puVar6 = *(undefined4 **)(param_3 + 0x1dc);\n      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }\n    }\n    uVar5 = *(uint *)(param_1 + 4);\n    uVar4 = *param_7;\n    *param_7 = *param_7 + uVar5;\n    param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5);\n    return;\n  }\n                    \n  FUN_0005f0b0("../../gold/script-sections.cc",0x4a9,"set_section_addresses",param_3);\n}\n\n" (function_definition "void FUN_001092f0(int param_1,undefined4 param_2,int param_3,int param_4,undefined4 param_5,\n                 undefined4 param_6,uint *param_7,undefined4 param_8,undefined4 *param_9)\n\n{\n  undefined1 uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1092f9;\n  if (param_4 != 0) {\n    puVar7 = (undefined4 *)FUN_0017ebf0(0x48);\n    puVar7[1] = 0;\n    uVar2 = *param_9;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar7[2] = 0;\n    puVar7[8] = 0;\n    puVar7[3] = iVar3;\n    puVar7[4] = iVar3 >> 0x1f;\n    puVar7[0x11] = uVar2;\n    uVar1 = *(undefined1 *)(param_1 + 8);\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0xb) = uVar1;\n    uVar2 = *(undefined4 *)(param_1 + 0xc);\n    *(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10;\n    *puVar7 = &PTR_FUN_002fe82c;\n    puVar7[0xc] = uVar2;\n    uVar4 = *param_7;\n    puVar7[0xd] = param_2;\n    uVar5 = param_7[1];\n    puVar7[10] = 0;\n    puVar7[5] = 0xffffffff;\n    puVar7[6] = 0xffffffff;\n    puVar7[0xe] = param_3;\n    puVar7[0xf] = uVar4;\n    puVar7[0x10] = uVar5;\n    FUN_000bf250(param_4,puVar7);\n    if (*(char *)(param_3 + 0x1d4) != '\0') {\n      puVar6 = *(undefined4 **)(param_3 + 0x1dc);\n      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }\n    }\n    uVar5 = *(uint *)(param_1 + 4);\n    uVar4 = *param_7;\n    *param_7 = *param_7 + uVar5;\n    param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5);\n    return;\n  }\n                    \n  FUN_0005f0b0("../../gold/script-sections.cc",0x4a9,"set_section_addresses",param_3);\n}" primitive_type (function_declarator "FUN_001092f0(int param_1,undefined4 param_2,int param_3,int param_4,undefined4 param_5,\n                 undefined4 param_6,uint *param_7,undefined4 param_8,undefined4 *param_9)" identifier (parameter_list "(int param_1,undefined4 param_2,int param_3,int param_4,undefined4 param_5,\n                 undefined4 param_6,uint *param_7,undefined4 param_8,undefined4 *param_9)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "uint *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "undefined4 *param_9" type_identifier (pointer_declarator "*param_9" * identifier)) ))) (compound_statement "{\n  undefined1 uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1092f9;\n  if (param_4 != 0) {\n    puVar7 = (undefined4 *)FUN_0017ebf0(0x48);\n    puVar7[1] = 0;\n    uVar2 = *param_9;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar7[2] = 0;\n    puVar7[8] = 0;\n    puVar7[3] = iVar3;\n    puVar7[4] = iVar3 >> 0x1f;\n    puVar7[0x11] = uVar2;\n    uVar1 = *(undefined1 *)(param_1 + 8);\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0xb) = uVar1;\n    uVar2 = *(undefined4 *)(param_1 + 0xc);\n    *(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10;\n    *puVar7 = &PTR_FUN_002fe82c;\n    puVar7[0xc] = uVar2;\n    uVar4 = *param_7;\n    puVar7[0xd] = param_2;\n    uVar5 = param_7[1];\n    puVar7[10] = 0;\n    puVar7[5] = 0xffffffff;\n    puVar7[6] = 0xffffffff;\n    puVar7[0xe] = param_3;\n    puVar7[0xf] = uVar4;\n    puVar7[0x10] = uVar5;\n    FUN_000bf250(param_4,puVar7);\n    if (*(char *)(param_3 + 0x1d4) != '\0') {\n      puVar6 = *(undefined4 **)(param_3 + 0x1dc);\n      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }\n    }\n    uVar5 = *(uint *)(param_1 + 4);\n    uVar4 = *param_7;\n    *param_7 = *param_7 + uVar5;\n    param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5);\n    return;\n  }\n                    \n  FUN_0005f0b0("../../gold/script-sections.cc",0x4a9,"set_section_addresses",param_3);\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *local_20 [3];" type_identifier (pointer_declarator "*local_20 [3]" * (array_declarator "local_20 [3]" identifier [ number_literal ])) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1092f9;" (assignment_expression "uStack_14 = 0x1092f9" identifier = number_literal) ;) (if_statement "if (param_4 != 0) {\n    puVar7 = (undefined4 *)FUN_0017ebf0(0x48);\n    puVar7[1] = 0;\n    uVar2 = *param_9;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar7[2] = 0;\n    puVar7[8] = 0;\n    puVar7[3] = iVar3;\n    puVar7[4] = iVar3 >> 0x1f;\n    puVar7[0x11] = uVar2;\n    uVar1 = *(undefined1 *)(param_1 + 8);\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0xb) = uVar1;\n    uVar2 = *(undefined4 *)(param_1 + 0xc);\n    *(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10;\n    *puVar7 = &PTR_FUN_002fe82c;\n    puVar7[0xc] = uVar2;\n    uVar4 = *param_7;\n    puVar7[0xd] = param_2;\n    uVar5 = param_7[1];\n    puVar7[10] = 0;\n    puVar7[5] = 0xffffffff;\n    puVar7[6] = 0xffffffff;\n    puVar7[0xe] = param_3;\n    puVar7[0xf] = uVar4;\n    puVar7[0x10] = uVar5;\n    FUN_000bf250(param_4,puVar7);\n    if (*(char *)(param_3 + 0x1d4) != '\0') {\n      puVar6 = *(undefined4 **)(param_3 + 0x1dc);\n      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }\n    }\n    uVar5 = *(uint *)(param_1 + 4);\n    uVar4 = *param_7;\n    *param_7 = *param_7 + uVar5;\n    param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5);\n    return;\n  }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar7 = (undefined4 *)FUN_0017ebf0(0x48);\n    puVar7[1] = 0;\n    uVar2 = *param_9;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar7[2] = 0;\n    puVar7[8] = 0;\n    puVar7[3] = iVar3;\n    puVar7[4] = iVar3 >> 0x1f;\n    puVar7[0x11] = uVar2;\n    uVar1 = *(undefined1 *)(param_1 + 8);\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0xb) = uVar1;\n    uVar2 = *(undefined4 *)(param_1 + 0xc);\n    *(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10;\n    *puVar7 = &PTR_FUN_002fe82c;\n    puVar7[0xc] = uVar2;\n    uVar4 = *param_7;\n    puVar7[0xd] = param_2;\n    uVar5 = param_7[1];\n    puVar7[10] = 0;\n    puVar7[5] = 0xffffffff;\n    puVar7[6] = 0xffffffff;\n    puVar7[0xe] = param_3;\n    puVar7[0xf] = uVar4;\n    puVar7[0x10] = uVar5;\n    FUN_000bf250(param_4,puVar7);\n    if (*(char *)(param_3 + 0x1d4) != '\0') {\n      puVar6 = *(undefined4 **)(param_3 + 0x1dc);\n      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }\n    }\n    uVar5 = *(uint *)(param_1 + 4);\n    uVar4 = *param_7;\n    *param_7 = *param_7 + uVar5;\n    param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5);\n    return;\n  }" { (expression_statement "puVar7 = (undefined4 *)FUN_0017ebf0(0x48);" (assignment_expression "puVar7 = (undefined4 *)FUN_0017ebf0(0x48)" identifier = (cast_expression "(undefined4 *)FUN_0017ebf0(0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0017ebf0(0x48)" identifier (argument_list "(0x48)" ( number_literal ))))) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar2 = *param_9;" (assignment_expression "uVar2 = *param_9" identifier = (pointer_expression "*param_9" * identifier)) ;) (expression_statement "iVar3 = *(int *)(param_1 + 4);" (assignment_expression "iVar3 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[8] = 0;" (assignment_expression "puVar7[8] = 0" (subscript_expression "puVar7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = iVar3;" (assignment_expression "puVar7[3] = iVar3" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[4] = iVar3 >> 0x1f;" (assignment_expression "puVar7[4] = iVar3 >> 0x1f" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = (binary_expression "iVar3 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "puVar7[0x11] = uVar2;" (assignment_expression "puVar7[0x11] = uVar2" (subscript_expression "puVar7[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = *(undefined1 *)(param_1 + 8);" (assignment_expression "uVar1 = *(undefined1 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined1 *)(param_1 + 8)" * (cast_expression "(undefined1 *)(param_1 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar7[9] = 0;" (assignment_expression "puVar7[9] = 0" (subscript_expression "puVar7[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar7 + 0xb) = uVar1;" (assignment_expression "*(undefined1 *)(puVar7 + 0xb) = uVar1" (pointer_expression "*(undefined1 *)(puVar7 + 0xb)" * (cast_expression "(undefined1 *)(puVar7 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0xb)" ( (binary_expression "puVar7 + 0xb" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = *(undefined4 *)(param_1 + 0xc);" (assignment_expression "uVar2 = *(undefined4 *)(param_1 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar7 + 7)" * (cast_expression "(byte *)(puVar7 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 7)" ( (binary_expression "puVar7 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar7 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar7 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar7 + 7)" * (cast_expression "(byte *)(puVar7 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 7)" ( (binary_expression "puVar7 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "*puVar7 = &PTR_FUN_002fe82c;" (assignment_expression "*puVar7 = &PTR_FUN_002fe82c" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR_FUN_002fe82c" & identifier)) ;) (expression_statement "puVar7[0xc] = uVar2;" (assignment_expression "puVar7[0xc] = uVar2" (subscript_expression "puVar7[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = *param_7;" (assignment_expression "uVar4 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "puVar7[0xd] = param_2;" (assignment_expression "puVar7[0xd] = param_2" (subscript_expression "puVar7[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = param_7[1];" (assignment_expression "uVar5 = param_7[1]" identifier = (subscript_expression "param_7[1]" identifier [ number_literal ])) ;) (expression_statement "puVar7[10] = 0;" (assignment_expression "puVar7[10] = 0" (subscript_expression "puVar7[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[5] = 0xffffffff;" (assignment_expression "puVar7[5] = 0xffffffff" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 0xffffffff;" (assignment_expression "puVar7[6] = 0xffffffff" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[0xe] = param_3;" (assignment_expression "puVar7[0xe] = param_3" (subscript_expression "puVar7[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[0xf] = uVar4;" (assignment_expression "puVar7[0xf] = uVar4" (subscript_expression "puVar7[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[0x10] = uVar5;" (assignment_expression "puVar7[0x10] = uVar5" (subscript_expression "puVar7[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_000bf250(param_4,puVar7);" (call_expression "FUN_000bf250(param_4,puVar7)" identifier (argument_list "(param_4,puVar7)" ( identifier , identifier ))) ;) (if_statement "if (*(char *)(param_3 + 0x1d4) != '\0') {\n      puVar6 = *(undefined4 **)(param_3 + 0x1dc);\n      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }\n    }" if (parenthesized_expression "(*(char *)(param_3 + 0x1d4) != '\0')" ( (binary_expression "*(char *)(param_3 + 0x1d4) != '\0'" (pointer_expression "*(char *)(param_3 + 0x1d4)" * (cast_expression "(char *)(param_3 + 0x1d4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1d4)" ( (binary_expression "param_3 + 0x1d4" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      puVar6 = *(undefined4 **)(param_3 + 0x1dc);\n      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }\n    }" { (expression_statement "puVar6 = *(undefined4 **)(param_3 + 0x1dc);" (assignment_expression "puVar6 = *(undefined4 **)(param_3 + 0x1dc)" identifier = (pointer_expression "*(undefined4 **)(param_3 + 0x1dc)" * (cast_expression "(undefined4 **)(param_3 + 0x1dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x1dc)" ( (binary_expression "param_3 + 0x1dc" identifier + number_literal) ))))) ;) (if_statement "if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }" if (parenthesized_expression "(puVar6 == *(undefined4 **)(param_3 + 0x1e0))" ( (binary_expression "puVar6 == *(undefined4 **)(param_3 + 0x1e0)" identifier == (pointer_expression "*(undefined4 **)(param_3 + 0x1e0)" * (cast_expression "(undefined4 **)(param_3 + 0x1e0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x1e0)" ( (binary_expression "param_3 + 0x1e0" identifier + number_literal) ))))) )) (compound_statement "{\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }" { (expression_statement "local_20[0] = puVar7;" (assignment_expression "local_20[0] = puVar7" (subscript_expression "local_20[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);" (call_expression "FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20)" identifier (argument_list "(param_3 + 0x1d8,puVar6,local_20)" ( (binary_expression "param_3 + 0x1d8" identifier + number_literal) , identifier , identifier ))) ;) }) (else_clause "else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }" else (compound_statement "{\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }" { (expression_statement "*puVar6 = puVar7;" (assignment_expression "*puVar6 = puVar7" (pointer_expression "*puVar6" * identifier) = identifier) ;) (expression_statement "*(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;" (assignment_expression "*(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1" (pointer_expression "*(undefined4 **)(param_3 + 0x1dc)" * (cast_expression "(undefined4 **)(param_3 + 0x1dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x1dc)" ( (binary_expression "param_3 + 0x1dc" identifier + number_literal) )))) = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) }))) })) (expression_statement "uVar5 = *(uint *)(param_1 + 4);" (assignment_expression "uVar5 = *(uint *)(param_1 + 4)" identifier = (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *param_7;" (assignment_expression "uVar4 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "*param_7 = *param_7 + uVar5;" (assignment_expression "*param_7 = *param_7 + uVar5" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 + uVar5" (pointer_expression "*param_7" * identifier) + identifier)) ;) (expression_statement "param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5);" (assignment_expression "param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5)" (subscript_expression "param_7[1]" identifier [ number_literal ]) = (binary_expression "param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5)" (binary_expression "param_7[1] + ((int)uVar5 >> 0x1f)" (subscript_expression "param_7[1]" identifier [ number_literal ]) + (parenthesized_expression "((int)uVar5 >> 0x1f)" ( (binary_expression "(int)uVar5 >> 0x1f" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar4,uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar4,uVar5)" identifier (argument_list "(uVar4,uVar5)" ( identifier , identifier )))))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0005f0b0("../../gold/script-sections.cc",0x4a9,"set_section_addresses",param_3);" (call_expression "FUN_0005f0b0("../../gold/script-sections.cc",0x4a9,"set_section_addresses",param_3)" identifier (argument_list "("../../gold/script-sections.cc",0x4a9,"set_section_addresses",param_3)" ( (string_literal ""../../gold/script-sections.cc"" " string_content ") , number_literal , (string_literal ""set_section_addresses"" " string_content ") , identifier ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = 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 IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })))
(function_definition "void FUN_001092f0(int param_1,undefined4 param_2,int param_3,int param_4,undefined4 param_5,\n                 undefined4 param_6,uint *param_7,undefined4 param_8,undefined4 *param_9)\n\n{\n  undefined1 uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1092f9;\n  if (param_4 != 0) {\n    puVar7 = (undefined4 *)FUN_0017ebf0(0x48);\n    puVar7[1] = 0;\n    uVar2 = *param_9;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar7[2] = 0;\n    puVar7[8] = 0;\n    puVar7[3] = iVar3;\n    puVar7[4] = iVar3 >> 0x1f;\n    puVar7[0x11] = uVar2;\n    uVar1 = *(undefined1 *)(param_1 + 8);\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0xb) = uVar1;\n    uVar2 = *(undefined4 *)(param_1 + 0xc);\n    *(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10;\n    *puVar7 = &PTR_FUN_002fe82c;\n    puVar7[0xc] = uVar2;\n    uVar4 = *param_7;\n    puVar7[0xd] = param_2;\n    uVar5 = param_7[1];\n    puVar7[10] = 0;\n    puVar7[5] = 0xffffffff;\n    puVar7[6] = 0xffffffff;\n    puVar7[0xe] = param_3;\n    puVar7[0xf] = uVar4;\n    puVar7[0x10] = uVar5;\n    FUN_000bf250(param_4,puVar7);\n    if (*(char *)(param_3 + 0x1d4) != '\0') {\n      puVar6 = *(undefined4 **)(param_3 + 0x1dc);\n      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }\n    }\n    uVar5 = *(uint *)(param_1 + 4);\n    uVar4 = *param_7;\n    *param_7 = *param_7 + uVar5;\n    param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5);\n    return;\n  }\n                    \n  FUN_0005f0b0("../../gold/script-sections.cc",0x4a9,"set_section_addresses",param_3);\n}" (primitive_type "void") (function_declarator "FUN_001092f0(int param_1,undefined4 param_2,int param_3,int param_4,undefined4 param_5,\n                 undefined4 param_6,uint *param_7,undefined4 param_8,undefined4 *param_9)" (identifier "FUN_001092f0") (parameter_list "(int param_1,undefined4 param_2,int param_3,int param_4,undefined4 param_5,\n                 undefined4 param_6,uint *param_7,undefined4 param_8,undefined4 *param_9)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "uint *param_7" (type_identifier "uint") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) (, ",") (parameter_declaration "undefined4 param_8" (type_identifier "undefined4") (identifier "param_8")) (, ",") (parameter_declaration "undefined4 *param_9" (type_identifier "undefined4") (pointer_declarator "*param_9" (* "*") (identifier "param_9"))) () ")"))) (compound_statement "{\n  undefined1 uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1092f9;\n  if (param_4 != 0) {\n    puVar7 = (undefined4 *)FUN_0017ebf0(0x48);\n    puVar7[1] = 0;\n    uVar2 = *param_9;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar7[2] = 0;\n    puVar7[8] = 0;\n    puVar7[3] = iVar3;\n    puVar7[4] = iVar3 >> 0x1f;\n    puVar7[0x11] = uVar2;\n    uVar1 = *(undefined1 *)(param_1 + 8);\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0xb) = uVar1;\n    uVar2 = *(undefined4 *)(param_1 + 0xc);\n    *(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10;\n    *puVar7 = &PTR_FUN_002fe82c;\n    puVar7[0xc] = uVar2;\n    uVar4 = *param_7;\n    puVar7[0xd] = param_2;\n    uVar5 = param_7[1];\n    puVar7[10] = 0;\n    puVar7[5] = 0xffffffff;\n    puVar7[6] = 0xffffffff;\n    puVar7[0xe] = param_3;\n    puVar7[0xf] = uVar4;\n    puVar7[0x10] = uVar5;\n    FUN_000bf250(param_4,puVar7);\n    if (*(char *)(param_3 + 0x1d4) != '\0') {\n      puVar6 = *(undefined4 **)(param_3 + 0x1dc);\n      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }\n    }\n    uVar5 = *(uint *)(param_1 + 4);\n    uVar4 = *param_7;\n    *param_7 = *param_7 + uVar5;\n    param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5);\n    return;\n  }\n                    \n  FUN_0005f0b0("../../gold/script-sections.cc",0x4a9,"set_section_addresses",param_3);\n}" ({ "{") (declaration "undefined1 uVar1;" (type_identifier "undefined1") (identifier "uVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 *local_20 [3];" (type_identifier "undefined4") (pointer_declarator "*local_20 [3]" (* "*") (array_declarator "local_20 [3]" (identifier "local_20") ([ "[") (number_literal "3") (] "]"))) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x1092f9;" (assignment_expression "uStack_14 = 0x1092f9" (identifier "uStack_14") (= "=") (number_literal "0x1092f9")) (; ";")) (if_statement "if (param_4 != 0) {\n    puVar7 = (undefined4 *)FUN_0017ebf0(0x48);\n    puVar7[1] = 0;\n    uVar2 = *param_9;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar7[2] = 0;\n    puVar7[8] = 0;\n    puVar7[3] = iVar3;\n    puVar7[4] = iVar3 >> 0x1f;\n    puVar7[0x11] = uVar2;\n    uVar1 = *(undefined1 *)(param_1 + 8);\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0xb) = uVar1;\n    uVar2 = *(undefined4 *)(param_1 + 0xc);\n    *(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10;\n    *puVar7 = &PTR_FUN_002fe82c;\n    puVar7[0xc] = uVar2;\n    uVar4 = *param_7;\n    puVar7[0xd] = param_2;\n    uVar5 = param_7[1];\n    puVar7[10] = 0;\n    puVar7[5] = 0xffffffff;\n    puVar7[6] = 0xffffffff;\n    puVar7[0xe] = param_3;\n    puVar7[0xf] = uVar4;\n    puVar7[0x10] = uVar5;\n    FUN_000bf250(param_4,puVar7);\n    if (*(char *)(param_3 + 0x1d4) != '\0') {\n      puVar6 = *(undefined4 **)(param_3 + 0x1dc);\n      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }\n    }\n    uVar5 = *(uint *)(param_1 + 4);\n    uVar4 = *param_7;\n    *param_7 = *param_7 + uVar5;\n    param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5);\n    return;\n  }" (if "if") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    puVar7 = (undefined4 *)FUN_0017ebf0(0x48);\n    puVar7[1] = 0;\n    uVar2 = *param_9;\n    iVar3 = *(int *)(param_1 + 4);\n    puVar7[2] = 0;\n    puVar7[8] = 0;\n    puVar7[3] = iVar3;\n    puVar7[4] = iVar3 >> 0x1f;\n    puVar7[0x11] = uVar2;\n    uVar1 = *(undefined1 *)(param_1 + 8);\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0xb) = uVar1;\n    uVar2 = *(undefined4 *)(param_1 + 0xc);\n    *(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10;\n    *puVar7 = &PTR_FUN_002fe82c;\n    puVar7[0xc] = uVar2;\n    uVar4 = *param_7;\n    puVar7[0xd] = param_2;\n    uVar5 = param_7[1];\n    puVar7[10] = 0;\n    puVar7[5] = 0xffffffff;\n    puVar7[6] = 0xffffffff;\n    puVar7[0xe] = param_3;\n    puVar7[0xf] = uVar4;\n    puVar7[0x10] = uVar5;\n    FUN_000bf250(param_4,puVar7);\n    if (*(char *)(param_3 + 0x1d4) != '\0') {\n      puVar6 = *(undefined4 **)(param_3 + 0x1dc);\n      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }\n    }\n    uVar5 = *(uint *)(param_1 + 4);\n    uVar4 = *param_7;\n    *param_7 = *param_7 + uVar5;\n    param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5);\n    return;\n  }" ({ "{") (expression_statement "puVar7 = (undefined4 *)FUN_0017ebf0(0x48);" (assignment_expression "puVar7 = (undefined4 *)FUN_0017ebf0(0x48)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)FUN_0017ebf0(0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0017ebf0(0x48)" (identifier "FUN_0017ebf0") (argument_list "(0x48)" (( "(") (number_literal "0x48") () ")"))))) (; ";")) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = *param_9;" (assignment_expression "uVar2 = *param_9" (identifier "uVar2") (= "=") (pointer_expression "*param_9" (* "*") (identifier "param_9"))) (; ";")) (expression_statement "iVar3 = *(int *)(param_1 + 4);" (assignment_expression "iVar3 = *(int *)(param_1 + 4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[8] = 0;" (assignment_expression "puVar7[8] = 0" (subscript_expression "puVar7[8]" (identifier "puVar7") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[3] = iVar3;" (assignment_expression "puVar7[3] = iVar3" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "puVar7[4] = iVar3 >> 0x1f;" (assignment_expression "puVar7[4] = iVar3 >> 0x1f" (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "iVar3 >> 0x1f" (identifier "iVar3") (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "puVar7[0x11] = uVar2;" (assignment_expression "puVar7[0x11] = uVar2" (subscript_expression "puVar7[0x11]" (identifier "puVar7") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar1 = *(undefined1 *)(param_1 + 8);" (assignment_expression "uVar1 = *(undefined1 *)(param_1 + 8)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)(param_1 + 8)" (* "*") (cast_expression "(undefined1 *)(param_1 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "puVar7[9] = 0;" (assignment_expression "puVar7[9] = 0" (subscript_expression "puVar7[9]" (identifier "puVar7") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar7 + 0xb) = uVar1;" (assignment_expression "*(undefined1 *)(puVar7 + 0xb) = uVar1" (pointer_expression "*(undefined1 *)(puVar7 + 0xb)" (* "*") (cast_expression "(undefined1 *)(puVar7 + 0xb)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0xb)" (( "(") (binary_expression "puVar7 + 0xb" (identifier "puVar7") (+ "+") (number_literal "0xb")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "uVar2 = *(undefined4 *)(param_1 + 0xc);" (assignment_expression "uVar2 = *(undefined4 *)(param_1 + 0xc)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar7 + 7)" (* "*") (cast_expression "(byte *)(puVar7 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 7)" (( "(") (binary_expression "puVar7 + 7" (identifier "puVar7") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar7 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar7 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar7 + 7)" (* "*") (cast_expression "(byte *)(puVar7 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 7)" (( "(") (binary_expression "puVar7 + 7" (identifier "puVar7") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xe0")) (| "|") (number_literal "10"))) (; ";")) (expression_statement "*puVar7 = &PTR_FUN_002fe82c;" (assignment_expression "*puVar7 = &PTR_FUN_002fe82c" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (pointer_expression "&PTR_FUN_002fe82c" (& "&") (identifier "PTR_FUN_002fe82c"))) (; ";")) (expression_statement "puVar7[0xc] = uVar2;" (assignment_expression "puVar7[0xc] = uVar2" (subscript_expression "puVar7[0xc]" (identifier "puVar7") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar4 = *param_7;" (assignment_expression "uVar4 = *param_7" (identifier "uVar4") (= "=") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (; ";")) (expression_statement "puVar7[0xd] = param_2;" (assignment_expression "puVar7[0xd] = param_2" (subscript_expression "puVar7[0xd]" (identifier "puVar7") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "uVar5 = param_7[1];" (assignment_expression "uVar5 = param_7[1]" (identifier "uVar5") (= "=") (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar7[10] = 0;" (assignment_expression "puVar7[10] = 0" (subscript_expression "puVar7[10]" (identifier "puVar7") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[5] = 0xffffffff;" (assignment_expression "puVar7[5] = 0xffffffff" (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar7[6] = 0xffffffff;" (assignment_expression "puVar7[6] = 0xffffffff" (subscript_expression "puVar7[6]" (identifier "puVar7") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar7[0xe] = param_3;" (assignment_expression "puVar7[0xe] = param_3" (subscript_expression "puVar7[0xe]" (identifier "puVar7") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar7[0xf] = uVar4;" (assignment_expression "puVar7[0xf] = uVar4" (subscript_expression "puVar7[0xf]" (identifier "puVar7") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar7[0x10] = uVar5;" (assignment_expression "puVar7[0x10] = uVar5" (subscript_expression "puVar7[0x10]" (identifier "puVar7") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "FUN_000bf250(param_4,puVar7);" (call_expression "FUN_000bf250(param_4,puVar7)" (identifier "FUN_000bf250") (argument_list "(param_4,puVar7)" (( "(") (identifier "param_4") (, ",") (identifier "puVar7") () ")"))) (; ";")) (if_statement "if (*(char *)(param_3 + 0x1d4) != '\0') {\n      puVar6 = *(undefined4 **)(param_3 + 0x1dc);\n      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }\n    }" (if "if") (parenthesized_expression "(*(char *)(param_3 + 0x1d4) != '\0')" (( "(") (binary_expression "*(char *)(param_3 + 0x1d4) != '\0'" (pointer_expression "*(char *)(param_3 + 0x1d4)" (* "*") (cast_expression "(char *)(param_3 + 0x1d4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x1d4)" (( "(") (binary_expression "param_3 + 0x1d4" (identifier "param_3") (+ "+") (number_literal "0x1d4")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      puVar6 = *(undefined4 **)(param_3 + 0x1dc);\n      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }\n    }" ({ "{") (expression_statement "puVar6 = *(undefined4 **)(param_3 + 0x1dc);" (assignment_expression "puVar6 = *(undefined4 **)(param_3 + 0x1dc)" (identifier "puVar6") (= "=") (pointer_expression "*(undefined4 **)(param_3 + 0x1dc)" (* "*") (cast_expression "(undefined4 **)(param_3 + 0x1dc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x1dc)" (( "(") (binary_expression "param_3 + 0x1dc" (identifier "param_3") (+ "+") (number_literal "0x1dc")) () ")"))))) (; ";")) (if_statement "if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }\n      else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }" (if "if") (parenthesized_expression "(puVar6 == *(undefined4 **)(param_3 + 0x1e0))" (( "(") (binary_expression "puVar6 == *(undefined4 **)(param_3 + 0x1e0)" (identifier "puVar6") (== "==") (pointer_expression "*(undefined4 **)(param_3 + 0x1e0)" (* "*") (cast_expression "(undefined4 **)(param_3 + 0x1e0)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x1e0)" (( "(") (binary_expression "param_3 + 0x1e0" (identifier "param_3") (+ "+") (number_literal "0x1e0")) () ")"))))) () ")")) (compound_statement "{\n        local_20[0] = puVar7;\n        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);\n      }" ({ "{") (expression_statement "local_20[0] = puVar7;" (assignment_expression "local_20[0] = puVar7" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);" (call_expression "FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20)" (identifier "FUN_0010e8b0") (argument_list "(param_3 + 0x1d8,puVar6,local_20)" (( "(") (binary_expression "param_3 + 0x1d8" (identifier "param_3") (+ "+") (number_literal "0x1d8")) (, ",") (identifier "puVar6") (, ",") (identifier "local_20") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }" (else "else") (compound_statement "{\n        *puVar6 = puVar7;\n        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;\n      }" ({ "{") (expression_statement "*puVar6 = puVar7;" (assignment_expression "*puVar6 = puVar7" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "*(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;" (assignment_expression "*(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1" (pointer_expression "*(undefined4 **)(param_3 + 0x1dc)" (* "*") (cast_expression "(undefined4 **)(param_3 + 0x1dc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x1dc)" (( "(") (binary_expression "param_3 + 0x1dc" (identifier "param_3") (+ "+") (number_literal "0x1dc")) () ")")))) (= "=") (binary_expression "puVar6 + 1" (identifier "puVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "uVar5 = *(uint *)(param_1 + 4);" (assignment_expression "uVar5 = *(uint *)(param_1 + 4)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(param_1 + 4)" (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar4 = *param_7;" (assignment_expression "uVar4 = *param_7" (identifier "uVar4") (= "=") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (; ";")) (expression_statement "*param_7 = *param_7 + uVar5;" (assignment_expression "*param_7 = *param_7 + uVar5" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (binary_expression "*param_7 + uVar5" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (+ "+") (identifier "uVar5"))) (; ";")) (expression_statement "param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5);" (assignment_expression "param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5)" (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5)" (binary_expression "param_7[1] + ((int)uVar5 >> 0x1f)" (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]")) (+ "+") (parenthesized_expression "((int)uVar5 >> 0x1f)" (( "(") (binary_expression "(int)uVar5 >> 0x1f" (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")) (>> ">>") (number_literal "0x1f")) () ")"))) (+ "+") (cast_expression "(uint)CARRY4(uVar4,uVar5)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar4,uVar5)" (identifier "CARRY4") (argument_list "(uVar4,uVar5)" (( "(") (identifier "uVar4") (, ",") (identifier "uVar5") () ")")))))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0005f0b0("../../gold/script-sections.cc",0x4a9,"set_section_addresses",param_3);" (call_expression "FUN_0005f0b0("../../gold/script-sections.cc",0x4a9,"set_section_addresses",param_3)" (identifier "FUN_0005f0b0") (argument_list "("../../gold/script-sections.cc",0x4a9,"set_section_addresses",param_3)" (( "(") (string_literal ""../../gold/script-sections.cc"" (" """) (string_content "../../gold/script-sections.cc") (" """)) (, ",") (number_literal "0x4a9") (, ",") (string_literal ""set_section_addresses"" (" """) (string_content "set_section_addresses") (" """)) (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}")))

/* 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: void set_section_addresses(Output_section_element_data * this,
   Symbol_table * symtab, Layout * layout, Output_section * os, uint64_t param_4, uint64_t *
   dot_value, uint64_t * param_6, Output_section * * dot_section, string * param_8,
   Input_section_list * param_9) */

void __thiscall
var_6::type_1::function_1
          (type_1 *this,type_2 *symtab,type_3 *layout,type_4 *var_1,
          uint64_t param_5,uint64_t *dot_value,uint64_t *param_7,type_4 **dot_section,
          type_5 *param_9,type_6 *param_10)

{
  type_7 var_4;
  bool bVar2;
  type_4 *pOVar3;
  int var_3;
  type_8 *pEVar5;
  type_9 uVar6;
  type_10 var_10;
  type_11 __position;
  uint64_t uVar8;
  type_12 *posd;
  type_12 *local_20 [3];
  type_9 uStack_14;
  
  uStack_14 = 0x1092f9;
  if (var_1 != (type_4 *)0x0) {
    posd = (type_12 *)var_2(0x48);
    *(type_9 *)&(posd->super_Output_data).address_ = 0;
    pOVar3 = *dot_section;
    var_3 = this->size_;
    *(type_9 *)((int)&(posd->super_Output_data).address_ + 4) = 0;
    posd->output_section_ = (type_4 *)0x0;
    *(int *)&(posd->super_Output_data).data_size_ = var_3;
    *(int *)((int)&(posd->super_Output_data).data_size_ + 4) = var_3 >> 0x1f;
    var_4 = (posd->super_Output_data).field_0x1c;
    *(type_4 **)((int)&posd[1].super_Output_data.offset_ + 4) = pOVar3;
    bVar2 = this->is_signed_;
    *(type_9 *)&posd->addralign_ = 0;
    *(bool *)&posd[1].super_Output_data._vptr_Output_data = bVar2;
    pEVar5 = this->val_;
    (posd->super_Output_data).field_0x1c = var_4 & 0xe0 | 10;
    (posd->super_Output_data)._vptr_Output_data =
         (type_13 **)&PTR__Output_data_expression_002fe82c;
    *(type_8 **)&posd[1].super_Output_data.address_ = pEVar5;
    uVar8 = *dot_value;
    *(type_2 **)((int)&posd[1].super_Output_data.address_ + 4) = symtab;
    uVar6 = *(type_9 *)((int)dot_value + 4);
    *(type_9 *)((int)&posd->addralign_ + 4) = 0;
    *(type_9 *)&(posd->super_Output_data).offset_ = 0xffffffff;
    *(type_9 *)((int)&(posd->super_Output_data).offset_ + 4) = 0xffffffff;
    *(type_3 **)&posd[1].super_Output_data.data_size_ = layout;
    *(int *)((int)&posd[1].super_Output_data.data_size_ + 4) = (int)uVar8;
    *(type_9 *)&posd[1].super_Output_data.offset_ = uVar6;
    Output_section::var_5(var_1,posd);
    if (layout->record_output_section_data_from_script_ != false) {
      __position._M_current =
           (layout->script_output_section_data_list_).
           super__Vector_base<var_6::type_12*,var_7::allocator<var_6::type_12*>var_8>
           ._M_impl._M_finish;
      if (__position._M_current ==
          (layout->script_output_section_data_list_).
          super__Vector_base<var_6::type_12*,var_7::allocator<var_6::type_12*>var_8>
          ._M_impl._M_end_of_storage) {
        local_20[0] = posd;
        std::vector<var_6::type_12*,var_7::allocator<var_6::type_12*>var_8>::
        _M_realloc_insert<var_6::type_12*var_9&>
                  (&layout->script_output_section_data_list_,__position,local_20);
      }
      else {
        *__position._M_current = posd;
        (layout->script_output_section_data_list_).
        super__Vector_base<var_6::type_12*,var_7::allocator<var_6::type_12*>var_8>.
        _M_impl._M_finish = __position._M_current + 1;
      }
    }
    var_10 = this->size_;
    uVar8 = *dot_value;
    *(type_10 *)dot_value = (int)*dot_value + var_10;
    *(int *)((int)dot_value + 4) =
         *(int *)((int)dot_value + 4) + ((int)var_10 >> 0x1f) + (type_10)var_11((type_10)uVar8,var_10);
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_12("../../gold/script-sections.cc",0x4a9,"set_section_addresses");
}


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

void MASKED(int param_1,undefined4 param_2,int param_3,int param_4,undefined4 param_5,
                 undefined4 param_6,uint *param_7,undefined4 param_8,undefined4 *param_9)

{
  undefined1 uVar1;
  undefined4 uVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  undefined4 *puVar6;
  undefined4 *puVar7;
  undefined4 *local_20 [3];
  undefined4 uStack_14;
  
  uStack_14 = 0x1092f9;
  if (param_4 != 0) {
    puVar7 = (undefined4 *)FUN_0017ebf0(0x48);
    puVar7[1] = 0;
    uVar2 = *param_9;
    iVar3 = *(int *)(param_1 + 4);
    puVar7[2] = 0;
    puVar7[8] = 0;
    puVar7[3] = iVar3;
    puVar7[4] = iVar3 >> 0x1f;
    puVar7[0x11] = uVar2;
    uVar1 = *(undefined1 *)(param_1 + 8);
    puVar7[9] = 0;
    *(undefined1 *)(puVar7 + 0xb) = uVar1;
    uVar2 = *(undefined4 *)(param_1 + 0xc);
    *(byte *)(puVar7 + 7) = *(byte *)(puVar7 + 7) & 0xe0 | 10;
    *puVar7 = &PTR_FUN_002fe82c;
    puVar7[0xc] = uVar2;
    uVar4 = *param_7;
    puVar7[0xd] = param_2;
    uVar5 = param_7[1];
    puVar7[10] = 0;
    puVar7[5] = 0xffffffff;
    puVar7[6] = 0xffffffff;
    puVar7[0xe] = param_3;
    puVar7[0xf] = uVar4;
    puVar7[0x10] = uVar5;
    FUN_000bf250(param_4,puVar7);
    if (*(char *)(param_3 + 0x1d4) != '\0') {
      puVar6 = *(undefined4 **)(param_3 + 0x1dc);
      if (puVar6 == *(undefined4 **)(param_3 + 0x1e0)) {
        local_20[0] = puVar7;
        FUN_0010e8b0(param_3 + 0x1d8,puVar6,local_20);
      }
      else {
        *puVar6 = puVar7;
        *(undefined4 **)(param_3 + 0x1dc) = puVar6 + 1;
      }
    }
    uVar5 = *(uint *)(param_1 + 4);
    uVar4 = *param_7;
    *param_7 = *param_7 + uVar5;
    param_7[1] = param_7[1] + ((int)uVar5 >> 0x1f) + (uint)CARRY4(uVar4,uVar5);
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0005f0b0("../../gold/script-sections.cc",0x4a9,"set_section_addresses",param_3);
}

