
bool gold::Symbol::is_common_shndx(uint shndx)

{
  undefined3 extraout_var;
  int iVar1;
  bool bVar3;
  uint uVar2;
  undefined *puVar4;
  undefined4 uVar5;
  undefined *puVar6;
  
  if (shndx == 0xfff2) {
    return true;
  }
  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0) {
    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);
    if (*(ushort *)(iVar1 + 0x40) != shndx) {
      return *(ushort *)(iVar1 + 0x42) == shndx;
    }
    return true;
  }
  uVar5 = 0x69;
  puVar4 = PTR_s_alize_xindex_004323b4 + -0x5cec;
  puVar6 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)(puVar4,0x69,PTR_s__0043226c + -0x2a68);
  if (((*(uint *)(puVar4 + 0x28) & 0xe000) == 0) && (-1 < (int)(*(uint *)(puVar4 + 0x28) << 0x1d)))
  goto LAB_0022d454;
  do {
    uVar5 = 0xcf;
    puVar4 = (undefined *)(*(int *)(puVar6 + 0x204e68) + -0x3650);
    (**(code **)(puVar6 + 0x204fc0))(puVar4,0xcf,*(int *)(puVar6 + 0x204e68) + -0x2a48);
LAB_0022d454:
    bVar3 = is_common_shndx(*(uint *)(puVar4 + 0xc));
  } while (CONCAT31(extraout_var,bVar3) == 0);
  uVar2 = *(uint *)(puVar4 + 0x28);
  puVar4[0xc] = 0;
  *(undefined4 *)(puVar4 + 8) = uVar5;
  *(uint *)(puVar4 + 0x28) = uVar2 & 0xffff1fff | 0x2000;
  return SUB41(uVar2 & 0xffff1fff,0);
}



/* gold::Symbol::is_common_shndx(unsigned int) */

uint gold::Symbol::is_common_shndx(uint param_1)

{
  int iVar1;
  uint uVar2;
  
  if (param_1 == 0xfff2) {
    return 1;
  }
  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0) {
    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);
    if (*(ushort *)(iVar1 + 0x40) != param_1) {
      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);
    }
    return 1;
  }
  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)
                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68);
  return uVar2;
}


lui gp,0x21
addiu gp,gp,-0x31ac
addu gp,gp,t9
ori v0,zero,0xfff2
beq a0,v0,0x0022d3e4
_nop
lw v0,-0x75f0(gp)
addiu sp,sp,-0x20
sw gp,0x10(sp)
lw v0,0x0(v0)
sw ra,0x1c(sp)
lw v0,0xc(v0)
beq v0,zero,0x0022d3ec
_lw a2,-0x7f64(gp)
lw v0,0x4(v0)
lhu v1,0x40(v0)
beq v1,a0,0x0022d3d8
_lw ra,0x1c(sp)
lhu v0,0x42(v0)
addiu sp,sp,0x20
xor v0,v0,a0
jr ra
_sltiu v0,v0,0x1
li v0,0x1
jr ra
_addiu sp,sp,0x20
jr ra
_li v0,0x1
li a1,0x69
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,-0x2a68
jalr t9
_addiu a0,a0,-0x5cec
(translation_unit "/* gold::Symbol::is_common_shndx(unsigned int) */\n\nuint gold::Symbol::is_common_shndx(uint param_1)\n\n{\n  int iVar1;\n  uint uVar2;\n  \n  if (param_1 == 0xfff2) {\n    return 1;\n  }\n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0) {\n    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (*(ushort *)(iVar1 + 0x40) != param_1) {\n      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);\n    }\n    return 1;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68);\n  return uVar2;\n}\n\n" comment (function_definition "uint gold::Symbol::is_common_shndx(uint param_1)\n\n{\n  int iVar1;\n  uint uVar2;\n  \n  if (param_1 == 0xfff2) {\n    return 1;\n  }\n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0) {\n    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (*(ushort *)(iVar1 + 0x40) != param_1) {\n      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);\n    }\n    return 1;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68);\n  return uVar2;\n}" type_identifier (ERROR "gold::Symbol::" identifier : : identifier : :) (function_declarator "is_common_shndx(uint param_1)" identifier (parameter_list "(uint param_1)" ( (parameter_declaration "uint param_1" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  \n  if (param_1 == 0xfff2) {\n    return 1;\n  }\n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0) {\n    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (*(ushort *)(iVar1 + 0x40) != param_1) {\n      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);\n    }\n    return 1;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68);\n  return uVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (if_statement "if (param_1 == 0xfff2) {\n    return 1;\n  }" if (parenthesized_expression "(param_1 == 0xfff2)" ( (binary_expression "param_1 == 0xfff2" identifier == number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0) {\n    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (*(ushort *)(iVar1 + 0x40) != param_1) {\n      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);\n    }\n    return 1;\n  }" if (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 0xc" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (*(ushort *)(iVar1 + 0x40) != param_1) {\n      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);\n    }\n    return 1;\n  }" { (expression_statement "iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);" (assignment_expression "iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" identifier = (pointer_expression "*(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 0xc" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (*(ushort *)(iVar1 + 0x40) != param_1) {\n      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);\n    }" if (parenthesized_expression "(*(ushort *)(iVar1 + 0x40) != param_1)" ( (binary_expression "*(ushort *)(iVar1 + 0x40) != param_1" (pointer_expression "*(ushort *)(iVar1 + 0x40)" * (cast_expression "(ushort *)(iVar1 + 0x40)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x40)" ( (binary_expression "iVar1 + 0x40" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);\n    }" { (return_statement "return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);" return (call_expression "(uint)(*(ushort *)(iVar1 + 0x42) == param_1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(ushort *)(iVar1 + 0x42) == param_1)" ( (binary_expression "*(ushort *)(iVar1 + 0x42) == param_1" (pointer_expression "*(ushort *)(iVar1 + 0x42)" * (cast_expression "(ushort *)(iVar1 + 0x42)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x42)" ( (binary_expression "iVar1 + 0x42" identifier + number_literal) )))) == identifier) ))) ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68);" (assignment_expression "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + -0x2a68" identifier + number_literal) )))) ;) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit "bool gold::Symbol::is_common_shndx(uint shndx)\n\n{\n  undefined3 extraout_var;\n  int iVar1;\n  bool bVar3;\n  uint uVar2;\n  undefined *puVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  \n  if (shndx == 0xfff2) {\n    return true;\n  }\n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0) {\n    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (*(ushort *)(iVar1 + 0x40) != shndx) {\n      return *(ushort *)(iVar1 + 0x42) == shndx;\n    }\n    return true;\n  }\n  uVar5 = 0x69;\n  puVar4 = PTR_s_alize_xindex_004323b4 + -0x5cec;\n  puVar6 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(puVar4,0x69,PTR_s__0043226c + -0x2a68);\n  if (((*(uint *)(puVar4 + 0x28) & 0xe000) == 0) && (-1 < (int)(*(uint *)(puVar4 + 0x28) << 0x1d)))\n  goto LAB_0022d454;\n  do {\n    uVar5 = 0xcf;\n    puVar4 = (undefined *)(*(int *)(puVar6 + 0x204e68) + -0x3650);\n    (**(code **)(puVar6 + 0x204fc0))(puVar4,0xcf,*(int *)(puVar6 + 0x204e68) + -0x2a48);\nLAB_0022d454:\n    bVar3 = is_common_shndx(*(uint *)(puVar4 + 0xc));\n  } while (CONCAT31(extraout_var,bVar3) == 0);\n  uVar2 = *(uint *)(puVar4 + 0x28);\n  puVar4[0xc] = 0;\n  *(undefined4 *)(puVar4 + 8) = uVar5;\n  *(uint *)(puVar4 + 0x28) = uVar2 & 0xffff1fff | 0x2000;\n  return SUB41(uVar2 & 0xffff1fff,0);\n}\n\n" (function_definition "bool gold::Symbol::is_common_shndx(uint shndx)\n\n{\n  undefined3 extraout_var;\n  int iVar1;\n  bool bVar3;\n  uint uVar2;\n  undefined *puVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  \n  if (shndx == 0xfff2) {\n    return true;\n  }\n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0) {\n    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (*(ushort *)(iVar1 + 0x40) != shndx) {\n      return *(ushort *)(iVar1 + 0x42) == shndx;\n    }\n    return true;\n  }\n  uVar5 = 0x69;\n  puVar4 = PTR_s_alize_xindex_004323b4 + -0x5cec;\n  puVar6 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(puVar4,0x69,PTR_s__0043226c + -0x2a68);\n  if (((*(uint *)(puVar4 + 0x28) & 0xe000) == 0) && (-1 < (int)(*(uint *)(puVar4 + 0x28) << 0x1d)))\n  goto LAB_0022d454;\n  do {\n    uVar5 = 0xcf;\n    puVar4 = (undefined *)(*(int *)(puVar6 + 0x204e68) + -0x3650);\n    (**(code **)(puVar6 + 0x204fc0))(puVar4,0xcf,*(int *)(puVar6 + 0x204e68) + -0x2a48);\nLAB_0022d454:\n    bVar3 = is_common_shndx(*(uint *)(puVar4 + 0xc));\n  } while (CONCAT31(extraout_var,bVar3) == 0);\n  uVar2 = *(uint *)(puVar4 + 0x28);\n  puVar4[0xc] = 0;\n  *(undefined4 *)(puVar4 + 8) = uVar5;\n  *(uint *)(puVar4 + 0x28) = uVar2 & 0xffff1fff | 0x2000;\n  return SUB41(uVar2 & 0xffff1fff,0);\n}" primitive_type (ERROR "gold::Symbol::" identifier : : identifier : :) (function_declarator "is_common_shndx(uint shndx)" identifier (parameter_list "(uint shndx)" ( (parameter_declaration "uint shndx" type_identifier identifier) ))) (compound_statement "{\n  undefined3 extraout_var;\n  int iVar1;\n  bool bVar3;\n  uint uVar2;\n  undefined *puVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  \n  if (shndx == 0xfff2) {\n    return true;\n  }\n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0) {\n    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (*(ushort *)(iVar1 + 0x40) != shndx) {\n      return *(ushort *)(iVar1 + 0x42) == shndx;\n    }\n    return true;\n  }\n  uVar5 = 0x69;\n  puVar4 = PTR_s_alize_xindex_004323b4 + -0x5cec;\n  puVar6 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(puVar4,0x69,PTR_s__0043226c + -0x2a68);\n  if (((*(uint *)(puVar4 + 0x28) & 0xe000) == 0) && (-1 < (int)(*(uint *)(puVar4 + 0x28) << 0x1d)))\n  goto LAB_0022d454;\n  do {\n    uVar5 = 0xcf;\n    puVar4 = (undefined *)(*(int *)(puVar6 + 0x204e68) + -0x3650);\n    (**(code **)(puVar6 + 0x204fc0))(puVar4,0xcf,*(int *)(puVar6 + 0x204e68) + -0x2a48);\nLAB_0022d454:\n    bVar3 = is_common_shndx(*(uint *)(puVar4 + 0xc));\n  } while (CONCAT31(extraout_var,bVar3) == 0);\n  uVar2 = *(uint *)(puVar4 + 0x28);\n  puVar4[0xc] = 0;\n  *(undefined4 *)(puVar4 + 8) = uVar5;\n  *(uint *)(puVar4 + 0x28) = uVar2 & 0xffff1fff | 0x2000;\n  return SUB41(uVar2 & 0xffff1fff,0);\n}" { (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (if_statement "if (shndx == 0xfff2) {\n    return true;\n  }" if (parenthesized_expression "(shndx == 0xfff2)" ( (binary_expression "shndx == 0xfff2" identifier == number_literal) )) (compound_statement "{\n    return true;\n  }" { (return_statement "return true;" return true ;) })) (if_statement "if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0) {\n    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (*(ushort *)(iVar1 + 0x40) != shndx) {\n      return *(ushort *)(iVar1 + 0x42) == shndx;\n    }\n    return true;\n  }" if (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 0xc" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (*(ushort *)(iVar1 + 0x40) != shndx) {\n      return *(ushort *)(iVar1 + 0x42) == shndx;\n    }\n    return true;\n  }" { (expression_statement "iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);" (assignment_expression "iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" identifier = (pointer_expression "*(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 0xc" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (*(ushort *)(iVar1 + 0x40) != shndx) {\n      return *(ushort *)(iVar1 + 0x42) == shndx;\n    }" if (parenthesized_expression "(*(ushort *)(iVar1 + 0x40) != shndx)" ( (binary_expression "*(ushort *)(iVar1 + 0x40) != shndx" (pointer_expression "*(ushort *)(iVar1 + 0x40)" * (cast_expression "(ushort *)(iVar1 + 0x40)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x40)" ( (binary_expression "iVar1 + 0x40" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n      return *(ushort *)(iVar1 + 0x42) == shndx;\n    }" { (return_statement "return *(ushort *)(iVar1 + 0x42) == shndx;" return (binary_expression "*(ushort *)(iVar1 + 0x42) == shndx" (pointer_expression "*(ushort *)(iVar1 + 0x42)" * (cast_expression "(ushort *)(iVar1 + 0x42)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x42)" ( (binary_expression "iVar1 + 0x42" identifier + number_literal) )))) == identifier) ;) })) (return_statement "return true;" return true ;) })) (expression_statement "uVar5 = 0x69;" (assignment_expression "uVar5 = 0x69" identifier = number_literal) ;) (expression_statement "puVar4 = PTR_s_alize_xindex_004323b4 + -0x5cec;" (assignment_expression "puVar4 = PTR_s_alize_xindex_004323b4 + -0x5cec" identifier = (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal)) ;) (expression_statement "puVar6 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar6 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(puVar4,0x69,PTR_s__0043226c + -0x2a68);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(puVar4,0x69,PTR_s__0043226c + -0x2a68)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar4,0x69,PTR_s__0043226c + -0x2a68)" ( identifier , number_literal , (binary_expression "PTR_s__0043226c + -0x2a68" identifier + number_literal) ))) ;) (if_statement "if (((*(uint *)(puVar4 + 0x28) & 0xe000) == 0) && (-1 < (int)(*(uint *)(puVar4 + 0x28) << 0x1d)))\n  goto LAB_0022d454;" if (parenthesized_expression "(((*(uint *)(puVar4 + 0x28) & 0xe000) == 0) && (-1 < (int)(*(uint *)(puVar4 + 0x28) << 0x1d)))" ( (binary_expression "((*(uint *)(puVar4 + 0x28) & 0xe000) == 0) && (-1 < (int)(*(uint *)(puVar4 + 0x28) << 0x1d))" (parenthesized_expression "((*(uint *)(puVar4 + 0x28) & 0xe000) == 0)" ( (binary_expression "(*(uint *)(puVar4 + 0x28) & 0xe000) == 0" (parenthesized_expression "(*(uint *)(puVar4 + 0x28) & 0xe000)" ( (binary_expression "*(uint *)(puVar4 + 0x28) & 0xe000" (pointer_expression "*(uint *)(puVar4 + 0x28)" * (cast_expression "(uint *)(puVar4 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x28)" ( (binary_expression "puVar4 + 0x28" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(-1 < (int)(*(uint *)(puVar4 + 0x28) << 0x1d))" ( (binary_expression "-1 < (int)(*(uint *)(puVar4 + 0x28) << 0x1d)" number_literal < (cast_expression "(int)(*(uint *)(puVar4 + 0x28) << 0x1d)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(uint *)(puVar4 + 0x28) << 0x1d)" ( (binary_expression "*(uint *)(puVar4 + 0x28) << 0x1d" (pointer_expression "*(uint *)(puVar4 + 0x28)" * (cast_expression "(uint *)(puVar4 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x28)" ( (binary_expression "puVar4 + 0x28" identifier + number_literal) )))) << number_literal) )))) ))) )) (goto_statement "goto LAB_0022d454;" goto statement_identifier ;)) (do_statement "do {\n    uVar5 = 0xcf;\n    puVar4 = (undefined *)(*(int *)(puVar6 + 0x204e68) + -0x3650);\n    (**(code **)(puVar6 + 0x204fc0))(puVar4,0xcf,*(int *)(puVar6 + 0x204e68) + -0x2a48);\nLAB_0022d454:\n    bVar3 = is_common_shndx(*(uint *)(puVar4 + 0xc));\n  } while (CONCAT31(extraout_var,bVar3) == 0);" do (compound_statement "{\n    uVar5 = 0xcf;\n    puVar4 = (undefined *)(*(int *)(puVar6 + 0x204e68) + -0x3650);\n    (**(code **)(puVar6 + 0x204fc0))(puVar4,0xcf,*(int *)(puVar6 + 0x204e68) + -0x2a48);\nLAB_0022d454:\n    bVar3 = is_common_shndx(*(uint *)(puVar4 + 0xc));\n  }" { (expression_statement "uVar5 = 0xcf;" (assignment_expression "uVar5 = 0xcf" identifier = number_literal) ;) (expression_statement "puVar4 = (undefined *)(*(int *)(puVar6 + 0x204e68) + -0x3650);" (assignment_expression "puVar4 = (undefined *)(*(int *)(puVar6 + 0x204e68) + -0x3650)" identifier = (cast_expression "(undefined *)(*(int *)(puVar6 + 0x204e68) + -0x3650)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar6 + 0x204e68) + -0x3650)" ( (binary_expression "*(int *)(puVar6 + 0x204e68) + -0x3650" (pointer_expression "*(int *)(puVar6 + 0x204e68)" * (cast_expression "(int *)(puVar6 + 0x204e68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x204e68)" ( (binary_expression "puVar6 + 0x204e68" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar6 + 0x204fc0))(puVar4,0xcf,*(int *)(puVar6 + 0x204e68) + -0x2a48);" (call_expression "(**(code **)(puVar6 + 0x204fc0))(puVar4,0xcf,*(int *)(puVar6 + 0x204e68) + -0x2a48)" (parenthesized_expression "(**(code **)(puVar6 + 0x204fc0))" ( (pointer_expression "**(code **)(puVar6 + 0x204fc0)" * (pointer_expression "*(code **)(puVar6 + 0x204fc0)" * (cast_expression "(code **)(puVar6 + 0x204fc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + 0x204fc0)" ( (binary_expression "puVar6 + 0x204fc0" identifier + number_literal) ))))) )) (argument_list "(puVar4,0xcf,*(int *)(puVar6 + 0x204e68) + -0x2a48)" ( identifier , number_literal , (binary_expression "*(int *)(puVar6 + 0x204e68) + -0x2a48" (pointer_expression "*(int *)(puVar6 + 0x204e68)" * (cast_expression "(int *)(puVar6 + 0x204e68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x204e68)" ( (binary_expression "puVar6 + 0x204e68" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0022d454:\n    bVar3 = is_common_shndx(*(uint *)(puVar4 + 0xc));" statement_identifier : (expression_statement "bVar3 = is_common_shndx(*(uint *)(puVar4 + 0xc));" (assignment_expression "bVar3 = is_common_shndx(*(uint *)(puVar4 + 0xc))" identifier = (call_expression "is_common_shndx(*(uint *)(puVar4 + 0xc))" identifier (argument_list "(*(uint *)(puVar4 + 0xc))" ( (pointer_expression "*(uint *)(puVar4 + 0xc)" * (cast_expression "(uint *)(puVar4 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0xc)" ( (binary_expression "puVar4 + 0xc" identifier + number_literal) )))) )))) ;)) }) while (parenthesized_expression "(CONCAT31(extraout_var,bVar3) == 0)" ( (binary_expression "CONCAT31(extraout_var,bVar3) == 0" (call_expression "CONCAT31(extraout_var,bVar3)" identifier (argument_list "(extraout_var,bVar3)" ( identifier , identifier ))) == number_literal) )) ;) (expression_statement "uVar2 = *(uint *)(puVar4 + 0x28);" (assignment_expression "uVar2 = *(uint *)(puVar4 + 0x28)" identifier = (pointer_expression "*(uint *)(puVar4 + 0x28)" * (cast_expression "(uint *)(puVar4 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x28)" ( (binary_expression "puVar4 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar4[0xc] = 0;" (assignment_expression "puVar4[0xc] = 0" (subscript_expression "puVar4[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar4 + 8) = uVar5;" (assignment_expression "*(undefined4 *)(puVar4 + 8) = uVar5" (pointer_expression "*(undefined4 *)(puVar4 + 8)" * (cast_expression "(undefined4 *)(puVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 8)" ( (binary_expression "puVar4 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar4 + 0x28) = uVar2 & 0xffff1fff | 0x2000;" (assignment_expression "*(uint *)(puVar4 + 0x28) = uVar2 & 0xffff1fff | 0x2000" (pointer_expression "*(uint *)(puVar4 + 0x28)" * (cast_expression "(uint *)(puVar4 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x28)" ( (binary_expression "puVar4 + 0x28" identifier + number_literal) )))) = (binary_expression "uVar2 & 0xffff1fff | 0x2000" (binary_expression "uVar2 & 0xffff1fff" identifier & number_literal) | number_literal)) ;) (return_statement "return SUB41(uVar2 & 0xffff1fff,0);" return (call_expression "SUB41(uVar2 & 0xffff1fff,0)" identifier (argument_list "(uVar2 & 0xffff1fff,0)" ( (binary_expression "uVar2 & 0xffff1fff" identifier & number_literal) , number_literal ))) ;) })))
(translation_unit "uint gold::Symbol::is_common_shndx(uint param_1)\n\n{\n  int iVar1;\n  uint uVar2;\n  \n  if (param_1 == 0xfff2) {\n    return 1;\n  }\n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0) {\n    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (*(ushort *)(iVar1 + 0x40) != param_1) {\n      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);\n    }\n    return 1;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68);\n  return uVar2;\n}\n\n" (function_definition "uint gold::Symbol::is_common_shndx(uint param_1)\n\n{\n  int iVar1;\n  uint uVar2;\n  \n  if (param_1 == 0xfff2) {\n    return 1;\n  }\n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0) {\n    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (*(ushort *)(iVar1 + 0x40) != param_1) {\n      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);\n    }\n    return 1;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68);\n  return uVar2;\n}" type_identifier (ERROR "gold::Symbol::" identifier : : identifier : :) (function_declarator "is_common_shndx(uint param_1)" identifier (parameter_list "(uint param_1)" ( (parameter_declaration "uint param_1" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  \n  if (param_1 == 0xfff2) {\n    return 1;\n  }\n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0) {\n    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (*(ushort *)(iVar1 + 0x40) != param_1) {\n      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);\n    }\n    return 1;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68);\n  return uVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (if_statement "if (param_1 == 0xfff2) {\n    return 1;\n  }" if (parenthesized_expression "(param_1 == 0xfff2)" ( (binary_expression "param_1 == 0xfff2" identifier == number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0) {\n    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (*(ushort *)(iVar1 + 0x40) != param_1) {\n      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);\n    }\n    return 1;\n  }" if (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 0xc" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (*(ushort *)(iVar1 + 0x40) != param_1) {\n      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);\n    }\n    return 1;\n  }" { (expression_statement "iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);" (assignment_expression "iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" identifier = (pointer_expression "*(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 0xc" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (*(ushort *)(iVar1 + 0x40) != param_1) {\n      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);\n    }" if (parenthesized_expression "(*(ushort *)(iVar1 + 0x40) != param_1)" ( (binary_expression "*(ushort *)(iVar1 + 0x40) != param_1" (pointer_expression "*(ushort *)(iVar1 + 0x40)" * (cast_expression "(ushort *)(iVar1 + 0x40)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x40)" ( (binary_expression "iVar1 + 0x40" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);\n    }" { (return_statement "return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);" return (call_expression "(uint)(*(ushort *)(iVar1 + 0x42) == param_1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(ushort *)(iVar1 + 0x42) == param_1)" ( (binary_expression "*(ushort *)(iVar1 + 0x42) == param_1" (pointer_expression "*(ushort *)(iVar1 + 0x42)" * (cast_expression "(ushort *)(iVar1 + 0x42)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x42)" ( (binary_expression "iVar1 + 0x42" identifier + number_literal) )))) == identifier) ))) ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68);" (assignment_expression "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + -0x2a68" identifier + number_literal) )))) ;) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT : : IDENT : :) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (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 = (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) ))) ;) })) (return_statement return LIT ;) })) (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 ;) })))
(function_definition "uint gold::Symbol::is_common_shndx(uint param_1)\n\n{\n  int iVar1;\n  uint uVar2;\n  \n  if (param_1 == 0xfff2) {\n    return 1;\n  }\n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0) {\n    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (*(ushort *)(iVar1 + 0x40) != param_1) {\n      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);\n    }\n    return 1;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68);\n  return uVar2;\n}" (type_identifier "uint") (ERROR "gold::Symbol::" (identifier "gold") (: ":") (: ":") (identifier "Symbol") (: ":") (: ":")) (function_declarator "is_common_shndx(uint param_1)" (identifier "is_common_shndx") (parameter_list "(uint param_1)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  \n  if (param_1 == 0xfff2) {\n    return 1;\n  }\n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0) {\n    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (*(ushort *)(iVar1 + 0x40) != param_1) {\n      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);\n    }\n    return 1;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68);\n  return uVar2;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (if_statement "if (param_1 == 0xfff2) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(param_1 == 0xfff2)" (( "(") (binary_expression "param_1 == 0xfff2" (identifier "param_1") (== "==") (number_literal "0xfff2")) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0) {\n    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (*(ushort *)(iVar1 + 0x40) != param_1) {\n      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);\n    }\n    return 1;\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" (* "*") (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 0xc)" (( "(") (binary_expression "*(int *)PTR_parameters_00432be0 + 0xc" (pointer_expression "*(int *)PTR_parameters_00432be0" (* "*") (cast_expression "(int *)PTR_parameters_00432be0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parameters_00432be0"))) (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);\n    if (*(ushort *)(iVar1 + 0x40) != param_1) {\n      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);\n    }\n    return 1;\n  }" ({ "{") (expression_statement "iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);" (assignment_expression "iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" (* "*") (cast_expression "(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" (* "*") (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 0xc)" (( "(") (binary_expression "*(int *)PTR_parameters_00432be0 + 0xc" (pointer_expression "*(int *)PTR_parameters_00432be0" (* "*") (cast_expression "(int *)PTR_parameters_00432be0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parameters_00432be0"))) (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(ushort *)(iVar1 + 0x40) != param_1) {\n      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);\n    }" (if "if") (parenthesized_expression "(*(ushort *)(iVar1 + 0x40) != param_1)" (( "(") (binary_expression "*(ushort *)(iVar1 + 0x40) != param_1" (pointer_expression "*(ushort *)(iVar1 + 0x40)" (* "*") (cast_expression "(ushort *)(iVar1 + 0x40)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x40)" (( "(") (binary_expression "iVar1 + 0x40" (identifier "iVar1") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (identifier "param_1")) () ")")) (compound_statement "{\n      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);\n    }" ({ "{") (return_statement "return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);" (return "return") (call_expression "(uint)(*(ushort *)(iVar1 + 0x42) == param_1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(ushort *)(iVar1 + 0x42) == param_1)" (( "(") (binary_expression "*(ushort *)(iVar1 + 0x42) == param_1" (pointer_expression "*(ushort *)(iVar1 + 0x42)" (* "*") (cast_expression "(ushort *)(iVar1 + 0x42)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x42)" (( "(") (binary_expression "iVar1 + 0x42" (identifier "iVar1") (+ "+") (number_literal "0x42")) () ")")))) (== "==") (identifier "param_1")) () ")"))) (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68);" (assignment_expression "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x5cec")) (, ",") (number_literal "0x69") (, ",") (binary_expression "PTR_DAT_0043226c + -0x2a68" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x2a68")) () ")")))) (; ";")) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) (ERROR (identifier) (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (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: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (return_statement (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))))) (return_statement (number_literal)))) (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)))))

/* gold::Symbol::MASKED(unsigned int) */

uint gold::Symbol::MASKED(uint param_1)

{
  int iVar1;
  uint uVar2;
  
  if (param_1 == 0xfff2) {
    return 1;
  }
  if (*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) != 0) {
    iVar1 = *(int *)(*(int *)(*(int *)PTR_parameters_00432be0 + 0xc) + 4);
    if (*(ushort *)(iVar1 + 0x40) != param_1) {
      return (uint)(*(ushort *)(iVar1 + 0x42) == param_1);
    }
    return 1;
  }
  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)
                    (PTR_s_alize_xindex_004323b4 + -0x5cec,0x69,PTR_DAT_0043226c + -0x2a68);
  return uVar2;
}

