
bfd_boolean gldshlelf_linux_load_symbols(lang_input_statement_type *entry)

{
  char *fmt;
  byte bVar1;
  uint uVar2;
  uint uVar3;
  bfd *pbVar4;
  
  uVar2 = (uint)(char)*(byte *)&entry->flags;
  uVar3 = uVar2 >> 0x1f;
  bVar1 = *(byte *)&entry->flags & 0x10;
  if ((uVar2 & 0x40) == 0) {
    uVar3 = uVar3 | 4;
    pbVar4 = entry->the_bfd;
    if ((bVar1 == 0) || ((pbVar4->field_0x45 & 8) == 0)) {
      bVar1 = pbVar4->field_0x45;
      goto joined_r0x0012931e;
    }
LAB_00129338:
    fmt = (char *)dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);
    einfo(fmt,pbVar4);
    if (uVar3 == 0) {
      return 0;
    }
  }
  else {
    if ((bVar1 != 0) && (pbVar4 = entry->the_bfd, (pbVar4->field_0x45 & 8) != 0)) goto LAB_00129338;
    if (-1 < (int)uVar2) {
      return 0;
    }
  }
  pbVar4 = entry->the_bfd;
  bVar1 = pbVar4->field_0x45;
joined_r0x0012931e:
  if ((bVar1 & 8) == 0) {
    return 0;
  }
  bfd_elf_set_dyn_lib_class(pbVar4,uVar3);
  return 0;
}



undefined8 FUN_001292c0(long param_1)

{
  undefined8 uVar1;
  byte bVar2;
  uint uVar3;
  uint uVar4;
  long lVar5;
  
  uVar3 = (uint)(char)*(byte *)(param_1 + 0x48);
  uVar4 = uVar3 >> 0x1f;
  bVar2 = *(byte *)(param_1 + 0x48) & 0x10;
  if ((uVar3 & 0x40) == 0) {
    uVar4 = uVar4 | 4;
    lVar5 = *(long *)(param_1 + 0x20);
    if ((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)) {
      bVar2 = *(byte *)(lVar5 + 0x45);
      goto joined_r0x0012931e;
    }
LAB_00129338:
    uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);
    FUN_001251f0(uVar1,lVar5);
    if (uVar4 == 0) {
      return 0;
    }
  }
  else {
    if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))
    goto LAB_00129338;
    if (-1 < (int)uVar3) {
      return 0;
    }
  }
  lVar5 = *(long *)(param_1 + 0x20);
  bVar2 = *(byte *)(lVar5 + 0x45);
joined_r0x0012931e:
  if ((bVar2 & 8) == 0) {
    return 0;
  }
  bfd_elf_set_dyn_lib_class(lVar5,uVar4);
  return 0;
}


PUSH R12
PUSH RBP
MOV RBP,RDI
PUSH RBX
MOVSX EBX,byte ptr [RDI + 0x48]
MOV EAX,EBX
SHR EBX,0x1f
MOV EDX,EAX
AND EDX,0x10
TEST AL,0x40
JNZ 0x00129300
OR EBX,0x4
MOV R12,qword ptr [RDI + 0x20]
TEST DL,DL
JZ 0x001292ec
TEST byte ptr [R12 + 0x45],0x8
JNZ 0x00129338
TEST byte ptr [R12 + 0x45],0x8
JNZ 0x00129320
POP RBX
XOR EAX,EAX
POP RBP
POP R12
RET
TEST DL,DL
JZ 0x00129310
MOV R12,qword ptr [RDI + 0x20]
TEST byte ptr [R12 + 0x45],0x8
JNZ 0x00129338
TEST EBX,EBX
JZ 0x001292f4
MOV R12,qword ptr [RBP + 0x20]
TEST byte ptr [R12 + 0x45],0x8
JZ 0x001292f4
MOV ESI,EBX
MOV RDI,R12
CALL 0x00109730
POP RBX
XOR EAX,EAX
POP RBP
POP R12
RET
XOR EDI,EDI
LEA RSI,[0x174bc8]
MOV EDX,0x5
CALL 0x001092e0
MOV RSI,R12
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001251f0
TEST EBX,EBX
JZ 0x001292f4
JMP 0x00129314
(translation_unit "undefined8 FUN_001292c0(long param_1)\n\n{\n  undefined8 uVar1;\n  byte bVar2;\n  uint uVar3;\n  uint uVar4;\n  long lVar5;\n  \n  uVar3 = (uint)(char)*(byte *)(param_1 + 0x48);\n  uVar4 = uVar3 >> 0x1f;\n  bVar2 = *(byte *)(param_1 + 0x48) & 0x10;\n  if ((uVar3 & 0x40) == 0) {\n    uVar4 = uVar4 | 4;\n    lVar5 = *(long *)(param_1 + 0x20);\n    if ((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)) {\n      bVar2 = *(byte *)(lVar5 + 0x45);\n      goto joined_r0x0012931e;\n    }\nLAB_00129338:\n    uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);\n    FUN_001251f0(uVar1,lVar5);\n    if (uVar4 == 0) {\n      return 0;\n    }\n  }\n  else {\n    if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))\n    goto LAB_00129338;\n    if (-1 < (int)uVar3) {\n      return 0;\n    }\n  }\n  lVar5 = *(long *)(param_1 + 0x20);\n  bVar2 = *(byte *)(lVar5 + 0x45);\njoined_r0x0012931e:\n  if ((bVar2 & 8) == 0) {\n    return 0;\n  }\n  bfd_elf_set_dyn_lib_class(lVar5,uVar4);\n  return 0;\n}\n\n" (function_definition "undefined8 FUN_001292c0(long param_1)\n\n{\n  undefined8 uVar1;\n  byte bVar2;\n  uint uVar3;\n  uint uVar4;\n  long lVar5;\n  \n  uVar3 = (uint)(char)*(byte *)(param_1 + 0x48);\n  uVar4 = uVar3 >> 0x1f;\n  bVar2 = *(byte *)(param_1 + 0x48) & 0x10;\n  if ((uVar3 & 0x40) == 0) {\n    uVar4 = uVar4 | 4;\n    lVar5 = *(long *)(param_1 + 0x20);\n    if ((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)) {\n      bVar2 = *(byte *)(lVar5 + 0x45);\n      goto joined_r0x0012931e;\n    }\nLAB_00129338:\n    uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);\n    FUN_001251f0(uVar1,lVar5);\n    if (uVar4 == 0) {\n      return 0;\n    }\n  }\n  else {\n    if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))\n    goto LAB_00129338;\n    if (-1 < (int)uVar3) {\n      return 0;\n    }\n  }\n  lVar5 = *(long *)(param_1 + 0x20);\n  bVar2 = *(byte *)(lVar5 + 0x45);\njoined_r0x0012931e:\n  if ((bVar2 & 8) == 0) {\n    return 0;\n  }\n  bfd_elf_set_dyn_lib_class(lVar5,uVar4);\n  return 0;\n}" type_identifier (function_declarator "FUN_001292c0(long param_1)" identifier (parameter_list "(long param_1)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  byte bVar2;\n  uint uVar3;\n  uint uVar4;\n  long lVar5;\n  \n  uVar3 = (uint)(char)*(byte *)(param_1 + 0x48);\n  uVar4 = uVar3 >> 0x1f;\n  bVar2 = *(byte *)(param_1 + 0x48) & 0x10;\n  if ((uVar3 & 0x40) == 0) {\n    uVar4 = uVar4 | 4;\n    lVar5 = *(long *)(param_1 + 0x20);\n    if ((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)) {\n      bVar2 = *(byte *)(lVar5 + 0x45);\n      goto joined_r0x0012931e;\n    }\nLAB_00129338:\n    uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);\n    FUN_001251f0(uVar1,lVar5);\n    if (uVar4 == 0) {\n      return 0;\n    }\n  }\n  else {\n    if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))\n    goto LAB_00129338;\n    if (-1 < (int)uVar3) {\n      return 0;\n    }\n  }\n  lVar5 = *(long *)(param_1 + 0x20);\n  bVar2 = *(byte *)(lVar5 + 0x45);\njoined_r0x0012931e:\n  if ((bVar2 & 8) == 0) {\n    return 0;\n  }\n  bfd_elf_set_dyn_lib_class(lVar5,uVar4);\n  return 0;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (expression_statement "uVar3 = (uint)(char)*(byte *)(param_1 + 0x48);" (assignment_expression "uVar3 = (uint)(char)*(byte *)(param_1 + 0x48)" identifier = (binary_expression "(uint)(char)*(byte *)(param_1 + 0x48)" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * (cast_expression "(byte *)(param_1 + 0x48)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = uVar3 >> 0x1f;" (assignment_expression "uVar4 = uVar3 >> 0x1f" identifier = (binary_expression "uVar3 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "bVar2 = *(byte *)(param_1 + 0x48) & 0x10;" (assignment_expression "bVar2 = *(byte *)(param_1 + 0x48) & 0x10" identifier = (binary_expression "*(byte *)(param_1 + 0x48) & 0x10" (pointer_expression "*(byte *)(param_1 + 0x48)" * (cast_expression "(byte *)(param_1 + 0x48)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if ((uVar3 & 0x40) == 0) {\n    uVar4 = uVar4 | 4;\n    lVar5 = *(long *)(param_1 + 0x20);\n    if ((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)) {\n      bVar2 = *(byte *)(lVar5 + 0x45);\n      goto joined_r0x0012931e;\n    }\nLAB_00129338:\n    uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);\n    FUN_001251f0(uVar1,lVar5);\n    if (uVar4 == 0) {\n      return 0;\n    }\n  }\n  else {\n    if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))\n    goto LAB_00129338;\n    if (-1 < (int)uVar3) {\n      return 0;\n    }\n  }" if (parenthesized_expression "((uVar3 & 0x40) == 0)" ( (binary_expression "(uVar3 & 0x40) == 0" (parenthesized_expression "(uVar3 & 0x40)" ( (binary_expression "uVar3 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar4 = uVar4 | 4;\n    lVar5 = *(long *)(param_1 + 0x20);\n    if ((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)) {\n      bVar2 = *(byte *)(lVar5 + 0x45);\n      goto joined_r0x0012931e;\n    }\nLAB_00129338:\n    uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);\n    FUN_001251f0(uVar1,lVar5);\n    if (uVar4 == 0) {\n      return 0;\n    }\n  }" { (expression_statement "uVar4 = uVar4 | 4;" (assignment_expression "uVar4 = uVar4 | 4" identifier = (binary_expression "uVar4 | 4" identifier | number_literal)) ;) (expression_statement "lVar5 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar5 = *(long *)(param_1 + 0x20)" identifier = (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if ((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)) {\n      bVar2 = *(byte *)(lVar5 + 0x45);\n      goto joined_r0x0012931e;\n    }" if (parenthesized_expression "((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0))" ( (binary_expression "(bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)" (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) || (parenthesized_expression "((*(byte *)(lVar5 + 0x45) & 8) == 0)" ( (binary_expression "(*(byte *)(lVar5 + 0x45) & 8) == 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x45) & 8)" ( (binary_expression "*(byte *)(lVar5 + 0x45) & 8" (pointer_expression "*(byte *)(lVar5 + 0x45)" * (cast_expression "(byte *)(lVar5 + 0x45)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x45)" ( (binary_expression "lVar5 + 0x45" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      bVar2 = *(byte *)(lVar5 + 0x45);\n      goto joined_r0x0012931e;\n    }" { (expression_statement "bVar2 = *(byte *)(lVar5 + 0x45);" (assignment_expression "bVar2 = *(byte *)(lVar5 + 0x45)" identifier = (pointer_expression "*(byte *)(lVar5 + 0x45)" * (cast_expression "(byte *)(lVar5 + 0x45)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x45)" ( (binary_expression "lVar5 + 0x45" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x0012931e;" goto statement_identifier ;) })) (labeled_statement "LAB_00129338:\n    uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);" statement_identifier : (expression_statement "uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);" (assignment_expression "uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5)" identifier (argument_list "(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5)" ( number_literal , (string_literal ""%F%P: %pB: --just-symbols may not be used on DSO\n"" " string_content escape_sequence ") , number_literal )))) ;)) (expression_statement "FUN_001251f0(uVar1,lVar5);" (call_expression "FUN_001251f0(uVar1,lVar5)" identifier (argument_list "(uVar1,lVar5)" ( identifier , identifier ))) ;) (if_statement "if (uVar4 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n    if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))\n    goto LAB_00129338;\n    if (-1 < (int)uVar3) {\n      return 0;\n    }\n  }" else (compound_statement "{\n    if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))\n    goto LAB_00129338;\n    if (-1 < (int)uVar3) {\n      return 0;\n    }\n  }" { (if_statement "if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))\n    goto LAB_00129338;" if (parenthesized_expression "((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))" ( (binary_expression "(bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0)" (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) && (parenthesized_expression "(lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0)" ( (comma_expression "lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0" (assignment_expression "lVar5 = *(long *)(param_1 + 0x20)" identifier = (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) , (binary_expression "(*(byte *)(lVar5 + 0x45) & 8) != 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x45) & 8)" ( (binary_expression "*(byte *)(lVar5 + 0x45) & 8" (pointer_expression "*(byte *)(lVar5 + 0x45)" * (cast_expression "(byte *)(lVar5 + 0x45)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x45)" ( (binary_expression "lVar5 + 0x45" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (goto_statement "goto LAB_00129338;" goto statement_identifier ;)) (if_statement "if (-1 < (int)uVar3) {\n      return 0;\n    }" if (parenthesized_expression "(-1 < (int)uVar3)" ( (binary_expression "-1 < (int)uVar3" number_literal < (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "lVar5 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar5 = *(long *)(param_1 + 0x20)" identifier = (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "bVar2 = *(byte *)(lVar5 + 0x45);" (assignment_expression "bVar2 = *(byte *)(lVar5 + 0x45)" identifier = (pointer_expression "*(byte *)(lVar5 + 0x45)" * (cast_expression "(byte *)(lVar5 + 0x45)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x45)" ( (binary_expression "lVar5 + 0x45" identifier + number_literal) ))))) ;) (labeled_statement "joined_r0x0012931e:\n  if ((bVar2 & 8) == 0) {\n    return 0;\n  }" statement_identifier : (if_statement "if ((bVar2 & 8) == 0) {\n    return 0;\n  }" if (parenthesized_expression "((bVar2 & 8) == 0)" ( (binary_expression "(bVar2 & 8) == 0" (parenthesized_expression "(bVar2 & 8)" ( (binary_expression "bVar2 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) }))) (expression_statement "bfd_elf_set_dyn_lib_class(lVar5,uVar4);" (call_expression "bfd_elf_set_dyn_lib_class(lVar5,uVar4)" identifier (argument_list "(lVar5,uVar4)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "bfd_boolean gldshlelf_linux_load_symbols(lang_input_statement_type *entry)\n\n{\n  char *fmt;\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  bfd *pbVar4;\n  \n  uVar2 = (uint)(char)*(byte *)&entry->flags;\n  uVar3 = uVar2 >> 0x1f;\n  bVar1 = *(byte *)&entry->flags & 0x10;\n  if ((uVar2 & 0x40) == 0) {\n    uVar3 = uVar3 | 4;\n    pbVar4 = entry->the_bfd;\n    if ((bVar1 == 0) || ((pbVar4->field_0x45 & 8) == 0)) {\n      bVar1 = pbVar4->field_0x45;\n      goto joined_r0x0012931e;\n    }\nLAB_00129338:\n    fmt = (char *)dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);\n    einfo(fmt,pbVar4);\n    if (uVar3 == 0) {\n      return 0;\n    }\n  }\n  else {\n    if ((bVar1 != 0) && (pbVar4 = entry->the_bfd, (pbVar4->field_0x45 & 8) != 0)) goto LAB_00129338;\n    if (-1 < (int)uVar2) {\n      return 0;\n    }\n  }\n  pbVar4 = entry->the_bfd;\n  bVar1 = pbVar4->field_0x45;\njoined_r0x0012931e:\n  if ((bVar1 & 8) == 0) {\n    return 0;\n  }\n  bfd_elf_set_dyn_lib_class(pbVar4,uVar3);\n  return 0;\n}\n\n" (function_definition "bfd_boolean gldshlelf_linux_load_symbols(lang_input_statement_type *entry)\n\n{\n  char *fmt;\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  bfd *pbVar4;\n  \n  uVar2 = (uint)(char)*(byte *)&entry->flags;\n  uVar3 = uVar2 >> 0x1f;\n  bVar1 = *(byte *)&entry->flags & 0x10;\n  if ((uVar2 & 0x40) == 0) {\n    uVar3 = uVar3 | 4;\n    pbVar4 = entry->the_bfd;\n    if ((bVar1 == 0) || ((pbVar4->field_0x45 & 8) == 0)) {\n      bVar1 = pbVar4->field_0x45;\n      goto joined_r0x0012931e;\n    }\nLAB_00129338:\n    fmt = (char *)dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);\n    einfo(fmt,pbVar4);\n    if (uVar3 == 0) {\n      return 0;\n    }\n  }\n  else {\n    if ((bVar1 != 0) && (pbVar4 = entry->the_bfd, (pbVar4->field_0x45 & 8) != 0)) goto LAB_00129338;\n    if (-1 < (int)uVar2) {\n      return 0;\n    }\n  }\n  pbVar4 = entry->the_bfd;\n  bVar1 = pbVar4->field_0x45;\njoined_r0x0012931e:\n  if ((bVar1 & 8) == 0) {\n    return 0;\n  }\n  bfd_elf_set_dyn_lib_class(pbVar4,uVar3);\n  return 0;\n}" type_identifier (function_declarator "gldshlelf_linux_load_symbols(lang_input_statement_type *entry)" identifier (parameter_list "(lang_input_statement_type *entry)" ( (parameter_declaration "lang_input_statement_type *entry" type_identifier (pointer_declarator "*entry" * identifier)) ))) (compound_statement "{\n  char *fmt;\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  bfd *pbVar4;\n  \n  uVar2 = (uint)(char)*(byte *)&entry->flags;\n  uVar3 = uVar2 >> 0x1f;\n  bVar1 = *(byte *)&entry->flags & 0x10;\n  if ((uVar2 & 0x40) == 0) {\n    uVar3 = uVar3 | 4;\n    pbVar4 = entry->the_bfd;\n    if ((bVar1 == 0) || ((pbVar4->field_0x45 & 8) == 0)) {\n      bVar1 = pbVar4->field_0x45;\n      goto joined_r0x0012931e;\n    }\nLAB_00129338:\n    fmt = (char *)dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);\n    einfo(fmt,pbVar4);\n    if (uVar3 == 0) {\n      return 0;\n    }\n  }\n  else {\n    if ((bVar1 != 0) && (pbVar4 = entry->the_bfd, (pbVar4->field_0x45 & 8) != 0)) goto LAB_00129338;\n    if (-1 < (int)uVar2) {\n      return 0;\n    }\n  }\n  pbVar4 = entry->the_bfd;\n  bVar1 = pbVar4->field_0x45;\njoined_r0x0012931e:\n  if ((bVar1 & 8) == 0) {\n    return 0;\n  }\n  bfd_elf_set_dyn_lib_class(pbVar4,uVar3);\n  return 0;\n}" { (declaration "char *fmt;" primitive_type (pointer_declarator "*fmt" * identifier) ;) (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "bfd *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (expression_statement "uVar2 = (uint)(char)*(byte *)&entry->flags;" (assignment_expression "uVar2 = (uint)(char)*(byte *)&entry->flags" identifier = (binary_expression "(uint)(char)*(byte *)&entry->flags" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * (cast_expression "(byte *)&entry->flags" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&entry->flags" & (field_expression "entry->flags" identifier -> field_identifier))))) ;) (expression_statement "uVar3 = uVar2 >> 0x1f;" (assignment_expression "uVar3 = uVar2 >> 0x1f" identifier = (binary_expression "uVar2 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "bVar1 = *(byte *)&entry->flags & 0x10;" (assignment_expression "bVar1 = *(byte *)&entry->flags & 0x10" identifier = (binary_expression "*(byte *)&entry->flags & 0x10" (pointer_expression "*(byte *)&entry->flags" * (cast_expression "(byte *)&entry->flags" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&entry->flags" & (field_expression "entry->flags" identifier -> field_identifier)))) & number_literal)) ;) (if_statement "if ((uVar2 & 0x40) == 0) {\n    uVar3 = uVar3 | 4;\n    pbVar4 = entry->the_bfd;\n    if ((bVar1 == 0) || ((pbVar4->field_0x45 & 8) == 0)) {\n      bVar1 = pbVar4->field_0x45;\n      goto joined_r0x0012931e;\n    }\nLAB_00129338:\n    fmt = (char *)dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);\n    einfo(fmt,pbVar4);\n    if (uVar3 == 0) {\n      return 0;\n    }\n  }\n  else {\n    if ((bVar1 != 0) && (pbVar4 = entry->the_bfd, (pbVar4->field_0x45 & 8) != 0)) goto LAB_00129338;\n    if (-1 < (int)uVar2) {\n      return 0;\n    }\n  }" if (parenthesized_expression "((uVar2 & 0x40) == 0)" ( (binary_expression "(uVar2 & 0x40) == 0" (parenthesized_expression "(uVar2 & 0x40)" ( (binary_expression "uVar2 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar3 = uVar3 | 4;\n    pbVar4 = entry->the_bfd;\n    if ((bVar1 == 0) || ((pbVar4->field_0x45 & 8) == 0)) {\n      bVar1 = pbVar4->field_0x45;\n      goto joined_r0x0012931e;\n    }\nLAB_00129338:\n    fmt = (char *)dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);\n    einfo(fmt,pbVar4);\n    if (uVar3 == 0) {\n      return 0;\n    }\n  }" { (expression_statement "uVar3 = uVar3 | 4;" (assignment_expression "uVar3 = uVar3 | 4" identifier = (binary_expression "uVar3 | 4" identifier | number_literal)) ;) (expression_statement "pbVar4 = entry->the_bfd;" (assignment_expression "pbVar4 = entry->the_bfd" identifier = (field_expression "entry->the_bfd" identifier -> field_identifier)) ;) (if_statement "if ((bVar1 == 0) || ((pbVar4->field_0x45 & 8) == 0)) {\n      bVar1 = pbVar4->field_0x45;\n      goto joined_r0x0012931e;\n    }" if (parenthesized_expression "((bVar1 == 0) || ((pbVar4->field_0x45 & 8) == 0))" ( (binary_expression "(bVar1 == 0) || ((pbVar4->field_0x45 & 8) == 0)" (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) || (parenthesized_expression "((pbVar4->field_0x45 & 8) == 0)" ( (binary_expression "(pbVar4->field_0x45 & 8) == 0" (parenthesized_expression "(pbVar4->field_0x45 & 8)" ( (binary_expression "pbVar4->field_0x45 & 8" (field_expression "pbVar4->field_0x45" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      bVar1 = pbVar4->field_0x45;\n      goto joined_r0x0012931e;\n    }" { (expression_statement "bVar1 = pbVar4->field_0x45;" (assignment_expression "bVar1 = pbVar4->field_0x45" identifier = (field_expression "pbVar4->field_0x45" identifier -> field_identifier)) ;) (goto_statement "goto joined_r0x0012931e;" goto statement_identifier ;) })) (labeled_statement "LAB_00129338:\n    fmt = (char *)dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);" statement_identifier : (expression_statement "fmt = (char *)dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);" (assignment_expression "fmt = (char *)dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5)" identifier (argument_list "(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5)" ( number_literal , (string_literal ""%F%P: %pB: --just-symbols may not be used on DSO\n"" " string_content escape_sequence ") , number_literal ))))) ;)) (expression_statement "einfo(fmt,pbVar4);" (call_expression "einfo(fmt,pbVar4)" identifier (argument_list "(fmt,pbVar4)" ( identifier , identifier ))) ;) (if_statement "if (uVar3 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n    if ((bVar1 != 0) && (pbVar4 = entry->the_bfd, (pbVar4->field_0x45 & 8) != 0)) goto LAB_00129338;\n    if (-1 < (int)uVar2) {\n      return 0;\n    }\n  }" else (compound_statement "{\n    if ((bVar1 != 0) && (pbVar4 = entry->the_bfd, (pbVar4->field_0x45 & 8) != 0)) goto LAB_00129338;\n    if (-1 < (int)uVar2) {\n      return 0;\n    }\n  }" { (if_statement "if ((bVar1 != 0) && (pbVar4 = entry->the_bfd, (pbVar4->field_0x45 & 8) != 0)) goto LAB_00129338;" if (parenthesized_expression "((bVar1 != 0) && (pbVar4 = entry->the_bfd, (pbVar4->field_0x45 & 8) != 0))" ( (binary_expression "(bVar1 != 0) && (pbVar4 = entry->the_bfd, (pbVar4->field_0x45 & 8) != 0)" (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) && (parenthesized_expression "(pbVar4 = entry->the_bfd, (pbVar4->field_0x45 & 8) != 0)" ( (comma_expression "pbVar4 = entry->the_bfd, (pbVar4->field_0x45 & 8) != 0" (assignment_expression "pbVar4 = entry->the_bfd" identifier = (field_expression "entry->the_bfd" identifier -> field_identifier)) , (binary_expression "(pbVar4->field_0x45 & 8) != 0" (parenthesized_expression "(pbVar4->field_0x45 & 8)" ( (binary_expression "pbVar4->field_0x45 & 8" (field_expression "pbVar4->field_0x45" identifier -> field_identifier) & number_literal) )) != number_literal)) ))) )) (goto_statement "goto LAB_00129338;" goto statement_identifier ;)) (if_statement "if (-1 < (int)uVar2) {\n      return 0;\n    }" if (parenthesized_expression "(-1 < (int)uVar2)" ( (binary_expression "-1 < (int)uVar2" number_literal < (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "pbVar4 = entry->the_bfd;" (assignment_expression "pbVar4 = entry->the_bfd" identifier = (field_expression "entry->the_bfd" identifier -> field_identifier)) ;) (expression_statement "bVar1 = pbVar4->field_0x45;" (assignment_expression "bVar1 = pbVar4->field_0x45" identifier = (field_expression "pbVar4->field_0x45" identifier -> field_identifier)) ;) (labeled_statement "joined_r0x0012931e:\n  if ((bVar1 & 8) == 0) {\n    return 0;\n  }" statement_identifier : (if_statement "if ((bVar1 & 8) == 0) {\n    return 0;\n  }" if (parenthesized_expression "((bVar1 & 8) == 0)" ( (binary_expression "(bVar1 & 8) == 0" (parenthesized_expression "(bVar1 & 8)" ( (binary_expression "bVar1 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) }))) (expression_statement "bfd_elf_set_dyn_lib_class(pbVar4,uVar3);" (call_expression "bfd_elf_set_dyn_lib_class(pbVar4,uVar3)" identifier (argument_list "(pbVar4,uVar3)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "undefined8 FUN_001292c0(long param_1)\n\n{\n  undefined8 uVar1;\n  byte bVar2;\n  uint uVar3;\n  uint uVar4;\n  long lVar5;\n  \n  uVar3 = (uint)(char)*(byte *)(param_1 + 0x48);\n  uVar4 = uVar3 >> 0x1f;\n  bVar2 = *(byte *)(param_1 + 0x48) & 0x10;\n  if ((uVar3 & 0x40) == 0) {\n    uVar4 = uVar4 | 4;\n    lVar5 = *(long *)(param_1 + 0x20);\n    if ((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)) {\n      bVar2 = *(byte *)(lVar5 + 0x45);\n      goto joined_r0x0012931e;\n    }\nLAB_00129338:\n    uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);\n    FUN_001251f0(uVar1,lVar5);\n    if (uVar4 == 0) {\n      return 0;\n    }\n  }\n  else {\n    if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))\n    goto LAB_00129338;\n    if (-1 < (int)uVar3) {\n      return 0;\n    }\n  }\n  lVar5 = *(long *)(param_1 + 0x20);\n  bVar2 = *(byte *)(lVar5 + 0x45);\njoined_r0x0012931e:\n  if ((bVar2 & 8) == 0) {\n    return 0;\n  }\n  bfd_elf_set_dyn_lib_class(lVar5,uVar4);\n  return 0;\n}\n\n" (function_definition "undefined8 FUN_001292c0(long param_1)\n\n{\n  undefined8 uVar1;\n  byte bVar2;\n  uint uVar3;\n  uint uVar4;\n  long lVar5;\n  \n  uVar3 = (uint)(char)*(byte *)(param_1 + 0x48);\n  uVar4 = uVar3 >> 0x1f;\n  bVar2 = *(byte *)(param_1 + 0x48) & 0x10;\n  if ((uVar3 & 0x40) == 0) {\n    uVar4 = uVar4 | 4;\n    lVar5 = *(long *)(param_1 + 0x20);\n    if ((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)) {\n      bVar2 = *(byte *)(lVar5 + 0x45);\n      goto joined_r0x0012931e;\n    }\nLAB_00129338:\n    uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);\n    FUN_001251f0(uVar1,lVar5);\n    if (uVar4 == 0) {\n      return 0;\n    }\n  }\n  else {\n    if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))\n    goto LAB_00129338;\n    if (-1 < (int)uVar3) {\n      return 0;\n    }\n  }\n  lVar5 = *(long *)(param_1 + 0x20);\n  bVar2 = *(byte *)(lVar5 + 0x45);\njoined_r0x0012931e:\n  if ((bVar2 & 8) == 0) {\n    return 0;\n  }\n  bfd_elf_set_dyn_lib_class(lVar5,uVar4);\n  return 0;\n}" type_identifier (function_declarator "FUN_001292c0(long param_1)" identifier (parameter_list "(long param_1)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  byte bVar2;\n  uint uVar3;\n  uint uVar4;\n  long lVar5;\n  \n  uVar3 = (uint)(char)*(byte *)(param_1 + 0x48);\n  uVar4 = uVar3 >> 0x1f;\n  bVar2 = *(byte *)(param_1 + 0x48) & 0x10;\n  if ((uVar3 & 0x40) == 0) {\n    uVar4 = uVar4 | 4;\n    lVar5 = *(long *)(param_1 + 0x20);\n    if ((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)) {\n      bVar2 = *(byte *)(lVar5 + 0x45);\n      goto joined_r0x0012931e;\n    }\nLAB_00129338:\n    uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);\n    FUN_001251f0(uVar1,lVar5);\n    if (uVar4 == 0) {\n      return 0;\n    }\n  }\n  else {\n    if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))\n    goto LAB_00129338;\n    if (-1 < (int)uVar3) {\n      return 0;\n    }\n  }\n  lVar5 = *(long *)(param_1 + 0x20);\n  bVar2 = *(byte *)(lVar5 + 0x45);\njoined_r0x0012931e:\n  if ((bVar2 & 8) == 0) {\n    return 0;\n  }\n  bfd_elf_set_dyn_lib_class(lVar5,uVar4);\n  return 0;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (expression_statement "uVar3 = (uint)(char)*(byte *)(param_1 + 0x48);" (assignment_expression "uVar3 = (uint)(char)*(byte *)(param_1 + 0x48)" identifier = (binary_expression "(uint)(char)*(byte *)(param_1 + 0x48)" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * (cast_expression "(byte *)(param_1 + 0x48)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = uVar3 >> 0x1f;" (assignment_expression "uVar4 = uVar3 >> 0x1f" identifier = (binary_expression "uVar3 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "bVar2 = *(byte *)(param_1 + 0x48) & 0x10;" (assignment_expression "bVar2 = *(byte *)(param_1 + 0x48) & 0x10" identifier = (binary_expression "*(byte *)(param_1 + 0x48) & 0x10" (pointer_expression "*(byte *)(param_1 + 0x48)" * (cast_expression "(byte *)(param_1 + 0x48)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if ((uVar3 & 0x40) == 0) {\n    uVar4 = uVar4 | 4;\n    lVar5 = *(long *)(param_1 + 0x20);\n    if ((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)) {\n      bVar2 = *(byte *)(lVar5 + 0x45);\n      goto joined_r0x0012931e;\n    }\nLAB_00129338:\n    uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);\n    FUN_001251f0(uVar1,lVar5);\n    if (uVar4 == 0) {\n      return 0;\n    }\n  }\n  else {\n    if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))\n    goto LAB_00129338;\n    if (-1 < (int)uVar3) {\n      return 0;\n    }\n  }" if (parenthesized_expression "((uVar3 & 0x40) == 0)" ( (binary_expression "(uVar3 & 0x40) == 0" (parenthesized_expression "(uVar3 & 0x40)" ( (binary_expression "uVar3 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar4 = uVar4 | 4;\n    lVar5 = *(long *)(param_1 + 0x20);\n    if ((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)) {\n      bVar2 = *(byte *)(lVar5 + 0x45);\n      goto joined_r0x0012931e;\n    }\nLAB_00129338:\n    uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);\n    FUN_001251f0(uVar1,lVar5);\n    if (uVar4 == 0) {\n      return 0;\n    }\n  }" { (expression_statement "uVar4 = uVar4 | 4;" (assignment_expression "uVar4 = uVar4 | 4" identifier = (binary_expression "uVar4 | 4" identifier | number_literal)) ;) (expression_statement "lVar5 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar5 = *(long *)(param_1 + 0x20)" identifier = (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if ((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)) {\n      bVar2 = *(byte *)(lVar5 + 0x45);\n      goto joined_r0x0012931e;\n    }" if (parenthesized_expression "((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0))" ( (binary_expression "(bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)" (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) || (parenthesized_expression "((*(byte *)(lVar5 + 0x45) & 8) == 0)" ( (binary_expression "(*(byte *)(lVar5 + 0x45) & 8) == 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x45) & 8)" ( (binary_expression "*(byte *)(lVar5 + 0x45) & 8" (pointer_expression "*(byte *)(lVar5 + 0x45)" * (cast_expression "(byte *)(lVar5 + 0x45)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x45)" ( (binary_expression "lVar5 + 0x45" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      bVar2 = *(byte *)(lVar5 + 0x45);\n      goto joined_r0x0012931e;\n    }" { (expression_statement "bVar2 = *(byte *)(lVar5 + 0x45);" (assignment_expression "bVar2 = *(byte *)(lVar5 + 0x45)" identifier = (pointer_expression "*(byte *)(lVar5 + 0x45)" * (cast_expression "(byte *)(lVar5 + 0x45)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x45)" ( (binary_expression "lVar5 + 0x45" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x0012931e;" goto statement_identifier ;) })) (labeled_statement "LAB_00129338:\n    uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);" statement_identifier : (expression_statement "uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);" (assignment_expression "uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5)" identifier (argument_list "(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5)" ( number_literal , (string_literal ""%F%P: %pB: --just-symbols may not be used on DSO\n"" " string_content escape_sequence ") , number_literal )))) ;)) (expression_statement "FUN_001251f0(uVar1,lVar5);" (call_expression "FUN_001251f0(uVar1,lVar5)" identifier (argument_list "(uVar1,lVar5)" ( identifier , identifier ))) ;) (if_statement "if (uVar4 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n    if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))\n    goto LAB_00129338;\n    if (-1 < (int)uVar3) {\n      return 0;\n    }\n  }" else (compound_statement "{\n    if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))\n    goto LAB_00129338;\n    if (-1 < (int)uVar3) {\n      return 0;\n    }\n  }" { (if_statement "if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))\n    goto LAB_00129338;" if (parenthesized_expression "((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))" ( (binary_expression "(bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0)" (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) && (parenthesized_expression "(lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0)" ( (comma_expression "lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0" (assignment_expression "lVar5 = *(long *)(param_1 + 0x20)" identifier = (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) , (binary_expression "(*(byte *)(lVar5 + 0x45) & 8) != 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x45) & 8)" ( (binary_expression "*(byte *)(lVar5 + 0x45) & 8" (pointer_expression "*(byte *)(lVar5 + 0x45)" * (cast_expression "(byte *)(lVar5 + 0x45)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x45)" ( (binary_expression "lVar5 + 0x45" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (goto_statement "goto LAB_00129338;" goto statement_identifier ;)) (if_statement "if (-1 < (int)uVar3) {\n      return 0;\n    }" if (parenthesized_expression "(-1 < (int)uVar3)" ( (binary_expression "-1 < (int)uVar3" number_literal < (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "lVar5 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar5 = *(long *)(param_1 + 0x20)" identifier = (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "bVar2 = *(byte *)(lVar5 + 0x45);" (assignment_expression "bVar2 = *(byte *)(lVar5 + 0x45)" identifier = (pointer_expression "*(byte *)(lVar5 + 0x45)" * (cast_expression "(byte *)(lVar5 + 0x45)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x45)" ( (binary_expression "lVar5 + 0x45" identifier + number_literal) ))))) ;) (labeled_statement "joined_r0x0012931e:\n  if ((bVar2 & 8) == 0) {\n    return 0;\n  }" statement_identifier : (if_statement "if ((bVar2 & 8) == 0) {\n    return 0;\n  }" if (parenthesized_expression "((bVar2 & 8) == 0)" ( (binary_expression "(bVar2 & 8) == 0" (parenthesized_expression "(bVar2 & 8)" ( (binary_expression "bVar2 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) }))) (expression_statement "bfd_elf_set_dyn_lib_class(lVar5,uVar4);" (call_expression "bfd_elf_set_dyn_lib_class(lVar5,uVar4)" identifier (argument_list "(lVar5,uVar4)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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) )))) & LIT) )) != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (return_statement return LIT ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (return_statement return LIT ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined8 FUN_001292c0(long param_1)\n\n{\n  undefined8 uVar1;\n  byte bVar2;\n  uint uVar3;\n  uint uVar4;\n  long lVar5;\n  \n  uVar3 = (uint)(char)*(byte *)(param_1 + 0x48);\n  uVar4 = uVar3 >> 0x1f;\n  bVar2 = *(byte *)(param_1 + 0x48) & 0x10;\n  if ((uVar3 & 0x40) == 0) {\n    uVar4 = uVar4 | 4;\n    lVar5 = *(long *)(param_1 + 0x20);\n    if ((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)) {\n      bVar2 = *(byte *)(lVar5 + 0x45);\n      goto joined_r0x0012931e;\n    }\nLAB_00129338:\n    uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);\n    FUN_001251f0(uVar1,lVar5);\n    if (uVar4 == 0) {\n      return 0;\n    }\n  }\n  else {\n    if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))\n    goto LAB_00129338;\n    if (-1 < (int)uVar3) {\n      return 0;\n    }\n  }\n  lVar5 = *(long *)(param_1 + 0x20);\n  bVar2 = *(byte *)(lVar5 + 0x45);\njoined_r0x0012931e:\n  if ((bVar2 & 8) == 0) {\n    return 0;\n  }\n  bfd_elf_set_dyn_lib_class(lVar5,uVar4);\n  return 0;\n}" (type_identifier "undefined8") (function_declarator "FUN_001292c0(long param_1)" (identifier "FUN_001292c0") (parameter_list "(long param_1)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined8 uVar1;\n  byte bVar2;\n  uint uVar3;\n  uint uVar4;\n  long lVar5;\n  \n  uVar3 = (uint)(char)*(byte *)(param_1 + 0x48);\n  uVar4 = uVar3 >> 0x1f;\n  bVar2 = *(byte *)(param_1 + 0x48) & 0x10;\n  if ((uVar3 & 0x40) == 0) {\n    uVar4 = uVar4 | 4;\n    lVar5 = *(long *)(param_1 + 0x20);\n    if ((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)) {\n      bVar2 = *(byte *)(lVar5 + 0x45);\n      goto joined_r0x0012931e;\n    }\nLAB_00129338:\n    uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);\n    FUN_001251f0(uVar1,lVar5);\n    if (uVar4 == 0) {\n      return 0;\n    }\n  }\n  else {\n    if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))\n    goto LAB_00129338;\n    if (-1 < (int)uVar3) {\n      return 0;\n    }\n  }\n  lVar5 = *(long *)(param_1 + 0x20);\n  bVar2 = *(byte *)(lVar5 + 0x45);\njoined_r0x0012931e:\n  if ((bVar2 & 8) == 0) {\n    return 0;\n  }\n  bfd_elf_set_dyn_lib_class(lVar5,uVar4);\n  return 0;\n}" ({ "{") (declaration "undefined8 uVar1;" (type_identifier "undefined8") (identifier "uVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (expression_statement "uVar3 = (uint)(char)*(byte *)(param_1 + 0x48);" (assignment_expression "uVar3 = (uint)(char)*(byte *)(param_1 + 0x48)" (identifier "uVar3") (= "=") (binary_expression "(uint)(char)*(byte *)(param_1 + 0x48)" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(char)" (( "(") (identifier "char") () ")"))) (* "*") (cast_expression "(byte *)(param_1 + 0x48)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "uVar4 = uVar3 >> 0x1f;" (assignment_expression "uVar4 = uVar3 >> 0x1f" (identifier "uVar4") (= "=") (binary_expression "uVar3 >> 0x1f" (identifier "uVar3") (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "bVar2 = *(byte *)(param_1 + 0x48) & 0x10;" (assignment_expression "bVar2 = *(byte *)(param_1 + 0x48) & 0x10" (identifier "bVar2") (= "=") (binary_expression "*(byte *)(param_1 + 0x48) & 0x10" (pointer_expression "*(byte *)(param_1 + 0x48)" (* "*") (cast_expression "(byte *)(param_1 + 0x48)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")")))) (& "&") (number_literal "0x10"))) (; ";")) (if_statement "if ((uVar3 & 0x40) == 0) {\n    uVar4 = uVar4 | 4;\n    lVar5 = *(long *)(param_1 + 0x20);\n    if ((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)) {\n      bVar2 = *(byte *)(lVar5 + 0x45);\n      goto joined_r0x0012931e;\n    }\nLAB_00129338:\n    uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);\n    FUN_001251f0(uVar1,lVar5);\n    if (uVar4 == 0) {\n      return 0;\n    }\n  }\n  else {\n    if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))\n    goto LAB_00129338;\n    if (-1 < (int)uVar3) {\n      return 0;\n    }\n  }" (if "if") (parenthesized_expression "((uVar3 & 0x40) == 0)" (( "(") (binary_expression "(uVar3 & 0x40) == 0" (parenthesized_expression "(uVar3 & 0x40)" (( "(") (binary_expression "uVar3 & 0x40" (identifier "uVar3") (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar4 = uVar4 | 4;\n    lVar5 = *(long *)(param_1 + 0x20);\n    if ((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)) {\n      bVar2 = *(byte *)(lVar5 + 0x45);\n      goto joined_r0x0012931e;\n    }\nLAB_00129338:\n    uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);\n    FUN_001251f0(uVar1,lVar5);\n    if (uVar4 == 0) {\n      return 0;\n    }\n  }" ({ "{") (expression_statement "uVar4 = uVar4 | 4;" (assignment_expression "uVar4 = uVar4 | 4" (identifier "uVar4") (= "=") (binary_expression "uVar4 | 4" (identifier "uVar4") (| "|") (number_literal "4"))) (; ";")) (expression_statement "lVar5 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar5 = *(long *)(param_1 + 0x20)" (identifier "lVar5") (= "=") (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if ((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)) {\n      bVar2 = *(byte *)(lVar5 + 0x45);\n      goto joined_r0x0012931e;\n    }" (if "if") (parenthesized_expression "((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0))" (( "(") (binary_expression "(bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)" (parenthesized_expression "(bVar2 == 0)" (( "(") (binary_expression "bVar2 == 0" (identifier "bVar2") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(lVar5 + 0x45) & 8) == 0)" (( "(") (binary_expression "(*(byte *)(lVar5 + 0x45) & 8) == 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x45) & 8)" (( "(") (binary_expression "*(byte *)(lVar5 + 0x45) & 8" (pointer_expression "*(byte *)(lVar5 + 0x45)" (* "*") (cast_expression "(byte *)(lVar5 + 0x45)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x45)" (( "(") (binary_expression "lVar5 + 0x45" (identifier "lVar5") (+ "+") (number_literal "0x45")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      bVar2 = *(byte *)(lVar5 + 0x45);\n      goto joined_r0x0012931e;\n    }" ({ "{") (expression_statement "bVar2 = *(byte *)(lVar5 + 0x45);" (assignment_expression "bVar2 = *(byte *)(lVar5 + 0x45)" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)(lVar5 + 0x45)" (* "*") (cast_expression "(byte *)(lVar5 + 0x45)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x45)" (( "(") (binary_expression "lVar5 + 0x45" (identifier "lVar5") (+ "+") (number_literal "0x45")) () ")"))))) (; ";")) (goto_statement "goto joined_r0x0012931e;" (goto "goto") (statement_identifier "joined_r0x0012931e") (; ";")) (} "}"))) (labeled_statement "LAB_00129338:\n    uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);" (statement_identifier "LAB_00129338") (: ":") (expression_statement "uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);" (assignment_expression "uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5)" (identifier "uVar1") (= "=") (call_expression "dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: %pB: --just-symbols may not be used on DSO\n"" (" """) (string_content "%F%P: %pB: --just-symbols may not be used on DSO") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_001251f0(uVar1,lVar5);" (call_expression "FUN_001251f0(uVar1,lVar5)" (identifier "FUN_001251f0") (argument_list "(uVar1,lVar5)" (( "(") (identifier "uVar1") (, ",") (identifier "lVar5") () ")"))) (; ";")) (if_statement "if (uVar4 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))\n    goto LAB_00129338;\n    if (-1 < (int)uVar3) {\n      return 0;\n    }\n  }" (else "else") (compound_statement "{\n    if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))\n    goto LAB_00129338;\n    if (-1 < (int)uVar3) {\n      return 0;\n    }\n  }" ({ "{") (if_statement "if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))\n    goto LAB_00129338;" (if "if") (parenthesized_expression "((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))" (( "(") (binary_expression "(bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0)" (parenthesized_expression "(bVar2 != 0)" (( "(") (binary_expression "bVar2 != 0" (identifier "bVar2") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0)" (( "(") (comma_expression "lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0" (assignment_expression "lVar5 = *(long *)(param_1 + 0x20)" (identifier "lVar5") (= "=") (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (, ",") (binary_expression "(*(byte *)(lVar5 + 0x45) & 8) != 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x45) & 8)" (( "(") (binary_expression "*(byte *)(lVar5 + 0x45) & 8" (pointer_expression "*(byte *)(lVar5 + 0x45)" (* "*") (cast_expression "(byte *)(lVar5 + 0x45)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x45)" (( "(") (binary_expression "lVar5 + 0x45" (identifier "lVar5") (+ "+") (number_literal "0x45")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_00129338;" (goto "goto") (statement_identifier "LAB_00129338") (; ";"))) (if_statement "if (-1 < (int)uVar3) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(-1 < (int)uVar3)" (( "(") (binary_expression "-1 < (int)uVar3" (number_literal "-1") (< "<") (cast_expression "(int)uVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar3"))) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")))) (expression_statement "lVar5 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar5 = *(long *)(param_1 + 0x20)" (identifier "lVar5") (= "=") (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "bVar2 = *(byte *)(lVar5 + 0x45);" (assignment_expression "bVar2 = *(byte *)(lVar5 + 0x45)" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)(lVar5 + 0x45)" (* "*") (cast_expression "(byte *)(lVar5 + 0x45)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x45)" (( "(") (binary_expression "lVar5 + 0x45" (identifier "lVar5") (+ "+") (number_literal "0x45")) () ")"))))) (; ";")) (labeled_statement "joined_r0x0012931e:\n  if ((bVar2 & 8) == 0) {\n    return 0;\n  }" (statement_identifier "joined_r0x0012931e") (: ":") (if_statement "if ((bVar2 & 8) == 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "((bVar2 & 8) == 0)" (( "(") (binary_expression "(bVar2 & 8) == 0" (parenthesized_expression "(bVar2 & 8)" (( "(") (binary_expression "bVar2 & 8" (identifier "bVar2") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))) (expression_statement "bfd_elf_set_dyn_lib_class(lVar5,uVar4);" (call_expression "bfd_elf_set_dyn_lib_class(lVar5,uVar4)" (identifier "bfd_elf_set_dyn_lib_class") (argument_list "(lVar5,uVar4)" (( "(") (identifier "lVar5") (, ",") (identifier "uVar4") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

type_1 function_1(type_2 *entry)

{
  char *fmt;
  type_3 var_3;
  type_4 var_1;
  type_4 var_2;
  type_5 *pbVar4;
  
  var_1 = (type_4)(char)*(type_3 *)&entry->flags;
  var_2 = var_1 >> 0x1f;
  var_3 = *(type_3 *)&entry->flags & 0x10;
  if ((var_1 & 0x40) == 0) {
    var_2 = var_2 | 4;
    pbVar4 = entry->the_bfd;
    if ((var_3 == 0) || ((pbVar4->field_0x45 & 8) == 0)) {
      var_3 = pbVar4->field_0x45;
      goto joined_r0x0012931e;
    }
LAB_00129338:
    fmt = (char *)var_4(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);
    var_5(fmt,pbVar4);
    if (var_2 == 0) {
      return 0;
    }
  }
  else {
    if ((var_3 != 0) && (pbVar4 = entry->the_bfd, (pbVar4->field_0x45 & 8) != 0)) goto LAB_00129338;
    if (-1 < (int)var_1) {
      return 0;
    }
  }
  pbVar4 = entry->the_bfd;
  var_3 = pbVar4->field_0x45;
joined_r0x0012931e:
  if ((var_3 & 8) == 0) {
    return 0;
  }
  var_6(pbVar4,var_2);
  return 0;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) right: (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (return_statement (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (return_statement (number_literal)))))

undefined8 MASKED(long param_1)

{
  undefined8 uVar1;
  byte bVar2;
  uint uVar3;
  uint uVar4;
  long lVar5;
  
  uVar3 = (uint)(char)*(byte *)(param_1 + 0x48);
  uVar4 = uVar3 >> 0x1f;
  bVar2 = *(byte *)(param_1 + 0x48) & 0x10;
  if ((uVar3 & 0x40) == 0) {
    uVar4 = uVar4 | 4;
    lVar5 = *(long *)(param_1 + 0x20);
    if ((bVar2 == 0) || ((*(byte *)(lVar5 + 0x45) & 8) == 0)) {
      bVar2 = *(byte *)(lVar5 + 0x45);
      goto joined_r0x0012931e;
    }
LAB_00129338:
    uVar1 = dcgettext(0,"%F%P: %pB: --just-symbols may not be used on DSO\n",5);
    FUN_001251f0(uVar1,lVar5);
    if (uVar4 == 0) {
      return 0;
    }
  }
  else {
    if ((bVar2 != 0) && (lVar5 = *(long *)(param_1 + 0x20), (*(byte *)(lVar5 + 0x45) & 8) != 0))
    goto LAB_00129338;
    if (-1 < (int)uVar3) {
      return 0;
    }
  }
  lVar5 = *(long *)(param_1 + 0x20);
  bVar2 = *(byte *)(lVar5 + 0x45);
joined_r0x0012931e:
  if ((bVar2 & 8) == 0) {
    return 0;
  }
  bfd_elf_set_dyn_lib_class(lVar5,uVar4);
  return 0;
}

