
/* DWARF original prototype: uint output_symtab_index(Symbol_value<32> * this) */

uint __thiscall gold::Symbol_value<32>::output_symtab_index(Symbol_value<32> *this)

{
  uint uVar1;
  int *piVar2;
  int iVar3;
  undefined4 in_a3;
  undefined *puVar4;
  undefined *puVar5;
  
  if (0xfffffffc < this->output_symtab_index_ - 1) {
    iVar3 = 0x704;
    piVar2 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);
    puVar4 = PTR_do_gold_unreachable_004c1a30;
    (*(code *)PTR_do_gold_unreachable_004c1a30)
              (piVar2,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);
    puVar5 = puVar4 + 0x24b260;
    if (*piVar2 == 0) goto LAB_0027e02c;
    if (*piVar2 == -2) goto LAB_0027e02c;
    iVar3 = 0x70c;
    while( true ) {
      piVar2 = (int *)(*(int *)(puVar4 + 0x24329c) + 0x4570);
      (**(code **)(puVar4 + 0x243a50))
                (piVar2,iVar3,*(int *)(puVar4 + 0x24393c) + -0xa98,in_a3,puVar5);
LAB_0027e02c:
      uVar1 = (uint)(iVar3 - 1U < 0xfffffffd);
      if (uVar1 != 0) break;
      iVar3 = 0x70d;
    }
    *piVar2 = iVar3;
    return uVar1;
  }
  return this->output_symtab_index_;
}



void FUN_0027df94(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)

{
  int *piVar1;
  int iVar2;
  undefined *puVar3;
  undefined *puVar4;
  
  if (0xfffffffc < *param_1 - 1U) {
    iVar2 = 0x704;
    piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);
    puVar3 = PTR_do_gold_unreachable_004c1a30;
    (*(code *)PTR_do_gold_unreachable_004c1a30)
              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);
    puVar4 = puVar3 + 0x24b260;
    if (*piVar1 == 0) goto LAB_0027e02c;
    if (*piVar1 == -2) goto LAB_0027e02c;
    iVar2 = 0x70c;
    while( true ) {
      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);
      (**(code **)(puVar3 + 0x243a50))
                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);
LAB_0027e02c:
      if (iVar2 - 1U < 0xfffffffd) break;
      iVar2 = 0x70d;
    }
    *piVar1 = iVar2;
    return;
  }
  return;
}


lui gp,0x25
addiu gp,gp,-0x4d54
addu gp,gp,t9
lw v0,0x0(a0)
addiu v1,v0,-0x1
sltiu v1,v1,-0x3
beq v1,zero,0x0027dfbc
_lw a2,-0x7924(gp)
jr ra
_nop
addiu sp,sp,-0x20
lw a0,-0x7fc4(gp)
li a1,0x704
lw t9,-0x7810(gp)
addiu a2,a2,-0xa80
sw gp,0x10(sp)
sw ra,0x1c(sp)
jalr t9
_addiu a0,a0,0x4570
(translation_unit "void FUN_0027df94(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  int *piVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  \n  if (0xfffffffc < *param_1 - 1U) {\n    iVar2 = 0x704;\n    piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n    puVar3 = PTR_do_gold_unreachable_004c1a30;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);\n    puVar4 = puVar3 + 0x24b260;\n    if (*piVar1 == 0) goto LAB_0027e02c;\n    if (*piVar1 == -2) goto LAB_0027e02c;\n    iVar2 = 0x70c;\n    while( true ) {\n      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);\n      (**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);\nLAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;\n      iVar2 = 0x70d;\n    }\n    *piVar1 = iVar2;\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_0027df94(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  int *piVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  \n  if (0xfffffffc < *param_1 - 1U) {\n    iVar2 = 0x704;\n    piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n    puVar3 = PTR_do_gold_unreachable_004c1a30;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);\n    puVar4 = puVar3 + 0x24b260;\n    if (*piVar1 == 0) goto LAB_0027e02c;\n    if (*piVar1 == -2) goto LAB_0027e02c;\n    iVar2 = 0x70c;\n    while( true ) {\n      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);\n      (**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);\nLAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;\n      iVar2 = 0x70d;\n    }\n    *piVar1 = iVar2;\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0027df94(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)" identifier (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  \n  if (0xfffffffc < *param_1 - 1U) {\n    iVar2 = 0x704;\n    piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n    puVar3 = PTR_do_gold_unreachable_004c1a30;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);\n    puVar4 = puVar3 + 0x24b260;\n    if (*piVar1 == 0) goto LAB_0027e02c;\n    if (*piVar1 == -2) goto LAB_0027e02c;\n    iVar2 = 0x70c;\n    while( true ) {\n      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);\n      (**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);\nLAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;\n      iVar2 = 0x70d;\n    }\n    *piVar1 = iVar2;\n    return;\n  }\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (if_statement "if (0xfffffffc < *param_1 - 1U) {\n    iVar2 = 0x704;\n    piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n    puVar3 = PTR_do_gold_unreachable_004c1a30;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);\n    puVar4 = puVar3 + 0x24b260;\n    if (*piVar1 == 0) goto LAB_0027e02c;\n    if (*piVar1 == -2) goto LAB_0027e02c;\n    iVar2 = 0x70c;\n    while( true ) {\n      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);\n      (**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);\nLAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;\n      iVar2 = 0x70d;\n    }\n    *piVar1 = iVar2;\n    return;\n  }" if (parenthesized_expression "(0xfffffffc < *param_1 - 1U)" ( (binary_expression "0xfffffffc < *param_1 - 1U" number_literal < (binary_expression "*param_1 - 1U" (pointer_expression "*param_1" * identifier) - number_literal)) )) (compound_statement "{\n    iVar2 = 0x704;\n    piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n    puVar3 = PTR_do_gold_unreachable_004c1a30;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);\n    puVar4 = puVar3 + 0x24b260;\n    if (*piVar1 == 0) goto LAB_0027e02c;\n    if (*piVar1 == -2) goto LAB_0027e02c;\n    iVar2 = 0x70c;\n    while( true ) {\n      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);\n      (**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);\nLAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;\n      iVar2 = 0x70d;\n    }\n    *piVar1 = iVar2;\n    return;\n  }" { (expression_statement "iVar2 = 0x704;" (assignment_expression "iVar2 = 0x704" identifier = number_literal) ;) (expression_statement "piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);" (assignment_expression "piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" identifier = (cast_expression "(int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier + number_literal) )))) ;) (expression_statement "puVar3 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar3 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80)" (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 "(piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80)" ( identifier , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0xa80" identifier + number_literal) ))) ;) (expression_statement "puVar4 = puVar3 + 0x24b260;" (assignment_expression "puVar4 = puVar3 + 0x24b260" identifier = (binary_expression "puVar3 + 0x24b260" identifier + number_literal)) ;) (if_statement "if (*piVar1 == 0) goto LAB_0027e02c;" if (parenthesized_expression "(*piVar1 == 0)" ( (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" * identifier) == number_literal) )) (goto_statement "goto LAB_0027e02c;" goto statement_identifier ;)) (if_statement "if (*piVar1 == -2) goto LAB_0027e02c;" if (parenthesized_expression "(*piVar1 == -2)" ( (binary_expression "*piVar1 == -2" (pointer_expression "*piVar1" * identifier) == number_literal) )) (goto_statement "goto LAB_0027e02c;" goto statement_identifier ;)) (expression_statement "iVar2 = 0x70c;" (assignment_expression "iVar2 = 0x70c" identifier = number_literal) ;) (while_statement "while( true ) {\n      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);\n      (**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);\nLAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;\n      iVar2 = 0x70d;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);\n      (**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);\nLAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;\n      iVar2 = 0x70d;\n    }" { (expression_statement "piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);" (assignment_expression "piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570)" identifier = (cast_expression "(int *)(*(int *)(puVar3 + 0x24329c) + 0x4570)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0x24329c) + 0x4570)" ( (binary_expression "*(int *)(puVar3 + 0x24329c) + 0x4570" (pointer_expression "*(int *)(puVar3 + 0x24329c)" * (cast_expression "(int *)(puVar3 + 0x24329c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x24329c)" ( (binary_expression "puVar3 + 0x24329c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);" (call_expression "(**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4)" (parenthesized_expression "(**(code **)(puVar3 + 0x243a50))" ( (pointer_expression "**(code **)(puVar3 + 0x243a50)" * (pointer_expression "*(code **)(puVar3 + 0x243a50)" * (cast_expression "(code **)(puVar3 + 0x243a50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x243a50)" ( (binary_expression "puVar3 + 0x243a50" identifier + number_literal) ))))) )) (argument_list "(piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4)" ( identifier , identifier , (binary_expression "*(int *)(puVar3 + 0x24393c) + -0xa98" (pointer_expression "*(int *)(puVar3 + 0x24393c)" * (cast_expression "(int *)(puVar3 + 0x24393c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x24393c)" ( (binary_expression "puVar3 + 0x24393c" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (labeled_statement "LAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;" statement_identifier : (if_statement "if (iVar2 - 1U < 0xfffffffd) break;" if (parenthesized_expression "(iVar2 - 1U < 0xfffffffd)" ( (binary_expression "iVar2 - 1U < 0xfffffffd" (binary_expression "iVar2 - 1U" identifier - number_literal) < number_literal) )) (break_statement "break;" break ;))) (expression_statement "iVar2 = 0x70d;" (assignment_expression "iVar2 = 0x70d" identifier = number_literal) ;) })) (expression_statement "*piVar1 = iVar2;" (assignment_expression "*piVar1 = iVar2" (pointer_expression "*piVar1" * identifier) = identifier) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: uint output_symtab_index(Symbol_value<32> * this) */\n\nuint __thiscall gold::Symbol_value<32>::output_symtab_index(Symbol_value<32> *this)\n\n{\n  uint uVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 in_a3;\n  undefined *puVar4;\n  undefined *puVar5;\n  \n  if (0xfffffffc < this->output_symtab_index_ - 1) {\n    iVar3 = 0x704;\n    piVar2 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n    puVar4 = PTR_do_gold_unreachable_004c1a30;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar2,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);\n    puVar5 = puVar4 + 0x24b260;\n    if (*piVar2 == 0) goto LAB_0027e02c;\n    if (*piVar2 == -2) goto LAB_0027e02c;\n    iVar3 = 0x70c;\n    while( true ) {\n      piVar2 = (int *)(*(int *)(puVar4 + 0x24329c) + 0x4570);\n      (**(code **)(puVar4 + 0x243a50))\n                (piVar2,iVar3,*(int *)(puVar4 + 0x24393c) + -0xa98,in_a3,puVar5);\nLAB_0027e02c:\n      uVar1 = (uint)(iVar3 - 1U < 0xfffffffd);\n      if (uVar1 != 0) break;\n      iVar3 = 0x70d;\n    }\n    *piVar2 = iVar3;\n    return uVar1;\n  }\n  return this->output_symtab_index_;\n}\n\n" comment (function_definition "uint __thiscall gold::Symbol_value<32>::output_symtab_index(Symbol_value<32> *this)\n\n{\n  uint uVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 in_a3;\n  undefined *puVar4;\n  undefined *puVar5;\n  \n  if (0xfffffffc < this->output_symtab_index_ - 1) {\n    iVar3 = 0x704;\n    piVar2 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n    puVar4 = PTR_do_gold_unreachable_004c1a30;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar2,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);\n    puVar5 = puVar4 + 0x24b260;\n    if (*piVar2 == 0) goto LAB_0027e02c;\n    if (*piVar2 == -2) goto LAB_0027e02c;\n    iVar3 = 0x70c;\n    while( true ) {\n      piVar2 = (int *)(*(int *)(puVar4 + 0x24329c) + 0x4570);\n      (**(code **)(puVar4 + 0x243a50))\n                (piVar2,iVar3,*(int *)(puVar4 + 0x24393c) + -0xa98,in_a3,puVar5);\nLAB_0027e02c:\n      uVar1 = (uint)(iVar3 - 1U < 0xfffffffd);\n      if (uVar1 != 0) break;\n      iVar3 = 0x70d;\n    }\n    *piVar2 = iVar3;\n    return uVar1;\n  }\n  return this->output_symtab_index_;\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_value<32>::" identifier : : identifier < number_literal > : :) (function_declarator "output_symtab_index(Symbol_value<32> *this)" identifier (parameter_list "(Symbol_value<32> *this)" ( (parameter_declaration "Symbol_value<32> *this" type_identifier (ERROR "<32>" < number_literal >) (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 in_a3;\n  undefined *puVar4;\n  undefined *puVar5;\n  \n  if (0xfffffffc < this->output_symtab_index_ - 1) {\n    iVar3 = 0x704;\n    piVar2 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n    puVar4 = PTR_do_gold_unreachable_004c1a30;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar2,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);\n    puVar5 = puVar4 + 0x24b260;\n    if (*piVar2 == 0) goto LAB_0027e02c;\n    if (*piVar2 == -2) goto LAB_0027e02c;\n    iVar3 = 0x70c;\n    while( true ) {\n      piVar2 = (int *)(*(int *)(puVar4 + 0x24329c) + 0x4570);\n      (**(code **)(puVar4 + 0x243a50))\n                (piVar2,iVar3,*(int *)(puVar4 + 0x24393c) + -0xa98,in_a3,puVar5);\nLAB_0027e02c:\n      uVar1 = (uint)(iVar3 - 1U < 0xfffffffd);\n      if (uVar1 != 0) break;\n      iVar3 = 0x70d;\n    }\n    *piVar2 = iVar3;\n    return uVar1;\n  }\n  return this->output_symtab_index_;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 in_a3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (if_statement "if (0xfffffffc < this->output_symtab_index_ - 1) {\n    iVar3 = 0x704;\n    piVar2 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n    puVar4 = PTR_do_gold_unreachable_004c1a30;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar2,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);\n    puVar5 = puVar4 + 0x24b260;\n    if (*piVar2 == 0) goto LAB_0027e02c;\n    if (*piVar2 == -2) goto LAB_0027e02c;\n    iVar3 = 0x70c;\n    while( true ) {\n      piVar2 = (int *)(*(int *)(puVar4 + 0x24329c) + 0x4570);\n      (**(code **)(puVar4 + 0x243a50))\n                (piVar2,iVar3,*(int *)(puVar4 + 0x24393c) + -0xa98,in_a3,puVar5);\nLAB_0027e02c:\n      uVar1 = (uint)(iVar3 - 1U < 0xfffffffd);\n      if (uVar1 != 0) break;\n      iVar3 = 0x70d;\n    }\n    *piVar2 = iVar3;\n    return uVar1;\n  }" if (parenthesized_expression "(0xfffffffc < this->output_symtab_index_ - 1)" ( (binary_expression "0xfffffffc < this->output_symtab_index_ - 1" number_literal < (binary_expression "this->output_symtab_index_ - 1" (field_expression "this->output_symtab_index_" identifier -> field_identifier) - number_literal)) )) (compound_statement "{\n    iVar3 = 0x704;\n    piVar2 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n    puVar4 = PTR_do_gold_unreachable_004c1a30;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar2,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);\n    puVar5 = puVar4 + 0x24b260;\n    if (*piVar2 == 0) goto LAB_0027e02c;\n    if (*piVar2 == -2) goto LAB_0027e02c;\n    iVar3 = 0x70c;\n    while( true ) {\n      piVar2 = (int *)(*(int *)(puVar4 + 0x24329c) + 0x4570);\n      (**(code **)(puVar4 + 0x243a50))\n                (piVar2,iVar3,*(int *)(puVar4 + 0x24393c) + -0xa98,in_a3,puVar5);\nLAB_0027e02c:\n      uVar1 = (uint)(iVar3 - 1U < 0xfffffffd);\n      if (uVar1 != 0) break;\n      iVar3 = 0x70d;\n    }\n    *piVar2 = iVar3;\n    return uVar1;\n  }" { (expression_statement "iVar3 = 0x704;" (assignment_expression "iVar3 = 0x704" identifier = number_literal) ;) (expression_statement "piVar2 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);" (assignment_expression "piVar2 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" identifier = (cast_expression "(int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier + number_literal) )))) ;) (expression_statement "puVar4 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar4 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar2,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar2,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80)" (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 "(piVar2,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80)" ( identifier , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0xa80" identifier + number_literal) ))) ;) (expression_statement "puVar5 = puVar4 + 0x24b260;" (assignment_expression "puVar5 = puVar4 + 0x24b260" identifier = (binary_expression "puVar4 + 0x24b260" identifier + number_literal)) ;) (if_statement "if (*piVar2 == 0) goto LAB_0027e02c;" if (parenthesized_expression "(*piVar2 == 0)" ( (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" * identifier) == number_literal) )) (goto_statement "goto LAB_0027e02c;" goto statement_identifier ;)) (if_statement "if (*piVar2 == -2) goto LAB_0027e02c;" if (parenthesized_expression "(*piVar2 == -2)" ( (binary_expression "*piVar2 == -2" (pointer_expression "*piVar2" * identifier) == number_literal) )) (goto_statement "goto LAB_0027e02c;" goto statement_identifier ;)) (expression_statement "iVar3 = 0x70c;" (assignment_expression "iVar3 = 0x70c" identifier = number_literal) ;) (while_statement "while( true ) {\n      piVar2 = (int *)(*(int *)(puVar4 + 0x24329c) + 0x4570);\n      (**(code **)(puVar4 + 0x243a50))\n                (piVar2,iVar3,*(int *)(puVar4 + 0x24393c) + -0xa98,in_a3,puVar5);\nLAB_0027e02c:\n      uVar1 = (uint)(iVar3 - 1U < 0xfffffffd);\n      if (uVar1 != 0) break;\n      iVar3 = 0x70d;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      piVar2 = (int *)(*(int *)(puVar4 + 0x24329c) + 0x4570);\n      (**(code **)(puVar4 + 0x243a50))\n                (piVar2,iVar3,*(int *)(puVar4 + 0x24393c) + -0xa98,in_a3,puVar5);\nLAB_0027e02c:\n      uVar1 = (uint)(iVar3 - 1U < 0xfffffffd);\n      if (uVar1 != 0) break;\n      iVar3 = 0x70d;\n    }" { (expression_statement "piVar2 = (int *)(*(int *)(puVar4 + 0x24329c) + 0x4570);" (assignment_expression "piVar2 = (int *)(*(int *)(puVar4 + 0x24329c) + 0x4570)" identifier = (cast_expression "(int *)(*(int *)(puVar4 + 0x24329c) + 0x4570)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar4 + 0x24329c) + 0x4570)" ( (binary_expression "*(int *)(puVar4 + 0x24329c) + 0x4570" (pointer_expression "*(int *)(puVar4 + 0x24329c)" * (cast_expression "(int *)(puVar4 + 0x24329c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x24329c)" ( (binary_expression "puVar4 + 0x24329c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar4 + 0x243a50))\n                (piVar2,iVar3,*(int *)(puVar4 + 0x24393c) + -0xa98,in_a3,puVar5);" (call_expression "(**(code **)(puVar4 + 0x243a50))\n                (piVar2,iVar3,*(int *)(puVar4 + 0x24393c) + -0xa98,in_a3,puVar5)" (parenthesized_expression "(**(code **)(puVar4 + 0x243a50))" ( (pointer_expression "**(code **)(puVar4 + 0x243a50)" * (pointer_expression "*(code **)(puVar4 + 0x243a50)" * (cast_expression "(code **)(puVar4 + 0x243a50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x243a50)" ( (binary_expression "puVar4 + 0x243a50" identifier + number_literal) ))))) )) (argument_list "(piVar2,iVar3,*(int *)(puVar4 + 0x24393c) + -0xa98,in_a3,puVar5)" ( identifier , identifier , (binary_expression "*(int *)(puVar4 + 0x24393c) + -0xa98" (pointer_expression "*(int *)(puVar4 + 0x24393c)" * (cast_expression "(int *)(puVar4 + 0x24393c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x24393c)" ( (binary_expression "puVar4 + 0x24393c" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (labeled_statement "LAB_0027e02c:\n      uVar1 = (uint)(iVar3 - 1U < 0xfffffffd);" statement_identifier : (expression_statement "uVar1 = (uint)(iVar3 - 1U < 0xfffffffd);" (assignment_expression "uVar1 = (uint)(iVar3 - 1U < 0xfffffffd)" identifier = (call_expression "(uint)(iVar3 - 1U < 0xfffffffd)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 - 1U < 0xfffffffd)" ( (binary_expression "iVar3 - 1U < 0xfffffffd" (binary_expression "iVar3 - 1U" identifier - number_literal) < number_literal) )))) ;)) (if_statement "if (uVar1 != 0) break;" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = 0x70d;" (assignment_expression "iVar3 = 0x70d" identifier = number_literal) ;) })) (expression_statement "*piVar2 = iVar3;" (assignment_expression "*piVar2 = iVar3" (pointer_expression "*piVar2" * identifier) = identifier) ;) (return_statement "return uVar1;" return identifier ;) })) (return_statement "return this->output_symtab_index_;" return (field_expression "this->output_symtab_index_" identifier -> field_identifier) ;) })))
(translation_unit "void FUN_0027df94(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  int *piVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  \n  if (0xfffffffc < *param_1 - 1U) {\n    iVar2 = 0x704;\n    piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n    puVar3 = PTR_do_gold_unreachable_004c1a30;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);\n    puVar4 = puVar3 + 0x24b260;\n    if (*piVar1 == 0) goto LAB_0027e02c;\n    if (*piVar1 == -2) goto LAB_0027e02c;\n    iVar2 = 0x70c;\n    while( true ) {\n      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);\n      (**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);\nLAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;\n      iVar2 = 0x70d;\n    }\n    *piVar1 = iVar2;\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_0027df94(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  int *piVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  \n  if (0xfffffffc < *param_1 - 1U) {\n    iVar2 = 0x704;\n    piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n    puVar3 = PTR_do_gold_unreachable_004c1a30;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);\n    puVar4 = puVar3 + 0x24b260;\n    if (*piVar1 == 0) goto LAB_0027e02c;\n    if (*piVar1 == -2) goto LAB_0027e02c;\n    iVar2 = 0x70c;\n    while( true ) {\n      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);\n      (**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);\nLAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;\n      iVar2 = 0x70d;\n    }\n    *piVar1 = iVar2;\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0027df94(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)" identifier (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  \n  if (0xfffffffc < *param_1 - 1U) {\n    iVar2 = 0x704;\n    piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n    puVar3 = PTR_do_gold_unreachable_004c1a30;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);\n    puVar4 = puVar3 + 0x24b260;\n    if (*piVar1 == 0) goto LAB_0027e02c;\n    if (*piVar1 == -2) goto LAB_0027e02c;\n    iVar2 = 0x70c;\n    while( true ) {\n      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);\n      (**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);\nLAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;\n      iVar2 = 0x70d;\n    }\n    *piVar1 = iVar2;\n    return;\n  }\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (if_statement "if (0xfffffffc < *param_1 - 1U) {\n    iVar2 = 0x704;\n    piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n    puVar3 = PTR_do_gold_unreachable_004c1a30;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);\n    puVar4 = puVar3 + 0x24b260;\n    if (*piVar1 == 0) goto LAB_0027e02c;\n    if (*piVar1 == -2) goto LAB_0027e02c;\n    iVar2 = 0x70c;\n    while( true ) {\n      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);\n      (**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);\nLAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;\n      iVar2 = 0x70d;\n    }\n    *piVar1 = iVar2;\n    return;\n  }" if (parenthesized_expression "(0xfffffffc < *param_1 - 1U)" ( (binary_expression "0xfffffffc < *param_1 - 1U" number_literal < (binary_expression "*param_1 - 1U" (pointer_expression "*param_1" * identifier) - number_literal)) )) (compound_statement "{\n    iVar2 = 0x704;\n    piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n    puVar3 = PTR_do_gold_unreachable_004c1a30;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);\n    puVar4 = puVar3 + 0x24b260;\n    if (*piVar1 == 0) goto LAB_0027e02c;\n    if (*piVar1 == -2) goto LAB_0027e02c;\n    iVar2 = 0x70c;\n    while( true ) {\n      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);\n      (**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);\nLAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;\n      iVar2 = 0x70d;\n    }\n    *piVar1 = iVar2;\n    return;\n  }" { (expression_statement "iVar2 = 0x704;" (assignment_expression "iVar2 = 0x704" identifier = number_literal) ;) (expression_statement "piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);" (assignment_expression "piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" identifier = (cast_expression "(int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier + number_literal) )))) ;) (expression_statement "puVar3 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar3 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80)" (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 "(piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80)" ( identifier , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0xa80" identifier + number_literal) ))) ;) (expression_statement "puVar4 = puVar3 + 0x24b260;" (assignment_expression "puVar4 = puVar3 + 0x24b260" identifier = (binary_expression "puVar3 + 0x24b260" identifier + number_literal)) ;) (if_statement "if (*piVar1 == 0) goto LAB_0027e02c;" if (parenthesized_expression "(*piVar1 == 0)" ( (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" * identifier) == number_literal) )) (goto_statement "goto LAB_0027e02c;" goto statement_identifier ;)) (if_statement "if (*piVar1 == -2) goto LAB_0027e02c;" if (parenthesized_expression "(*piVar1 == -2)" ( (binary_expression "*piVar1 == -2" (pointer_expression "*piVar1" * identifier) == number_literal) )) (goto_statement "goto LAB_0027e02c;" goto statement_identifier ;)) (expression_statement "iVar2 = 0x70c;" (assignment_expression "iVar2 = 0x70c" identifier = number_literal) ;) (while_statement "while( true ) {\n      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);\n      (**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);\nLAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;\n      iVar2 = 0x70d;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);\n      (**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);\nLAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;\n      iVar2 = 0x70d;\n    }" { (expression_statement "piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);" (assignment_expression "piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570)" identifier = (cast_expression "(int *)(*(int *)(puVar3 + 0x24329c) + 0x4570)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0x24329c) + 0x4570)" ( (binary_expression "*(int *)(puVar3 + 0x24329c) + 0x4570" (pointer_expression "*(int *)(puVar3 + 0x24329c)" * (cast_expression "(int *)(puVar3 + 0x24329c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x24329c)" ( (binary_expression "puVar3 + 0x24329c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);" (call_expression "(**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4)" (parenthesized_expression "(**(code **)(puVar3 + 0x243a50))" ( (pointer_expression "**(code **)(puVar3 + 0x243a50)" * (pointer_expression "*(code **)(puVar3 + 0x243a50)" * (cast_expression "(code **)(puVar3 + 0x243a50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x243a50)" ( (binary_expression "puVar3 + 0x243a50" identifier + number_literal) ))))) )) (argument_list "(piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4)" ( identifier , identifier , (binary_expression "*(int *)(puVar3 + 0x24393c) + -0xa98" (pointer_expression "*(int *)(puVar3 + 0x24393c)" * (cast_expression "(int *)(puVar3 + 0x24393c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x24393c)" ( (binary_expression "puVar3 + 0x24393c" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (labeled_statement "LAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;" statement_identifier : (if_statement "if (iVar2 - 1U < 0xfffffffd) break;" if (parenthesized_expression "(iVar2 - 1U < 0xfffffffd)" ( (binary_expression "iVar2 - 1U < 0xfffffffd" (binary_expression "iVar2 - 1U" identifier - number_literal) < number_literal) )) (break_statement "break;" break ;))) (expression_statement "iVar2 = 0x70d;" (assignment_expression "iVar2 = 0x70d" identifier = number_literal) ;) })) (expression_statement "*piVar1 = iVar2;" (assignment_expression "*piVar1 = iVar2" (pointer_expression "*piVar1" * identifier) = identifier) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (pointer_expression * IDENT) - LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (break_statement break ;))) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return ;) })) (return_statement return ;) })))
(function_definition "void FUN_0027df94(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  int *piVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  \n  if (0xfffffffc < *param_1 - 1U) {\n    iVar2 = 0x704;\n    piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n    puVar3 = PTR_do_gold_unreachable_004c1a30;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);\n    puVar4 = puVar3 + 0x24b260;\n    if (*piVar1 == 0) goto LAB_0027e02c;\n    if (*piVar1 == -2) goto LAB_0027e02c;\n    iVar2 = 0x70c;\n    while( true ) {\n      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);\n      (**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);\nLAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;\n      iVar2 = 0x70d;\n    }\n    *piVar1 = iVar2;\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0027df94(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)" (identifier "FUN_0027df94") (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) () ")"))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  \n  if (0xfffffffc < *param_1 - 1U) {\n    iVar2 = 0x704;\n    piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n    puVar3 = PTR_do_gold_unreachable_004c1a30;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);\n    puVar4 = puVar3 + 0x24b260;\n    if (*piVar1 == 0) goto LAB_0027e02c;\n    if (*piVar1 == -2) goto LAB_0027e02c;\n    iVar2 = 0x70c;\n    while( true ) {\n      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);\n      (**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);\nLAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;\n      iVar2 = 0x70d;\n    }\n    *piVar1 = iVar2;\n    return;\n  }\n  return;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (if_statement "if (0xfffffffc < *param_1 - 1U) {\n    iVar2 = 0x704;\n    piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n    puVar3 = PTR_do_gold_unreachable_004c1a30;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);\n    puVar4 = puVar3 + 0x24b260;\n    if (*piVar1 == 0) goto LAB_0027e02c;\n    if (*piVar1 == -2) goto LAB_0027e02c;\n    iVar2 = 0x70c;\n    while( true ) {\n      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);\n      (**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);\nLAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;\n      iVar2 = 0x70d;\n    }\n    *piVar1 = iVar2;\n    return;\n  }" (if "if") (parenthesized_expression "(0xfffffffc < *param_1 - 1U)" (( "(") (binary_expression "0xfffffffc < *param_1 - 1U" (number_literal "0xfffffffc") (< "<") (binary_expression "*param_1 - 1U" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (- "-") (number_literal "1U"))) () ")")) (compound_statement "{\n    iVar2 = 0x704;\n    piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n    puVar3 = PTR_do_gold_unreachable_004c1a30;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);\n    puVar4 = puVar3 + 0x24b260;\n    if (*piVar1 == 0) goto LAB_0027e02c;\n    if (*piVar1 == -2) goto LAB_0027e02c;\n    iVar2 = 0x70c;\n    while( true ) {\n      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);\n      (**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);\nLAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;\n      iVar2 = 0x70d;\n    }\n    *piVar1 = iVar2;\n    return;\n  }" ({ "{") (expression_statement "iVar2 = 0x704;" (assignment_expression "iVar2 = 0x704" (identifier "iVar2") (= "=") (number_literal "0x704")) (; ";")) (expression_statement "piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);" (assignment_expression "piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" (identifier "piVar1") (= "=") (cast_expression "(int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x4570")) () ")")))) (; ";")) (expression_statement "puVar3 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar3 = PTR_do_gold_unreachable_004c1a30" (identifier "puVar3") (= "=") (identifier "PTR_do_gold_unreachable_004c1a30")) (; ";")) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80)" (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 "(piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80)" (( "(") (identifier "piVar1") (, ",") (number_literal "0x704") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0xa80" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0xa80")) () ")"))) (; ";")) (expression_statement "puVar4 = puVar3 + 0x24b260;" (assignment_expression "puVar4 = puVar3 + 0x24b260" (identifier "puVar4") (= "=") (binary_expression "puVar3 + 0x24b260" (identifier "puVar3") (+ "+") (number_literal "0x24b260"))) (; ";")) (if_statement "if (*piVar1 == 0) goto LAB_0027e02c;" (if "if") (parenthesized_expression "(*piVar1 == 0)" (( "(") (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0027e02c;" (goto "goto") (statement_identifier "LAB_0027e02c") (; ";"))) (if_statement "if (*piVar1 == -2) goto LAB_0027e02c;" (if "if") (parenthesized_expression "(*piVar1 == -2)" (( "(") (binary_expression "*piVar1 == -2" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (== "==") (number_literal "-2")) () ")")) (goto_statement "goto LAB_0027e02c;" (goto "goto") (statement_identifier "LAB_0027e02c") (; ";"))) (expression_statement "iVar2 = 0x70c;" (assignment_expression "iVar2 = 0x70c" (identifier "iVar2") (= "=") (number_literal "0x70c")) (; ";")) (while_statement "while( true ) {\n      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);\n      (**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);\nLAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;\n      iVar2 = 0x70d;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);\n      (**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);\nLAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;\n      iVar2 = 0x70d;\n    }" ({ "{") (expression_statement "piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);" (assignment_expression "piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570)" (identifier "piVar1") (= "=") (cast_expression "(int *)(*(int *)(puVar3 + 0x24329c) + 0x4570)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar3 + 0x24329c) + 0x4570)" (( "(") (binary_expression "*(int *)(puVar3 + 0x24329c) + 0x4570" (pointer_expression "*(int *)(puVar3 + 0x24329c)" (* "*") (cast_expression "(int *)(puVar3 + 0x24329c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0x24329c)" (( "(") (binary_expression "puVar3 + 0x24329c" (identifier "puVar3") (+ "+") (number_literal "0x24329c")) () ")")))) (+ "+") (number_literal "0x4570")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);" (call_expression "(**(code **)(puVar3 + 0x243a50))\n                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4)" (parenthesized_expression "(**(code **)(puVar3 + 0x243a50))" (( "(") (pointer_expression "**(code **)(puVar3 + 0x243a50)" (* "*") (pointer_expression "*(code **)(puVar3 + 0x243a50)" (* "*") (cast_expression "(code **)(puVar3 + 0x243a50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + 0x243a50)" (( "(") (binary_expression "puVar3 + 0x243a50" (identifier "puVar3") (+ "+") (number_literal "0x243a50")) () ")"))))) () ")")) (argument_list "(piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4)" (( "(") (identifier "piVar1") (, ",") (identifier "iVar2") (, ",") (binary_expression "*(int *)(puVar3 + 0x24393c) + -0xa98" (pointer_expression "*(int *)(puVar3 + 0x24393c)" (* "*") (cast_expression "(int *)(puVar3 + 0x24393c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0x24393c)" (( "(") (binary_expression "puVar3 + 0x24393c" (identifier "puVar3") (+ "+") (number_literal "0x24393c")) () ")")))) (+ "+") (number_literal "-0xa98")) (, ",") (identifier "param_4") (, ",") (identifier "puVar4") () ")"))) (; ";")) (labeled_statement "LAB_0027e02c:\n      if (iVar2 - 1U < 0xfffffffd) break;" (statement_identifier "LAB_0027e02c") (: ":") (if_statement "if (iVar2 - 1U < 0xfffffffd) break;" (if "if") (parenthesized_expression "(iVar2 - 1U < 0xfffffffd)" (( "(") (binary_expression "iVar2 - 1U < 0xfffffffd" (binary_expression "iVar2 - 1U" (identifier "iVar2") (- "-") (number_literal "1U")) (< "<") (number_literal "0xfffffffd")) () ")")) (break_statement "break;" (break "break") (; ";")))) (expression_statement "iVar2 = 0x70d;" (assignment_expression "iVar2 = 0x70d" (identifier "iVar2") (= "=") (number_literal "0x70d")) (; ";")) (} "}"))) (expression_statement "*piVar1 = iVar2;" (assignment_expression "*piVar1 = iVar2" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (identifier "iVar2")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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))))))) arguments: (argument_list (identifier) (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier) (identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (return_statement))) (return_statement))))

void MASKED(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)

{
  int *piVar1;
  int iVar2;
  undefined *puVar3;
  undefined *puVar4;
  
  if (0xfffffffc < *param_1 - 1U) {
    iVar2 = 0x704;
    piVar1 = (int *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);
    puVar3 = PTR_do_gold_unreachable_004c1a30;
    (*(code *)PTR_do_gold_unreachable_004c1a30)
              (piVar1,0x704,PTR_s_in_a_linker_script_004c191c + -0xa80);
    puVar4 = puVar3 + 0x24b260;
    if (*piVar1 == 0) goto LAB_0027e02c;
    if (*piVar1 == -2) goto LAB_0027e02c;
    iVar2 = 0x70c;
    while( true ) {
      piVar1 = (int *)(*(int *)(puVar3 + 0x24329c) + 0x4570);
      (**(code **)(puVar3 + 0x243a50))
                (piVar1,iVar2,*(int *)(puVar3 + 0x24393c) + -0xa98,param_4,puVar4);
LAB_0027e02c:
      if (iVar2 - 1U < 0xfffffffd) break;
      iVar2 = 0x70d;
    }
    *piVar1 = iVar2;
    return;
  }
  return;
}

