
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* WARNING: Enum "STT": Some values do not have unique names */
/* DWARF original prototype: uint64_t value(Binary_rshift * this, Expression_eval_info * eei) */

uint64_t __thiscall gold::Binary_rshift::value(Binary_rshift *this,Expression_eval_info *eei)

{
  uint64_t right_alignment;
  uint64_t left_alignment;
  Output_section *right_section;
  Output_section *left_section;
  
  left_alignment._4_4_ = 0;
                    /* WARNING: Subroutine does not return */
  left_alignment._0_4_ = 0;
  Expression::eval_maybe_dot
            ((this->super_Binary_expression).left_,eei->symtab,eei->layout,eei->check_assertions,
             eei->is_dot_available,eei->dot_value,eei->dot_section,&left_section,&left_alignment,
             (STT *)0x0,(STV *)0x0,(uchar *)0x0,false,eei->is_valid_pointer);
}



ulonglong FUN_0030390c(int param_1,undefined4 *param_2)

{
  uint uVar1;
  undefined4 uVar2;
  uint extraout_v1;
  undefined8 uVar3;
  ulonglong uVar4;
  undefined4 in_stack_ffffff94;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  int local_28;
  int local_24;
  
  local_2c = 0;
  local_30 = 0;
  uVar3 = gold::Expression::eval_maybe_dot
                    (*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),
                     *(bool *)(param_2 + 2),
                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),
                     (Output_section *)param_2[4],(Output_section **)param_2[5],
                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,
                     (bool *)0x0);
  uVar1 = (uint)((ulonglong)uVar3 >> 0x20);
  local_34 = 0;
  local_38 = 0;
  gold::Expression::eval_maybe_dot
            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),
             *(bool *)(param_2 + 2),
             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),
             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],
             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0);
  if ((local_24 != 0) || (local_28 != 0)) {
    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {
      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,
                         PTR_s_in_a_linker_script_004c191c + 0x7f10);
      return uVar4;
    }
    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0') {
      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);
      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);
    }
  }
  if ((extraout_v1 & 0x20) == 0) {
    return CONCAT44(uVar1 >> (extraout_v1 & 0x1f),
                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f));
  }
  return (ulonglong)(uVar1 >> (extraout_v1 & 0x1f));
}


lui gp,0x1c
addiu gp,gp,0x5934
addu gp,gp,t9
addiu sp,sp,-0x80
addiu v0,sp,0x50
sw zero,0x38(sp)
sw v0,0x28(sp)
addiu v0,sp,0x5c
sw zero,0x34(sp)
sw zero,0x30(sp)
sw v0,0x24(sp)
sw zero,0x2c(sp)
sw s3,0x6c(sp)
sw s4,0x70(sp)
or s4,a0,zero
sw s0,0x60(sp)
or s0,a1,zero
sw s7,0x78(sp)
or s7,zero,zero
sw s6,0x74(sp)
or s6,zero,zero
sw gp,0x40(sp)
sw ra,0x7c(sp)
sw s2,0x68(sp)
sw s1,0x64(sp)
sw s7,0x54(sp)
lw s3,-0x6a68(gp)
lw t2,0x30(a1)
lw t1,0x14(a1)
lw t0,0x10(a1)
or t9,s3,zero
lbu a3,0x8(a1)
lw a2,0x4(a1)
lw v1,0x18(a1)
lbu v0,0x9(a1)
lw a0,0x4(a0)
lw a1,0x0(a1)
sw t2,0x3c(sp)
sw t1,0x1c(sp)
sw t0,0x18(sp)
sw v1,0x20(sp)
sw v0,0x10(sp)
bal 0x002fdec8
_sw s6,0x50(sp)
or t9,s3,zero
or s1,v1,zero
lw t3,0x30(s0)
addiu v1,sp,0x48
lw t2,0x18(s0)
lw t1,0x14(s0)
or s2,v0,zero
lw t0,0x10(s0)
lbu v0,0x9(s0)
lbu a3,0x8(s0)
lw a2,0x4(s0)
lw a1,0x0(s0)
lw a0,0x8(s4)
sw v1,0x28(sp)
addiu v1,sp,0x58
sw t3,0x3c(sp)
sw zero,0x38(sp)
sw zero,0x34(sp)
sw zero,0x30(sp)
sw zero,0x2c(sp)
sw v1,0x24(sp)
sw t2,0x20(sp)
sw t1,0x1c(sp)
sw t0,0x18(sp)
sw v0,0x10(sp)
sw s7,0x4c(sp)
bal 0x002fdec8
_sw s6,0x48(sp)
lw v0,0x5c(sp)
or s0,v1,zero
beq v0,zero,0x00303af8
_lw gp,0x40(sp)
lw v0,-0x788c(gp)
lw v0,0x0(v0)
lw v0,0x8(v0)
beq v0,zero,0x00303b0c
_lw a2,-0x7924(gp)
lbu v0,0x3195(v0)
bne v0,zero,0x00303ad4
_lw a0,-0x7924(gp)
andi v0,s0,0x20
beq v0,zero,0x00303a98
_sll a0,s2,0x1
lw ra,0x7c(sp)
srlv v1,s2,s0
lw s7,0x78(sp)
or v0,zero,zero
lw s6,0x74(sp)
lw s4,0x70(sp)
lw s3,0x6c(sp)
lw s2,0x68(sp)
lw s1,0x64(sp)
lw s0,0x60(sp)
jr ra
_addiu sp,sp,0x80
lw ra,0x7c(sp)
nor v0,zero,s0
lw s7,0x78(sp)
sllv a0,a0,v0
lw s6,0x74(sp)
srlv v1,s1,s0
lw s4,0x70(sp)
srlv v0,s2,s0
lw s3,0x6c(sp)
lw s2,0x68(sp)
or v1,a0,v1
lw s1,0x64(sp)
lw s0,0x60(sp)
jr ra
_addiu sp,sp,0x80
lw t9,-0x3610(gp)
jalr t9
_addiu a0,a0,0x7b60
lw gp,0x40(sp)
lw t9,-0x7570(gp)
jalr t9
_or a0,v0,zero
b 0x00303a60
_andi v0,s0,0x20
lw v0,0x58(sp)
bne v0,zero,0x00303a3c
_andi v0,s0,0x20
b 0x00303a60
_nop
li a1,0x5c
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,0x7f10
jalr t9
_addiu a0,a0,-0x9b8
(translation_unit "ulonglong FUN_0030390c(int param_1,undefined4 *param_2)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  uint extraout_v1;\n  undefined8 uVar3;\n  ulonglong uVar4;\n  undefined4 in_stack_ffffff94;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  int local_24;\n  \n  local_2c = 0;\n  local_30 = 0;\n  uVar3 = gold::Expression::eval_maybe_dot\n                    (*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),\n                     *(bool *)(param_2 + 2),\n                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n                     (Output_section *)param_2[4],(Output_section **)param_2[5],\n                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,\n                     (bool *)0x0);\n  uVar1 = (uint)((ulonglong)uVar3 >> 0x20);\n  local_34 = 0;\n  local_38 = 0;\n  gold::Expression::eval_maybe_dot\n            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0);\n  if ((local_24 != 0) || (local_28 != 0)) {\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);\n      return uVar4;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0') {\n      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);\n      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);\n    }\n  }\n  if ((extraout_v1 & 0x20) == 0) {\n    return CONCAT44(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f));\n  }\n  return (ulonglong)(uVar1 >> (extraout_v1 & 0x1f));\n}\n\n" (function_definition "ulonglong FUN_0030390c(int param_1,undefined4 *param_2)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  uint extraout_v1;\n  undefined8 uVar3;\n  ulonglong uVar4;\n  undefined4 in_stack_ffffff94;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  int local_24;\n  \n  local_2c = 0;\n  local_30 = 0;\n  uVar3 = gold::Expression::eval_maybe_dot\n                    (*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),\n                     *(bool *)(param_2 + 2),\n                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n                     (Output_section *)param_2[4],(Output_section **)param_2[5],\n                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,\n                     (bool *)0x0);\n  uVar1 = (uint)((ulonglong)uVar3 >> 0x20);\n  local_34 = 0;\n  local_38 = 0;\n  gold::Expression::eval_maybe_dot\n            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0);\n  if ((local_24 != 0) || (local_28 != 0)) {\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);\n      return uVar4;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0') {\n      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);\n      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);\n    }\n  }\n  if ((extraout_v1 & 0x20) == 0) {\n    return CONCAT44(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f));\n  }\n  return (ulonglong)(uVar1 >> (extraout_v1 & 0x1f));\n}" type_identifier (function_declarator "FUN_0030390c(int param_1,undefined4 *param_2)" identifier (parameter_list "(int param_1,undefined4 *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  undefined4 uVar2;\n  uint extraout_v1;\n  undefined8 uVar3;\n  ulonglong uVar4;\n  undefined4 in_stack_ffffff94;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  int local_24;\n  \n  local_2c = 0;\n  local_30 = 0;\n  uVar3 = gold::Expression::eval_maybe_dot\n                    (*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),\n                     *(bool *)(param_2 + 2),\n                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n                     (Output_section *)param_2[4],(Output_section **)param_2[5],\n                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,\n                     (bool *)0x0);\n  uVar1 = (uint)((ulonglong)uVar3 >> 0x20);\n  local_34 = 0;\n  local_38 = 0;\n  gold::Expression::eval_maybe_dot\n            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0);\n  if ((local_24 != 0) || (local_28 != 0)) {\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);\n      return uVar4;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0') {\n      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);\n      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);\n    }\n  }\n  if ((extraout_v1 & 0x20) == 0) {\n    return CONCAT44(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f));\n  }\n  return (ulonglong)(uVar1 >> (extraout_v1 & 0x1f));\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "ulonglong uVar4;" type_identifier identifier ;) (declaration "undefined4 in_stack_ffffff94;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (ERROR "uVar3 = gold::" (assignment_expression "uVar3 = gold" identifier = identifier) : :) (labeled_statement "Expression::eval_maybe_dot\n                    (*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),\n                     *(bool *)(param_2 + 2),\n                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n                     (Output_section *)param_2[4],(Output_section **)param_2[5],\n                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,\n                     (bool *)0x0);" statement_identifier : (ERROR ":" :) (expression_statement "eval_maybe_dot\n                    (*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),\n                     *(bool *)(param_2 + 2),\n                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n                     (Output_section *)param_2[4],(Output_section **)param_2[5],\n                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,\n                     (bool *)0x0);" (call_expression "eval_maybe_dot\n                    (*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),\n                     *(bool *)(param_2 + 2),\n                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n                     (Output_section *)param_2[4],(Output_section **)param_2[5],\n                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,\n                     (bool *)0x0)" identifier (argument_list "(*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),\n                     *(bool *)(param_2 + 2),\n                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n                     (Output_section *)param_2[4],(Output_section **)param_2[5],\n                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,\n                     (bool *)0x0)" ( (pointer_expression "*(Symbol_table **)(param_1 + 4)" * (cast_expression "(Symbol_table **)(param_1 + 4)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) , (cast_expression "(Layout *)*param_2" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) , (call_expression "SUB41(param_2[1],0)" identifier (argument_list "(param_2[1],0)" ( (subscript_expression "param_2[1]" identifier [ number_literal ]) , number_literal ))) , (pointer_expression "*(bool *)(param_2 + 2)" * (cast_expression "(bool *)(param_2 + 2)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 2)" ( (binary_expression "param_2 + 2" identifier + number_literal) )))) , (cast_expression "(ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94)" identifier (argument_list "(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94)" ( (pointer_expression "*(undefined1 *)((int)param_2 + 9)" * (cast_expression "(undefined1 *)((int)param_2 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 9)" ( (binary_expression "(int)param_2 + 9" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , identifier )))) , (cast_expression "(Output_section *)param_2[4]" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[4]" identifier [ number_literal ])) , (cast_expression "(Output_section **)param_2[5]" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_2[5]" identifier [ number_literal ])) , (cast_expression "(ulonglong *)param_2[6]" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[6]" identifier [ number_literal ])) , (cast_expression "(STT *)&local_24" ( (type_descriptor "STT *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_24" & identifier)) , (cast_expression "(STV *)&local_30" ( (type_descriptor "STV *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_30" & identifier)) , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , false , (cast_expression "(bool *)0x0" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;)) (expression_statement "uVar1 = (uint)((ulonglong)uVar3 >> 0x20);" (assignment_expression "uVar1 = (uint)((ulonglong)uVar3 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar3 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar3 >> 0x20)" ( (binary_expression "(ulonglong)uVar3 >> 0x20" (cast_expression "(ulonglong)uVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (labeled_statement "gold::Expression::eval_maybe_dot\n            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0);" statement_identifier : (ERROR ":" :) (labeled_statement "Expression::eval_maybe_dot\n            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0);" statement_identifier : (ERROR ":" :) (expression_statement "eval_maybe_dot\n            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0);" (call_expression "eval_maybe_dot\n            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0)" identifier (argument_list "(*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0)" ( (pointer_expression "*(Symbol_table **)(param_1 + 8)" * (cast_expression "(Symbol_table **)(param_1 + 8)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) , (cast_expression "(Layout *)*param_2" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) , (call_expression "SUB41(param_2[1],0)" identifier (argument_list "(param_2[1],0)" ( (subscript_expression "param_2[1]" identifier [ number_literal ]) , number_literal ))) , (pointer_expression "*(bool *)(param_2 + 2)" * (cast_expression "(bool *)(param_2 + 2)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 2)" ( (binary_expression "param_2 + 2" identifier + number_literal) )))) , (cast_expression "(ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94)" identifier (argument_list "(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94)" ( (pointer_expression "*(undefined1 *)((int)param_2 + 9)" * (cast_expression "(undefined1 *)((int)param_2 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 9)" ( (binary_expression "(int)param_2 + 9" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , identifier )))) , (cast_expression "(Output_section *)param_2[4]" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[4]" identifier [ number_literal ])) , (cast_expression "(Output_section **)param_2[5]" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_2[5]" identifier [ number_literal ])) , (cast_expression "(ulonglong *)param_2[6]" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[6]" identifier [ number_literal ])) , (cast_expression "(STT *)&local_28" ( (type_descriptor "STT *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_28" & identifier)) , (cast_expression "(STV *)&local_38" ( (type_descriptor "STV *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_38" & identifier)) , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , false , (cast_expression "(bool *)0x0" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;))) (if_statement "if ((local_24 != 0) || (local_28 != 0)) {\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);\n      return uVar4;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0') {\n      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);\n      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);\n    }\n  }" if (parenthesized_expression "((local_24 != 0) || (local_28 != 0))" ( (binary_expression "(local_24 != 0) || (local_28 != 0)" (parenthesized_expression "(local_24 != 0)" ( (binary_expression "local_24 != 0" identifier != number_literal) )) || (parenthesized_expression "(local_28 != 0)" ( (binary_expression "local_28 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);\n      return uVar4;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0') {\n      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);\n      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);\n    }\n  }" { (if_statement "if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);\n      return uVar4;\n    }" if (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 8)" ( (binary_expression "*(int *)PTR_parameters_004c19b4 + 8" (pointer_expression "*(int *)PTR_parameters_004c19b4" * (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);\n      return uVar4;\n    }" { (expression_statement "uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);" (assignment_expression "uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7f10" identifier + number_literal) )))) ;) (return_statement "return uVar4;" return identifier ;) })) (if_statement "if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0') {\n      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);\n      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);\n    }" if (parenthesized_expression "(*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" * (cast_expression "(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 8)" ( (binary_expression "*(int *)PTR_parameters_004c19b4 + 8" (pointer_expression "*(int *)PTR_parameters_004c19b4" * (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);\n      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);\n    }" { (expression_statement "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);" (assignment_expression "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60)" identifier = (call_expression "(*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60)" (parenthesized_expression "(*(code *)PTR_gettext_004c5c30)" ( (pointer_expression "*(code *)PTR_gettext_004c5c30" * (cast_expression "(code *)PTR_gettext_004c5c30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x7b60)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7b60" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_gold_warning_004c1cd0)(uVar2);" (call_expression "(*(code *)PTR_gold_warning_004c1cd0)(uVar2)" (parenthesized_expression "(*(code *)PTR_gold_warning_004c1cd0)" ( (pointer_expression "*(code *)PTR_gold_warning_004c1cd0" * (cast_expression "(code *)PTR_gold_warning_004c1cd0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2)" ( identifier ))) ;) })) })) (if_statement "if ((extraout_v1 & 0x20) == 0) {\n    return CONCAT44(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f));\n  }" if (parenthesized_expression "((extraout_v1 & 0x20) == 0)" ( (binary_expression "(extraout_v1 & 0x20) == 0" (parenthesized_expression "(extraout_v1 & 0x20)" ( (binary_expression "extraout_v1 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    return CONCAT44(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f));\n  }" { (return_statement "return CONCAT44(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f));" return (call_expression "CONCAT44(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f))" identifier (argument_list "(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f))" ( (binary_expression "uVar1 >> (extraout_v1 & 0x1f)" identifier >> (parenthesized_expression "(extraout_v1 & 0x1f)" ( (binary_expression "extraout_v1 & 0x1f" identifier & number_literal) ))) , (binary_expression "(uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f)" (binary_expression "(uVar1 << 1) << (~extraout_v1 & 0x1f)" (parenthesized_expression "(uVar1 << 1)" ( (binary_expression "uVar1 << 1" identifier << number_literal) )) << (parenthesized_expression "(~extraout_v1 & 0x1f)" ( (binary_expression "~extraout_v1 & 0x1f" (unary_expression "~extraout_v1" ~ identifier) & number_literal) ))) | (binary_expression "(uint)uVar3 >> (extraout_v1 & 0x1f)" (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(extraout_v1 & 0x1f)" ( (binary_expression "extraout_v1 & 0x1f" identifier & number_literal) )))) ))) ;) })) (return_statement "return (ulonglong)(uVar1 >> (extraout_v1 & 0x1f));" return (call_expression "(ulonglong)(uVar1 >> (extraout_v1 & 0x1f))" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uVar1 >> (extraout_v1 & 0x1f))" ( (binary_expression "uVar1 >> (extraout_v1 & 0x1f)" identifier >> (parenthesized_expression "(extraout_v1 & 0x1f)" ( (binary_expression "extraout_v1 & 0x1f" identifier & number_literal) ))) ))) ;) })))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */\n/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */\n/* WARNING: Enum "STT": Some values do not have unique names */\n/* DWARF original prototype: uint64_t value(Binary_rshift * this, Expression_eval_info * eei) */\n\nuint64_t __thiscall gold::Binary_rshift::value(Binary_rshift *this,Expression_eval_info *eei)\n\n{\n  uint64_t right_alignment;\n  uint64_t left_alignment;\n  Output_section *right_section;\n  Output_section *left_section;\n  \n  left_alignment._4_4_ = 0;\n                    /* WARNING: Subroutine does not return */\n  left_alignment._0_4_ = 0;\n  Expression::eval_maybe_dot\n            ((this->super_Binary_expression).left_,eei->symtab,eei->layout,eei->check_assertions,\n             eei->is_dot_available,eei->dot_value,eei->dot_section,&left_section,&left_alignment,\n             (STT *)0x0,(STV *)0x0,(uchar *)0x0,false,eei->is_valid_pointer);\n}\n\n" comment comment comment comment comment comment comment comment (function_definition "uint64_t __thiscall gold::Binary_rshift::value(Binary_rshift *this,Expression_eval_info *eei)\n\n{\n  uint64_t right_alignment;\n  uint64_t left_alignment;\n  Output_section *right_section;\n  Output_section *left_section;\n  \n  left_alignment._4_4_ = 0;\n                    /* WARNING: Subroutine does not return */\n  left_alignment._0_4_ = 0;\n  Expression::eval_maybe_dot\n            ((this->super_Binary_expression).left_,eei->symtab,eei->layout,eei->check_assertions,\n             eei->is_dot_available,eei->dot_value,eei->dot_section,&left_section,&left_alignment,\n             (STT *)0x0,(STV *)0x0,(uchar *)0x0,false,eei->is_valid_pointer);\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Binary_rshift::" identifier : : identifier : :) (function_declarator "value(Binary_rshift *this,Expression_eval_info *eei)" identifier (parameter_list "(Binary_rshift *this,Expression_eval_info *eei)" ( (parameter_declaration "Binary_rshift *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Expression_eval_info *eei" type_identifier (pointer_declarator "*eei" * identifier)) ))) (compound_statement "{\n  uint64_t right_alignment;\n  uint64_t left_alignment;\n  Output_section *right_section;\n  Output_section *left_section;\n  \n  left_alignment._4_4_ = 0;\n                    /* WARNING: Subroutine does not return */\n  left_alignment._0_4_ = 0;\n  Expression::eval_maybe_dot\n            ((this->super_Binary_expression).left_,eei->symtab,eei->layout,eei->check_assertions,\n             eei->is_dot_available,eei->dot_value,eei->dot_section,&left_section,&left_alignment,\n             (STT *)0x0,(STV *)0x0,(uchar *)0x0,false,eei->is_valid_pointer);\n}" { (declaration "uint64_t right_alignment;" primitive_type identifier ;) (declaration "uint64_t left_alignment;" primitive_type identifier ;) (declaration "Output_section *right_section;" type_identifier (pointer_declarator "*right_section" * identifier) ;) (declaration "Output_section *left_section;" type_identifier (pointer_declarator "*left_section" * identifier) ;) (expression_statement "left_alignment._4_4_ = 0;" (assignment_expression "left_alignment._4_4_ = 0" (field_expression "left_alignment._4_4_" identifier . field_identifier) = number_literal) ;) comment (expression_statement "left_alignment._0_4_ = 0;" (assignment_expression "left_alignment._0_4_ = 0" (field_expression "left_alignment._0_4_" identifier . field_identifier) = number_literal) ;) (labeled_statement "Expression::eval_maybe_dot\n            ((this->super_Binary_expression).left_,eei->symtab,eei->layout,eei->check_assertions,\n             eei->is_dot_available,eei->dot_value,eei->dot_section,&left_section,&left_alignment,\n             (STT *)0x0,(STV *)0x0,(uchar *)0x0,false,eei->is_valid_pointer);" statement_identifier : (ERROR ":" :) (expression_statement "eval_maybe_dot\n            ((this->super_Binary_expression).left_,eei->symtab,eei->layout,eei->check_assertions,\n             eei->is_dot_available,eei->dot_value,eei->dot_section,&left_section,&left_alignment,\n             (STT *)0x0,(STV *)0x0,(uchar *)0x0,false,eei->is_valid_pointer);" (call_expression "eval_maybe_dot\n            ((this->super_Binary_expression).left_,eei->symtab,eei->layout,eei->check_assertions,\n             eei->is_dot_available,eei->dot_value,eei->dot_section,&left_section,&left_alignment,\n             (STT *)0x0,(STV *)0x0,(uchar *)0x0,false,eei->is_valid_pointer)" identifier (argument_list "((this->super_Binary_expression).left_,eei->symtab,eei->layout,eei->check_assertions,\n             eei->is_dot_available,eei->dot_value,eei->dot_section,&left_section,&left_alignment,\n             (STT *)0x0,(STV *)0x0,(uchar *)0x0,false,eei->is_valid_pointer)" ( (field_expression "(this->super_Binary_expression).left_" (parenthesized_expression "(this->super_Binary_expression)" ( (field_expression "this->super_Binary_expression" identifier -> field_identifier) )) . field_identifier) , (field_expression "eei->symtab" identifier -> field_identifier) , (field_expression "eei->layout" identifier -> field_identifier) , (field_expression "eei->check_assertions" identifier -> field_identifier) , (field_expression "eei->is_dot_available" identifier -> field_identifier) , (field_expression "eei->dot_value" identifier -> field_identifier) , (field_expression "eei->dot_section" identifier -> field_identifier) , (pointer_expression "&left_section" & identifier) , (pointer_expression "&left_alignment" & identifier) , (cast_expression "(STT *)0x0" ( (type_descriptor "STT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(STV *)0x0" ( (type_descriptor "STV *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , false , (field_expression "eei->is_valid_pointer" identifier -> field_identifier) ))) ;)) })))
(translation_unit "ulonglong FUN_0030390c(int param_1,undefined4 *param_2)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  uint extraout_v1;\n  undefined8 uVar3;\n  ulonglong uVar4;\n  undefined4 in_stack_ffffff94;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  int local_24;\n  \n  local_2c = 0;\n  local_30 = 0;\n  uVar3 = gold::Expression::eval_maybe_dot\n                    (*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),\n                     *(bool *)(param_2 + 2),\n                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n                     (Output_section *)param_2[4],(Output_section **)param_2[5],\n                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,\n                     (bool *)0x0);\n  uVar1 = (uint)((ulonglong)uVar3 >> 0x20);\n  local_34 = 0;\n  local_38 = 0;\n  gold::Expression::eval_maybe_dot\n            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0);\n  if ((local_24 != 0) || (local_28 != 0)) {\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);\n      return uVar4;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0') {\n      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);\n      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);\n    }\n  }\n  if ((extraout_v1 & 0x20) == 0) {\n    return CONCAT44(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f));\n  }\n  return (ulonglong)(uVar1 >> (extraout_v1 & 0x1f));\n}\n\n" (function_definition "ulonglong FUN_0030390c(int param_1,undefined4 *param_2)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  uint extraout_v1;\n  undefined8 uVar3;\n  ulonglong uVar4;\n  undefined4 in_stack_ffffff94;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  int local_24;\n  \n  local_2c = 0;\n  local_30 = 0;\n  uVar3 = gold::Expression::eval_maybe_dot\n                    (*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),\n                     *(bool *)(param_2 + 2),\n                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n                     (Output_section *)param_2[4],(Output_section **)param_2[5],\n                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,\n                     (bool *)0x0);\n  uVar1 = (uint)((ulonglong)uVar3 >> 0x20);\n  local_34 = 0;\n  local_38 = 0;\n  gold::Expression::eval_maybe_dot\n            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0);\n  if ((local_24 != 0) || (local_28 != 0)) {\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);\n      return uVar4;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0') {\n      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);\n      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);\n    }\n  }\n  if ((extraout_v1 & 0x20) == 0) {\n    return CONCAT44(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f));\n  }\n  return (ulonglong)(uVar1 >> (extraout_v1 & 0x1f));\n}" type_identifier (function_declarator "FUN_0030390c(int param_1,undefined4 *param_2)" identifier (parameter_list "(int param_1,undefined4 *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  undefined4 uVar2;\n  uint extraout_v1;\n  undefined8 uVar3;\n  ulonglong uVar4;\n  undefined4 in_stack_ffffff94;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  int local_24;\n  \n  local_2c = 0;\n  local_30 = 0;\n  uVar3 = gold::Expression::eval_maybe_dot\n                    (*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),\n                     *(bool *)(param_2 + 2),\n                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n                     (Output_section *)param_2[4],(Output_section **)param_2[5],\n                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,\n                     (bool *)0x0);\n  uVar1 = (uint)((ulonglong)uVar3 >> 0x20);\n  local_34 = 0;\n  local_38 = 0;\n  gold::Expression::eval_maybe_dot\n            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0);\n  if ((local_24 != 0) || (local_28 != 0)) {\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);\n      return uVar4;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0') {\n      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);\n      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);\n    }\n  }\n  if ((extraout_v1 & 0x20) == 0) {\n    return CONCAT44(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f));\n  }\n  return (ulonglong)(uVar1 >> (extraout_v1 & 0x1f));\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "ulonglong uVar4;" type_identifier identifier ;) (declaration "undefined4 in_stack_ffffff94;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (ERROR "uVar3 = gold::" (assignment_expression "uVar3 = gold" identifier = identifier) : :) (labeled_statement "Expression::eval_maybe_dot\n                    (*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),\n                     *(bool *)(param_2 + 2),\n                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n                     (Output_section *)param_2[4],(Output_section **)param_2[5],\n                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,\n                     (bool *)0x0);" statement_identifier : (ERROR ":" :) (expression_statement "eval_maybe_dot\n                    (*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),\n                     *(bool *)(param_2 + 2),\n                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n                     (Output_section *)param_2[4],(Output_section **)param_2[5],\n                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,\n                     (bool *)0x0);" (call_expression "eval_maybe_dot\n                    (*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),\n                     *(bool *)(param_2 + 2),\n                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n                     (Output_section *)param_2[4],(Output_section **)param_2[5],\n                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,\n                     (bool *)0x0)" identifier (argument_list "(*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),\n                     *(bool *)(param_2 + 2),\n                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n                     (Output_section *)param_2[4],(Output_section **)param_2[5],\n                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,\n                     (bool *)0x0)" ( (pointer_expression "*(Symbol_table **)(param_1 + 4)" * (cast_expression "(Symbol_table **)(param_1 + 4)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) , (cast_expression "(Layout *)*param_2" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) , (call_expression "SUB41(param_2[1],0)" identifier (argument_list "(param_2[1],0)" ( (subscript_expression "param_2[1]" identifier [ number_literal ]) , number_literal ))) , (pointer_expression "*(bool *)(param_2 + 2)" * (cast_expression "(bool *)(param_2 + 2)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 2)" ( (binary_expression "param_2 + 2" identifier + number_literal) )))) , (cast_expression "(ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94)" identifier (argument_list "(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94)" ( (pointer_expression "*(undefined1 *)((int)param_2 + 9)" * (cast_expression "(undefined1 *)((int)param_2 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 9)" ( (binary_expression "(int)param_2 + 9" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , identifier )))) , (cast_expression "(Output_section *)param_2[4]" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[4]" identifier [ number_literal ])) , (cast_expression "(Output_section **)param_2[5]" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_2[5]" identifier [ number_literal ])) , (cast_expression "(ulonglong *)param_2[6]" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[6]" identifier [ number_literal ])) , (cast_expression "(STT *)&local_24" ( (type_descriptor "STT *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_24" & identifier)) , (cast_expression "(STV *)&local_30" ( (type_descriptor "STV *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_30" & identifier)) , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , false , (cast_expression "(bool *)0x0" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;)) (expression_statement "uVar1 = (uint)((ulonglong)uVar3 >> 0x20);" (assignment_expression "uVar1 = (uint)((ulonglong)uVar3 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar3 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar3 >> 0x20)" ( (binary_expression "(ulonglong)uVar3 >> 0x20" (cast_expression "(ulonglong)uVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (labeled_statement "gold::Expression::eval_maybe_dot\n            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0);" statement_identifier : (ERROR ":" :) (labeled_statement "Expression::eval_maybe_dot\n            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0);" statement_identifier : (ERROR ":" :) (expression_statement "eval_maybe_dot\n            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0);" (call_expression "eval_maybe_dot\n            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0)" identifier (argument_list "(*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0)" ( (pointer_expression "*(Symbol_table **)(param_1 + 8)" * (cast_expression "(Symbol_table **)(param_1 + 8)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) , (cast_expression "(Layout *)*param_2" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) , (call_expression "SUB41(param_2[1],0)" identifier (argument_list "(param_2[1],0)" ( (subscript_expression "param_2[1]" identifier [ number_literal ]) , number_literal ))) , (pointer_expression "*(bool *)(param_2 + 2)" * (cast_expression "(bool *)(param_2 + 2)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 2)" ( (binary_expression "param_2 + 2" identifier + number_literal) )))) , (cast_expression "(ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94)" identifier (argument_list "(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94)" ( (pointer_expression "*(undefined1 *)((int)param_2 + 9)" * (cast_expression "(undefined1 *)((int)param_2 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 9)" ( (binary_expression "(int)param_2 + 9" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , identifier )))) , (cast_expression "(Output_section *)param_2[4]" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[4]" identifier [ number_literal ])) , (cast_expression "(Output_section **)param_2[5]" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_2[5]" identifier [ number_literal ])) , (cast_expression "(ulonglong *)param_2[6]" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[6]" identifier [ number_literal ])) , (cast_expression "(STT *)&local_28" ( (type_descriptor "STT *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_28" & identifier)) , (cast_expression "(STV *)&local_38" ( (type_descriptor "STV *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_38" & identifier)) , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , false , (cast_expression "(bool *)0x0" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;))) (if_statement "if ((local_24 != 0) || (local_28 != 0)) {\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);\n      return uVar4;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0') {\n      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);\n      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);\n    }\n  }" if (parenthesized_expression "((local_24 != 0) || (local_28 != 0))" ( (binary_expression "(local_24 != 0) || (local_28 != 0)" (parenthesized_expression "(local_24 != 0)" ( (binary_expression "local_24 != 0" identifier != number_literal) )) || (parenthesized_expression "(local_28 != 0)" ( (binary_expression "local_28 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);\n      return uVar4;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0') {\n      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);\n      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);\n    }\n  }" { (if_statement "if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);\n      return uVar4;\n    }" if (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 8)" ( (binary_expression "*(int *)PTR_parameters_004c19b4 + 8" (pointer_expression "*(int *)PTR_parameters_004c19b4" * (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);\n      return uVar4;\n    }" { (expression_statement "uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);" (assignment_expression "uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7f10" identifier + number_literal) )))) ;) (return_statement "return uVar4;" return identifier ;) })) (if_statement "if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0') {\n      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);\n      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);\n    }" if (parenthesized_expression "(*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" * (cast_expression "(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 8)" ( (binary_expression "*(int *)PTR_parameters_004c19b4 + 8" (pointer_expression "*(int *)PTR_parameters_004c19b4" * (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);\n      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);\n    }" { (expression_statement "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);" (assignment_expression "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60)" identifier = (call_expression "(*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60)" (parenthesized_expression "(*(code *)PTR_gettext_004c5c30)" ( (pointer_expression "*(code *)PTR_gettext_004c5c30" * (cast_expression "(code *)PTR_gettext_004c5c30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x7b60)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7b60" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_gold_warning_004c1cd0)(uVar2);" (call_expression "(*(code *)PTR_gold_warning_004c1cd0)(uVar2)" (parenthesized_expression "(*(code *)PTR_gold_warning_004c1cd0)" ( (pointer_expression "*(code *)PTR_gold_warning_004c1cd0" * (cast_expression "(code *)PTR_gold_warning_004c1cd0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2)" ( identifier ))) ;) })) })) (if_statement "if ((extraout_v1 & 0x20) == 0) {\n    return CONCAT44(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f));\n  }" if (parenthesized_expression "((extraout_v1 & 0x20) == 0)" ( (binary_expression "(extraout_v1 & 0x20) == 0" (parenthesized_expression "(extraout_v1 & 0x20)" ( (binary_expression "extraout_v1 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    return CONCAT44(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f));\n  }" { (return_statement "return CONCAT44(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f));" return (call_expression "CONCAT44(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f))" identifier (argument_list "(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f))" ( (binary_expression "uVar1 >> (extraout_v1 & 0x1f)" identifier >> (parenthesized_expression "(extraout_v1 & 0x1f)" ( (binary_expression "extraout_v1 & 0x1f" identifier & number_literal) ))) , (binary_expression "(uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f)" (binary_expression "(uVar1 << 1) << (~extraout_v1 & 0x1f)" (parenthesized_expression "(uVar1 << 1)" ( (binary_expression "uVar1 << 1" identifier << number_literal) )) << (parenthesized_expression "(~extraout_v1 & 0x1f)" ( (binary_expression "~extraout_v1 & 0x1f" (unary_expression "~extraout_v1" ~ identifier) & number_literal) ))) | (binary_expression "(uint)uVar3 >> (extraout_v1 & 0x1f)" (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(extraout_v1 & 0x1f)" ( (binary_expression "extraout_v1 & 0x1f" identifier & number_literal) )))) ))) ;) })) (return_statement "return (ulonglong)(uVar1 >> (extraout_v1 & 0x1f));" return (call_expression "(ulonglong)(uVar1 >> (extraout_v1 & 0x1f))" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uVar1 >> (extraout_v1 & 0x1f))" ( (binary_expression "uVar1 >> (extraout_v1 & 0x1f)" identifier >> (parenthesized_expression "(extraout_v1 & 0x1f)" ( (binary_expression "extraout_v1 & 0x1f" identifier & number_literal) ))) ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (ERROR (assignment_expression IDENT = IDENT) : :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT ))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , IDENT )))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , BOOL , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (ERROR :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT ))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , IDENT )))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , BOOL , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))) ;))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (return_statement return (call_expression IDENT (argument_list ( (binary_expression IDENT >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) , (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) << (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) & LIT) ))) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ))) ;) })) (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))) ;) })))
(function_definition "ulonglong FUN_0030390c(int param_1,undefined4 *param_2)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  uint extraout_v1;\n  undefined8 uVar3;\n  ulonglong uVar4;\n  undefined4 in_stack_ffffff94;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  int local_24;\n  \n  local_2c = 0;\n  local_30 = 0;\n  uVar3 = gold::Expression::eval_maybe_dot\n                    (*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),\n                     *(bool *)(param_2 + 2),\n                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n                     (Output_section *)param_2[4],(Output_section **)param_2[5],\n                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,\n                     (bool *)0x0);\n  uVar1 = (uint)((ulonglong)uVar3 >> 0x20);\n  local_34 = 0;\n  local_38 = 0;\n  gold::Expression::eval_maybe_dot\n            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0);\n  if ((local_24 != 0) || (local_28 != 0)) {\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);\n      return uVar4;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0') {\n      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);\n      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);\n    }\n  }\n  if ((extraout_v1 & 0x20) == 0) {\n    return CONCAT44(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f));\n  }\n  return (ulonglong)(uVar1 >> (extraout_v1 & 0x1f));\n}" (type_identifier "ulonglong") (function_declarator "FUN_0030390c(int param_1,undefined4 *param_2)" (identifier "FUN_0030390c") (parameter_list "(int param_1,undefined4 *param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  uint uVar1;\n  undefined4 uVar2;\n  uint extraout_v1;\n  undefined8 uVar3;\n  ulonglong uVar4;\n  undefined4 in_stack_ffffff94;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  int local_24;\n  \n  local_2c = 0;\n  local_30 = 0;\n  uVar3 = gold::Expression::eval_maybe_dot\n                    (*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),\n                     *(bool *)(param_2 + 2),\n                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n                     (Output_section *)param_2[4],(Output_section **)param_2[5],\n                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,\n                     (bool *)0x0);\n  uVar1 = (uint)((ulonglong)uVar3 >> 0x20);\n  local_34 = 0;\n  local_38 = 0;\n  gold::Expression::eval_maybe_dot\n            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0);\n  if ((local_24 != 0) || (local_28 != 0)) {\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);\n      return uVar4;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0') {\n      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);\n      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);\n    }\n  }\n  if ((extraout_v1 & 0x20) == 0) {\n    return CONCAT44(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f));\n  }\n  return (ulonglong)(uVar1 >> (extraout_v1 & 0x1f));\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "uint extraout_v1;" (type_identifier "uint") (identifier "extraout_v1") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "ulonglong uVar4;" (type_identifier "ulonglong") (identifier "uVar4") (; ";")) (declaration "undefined4 in_stack_ffffff94;" (type_identifier "undefined4") (identifier "in_stack_ffffff94") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" (identifier "local_2c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (ERROR "uVar3 = gold::" (assignment_expression "uVar3 = gold" (identifier "uVar3") (= "=") (identifier "gold")) (: ":") (: ":")) (labeled_statement "Expression::eval_maybe_dot\n                    (*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),\n                     *(bool *)(param_2 + 2),\n                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n                     (Output_section *)param_2[4],(Output_section **)param_2[5],\n                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,\n                     (bool *)0x0);" (statement_identifier "Expression") (: ":") (ERROR ":" (: ":")) (expression_statement "eval_maybe_dot\n                    (*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),\n                     *(bool *)(param_2 + 2),\n                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n                     (Output_section *)param_2[4],(Output_section **)param_2[5],\n                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,\n                     (bool *)0x0);" (call_expression "eval_maybe_dot\n                    (*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),\n                     *(bool *)(param_2 + 2),\n                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n                     (Output_section *)param_2[4],(Output_section **)param_2[5],\n                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,\n                     (bool *)0x0)" (identifier "eval_maybe_dot") (argument_list "(*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),\n                     *(bool *)(param_2 + 2),\n                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n                     (Output_section *)param_2[4],(Output_section **)param_2[5],\n                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,\n                     (bool *)0x0)" (( "(") (pointer_expression "*(Symbol_table **)(param_1 + 4)" (* "*") (cast_expression "(Symbol_table **)(param_1 + 4)" (( "(") (type_descriptor "Symbol_table **" (type_identifier "Symbol_table") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (, ",") (cast_expression "(Layout *)*param_2" (( "(") (type_descriptor "Layout *" (type_identifier "Layout") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (, ",") (call_expression "SUB41(param_2[1],0)" (identifier "SUB41") (argument_list "(param_2[1],0)" (( "(") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") () ")"))) (, ",") (pointer_expression "*(bool *)(param_2 + 2)" (* "*") (cast_expression "(bool *)(param_2 + 2)" (( "(") (type_descriptor "bool *" (primitive_type "bool") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 2)" (( "(") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2")) () ")")))) (, ",") (cast_expression "(ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94)" (identifier "CONCAT14") (argument_list "(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94)" (( "(") (pointer_expression "*(undefined1 *)((int)param_2 + 9)" (* "*") (cast_expression "(undefined1 *)((int)param_2 + 9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 9)" (( "(") (binary_expression "(int)param_2 + 9" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "9")) () ")")))) (, ",") (identifier "in_stack_ffffff94") () ")")))) (, ",") (cast_expression "(Output_section *)param_2[4]" (( "(") (type_descriptor "Output_section *" (type_identifier "Output_section") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]"))) (, ",") (cast_expression "(Output_section **)param_2[5]" (( "(") (type_descriptor "Output_section **" (type_identifier "Output_section") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]"))) (, ",") (cast_expression "(ulonglong *)param_2[6]" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (, ",") (cast_expression "(STT *)&local_24" (( "(") (type_descriptor "STT *" (type_identifier "STT") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_24" (& "&") (identifier "local_24"))) (, ",") (cast_expression "(STV *)&local_30" (( "(") (type_descriptor "STV *" (type_identifier "STV") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_30" (& "&") (identifier "local_30"))) (, ",") (cast_expression "(uchar *)0x0" (( "(") (type_descriptor "uchar *" (type_identifier "uchar") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (false "false") (, ",") (cast_expression "(bool *)0x0" (( "(") (type_descriptor "bool *" (primitive_type "bool") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))) (; ";"))) (expression_statement "uVar1 = (uint)((ulonglong)uVar3 >> 0x20);" (assignment_expression "uVar1 = (uint)((ulonglong)uVar3 >> 0x20)" (identifier "uVar1") (= "=") (call_expression "(uint)((ulonglong)uVar3 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar3 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar3 >> 0x20" (cast_expression "(ulonglong)uVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar3")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (labeled_statement "gold::Expression::eval_maybe_dot\n            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0);" (statement_identifier "gold") (: ":") (ERROR ":" (: ":")) (labeled_statement "Expression::eval_maybe_dot\n            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0);" (statement_identifier "Expression") (: ":") (ERROR ":" (: ":")) (expression_statement "eval_maybe_dot\n            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0);" (call_expression "eval_maybe_dot\n            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0)" (identifier "eval_maybe_dot") (argument_list "(*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),\n             *(bool *)(param_2 + 2),\n             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),\n             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],\n             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0)" (( "(") (pointer_expression "*(Symbol_table **)(param_1 + 8)" (* "*") (cast_expression "(Symbol_table **)(param_1 + 8)" (( "(") (type_descriptor "Symbol_table **" (type_identifier "Symbol_table") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (, ",") (cast_expression "(Layout *)*param_2" (( "(") (type_descriptor "Layout *" (type_identifier "Layout") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (, ",") (call_expression "SUB41(param_2[1],0)" (identifier "SUB41") (argument_list "(param_2[1],0)" (( "(") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") () ")"))) (, ",") (pointer_expression "*(bool *)(param_2 + 2)" (* "*") (cast_expression "(bool *)(param_2 + 2)" (( "(") (type_descriptor "bool *" (primitive_type "bool") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 2)" (( "(") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2")) () ")")))) (, ",") (cast_expression "(ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94)" (identifier "CONCAT14") (argument_list "(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94)" (( "(") (pointer_expression "*(undefined1 *)((int)param_2 + 9)" (* "*") (cast_expression "(undefined1 *)((int)param_2 + 9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 9)" (( "(") (binary_expression "(int)param_2 + 9" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "9")) () ")")))) (, ",") (identifier "in_stack_ffffff94") () ")")))) (, ",") (cast_expression "(Output_section *)param_2[4]" (( "(") (type_descriptor "Output_section *" (type_identifier "Output_section") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]"))) (, ",") (cast_expression "(Output_section **)param_2[5]" (( "(") (type_descriptor "Output_section **" (type_identifier "Output_section") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]"))) (, ",") (cast_expression "(ulonglong *)param_2[6]" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (, ",") (cast_expression "(STT *)&local_28" (( "(") (type_descriptor "STT *" (type_identifier "STT") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_28" (& "&") (identifier "local_28"))) (, ",") (cast_expression "(STV *)&local_38" (( "(") (type_descriptor "STV *" (type_identifier "STV") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_38" (& "&") (identifier "local_38"))) (, ",") (cast_expression "(uchar *)0x0" (( "(") (type_descriptor "uchar *" (type_identifier "uchar") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (false "false") (, ",") (cast_expression "(bool *)0x0" (( "(") (type_descriptor "bool *" (primitive_type "bool") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))) (; ";")))) (if_statement "if ((local_24 != 0) || (local_28 != 0)) {\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);\n      return uVar4;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0') {\n      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);\n      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);\n    }\n  }" (if "if") (parenthesized_expression "((local_24 != 0) || (local_28 != 0))" (( "(") (binary_expression "(local_24 != 0) || (local_28 != 0)" (parenthesized_expression "(local_24 != 0)" (( "(") (binary_expression "local_24 != 0" (identifier "local_24") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_28 != 0)" (( "(") (binary_expression "local_28 != 0" (identifier "local_28") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);\n      return uVar4;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0') {\n      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);\n      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);\n    }\n  }" ({ "{") (if_statement "if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);\n      return uVar4;\n    }" (if "if") (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0)" (( "(") (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8)" (* "*") (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 8)" (( "(") (binary_expression "*(int *)PTR_parameters_004c19b4 + 8" (pointer_expression "*(int *)PTR_parameters_004c19b4" (* "*") (cast_expression "(int *)PTR_parameters_004c19b4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parameters_004c19b4"))) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);\n      return uVar4;\n    }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10);" (assignment_expression "uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                         PTR_s_in_a_linker_script_004c191c + 0x7f10)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "-0x9b8")) (, ",") (number_literal "0x5c") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7f10" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "0x7f10")) () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (if_statement "if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0') {\n      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);\n      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);\n    }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" (* "*") (cast_expression "(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" (( "(") (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8)" (* "*") (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 8)" (( "(") (binary_expression "*(int *)PTR_parameters_004c19b4 + 8" (pointer_expression "*(int *)PTR_parameters_004c19b4" (* "*") (cast_expression "(int *)PTR_parameters_004c19b4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parameters_004c19b4"))) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x3195")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);\n      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);\n    }" ({ "{") (expression_statement "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);" (assignment_expression "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60)" (parenthesized_expression "(*(code *)PTR_gettext_004c5c30)" (( "(") (pointer_expression "*(code *)PTR_gettext_004c5c30" (* "*") (cast_expression "(code *)PTR_gettext_004c5c30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gettext_004c5c30"))) () ")")) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x7b60)" (( "(") (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7b60" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "0x7b60")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_gold_warning_004c1cd0)(uVar2);" (call_expression "(*(code *)PTR_gold_warning_004c1cd0)(uVar2)" (parenthesized_expression "(*(code *)PTR_gold_warning_004c1cd0)" (( "(") (pointer_expression "*(code *)PTR_gold_warning_004c1cd0" (* "*") (cast_expression "(code *)PTR_gold_warning_004c1cd0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gold_warning_004c1cd0"))) () ")")) (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((extraout_v1 & 0x20) == 0) {\n    return CONCAT44(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f));\n  }" (if "if") (parenthesized_expression "((extraout_v1 & 0x20) == 0)" (( "(") (binary_expression "(extraout_v1 & 0x20) == 0" (parenthesized_expression "(extraout_v1 & 0x20)" (( "(") (binary_expression "extraout_v1 & 0x20" (identifier "extraout_v1") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return CONCAT44(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f));\n  }" ({ "{") (return_statement "return CONCAT44(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f));" (return "return") (call_expression "CONCAT44(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f))" (identifier "CONCAT44") (argument_list "(uVar1 >> (extraout_v1 & 0x1f),\n                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f))" (( "(") (binary_expression "uVar1 >> (extraout_v1 & 0x1f)" (identifier "uVar1") (>> ">>") (parenthesized_expression "(extraout_v1 & 0x1f)" (( "(") (binary_expression "extraout_v1 & 0x1f" (identifier "extraout_v1") (& "&") (number_literal "0x1f")) () ")"))) (, ",") (binary_expression "(uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f)" (binary_expression "(uVar1 << 1) << (~extraout_v1 & 0x1f)" (parenthesized_expression "(uVar1 << 1)" (( "(") (binary_expression "uVar1 << 1" (identifier "uVar1") (<< "<<") (number_literal "1")) () ")")) (<< "<<") (parenthesized_expression "(~extraout_v1 & 0x1f)" (( "(") (binary_expression "~extraout_v1 & 0x1f" (unary_expression "~extraout_v1" (~ "~") (identifier "extraout_v1")) (& "&") (number_literal "0x1f")) () ")"))) (| "|") (binary_expression "(uint)uVar3 >> (extraout_v1 & 0x1f)" (cast_expression "(uint)uVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar3")) (>> ">>") (parenthesized_expression "(extraout_v1 & 0x1f)" (( "(") (binary_expression "extraout_v1 & 0x1f" (identifier "extraout_v1") (& "&") (number_literal "0x1f")) () ")")))) () ")"))) (; ";")) (} "}"))) (return_statement "return (ulonglong)(uVar1 >> (extraout_v1 & 0x1f));" (return "return") (call_expression "(ulonglong)(uVar1 >> (extraout_v1 & 0x1f))" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(uVar1 >> (extraout_v1 & 0x1f))" (( "(") (binary_expression "uVar1 >> (extraout_v1 & 0x1f)" (identifier "uVar1") (>> ">>") (parenthesized_expression "(extraout_v1 & 0x1f)" (( "(") (binary_expression "extraout_v1 & 0x1f" (identifier "extraout_v1") (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) 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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (ERROR (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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))))) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (number_literal))) (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))))) (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (identifier)))) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (subscript_expression argument: (identifier) index: (number_literal))) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (false) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (ERROR) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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))))) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (number_literal))) (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))))) (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (identifier)))) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (subscript_expression argument: (identifier) index: (number_literal))) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (false) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (return_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (return_statement (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))

ulonglong MASKED(int param_1,undefined4 *param_2)

{
  uint uVar1;
  undefined4 uVar2;
  uint extraout_v1;
  undefined8 uVar3;
  ulonglong uVar4;
  undefined4 in_stack_ffffff94;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  int local_28;
  int local_24;
  
  local_2c = 0;
  local_30 = 0;
  uVar3 = gold::Expression::eval_maybe_dot
                    (*(Symbol_table **)(param_1 + 4),(Layout *)*param_2,SUB41(param_2[1],0),
                     *(bool *)(param_2 + 2),
                     (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),
                     (Output_section *)param_2[4],(Output_section **)param_2[5],
                     (ulonglong *)param_2[6],(STT *)&local_24,(STV *)&local_30,(uchar *)0x0,false,
                     (bool *)0x0);
  uVar1 = (uint)((ulonglong)uVar3 >> 0x20);
  local_34 = 0;
  local_38 = 0;
  gold::Expression::eval_maybe_dot
            (*(Symbol_table **)(param_1 + 8),(Layout *)*param_2,SUB41(param_2[1],0),
             *(bool *)(param_2 + 2),
             (ulonglong)CONCAT14(*(undefined1 *)((int)param_2 + 9),in_stack_ffffff94),
             (Output_section *)param_2[4],(Output_section **)param_2[5],(ulonglong *)param_2[6],
             (STT *)&local_28,(STV *)&local_38,(uchar *)0x0,false,(bool *)0x0);
  if ((local_24 != 0) || (local_28 != 0)) {
    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {
      uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                        (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,
                         PTR_s_in_a_linker_script_004c191c + 0x7f10);
      return uVar4;
    }
    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) != '\0') {
      uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x7b60);
      (*(code *)PTR_gold_warning_004c1cd0)(uVar2);
    }
  }
  if ((extraout_v1 & 0x20) == 0) {
    return CONCAT44(uVar1 >> (extraout_v1 & 0x1f),
                    (uVar1 << 1) << (~extraout_v1 & 0x1f) | (uint)uVar3 >> (extraout_v1 & 0x1f));
  }
  return (ulonglong)(uVar1 >> (extraout_v1 & 0x1f));
}

