
bfd_boolean set_sym_sections(bfd_hash_entry *bh,void *inf)

{
  int iVar1;
  definedness_hash_entry *def;
  uint uVar2;
  uint uVar3;
  bfd_hash_entry *pbVar4;
  ulong uVar5;
  bfd_hash_entry *pbVar6;
  
  pbVar6 = (bfd_hash_entry *)(PTR__bfd_std_section_001dbf30 + 400);
  if ((((bh[1].next != pbVar6) &&
       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)
                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),bh->string,0,0,1),
       iVar1 != 0)) && (*(char *)(iVar1 + 0xc) == '\x03')) &&
     (*(bfd_hash_entry **)(iVar1 + 0x14) == pbVar6)) {
    pbVar4 = bh[1].next;
    uVar2 = *(uint *)(iVar1 + 0x1c);
    pbVar6 = pbVar4[3].next;
    uVar5 = pbVar4[2].hash;
    *(bfd_hash_entry **)(iVar1 + 0x14) = pbVar4;
    uVar3 = uVar2 - (int)pbVar6;
    *(uint *)(iVar1 + 0x1c) = uVar3;
    *(ulong *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - uVar5) - (uint)(uVar2 < uVar3);
  }
  return 1;
}



undefined4 FUN_000367c0(int param_1)

{
  int iVar1;
  uint uVar2;
  int iVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  undefined *puVar7;
  
  puVar7 = PTR__bfd_std_section_001dbf30 + 400;
  if ((((*(undefined **)(param_1 + 0xc) != puVar7) &&
       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)
                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),
                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&
      (*(char *)(iVar1 + 0xc) == '\x03')) && (*(undefined **)(iVar1 + 0x14) == puVar7)) {
    iVar5 = *(int *)(param_1 + 0xc);
    uVar2 = *(uint *)(iVar1 + 0x1c);
    iVar3 = *(int *)(iVar5 + 0x24);
    iVar6 = *(int *)(iVar5 + 0x20);
    *(int *)(iVar1 + 0x14) = iVar5;
    uVar4 = uVar2 - iVar3;
    *(uint *)(iVar1 + 0x1c) = uVar4;
    *(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4);
  }
  return 1;
}


lui gp,0x1b
addiu gp,gp,-0x2ef0
addu gp,gp,t9
addiu sp,sp,-0x30
lw v0,0xc(a0)
sw s0,0x24(sp)
sw gp,0x18(sp)
lw s0,-0x79a0(gp)
sw ra,0x2c(sp)
addiu s0,s0,0x190
beq v0,s0,0x0003682c
_sw s1,0x28(sp)
li v0,0x1
lw a1,0x4(a0)
lw t9,-0x78c8(gp)
or s1,a0,zero
sw v0,0x10(sp)
or a3,zero,zero
lw v0,-0x7fa8(gp)
or a2,zero,zero
jalr t9
_lw a0,0x20(v0)
beq v0,zero,0x0003682c
_li v1,0x3
lbu a0,0xc(v0)
beq a0,v1,0x00036844
_nop
lw ra,0x2c(sp)
li v0,0x1
lw s1,0x28(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x30
lw v1,0x14(v0)
bne v1,s0,0x00036830
_lw ra,0x2c(sp)
lw a2,0xc(s1)
lw a0,0x1c(v0)
lw v1,0x18(v0)
lw a1,0x24(a2)
lw a3,0x20(a2)
sw a2,0x14(v0)
subu a1,a0,a1
subu v1,v1,a3
sltu a0,a0,a1
sw a1,0x1c(v0)
subu v1,v1,a0
b 0x0003682c
_sw v1,0x18(v0)
(translation_unit "undefined4 FUN_000367c0(int param_1)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  undefined *puVar7;\n  \n  puVar7 = PTR__bfd_std_section_001dbf30 + 400;\n  if ((((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03')) && (*(undefined **)(iVar1 + 0x14) == puVar7)) {\n    iVar5 = *(int *)(param_1 + 0xc);\n    uVar2 = *(uint *)(iVar1 + 0x1c);\n    iVar3 = *(int *)(iVar5 + 0x24);\n    iVar6 = *(int *)(iVar5 + 0x20);\n    *(int *)(iVar1 + 0x14) = iVar5;\n    uVar4 = uVar2 - iVar3;\n    *(uint *)(iVar1 + 0x1c) = uVar4;\n    *(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4);\n  }\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_000367c0(int param_1)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  undefined *puVar7;\n  \n  puVar7 = PTR__bfd_std_section_001dbf30 + 400;\n  if ((((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03')) && (*(undefined **)(iVar1 + 0x14) == puVar7)) {\n    iVar5 = *(int *)(param_1 + 0xc);\n    uVar2 = *(uint *)(iVar1 + 0x1c);\n    iVar3 = *(int *)(iVar5 + 0x24);\n    iVar6 = *(int *)(iVar5 + 0x20);\n    *(int *)(iVar1 + 0x14) = iVar5;\n    uVar4 = uVar2 - iVar3;\n    *(uint *)(iVar1 + 0x1c) = uVar4;\n    *(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4);\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_000367c0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  undefined *puVar7;\n  \n  puVar7 = PTR__bfd_std_section_001dbf30 + 400;\n  if ((((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03')) && (*(undefined **)(iVar1 + 0x14) == puVar7)) {\n    iVar5 = *(int *)(param_1 + 0xc);\n    uVar2 = *(uint *)(iVar1 + 0x1c);\n    iVar3 = *(int *)(iVar5 + 0x24);\n    iVar6 = *(int *)(iVar5 + 0x20);\n    *(int *)(iVar1 + 0x14) = iVar5;\n    uVar4 = uVar2 - iVar3;\n    *(uint *)(iVar1 + 0x1c) = uVar4;\n    *(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4);\n  }\n  return 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (expression_statement "puVar7 = PTR__bfd_std_section_001dbf30 + 400;" (assignment_expression "puVar7 = PTR__bfd_std_section_001dbf30 + 400" identifier = (binary_expression "PTR__bfd_std_section_001dbf30 + 400" identifier + number_literal)) ;) (if_statement "if ((((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03')) && (*(undefined **)(iVar1 + 0x14) == puVar7)) {\n    iVar5 = *(int *)(param_1 + 0xc);\n    uVar2 = *(uint *)(iVar1 + 0x1c);\n    iVar3 = *(int *)(iVar5 + 0x24);\n    iVar6 = *(int *)(iVar5 + 0x20);\n    *(int *)(iVar1 + 0x14) = iVar5;\n    uVar4 = uVar2 - iVar3;\n    *(uint *)(iVar1 + 0x1c) = uVar4;\n    *(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4);\n  }" if (parenthesized_expression "((((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03')) && (*(undefined **)(iVar1 + 0x14) == puVar7))" ( (binary_expression "(((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03')) && (*(undefined **)(iVar1 + 0x14) == puVar7)" (parenthesized_expression "(((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03'))" ( (binary_expression "((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03')" (parenthesized_expression "((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0))" ( (binary_expression "(*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)" (parenthesized_expression "(*(undefined **)(param_1 + 0xc) != puVar7)" ( (binary_expression "*(undefined **)(param_1 + 0xc) != puVar7" (pointer_expression "*(undefined **)(param_1 + 0xc)" * (cast_expression "(undefined **)(param_1 + 0xc)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) != identifier) )) && (parenthesized_expression "(iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)" ( (comma_expression "iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0" (assignment_expression "iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1)" identifier = (call_expression "(*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1)" (parenthesized_expression "(*(code *)PTR_bfd_link_hash_lookup_001dc008)" ( (pointer_expression "*(code *)PTR_bfd_link_hash_lookup_001dc008" * (cast_expression "(code *)PTR_bfd_link_hash_lookup_001dc008" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1)" ( (pointer_expression "*(undefined4 *)(PTR_link_info_001db928 + 0x20)" * (cast_expression "(undefined4 *)(PTR_link_info_001db928 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_link_info_001db928 + 0x20)" ( (binary_expression "PTR_link_info_001db928 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) , number_literal , number_literal , number_literal )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(*(char *)(iVar1 + 0xc) == '\x03')" ( (binary_expression "*(char *)(iVar1 + 0xc) == '\x03'" (pointer_expression "*(char *)(iVar1 + 0xc)" * (cast_expression "(char *)(iVar1 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(*(undefined **)(iVar1 + 0x14) == puVar7)" ( (binary_expression "*(undefined **)(iVar1 + 0x14) == puVar7" (pointer_expression "*(undefined **)(iVar1 + 0x14)" * (cast_expression "(undefined **)(iVar1 + 0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) == identifier) ))) )) (compound_statement "{\n    iVar5 = *(int *)(param_1 + 0xc);\n    uVar2 = *(uint *)(iVar1 + 0x1c);\n    iVar3 = *(int *)(iVar5 + 0x24);\n    iVar6 = *(int *)(iVar5 + 0x20);\n    *(int *)(iVar1 + 0x14) = iVar5;\n    uVar4 = uVar2 - iVar3;\n    *(uint *)(iVar1 + 0x1c) = uVar4;\n    *(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4);\n  }" { (expression_statement "iVar5 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar5 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(uint *)(iVar1 + 0x1c);" (assignment_expression "uVar2 = *(uint *)(iVar1 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x1c)" * (cast_expression "(uint *)(iVar1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1c)" ( (binary_expression "iVar1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(iVar5 + 0x24);" (assignment_expression "iVar3 = *(int *)(iVar5 + 0x24)" identifier = (pointer_expression "*(int *)(iVar5 + 0x24)" * (cast_expression "(int *)(iVar5 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(iVar5 + 0x20);" (assignment_expression "iVar6 = *(int *)(iVar5 + 0x20)" identifier = (pointer_expression "*(int *)(iVar5 + 0x20)" * (cast_expression "(int *)(iVar5 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x20)" ( (binary_expression "iVar5 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar1 + 0x14) = iVar5;" (assignment_expression "*(int *)(iVar1 + 0x14) = iVar5" (pointer_expression "*(int *)(iVar1 + 0x14)" * (cast_expression "(int *)(iVar1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = uVar2 - iVar3;" (assignment_expression "uVar4 = uVar2 - iVar3" identifier = (binary_expression "uVar2 - iVar3" identifier - identifier)) ;) (expression_statement "*(uint *)(iVar1 + 0x1c) = uVar4;" (assignment_expression "*(uint *)(iVar1 + 0x1c) = uVar4" (pointer_expression "*(uint *)(iVar1 + 0x1c)" * (cast_expression "(uint *)(iVar1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1c)" ( (binary_expression "iVar1 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4);" (assignment_expression "*(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4)" (pointer_expression "*(uint *)(iVar1 + 0x18)" * (cast_expression "(uint *)(iVar1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) = (binary_expression "(*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4)" (parenthesized_expression "(*(int *)(iVar1 + 0x18) - iVar6)" ( (binary_expression "*(int *)(iVar1 + 0x18) - iVar6" (pointer_expression "*(int *)(iVar1 + 0x18)" * (cast_expression "(int *)(iVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) - identifier) )) - (call_expression "(uint)(uVar2 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < uVar4)" ( (binary_expression "uVar2 < uVar4" identifier < identifier) ))))) ;) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "bfd_boolean set_sym_sections(bfd_hash_entry *bh,void *inf)\n\n{\n  int iVar1;\n  definedness_hash_entry *def;\n  uint uVar2;\n  uint uVar3;\n  bfd_hash_entry *pbVar4;\n  ulong uVar5;\n  bfd_hash_entry *pbVar6;\n  \n  pbVar6 = (bfd_hash_entry *)(PTR__bfd_std_section_001dbf30 + 400);\n  if ((((bh[1].next != pbVar6) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),bh->string,0,0,1),\n       iVar1 != 0)) && (*(char *)(iVar1 + 0xc) == '\x03')) &&\n     (*(bfd_hash_entry **)(iVar1 + 0x14) == pbVar6)) {\n    pbVar4 = bh[1].next;\n    uVar2 = *(uint *)(iVar1 + 0x1c);\n    pbVar6 = pbVar4[3].next;\n    uVar5 = pbVar4[2].hash;\n    *(bfd_hash_entry **)(iVar1 + 0x14) = pbVar4;\n    uVar3 = uVar2 - (int)pbVar6;\n    *(uint *)(iVar1 + 0x1c) = uVar3;\n    *(ulong *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - uVar5) - (uint)(uVar2 < uVar3);\n  }\n  return 1;\n}\n\n" (function_definition "bfd_boolean set_sym_sections(bfd_hash_entry *bh,void *inf)\n\n{\n  int iVar1;\n  definedness_hash_entry *def;\n  uint uVar2;\n  uint uVar3;\n  bfd_hash_entry *pbVar4;\n  ulong uVar5;\n  bfd_hash_entry *pbVar6;\n  \n  pbVar6 = (bfd_hash_entry *)(PTR__bfd_std_section_001dbf30 + 400);\n  if ((((bh[1].next != pbVar6) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),bh->string,0,0,1),\n       iVar1 != 0)) && (*(char *)(iVar1 + 0xc) == '\x03')) &&\n     (*(bfd_hash_entry **)(iVar1 + 0x14) == pbVar6)) {\n    pbVar4 = bh[1].next;\n    uVar2 = *(uint *)(iVar1 + 0x1c);\n    pbVar6 = pbVar4[3].next;\n    uVar5 = pbVar4[2].hash;\n    *(bfd_hash_entry **)(iVar1 + 0x14) = pbVar4;\n    uVar3 = uVar2 - (int)pbVar6;\n    *(uint *)(iVar1 + 0x1c) = uVar3;\n    *(ulong *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - uVar5) - (uint)(uVar2 < uVar3);\n  }\n  return 1;\n}" type_identifier (function_declarator "set_sym_sections(bfd_hash_entry *bh,void *inf)" identifier (parameter_list "(bfd_hash_entry *bh,void *inf)" ( (parameter_declaration "bfd_hash_entry *bh" type_identifier (pointer_declarator "*bh" * identifier)) , (parameter_declaration "void *inf" primitive_type (pointer_declarator "*inf" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  definedness_hash_entry *def;\n  uint uVar2;\n  uint uVar3;\n  bfd_hash_entry *pbVar4;\n  ulong uVar5;\n  bfd_hash_entry *pbVar6;\n  \n  pbVar6 = (bfd_hash_entry *)(PTR__bfd_std_section_001dbf30 + 400);\n  if ((((bh[1].next != pbVar6) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),bh->string,0,0,1),\n       iVar1 != 0)) && (*(char *)(iVar1 + 0xc) == '\x03')) &&\n     (*(bfd_hash_entry **)(iVar1 + 0x14) == pbVar6)) {\n    pbVar4 = bh[1].next;\n    uVar2 = *(uint *)(iVar1 + 0x1c);\n    pbVar6 = pbVar4[3].next;\n    uVar5 = pbVar4[2].hash;\n    *(bfd_hash_entry **)(iVar1 + 0x14) = pbVar4;\n    uVar3 = uVar2 - (int)pbVar6;\n    *(uint *)(iVar1 + 0x1c) = uVar3;\n    *(ulong *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - uVar5) - (uint)(uVar2 < uVar3);\n  }\n  return 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "definedness_hash_entry *def;" type_identifier (pointer_declarator "*def" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "bfd_hash_entry *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "bfd_hash_entry *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (expression_statement "pbVar6 = (bfd_hash_entry *)(PTR__bfd_std_section_001dbf30 + 400);" (assignment_expression "pbVar6 = (bfd_hash_entry *)(PTR__bfd_std_section_001dbf30 + 400)" identifier = (cast_expression "(bfd_hash_entry *)(PTR__bfd_std_section_001dbf30 + 400)" ( (type_descriptor "bfd_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_001dbf30 + 400)" ( (binary_expression "PTR__bfd_std_section_001dbf30 + 400" identifier + number_literal) )))) ;) (if_statement "if ((((bh[1].next != pbVar6) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),bh->string,0,0,1),\n       iVar1 != 0)) && (*(char *)(iVar1 + 0xc) == '\x03')) &&\n     (*(bfd_hash_entry **)(iVar1 + 0x14) == pbVar6)) {\n    pbVar4 = bh[1].next;\n    uVar2 = *(uint *)(iVar1 + 0x1c);\n    pbVar6 = pbVar4[3].next;\n    uVar5 = pbVar4[2].hash;\n    *(bfd_hash_entry **)(iVar1 + 0x14) = pbVar4;\n    uVar3 = uVar2 - (int)pbVar6;\n    *(uint *)(iVar1 + 0x1c) = uVar3;\n    *(ulong *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - uVar5) - (uint)(uVar2 < uVar3);\n  }" if (parenthesized_expression "((((bh[1].next != pbVar6) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),bh->string,0,0,1),\n       iVar1 != 0)) && (*(char *)(iVar1 + 0xc) == '\x03')) &&\n     (*(bfd_hash_entry **)(iVar1 + 0x14) == pbVar6))" ( (binary_expression "(((bh[1].next != pbVar6) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),bh->string,0,0,1),\n       iVar1 != 0)) && (*(char *)(iVar1 + 0xc) == '\x03')) &&\n     (*(bfd_hash_entry **)(iVar1 + 0x14) == pbVar6)" (parenthesized_expression "(((bh[1].next != pbVar6) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),bh->string,0,0,1),\n       iVar1 != 0)) && (*(char *)(iVar1 + 0xc) == '\x03'))" ( (binary_expression "((bh[1].next != pbVar6) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),bh->string,0,0,1),\n       iVar1 != 0)) && (*(char *)(iVar1 + 0xc) == '\x03')" (parenthesized_expression "((bh[1].next != pbVar6) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),bh->string,0,0,1),\n       iVar1 != 0))" ( (binary_expression "(bh[1].next != pbVar6) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),bh->string,0,0,1),\n       iVar1 != 0)" (parenthesized_expression "(bh[1].next != pbVar6)" ( (binary_expression "bh[1].next != pbVar6" (field_expression "bh[1].next" (subscript_expression "bh[1]" identifier [ number_literal ]) . field_identifier) != identifier) )) && (parenthesized_expression "(iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),bh->string,0,0,1),\n       iVar1 != 0)" ( (comma_expression "iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),bh->string,0,0,1),\n       iVar1 != 0" (assignment_expression "iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),bh->string,0,0,1)" identifier = (call_expression "(*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),bh->string,0,0,1)" (parenthesized_expression "(*(code *)PTR_bfd_link_hash_lookup_001dc008)" ( (pointer_expression "*(code *)PTR_bfd_link_hash_lookup_001dc008" * (cast_expression "(code *)PTR_bfd_link_hash_lookup_001dc008" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(PTR_link_info_001db928 + 0x20),bh->string,0,0,1)" ( (pointer_expression "*(undefined4 *)(PTR_link_info_001db928 + 0x20)" * (cast_expression "(undefined4 *)(PTR_link_info_001db928 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_link_info_001db928 + 0x20)" ( (binary_expression "PTR_link_info_001db928 + 0x20" identifier + number_literal) )))) , (field_expression "bh->string" identifier -> field_identifier) , number_literal , number_literal , number_literal )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(*(char *)(iVar1 + 0xc) == '\x03')" ( (binary_expression "*(char *)(iVar1 + 0xc) == '\x03'" (pointer_expression "*(char *)(iVar1 + 0xc)" * (cast_expression "(char *)(iVar1 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(*(bfd_hash_entry **)(iVar1 + 0x14) == pbVar6)" ( (binary_expression "*(bfd_hash_entry **)(iVar1 + 0x14) == pbVar6" (pointer_expression "*(bfd_hash_entry **)(iVar1 + 0x14)" * (cast_expression "(bfd_hash_entry **)(iVar1 + 0x14)" ( (type_descriptor "bfd_hash_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) == identifier) ))) )) (compound_statement "{\n    pbVar4 = bh[1].next;\n    uVar2 = *(uint *)(iVar1 + 0x1c);\n    pbVar6 = pbVar4[3].next;\n    uVar5 = pbVar4[2].hash;\n    *(bfd_hash_entry **)(iVar1 + 0x14) = pbVar4;\n    uVar3 = uVar2 - (int)pbVar6;\n    *(uint *)(iVar1 + 0x1c) = uVar3;\n    *(ulong *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - uVar5) - (uint)(uVar2 < uVar3);\n  }" { (expression_statement "pbVar4 = bh[1].next;" (assignment_expression "pbVar4 = bh[1].next" identifier = (field_expression "bh[1].next" (subscript_expression "bh[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "uVar2 = *(uint *)(iVar1 + 0x1c);" (assignment_expression "uVar2 = *(uint *)(iVar1 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x1c)" * (cast_expression "(uint *)(iVar1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1c)" ( (binary_expression "iVar1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "pbVar6 = pbVar4[3].next;" (assignment_expression "pbVar6 = pbVar4[3].next" identifier = (field_expression "pbVar4[3].next" (subscript_expression "pbVar4[3]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "uVar5 = pbVar4[2].hash;" (assignment_expression "uVar5 = pbVar4[2].hash" identifier = (field_expression "pbVar4[2].hash" (subscript_expression "pbVar4[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "*(bfd_hash_entry **)(iVar1 + 0x14) = pbVar4;" (assignment_expression "*(bfd_hash_entry **)(iVar1 + 0x14) = pbVar4" (pointer_expression "*(bfd_hash_entry **)(iVar1 + 0x14)" * (cast_expression "(bfd_hash_entry **)(iVar1 + 0x14)" ( (type_descriptor "bfd_hash_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = uVar2 - (int)pbVar6;" (assignment_expression "uVar3 = uVar2 - (int)pbVar6" identifier = (binary_expression "uVar2 - (int)pbVar6" identifier - (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(uint *)(iVar1 + 0x1c) = uVar3;" (assignment_expression "*(uint *)(iVar1 + 0x1c) = uVar3" (pointer_expression "*(uint *)(iVar1 + 0x1c)" * (cast_expression "(uint *)(iVar1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1c)" ( (binary_expression "iVar1 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(ulong *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - uVar5) - (uint)(uVar2 < uVar3);" (assignment_expression "*(ulong *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - uVar5) - (uint)(uVar2 < uVar3)" (pointer_expression "*(ulong *)(iVar1 + 0x18)" * (cast_expression "(ulong *)(iVar1 + 0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) = (binary_expression "(*(int *)(iVar1 + 0x18) - uVar5) - (uint)(uVar2 < uVar3)" (parenthesized_expression "(*(int *)(iVar1 + 0x18) - uVar5)" ( (binary_expression "*(int *)(iVar1 + 0x18) - uVar5" (pointer_expression "*(int *)(iVar1 + 0x18)" * (cast_expression "(int *)(iVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) - identifier) )) - (call_expression "(uint)(uVar2 < uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < uVar3)" ( (binary_expression "uVar2 < uVar3" identifier < identifier) ))))) ;) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "undefined4 FUN_000367c0(int param_1)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  undefined *puVar7;\n  \n  puVar7 = PTR__bfd_std_section_001dbf30 + 400;\n  if ((((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03')) && (*(undefined **)(iVar1 + 0x14) == puVar7)) {\n    iVar5 = *(int *)(param_1 + 0xc);\n    uVar2 = *(uint *)(iVar1 + 0x1c);\n    iVar3 = *(int *)(iVar5 + 0x24);\n    iVar6 = *(int *)(iVar5 + 0x20);\n    *(int *)(iVar1 + 0x14) = iVar5;\n    uVar4 = uVar2 - iVar3;\n    *(uint *)(iVar1 + 0x1c) = uVar4;\n    *(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4);\n  }\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_000367c0(int param_1)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  undefined *puVar7;\n  \n  puVar7 = PTR__bfd_std_section_001dbf30 + 400;\n  if ((((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03')) && (*(undefined **)(iVar1 + 0x14) == puVar7)) {\n    iVar5 = *(int *)(param_1 + 0xc);\n    uVar2 = *(uint *)(iVar1 + 0x1c);\n    iVar3 = *(int *)(iVar5 + 0x24);\n    iVar6 = *(int *)(iVar5 + 0x20);\n    *(int *)(iVar1 + 0x14) = iVar5;\n    uVar4 = uVar2 - iVar3;\n    *(uint *)(iVar1 + 0x1c) = uVar4;\n    *(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4);\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_000367c0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  undefined *puVar7;\n  \n  puVar7 = PTR__bfd_std_section_001dbf30 + 400;\n  if ((((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03')) && (*(undefined **)(iVar1 + 0x14) == puVar7)) {\n    iVar5 = *(int *)(param_1 + 0xc);\n    uVar2 = *(uint *)(iVar1 + 0x1c);\n    iVar3 = *(int *)(iVar5 + 0x24);\n    iVar6 = *(int *)(iVar5 + 0x20);\n    *(int *)(iVar1 + 0x14) = iVar5;\n    uVar4 = uVar2 - iVar3;\n    *(uint *)(iVar1 + 0x1c) = uVar4;\n    *(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4);\n  }\n  return 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (expression_statement "puVar7 = PTR__bfd_std_section_001dbf30 + 400;" (assignment_expression "puVar7 = PTR__bfd_std_section_001dbf30 + 400" identifier = (binary_expression "PTR__bfd_std_section_001dbf30 + 400" identifier + number_literal)) ;) (if_statement "if ((((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03')) && (*(undefined **)(iVar1 + 0x14) == puVar7)) {\n    iVar5 = *(int *)(param_1 + 0xc);\n    uVar2 = *(uint *)(iVar1 + 0x1c);\n    iVar3 = *(int *)(iVar5 + 0x24);\n    iVar6 = *(int *)(iVar5 + 0x20);\n    *(int *)(iVar1 + 0x14) = iVar5;\n    uVar4 = uVar2 - iVar3;\n    *(uint *)(iVar1 + 0x1c) = uVar4;\n    *(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4);\n  }" if (parenthesized_expression "((((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03')) && (*(undefined **)(iVar1 + 0x14) == puVar7))" ( (binary_expression "(((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03')) && (*(undefined **)(iVar1 + 0x14) == puVar7)" (parenthesized_expression "(((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03'))" ( (binary_expression "((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03')" (parenthesized_expression "((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0))" ( (binary_expression "(*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)" (parenthesized_expression "(*(undefined **)(param_1 + 0xc) != puVar7)" ( (binary_expression "*(undefined **)(param_1 + 0xc) != puVar7" (pointer_expression "*(undefined **)(param_1 + 0xc)" * (cast_expression "(undefined **)(param_1 + 0xc)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) != identifier) )) && (parenthesized_expression "(iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)" ( (comma_expression "iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0" (assignment_expression "iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1)" identifier = (call_expression "(*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1)" (parenthesized_expression "(*(code *)PTR_bfd_link_hash_lookup_001dc008)" ( (pointer_expression "*(code *)PTR_bfd_link_hash_lookup_001dc008" * (cast_expression "(code *)PTR_bfd_link_hash_lookup_001dc008" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1)" ( (pointer_expression "*(undefined4 *)(PTR_link_info_001db928 + 0x20)" * (cast_expression "(undefined4 *)(PTR_link_info_001db928 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_link_info_001db928 + 0x20)" ( (binary_expression "PTR_link_info_001db928 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) , number_literal , number_literal , number_literal )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(*(char *)(iVar1 + 0xc) == '\x03')" ( (binary_expression "*(char *)(iVar1 + 0xc) == '\x03'" (pointer_expression "*(char *)(iVar1 + 0xc)" * (cast_expression "(char *)(iVar1 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(*(undefined **)(iVar1 + 0x14) == puVar7)" ( (binary_expression "*(undefined **)(iVar1 + 0x14) == puVar7" (pointer_expression "*(undefined **)(iVar1 + 0x14)" * (cast_expression "(undefined **)(iVar1 + 0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) == identifier) ))) )) (compound_statement "{\n    iVar5 = *(int *)(param_1 + 0xc);\n    uVar2 = *(uint *)(iVar1 + 0x1c);\n    iVar3 = *(int *)(iVar5 + 0x24);\n    iVar6 = *(int *)(iVar5 + 0x20);\n    *(int *)(iVar1 + 0x14) = iVar5;\n    uVar4 = uVar2 - iVar3;\n    *(uint *)(iVar1 + 0x1c) = uVar4;\n    *(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4);\n  }" { (expression_statement "iVar5 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar5 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(uint *)(iVar1 + 0x1c);" (assignment_expression "uVar2 = *(uint *)(iVar1 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x1c)" * (cast_expression "(uint *)(iVar1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1c)" ( (binary_expression "iVar1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(iVar5 + 0x24);" (assignment_expression "iVar3 = *(int *)(iVar5 + 0x24)" identifier = (pointer_expression "*(int *)(iVar5 + 0x24)" * (cast_expression "(int *)(iVar5 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(iVar5 + 0x20);" (assignment_expression "iVar6 = *(int *)(iVar5 + 0x20)" identifier = (pointer_expression "*(int *)(iVar5 + 0x20)" * (cast_expression "(int *)(iVar5 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x20)" ( (binary_expression "iVar5 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar1 + 0x14) = iVar5;" (assignment_expression "*(int *)(iVar1 + 0x14) = iVar5" (pointer_expression "*(int *)(iVar1 + 0x14)" * (cast_expression "(int *)(iVar1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = uVar2 - iVar3;" (assignment_expression "uVar4 = uVar2 - iVar3" identifier = (binary_expression "uVar2 - iVar3" identifier - identifier)) ;) (expression_statement "*(uint *)(iVar1 + 0x1c) = uVar4;" (assignment_expression "*(uint *)(iVar1 + 0x1c) = uVar4" (pointer_expression "*(uint *)(iVar1 + 0x1c)" * (cast_expression "(uint *)(iVar1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1c)" ( (binary_expression "iVar1 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4);" (assignment_expression "*(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4)" (pointer_expression "*(uint *)(iVar1 + 0x18)" * (cast_expression "(uint *)(iVar1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) = (binary_expression "(*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4)" (parenthesized_expression "(*(int *)(iVar1 + 0x18) - iVar6)" ( (binary_expression "*(int *)(iVar1 + 0x18) - iVar6" (pointer_expression "*(int *)(iVar1 + 0x18)" * (cast_expression "(int *)(iVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) - identifier) )) - (call_expression "(uint)(uVar2 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < uVar4)" ( (binary_expression "uVar2 < uVar4" identifier < identifier) ))))) ;) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT , LIT )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) })) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_000367c0(int param_1)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  undefined *puVar7;\n  \n  puVar7 = PTR__bfd_std_section_001dbf30 + 400;\n  if ((((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03')) && (*(undefined **)(iVar1 + 0x14) == puVar7)) {\n    iVar5 = *(int *)(param_1 + 0xc);\n    uVar2 = *(uint *)(iVar1 + 0x1c);\n    iVar3 = *(int *)(iVar5 + 0x24);\n    iVar6 = *(int *)(iVar5 + 0x20);\n    *(int *)(iVar1 + 0x14) = iVar5;\n    uVar4 = uVar2 - iVar3;\n    *(uint *)(iVar1 + 0x1c) = uVar4;\n    *(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4);\n  }\n  return 1;\n}" (type_identifier "undefined4") (function_declarator "FUN_000367c0(int param_1)" (identifier "FUN_000367c0") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  undefined *puVar7;\n  \n  puVar7 = PTR__bfd_std_section_001dbf30 + 400;\n  if ((((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03')) && (*(undefined **)(iVar1 + 0x14) == puVar7)) {\n    iVar5 = *(int *)(param_1 + 0xc);\n    uVar2 = *(uint *)(iVar1 + 0x1c);\n    iVar3 = *(int *)(iVar5 + 0x24);\n    iVar6 = *(int *)(iVar5 + 0x20);\n    *(int *)(iVar1 + 0x14) = iVar5;\n    uVar4 = uVar2 - iVar3;\n    *(uint *)(iVar1 + 0x1c) = uVar4;\n    *(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4);\n  }\n  return 1;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (expression_statement "puVar7 = PTR__bfd_std_section_001dbf30 + 400;" (assignment_expression "puVar7 = PTR__bfd_std_section_001dbf30 + 400" (identifier "puVar7") (= "=") (binary_expression "PTR__bfd_std_section_001dbf30 + 400" (identifier "PTR__bfd_std_section_001dbf30") (+ "+") (number_literal "400"))) (; ";")) (if_statement "if ((((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03')) && (*(undefined **)(iVar1 + 0x14) == puVar7)) {\n    iVar5 = *(int *)(param_1 + 0xc);\n    uVar2 = *(uint *)(iVar1 + 0x1c);\n    iVar3 = *(int *)(iVar5 + 0x24);\n    iVar6 = *(int *)(iVar5 + 0x20);\n    *(int *)(iVar1 + 0x14) = iVar5;\n    uVar4 = uVar2 - iVar3;\n    *(uint *)(iVar1 + 0x1c) = uVar4;\n    *(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4);\n  }" (if "if") (parenthesized_expression "((((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03')) && (*(undefined **)(iVar1 + 0x14) == puVar7))" (( "(") (binary_expression "(((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03')) && (*(undefined **)(iVar1 + 0x14) == puVar7)" (parenthesized_expression "(((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03'))" (( "(") (binary_expression "((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&\n      (*(char *)(iVar1 + 0xc) == '\x03')" (parenthesized_expression "((*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0))" (( "(") (binary_expression "(*(undefined **)(param_1 + 0xc) != puVar7) &&\n       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)" (parenthesized_expression "(*(undefined **)(param_1 + 0xc) != puVar7)" (( "(") (binary_expression "*(undefined **)(param_1 + 0xc) != puVar7" (pointer_expression "*(undefined **)(param_1 + 0xc)" (* "*") (cast_expression "(undefined **)(param_1 + 0xc)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (identifier "puVar7")) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)" (( "(") (comma_expression "iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0" (assignment_expression "iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_bfd_link_hash_lookup_001dc008)\n                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1)" (parenthesized_expression "(*(code *)PTR_bfd_link_hash_lookup_001dc008)" (( "(") (pointer_expression "*(code *)PTR_bfd_link_hash_lookup_001dc008" (* "*") (cast_expression "(code *)PTR_bfd_link_hash_lookup_001dc008" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_bfd_link_hash_lookup_001dc008"))) () ")")) (argument_list "(*(undefined4 *)(PTR_link_info_001db928 + 0x20),\n                           *(undefined4 *)(param_1 + 4),0,0,1)" (( "(") (pointer_expression "*(undefined4 *)(PTR_link_info_001db928 + 0x20)" (* "*") (cast_expression "(undefined4 *)(PTR_link_info_001db928 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_link_info_001db928 + 0x20)" (( "(") (binary_expression "PTR_link_info_001db928 + 0x20" (identifier "PTR_link_info_001db928") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (, ",") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar1 + 0xc) == '\x03')" (( "(") (binary_expression "*(char *)(iVar1 + 0xc) == '\x03'" (pointer_expression "*(char *)(iVar1 + 0xc)" (* "*") (cast_expression "(char *)(iVar1 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xc)" (( "(") (binary_expression "iVar1 + 0xc" (identifier "iVar1") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(undefined **)(iVar1 + 0x14) == puVar7)" (( "(") (binary_expression "*(undefined **)(iVar1 + 0x14) == puVar7" (pointer_expression "*(undefined **)(iVar1 + 0x14)" (* "*") (cast_expression "(undefined **)(iVar1 + 0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (== "==") (identifier "puVar7")) () ")"))) () ")")) (compound_statement "{\n    iVar5 = *(int *)(param_1 + 0xc);\n    uVar2 = *(uint *)(iVar1 + 0x1c);\n    iVar3 = *(int *)(iVar5 + 0x24);\n    iVar6 = *(int *)(iVar5 + 0x20);\n    *(int *)(iVar1 + 0x14) = iVar5;\n    uVar4 = uVar2 - iVar3;\n    *(uint *)(iVar1 + 0x1c) = uVar4;\n    *(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4);\n  }" ({ "{") (expression_statement "iVar5 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar5 = *(int *)(param_1 + 0xc)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar2 = *(uint *)(iVar1 + 0x1c);" (assignment_expression "uVar2 = *(uint *)(iVar1 + 0x1c)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(iVar1 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar1 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1c)" (( "(") (binary_expression "iVar1 + 0x1c" (identifier "iVar1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(iVar5 + 0x24);" (assignment_expression "iVar3 = *(int *)(iVar5 + 0x24)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar5 + 0x24)" (* "*") (cast_expression "(int *)(iVar5 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x24)" (( "(") (binary_expression "iVar5 + 0x24" (identifier "iVar5") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(iVar5 + 0x20);" (assignment_expression "iVar6 = *(int *)(iVar5 + 0x20)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar5 + 0x20)" (* "*") (cast_expression "(int *)(iVar5 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x20)" (( "(") (binary_expression "iVar5 + 0x20" (identifier "iVar5") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar1 + 0x14) = iVar5;" (assignment_expression "*(int *)(iVar1 + 0x14) = iVar5" (pointer_expression "*(int *)(iVar1 + 0x14)" (* "*") (cast_expression "(int *)(iVar1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "uVar4 = uVar2 - iVar3;" (assignment_expression "uVar4 = uVar2 - iVar3" (identifier "uVar4") (= "=") (binary_expression "uVar2 - iVar3" (identifier "uVar2") (- "-") (identifier "iVar3"))) (; ";")) (expression_statement "*(uint *)(iVar1 + 0x1c) = uVar4;" (assignment_expression "*(uint *)(iVar1 + 0x1c) = uVar4" (pointer_expression "*(uint *)(iVar1 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar1 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1c)" (( "(") (binary_expression "iVar1 + 0x1c" (identifier "iVar1") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4);" (assignment_expression "*(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4)" (pointer_expression "*(uint *)(iVar1 + 0x18)" (* "*") (cast_expression "(uint *)(iVar1 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x18)" (( "(") (binary_expression "iVar1 + 0x18" (identifier "iVar1") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "(*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4)" (parenthesized_expression "(*(int *)(iVar1 + 0x18) - iVar6)" (( "(") (binary_expression "*(int *)(iVar1 + 0x18) - iVar6" (pointer_expression "*(int *)(iVar1 + 0x18)" (* "*") (cast_expression "(int *)(iVar1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x18)" (( "(") (binary_expression "iVar1 + 0x18" (identifier "iVar1") (+ "+") (number_literal "0x18")) () ")")))) (- "-") (identifier "iVar6")) () ")")) (- "-") (call_expression "(uint)(uVar2 < uVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar2 < uVar4)" (( "(") (binary_expression "uVar2 < uVar4" (identifier "uVar2") (< "<") (identifier "uVar4")) () ")"))))) (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

type_1 function_1(type_2 *bh,void *inf)

{
  int var_4;
  type_3 *def;
  type_4 var_5;
  type_4 var_7;
  type_2 *pbVar4;
  type_5 var_6;
  type_2 *var_2;
  
  var_2 = (type_2 *)(var_1 + 400);
  if ((((bh[1].next != var_2) &&
       (var_4 = (*(type_6 *)PTR_bfd_link_hash_lookup_001dc008)
                          (*(type_7 *)(var_3 + 0x20),bh->string,0,0,1),
       var_4 != 0)) && (*(char *)(var_4 + 0xc) == '\x03')) &&
     (*(type_2 **)(var_4 + 0x14) == var_2)) {
    pbVar4 = bh[1].next;
    var_5 = *(type_4 *)(var_4 + 0x1c);
    var_2 = pbVar4[3].next;
    var_6 = pbVar4[2].hash;
    *(type_2 **)(var_4 + 0x14) = pbVar4;
    var_7 = var_5 - (int)var_2;
    *(type_4 *)(var_4 + 0x1c) = var_7;
    *(type_5 *)(var_4 + 0x18) = (*(int *)(var_4 + 0x18) - var_6) - (type_4)(var_5 < var_7);
  }
  return 1;
}


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

undefined4 MASKED(int param_1)

{
  int iVar1;
  uint uVar2;
  int iVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  undefined *puVar7;
  
  puVar7 = PTR__bfd_std_section_001dbf30 + 400;
  if ((((*(undefined **)(param_1 + 0xc) != puVar7) &&
       (iVar1 = (*(code *)PTR_bfd_link_hash_lookup_001dc008)
                          (*(undefined4 *)(PTR_link_info_001db928 + 0x20),
                           *(undefined4 *)(param_1 + 4),0,0,1), iVar1 != 0)) &&
      (*(char *)(iVar1 + 0xc) == '\x03')) && (*(undefined **)(iVar1 + 0x14) == puVar7)) {
    iVar5 = *(int *)(param_1 + 0xc);
    uVar2 = *(uint *)(iVar1 + 0x1c);
    iVar3 = *(int *)(iVar5 + 0x24);
    iVar6 = *(int *)(iVar5 + 0x20);
    *(int *)(iVar1 + 0x14) = iVar5;
    uVar4 = uVar2 - iVar3;
    *(uint *)(iVar1 + 0x1c) = uVar4;
    *(uint *)(iVar1 + 0x18) = (*(int *)(iVar1 + 0x18) - iVar6) - (uint)(uVar2 < uVar4);
  }
  return 1;
}

