
void dump_dwarf(bfd *abfd)

{
  bfd_endian bVar1;
  char *pcVar2;
  uint uVar3;
  void *pvVar4;
  char *message;
  ulong uVar5;
  
  is_relocatable = (bfd_boolean)((*(uint *)&abfd->field_0x44 >> 5 & 0x42) == 0);
  uVar3 = bfd_arch_bits_per_address();
  eh_addr_size = uVar3 >> 3;
  bVar1 = abfd->xvec->byteorder;
  if (bVar1 == BFD_ENDIAN_BIG) {
    byte_get = byte_get_big_endian;
    uVar3 = bfd_get_arch(abfd);
  }
  else {
    if (bVar1 != BFD_ENDIAN_LITTLE) {
      pcVar2 = abfd->filename;
      message = (char *)dcgettext(0,"File %s does not contain any dwarf debug information\n",5);
      warn(message,pcVar2);
      return;
    }
    byte_get = byte_get_little_endian;
    uVar3 = bfd_get_arch(abfd);
  }
  if (uVar3 == 0x43) {
    init_dwarf_regnames_riscv();
    goto LAB_0010a2c0;
  }
  if (0x43 < uVar3) {
    if (uVar3 == 0x46) {
      init_dwarf_regnames_s390();
    }
    else if (uVar3 == 0x53) {
      init_dwarf_regnames_aarch64();
    }
    goto LAB_0010a2c0;
  }
  if (uVar3 != 8) {
    if (uVar3 == 0xb) {
      init_dwarf_regnames_iamcu();
    }
    goto LAB_0010a2c0;
  }
  uVar5 = bfd_get_mach(abfd);
  if (uVar5 < 0x12) {
    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {
LAB_0010a3d0:
      init_dwarf_regnames_x86_64();
      goto LAB_0010a2c0;
    }
  }
  else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;
  init_dwarf_regnames_i386();
LAB_0010a2c0:
  pvVar4 = load_separate_debug_file(abfd,abfd->filename);
  bfd_map_over_sections(abfd,dump_dwarf_section,0);
  if (pvVar4 != (void *)0x0) {
    bfd_map_over_sections(pvVar4,dump_dwarf_section,0);
  }
  free_debug_memory();
  return;
}



void FUN_0010a250(undefined8 *param_1)

{
  undefined8 uVar1;
  uint uVar2;
  long lVar3;
  undefined8 uVar4;
  ulong uVar5;
  
  DAT_00157250 = (uint)((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0);
  uVar2 = bfd_arch_bits_per_address();
  DAT_00159de4 = uVar2 >> 3;
  if (*(int *)(param_1[1] + 0xc) == 0) {
    DAT_00159e20 = FUN_00137570;
    uVar2 = bfd_get_arch(param_1);
  }
  else {
    if (*(int *)(param_1[1] + 0xc) != 1) {
      uVar1 = *param_1;
      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);
      warn(uVar4,uVar1);
      return;
    }
    DAT_00159e20 = FUN_00137bd0;
    uVar2 = bfd_get_arch(param_1);
  }
  if (uVar2 == 0x43) {
    FUN_0011e0c0();
    goto LAB_0010a2c0;
  }
  if (0x43 < uVar2) {
    if (uVar2 == 0x46) {
      FUN_0011e0a0();
    }
    else if (uVar2 == 0x53) {
      FUN_0011e080();
    }
    goto LAB_0010a2c0;
  }
  if (uVar2 != 8) {
    if (uVar2 == 0xb) {
      FUN_0011e040();
    }
    goto LAB_0010a2c0;
  }
  uVar5 = bfd_get_mach(param_1);
  if (uVar5 < 0x12) {
    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {
LAB_0010a3d0:
      FUN_0011e060();
      goto LAB_0010a2c0;
    }
  }
  else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;
  FUN_0011e020();
LAB_0010a2c0:
  lVar3 = FUN_00125d90(param_1,*param_1);
  bfd_map_over_sections(param_1,FUN_0010e5c0,0);
  if (lVar3 != 0) {
    bfd_map_over_sections(lVar3,FUN_0010e5c0,0);
  }
  FUN_001260c0();
  return;
}


PUSH RBP
PUSH RBX
MOV RBX,RDI
SUB RSP,0x8
MOV EAX,dword ptr [RDI + 0x44]
SHR EAX,0x5
TEST AL,0x42
SETZ AL
MOVZX EAX,AL
MOV dword ptr [0x00157250],EAX
CALL 0x00107830
SHR EAX,0x3
MOV dword ptr [0x00159de4],EAX
MOV RAX,qword ptr [RBX + 0x8]
MOV EAX,dword ptr [RAX + 0xc]
TEST EAX,EAX
JNZ 0x0010a318
LEA RAX,[0x137570]
MOV RDI,RBX
MOV qword ptr [0x00159e20],RAX
CALL 0x001074f0
CMP EAX,0x43
JZ 0x0010a33c
JBE 0x0010a300
CMP EAX,0x46
JZ 0x0010a380
CMP EAX,0x53
JNZ 0x0010a2c0
CALL 0x0011e080
NOP
MOV RSI,qword ptr [RBX]
MOV RDI,RBX
CALL 0x00125d90
XOR EDX,EDX
LEA RSI,[0x10e5c0]
MOV RDI,RBX
MOV RBP,RAX
CALL 0x001077d0
TEST RBP,RBP
JZ 0x0010a2f5
XOR EDX,EDX
LEA RSI,[0x10e5c0]
MOV RDI,RBP
CALL 0x001077d0
ADD RSP,0x8
POP RBX
POP RBP
JMP 0x001260c0
CMP EAX,0x8
JZ 0x0010a390
CMP EAX,0xb
JNZ 0x0010a2c0
CALL 0x0011e040
JMP 0x0010a2c0
CMP EAX,0x1
JNZ 0x0010a350
LEA RAX,[0x137bd0]
MOV RDI,RBX
MOV qword ptr [0x00159e20],RAX
CALL 0x001074f0
CMP EAX,0x43
JNZ 0x0010a2a9
CALL 0x0011e0c0
JMP 0x0010a2c0
MOV RBX,qword ptr [RBX]
LEA RSI,[0x13d0f8]
XOR EDI,EDI
MOV EDX,0x5
CALL 0x00107230
ADD RSP,0x8
MOV RSI,RBX
MOV RDI,RAX
POP RBX
XOR EAX,EAX
POP RBP
JMP 0x001379e0
CALL 0x0011e0a0
JMP 0x0010a2c0
MOV RDI,RBX
CALL 0x001075b0
CMP RAX,0x11
JA 0x0010a3c0
CMP RAX,0x10
JNC 0x0010a3d0
SUB RAX,0x8
CMP RAX,0x1
JBE 0x0010a3d0
CALL 0x0011e020
JMP 0x0010a2c0
CMP RAX,0x88
JZ 0x0010a3d0
CMP RAX,0x90
JNZ 0x0010a3ae
CALL 0x0011e060
JMP 0x0010a2c0
(translation_unit "void FUN_0010a250(undefined8 *param_1)\n\n{\n  undefined8 uVar1;\n  uint uVar2;\n  long lVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  \n  DAT_00157250 = (uint)((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0);\n  uVar2 = bfd_arch_bits_per_address();\n  DAT_00159de4 = uVar2 >> 3;\n  if (*(int *)(param_1[1] + 0xc) == 0) {\n    DAT_00159e20 = FUN_00137570;\n    uVar2 = bfd_get_arch(param_1);\n  }\n  else {\n    if (*(int *)(param_1[1] + 0xc) != 1) {\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }\n    DAT_00159e20 = FUN_00137bd0;\n    uVar2 = bfd_get_arch(param_1);\n  }\n  if (uVar2 == 0x43) {\n    FUN_0011e0c0();\n    goto LAB_0010a2c0;\n  }\n  if (0x43 < uVar2) {\n    if (uVar2 == 0x46) {\n      FUN_0011e0a0();\n    }\n    else if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }\n    goto LAB_0010a2c0;\n  }\n  if (uVar2 != 8) {\n    if (uVar2 == 0xb) {\n      FUN_0011e040();\n    }\n    goto LAB_0010a2c0;\n  }\n  uVar5 = bfd_get_mach(param_1);\n  if (uVar5 < 0x12) {\n    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      FUN_0011e060();\n      goto LAB_0010a2c0;\n    }\n  }\n  else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;\n  FUN_0011e020();\nLAB_0010a2c0:\n  lVar3 = FUN_00125d90(param_1,*param_1);\n  bfd_map_over_sections(param_1,FUN_0010e5c0,0);\n  if (lVar3 != 0) {\n    bfd_map_over_sections(lVar3,FUN_0010e5c0,0);\n  }\n  FUN_001260c0();\n  return;\n}\n\n" (function_definition "void FUN_0010a250(undefined8 *param_1)\n\n{\n  undefined8 uVar1;\n  uint uVar2;\n  long lVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  \n  DAT_00157250 = (uint)((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0);\n  uVar2 = bfd_arch_bits_per_address();\n  DAT_00159de4 = uVar2 >> 3;\n  if (*(int *)(param_1[1] + 0xc) == 0) {\n    DAT_00159e20 = FUN_00137570;\n    uVar2 = bfd_get_arch(param_1);\n  }\n  else {\n    if (*(int *)(param_1[1] + 0xc) != 1) {\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }\n    DAT_00159e20 = FUN_00137bd0;\n    uVar2 = bfd_get_arch(param_1);\n  }\n  if (uVar2 == 0x43) {\n    FUN_0011e0c0();\n    goto LAB_0010a2c0;\n  }\n  if (0x43 < uVar2) {\n    if (uVar2 == 0x46) {\n      FUN_0011e0a0();\n    }\n    else if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }\n    goto LAB_0010a2c0;\n  }\n  if (uVar2 != 8) {\n    if (uVar2 == 0xb) {\n      FUN_0011e040();\n    }\n    goto LAB_0010a2c0;\n  }\n  uVar5 = bfd_get_mach(param_1);\n  if (uVar5 < 0x12) {\n    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      FUN_0011e060();\n      goto LAB_0010a2c0;\n    }\n  }\n  else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;\n  FUN_0011e020();\nLAB_0010a2c0:\n  lVar3 = FUN_00125d90(param_1,*param_1);\n  bfd_map_over_sections(param_1,FUN_0010e5c0,0);\n  if (lVar3 != 0) {\n    bfd_map_over_sections(lVar3,FUN_0010e5c0,0);\n  }\n  FUN_001260c0();\n  return;\n}" primitive_type (function_declarator "FUN_0010a250(undefined8 *param_1)" identifier (parameter_list "(undefined8 *param_1)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined8 uVar1;\n  uint uVar2;\n  long lVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  \n  DAT_00157250 = (uint)((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0);\n  uVar2 = bfd_arch_bits_per_address();\n  DAT_00159de4 = uVar2 >> 3;\n  if (*(int *)(param_1[1] + 0xc) == 0) {\n    DAT_00159e20 = FUN_00137570;\n    uVar2 = bfd_get_arch(param_1);\n  }\n  else {\n    if (*(int *)(param_1[1] + 0xc) != 1) {\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }\n    DAT_00159e20 = FUN_00137bd0;\n    uVar2 = bfd_get_arch(param_1);\n  }\n  if (uVar2 == 0x43) {\n    FUN_0011e0c0();\n    goto LAB_0010a2c0;\n  }\n  if (0x43 < uVar2) {\n    if (uVar2 == 0x46) {\n      FUN_0011e0a0();\n    }\n    else if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }\n    goto LAB_0010a2c0;\n  }\n  if (uVar2 != 8) {\n    if (uVar2 == 0xb) {\n      FUN_0011e040();\n    }\n    goto LAB_0010a2c0;\n  }\n  uVar5 = bfd_get_mach(param_1);\n  if (uVar5 < 0x12) {\n    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      FUN_0011e060();\n      goto LAB_0010a2c0;\n    }\n  }\n  else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;\n  FUN_0011e020();\nLAB_0010a2c0:\n  lVar3 = FUN_00125d90(param_1,*param_1);\n  bfd_map_over_sections(param_1,FUN_0010e5c0,0);\n  if (lVar3 != 0) {\n    bfd_map_over_sections(lVar3,FUN_0010e5c0,0);\n  }\n  FUN_001260c0();\n  return;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (expression_statement "DAT_00157250 = (uint)((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0);" (assignment_expression "DAT_00157250 = (uint)((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0)" identifier = (call_expression "(uint)((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0)" ( (binary_expression "(*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0" (parenthesized_expression "(*(uint *)((long)param_1 + 0x44) >> 5 & 0x42)" ( (binary_expression "*(uint *)((long)param_1 + 0x44) >> 5 & 0x42" (binary_expression "*(uint *)((long)param_1 + 0x44) >> 5" (pointer_expression "*(uint *)((long)param_1 + 0x44)" * (cast_expression "(uint *)((long)param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x44)" ( (binary_expression "(long)param_1 + 0x44" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) >> number_literal) & number_literal) )) == number_literal) )))) ;) (expression_statement "uVar2 = bfd_arch_bits_per_address();" (assignment_expression "uVar2 = bfd_arch_bits_per_address()" identifier = (call_expression "bfd_arch_bits_per_address()" identifier (argument_list "()" ( )))) ;) (expression_statement "DAT_00159de4 = uVar2 >> 3;" (assignment_expression "DAT_00159de4 = uVar2 >> 3" identifier = (binary_expression "uVar2 >> 3" identifier >> number_literal)) ;) (if_statement "if (*(int *)(param_1[1] + 0xc) == 0) {\n    DAT_00159e20 = FUN_00137570;\n    uVar2 = bfd_get_arch(param_1);\n  }\n  else {\n    if (*(int *)(param_1[1] + 0xc) != 1) {\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }\n    DAT_00159e20 = FUN_00137bd0;\n    uVar2 = bfd_get_arch(param_1);\n  }" if (parenthesized_expression "(*(int *)(param_1[1] + 0xc) == 0)" ( (binary_expression "*(int *)(param_1[1] + 0xc) == 0" (pointer_expression "*(int *)(param_1[1] + 0xc)" * (cast_expression "(int *)(param_1[1] + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0xc)" ( (binary_expression "param_1[1] + 0xc" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) == number_literal) )) (compound_statement "{\n    DAT_00159e20 = FUN_00137570;\n    uVar2 = bfd_get_arch(param_1);\n  }" { (expression_statement "DAT_00159e20 = FUN_00137570;" (assignment_expression "DAT_00159e20 = FUN_00137570" identifier = identifier) ;) (expression_statement "uVar2 = bfd_get_arch(param_1);" (assignment_expression "uVar2 = bfd_get_arch(param_1)" identifier = (call_expression "bfd_get_arch(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) }) (else_clause "else {\n    if (*(int *)(param_1[1] + 0xc) != 1) {\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }\n    DAT_00159e20 = FUN_00137bd0;\n    uVar2 = bfd_get_arch(param_1);\n  }" else (compound_statement "{\n    if (*(int *)(param_1[1] + 0xc) != 1) {\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }\n    DAT_00159e20 = FUN_00137bd0;\n    uVar2 = bfd_get_arch(param_1);\n  }" { (if_statement "if (*(int *)(param_1[1] + 0xc) != 1) {\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }" if (parenthesized_expression "(*(int *)(param_1[1] + 0xc) != 1)" ( (binary_expression "*(int *)(param_1[1] + 0xc) != 1" (pointer_expression "*(int *)(param_1[1] + 0xc)" * (cast_expression "(int *)(param_1[1] + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0xc)" ( (binary_expression "param_1[1] + 0xc" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }" { (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);" (assignment_expression "uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5)" identifier = (call_expression "dcgettext(0,"File %s does not contain any dwarf debug information\n",5)" identifier (argument_list "(0,"File %s does not contain any dwarf debug information\n",5)" ( number_literal , (string_literal ""File %s does not contain any dwarf debug information\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar4,uVar1);" (call_expression "warn(uVar4,uVar1)" identifier (argument_list "(uVar4,uVar1)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "DAT_00159e20 = FUN_00137bd0;" (assignment_expression "DAT_00159e20 = FUN_00137bd0" identifier = identifier) ;) (expression_statement "uVar2 = bfd_get_arch(param_1);" (assignment_expression "uVar2 = bfd_get_arch(param_1)" identifier = (call_expression "bfd_get_arch(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) }))) (if_statement "if (uVar2 == 0x43) {\n    FUN_0011e0c0();\n    goto LAB_0010a2c0;\n  }" if (parenthesized_expression "(uVar2 == 0x43)" ( (binary_expression "uVar2 == 0x43" identifier == number_literal) )) (compound_statement "{\n    FUN_0011e0c0();\n    goto LAB_0010a2c0;\n  }" { (expression_statement "FUN_0011e0c0();" (call_expression "FUN_0011e0c0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0010a2c0;" goto statement_identifier ;) })) (if_statement "if (0x43 < uVar2) {\n    if (uVar2 == 0x46) {\n      FUN_0011e0a0();\n    }\n    else if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }\n    goto LAB_0010a2c0;\n  }" if (parenthesized_expression "(0x43 < uVar2)" ( (binary_expression "0x43 < uVar2" number_literal < identifier) )) (compound_statement "{\n    if (uVar2 == 0x46) {\n      FUN_0011e0a0();\n    }\n    else if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }\n    goto LAB_0010a2c0;\n  }" { (if_statement "if (uVar2 == 0x46) {\n      FUN_0011e0a0();\n    }\n    else if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }" if (parenthesized_expression "(uVar2 == 0x46)" ( (binary_expression "uVar2 == 0x46" identifier == number_literal) )) (compound_statement "{\n      FUN_0011e0a0();\n    }" { (expression_statement "FUN_0011e0a0();" (call_expression "FUN_0011e0a0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }" else (if_statement "if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }" if (parenthesized_expression "(uVar2 == 0x53)" ( (binary_expression "uVar2 == 0x53" identifier == number_literal) )) (compound_statement "{\n      FUN_0011e080();\n    }" { (expression_statement "FUN_0011e080();" (call_expression "FUN_0011e080()" identifier (argument_list "()" ( ))) ;) })))) (goto_statement "goto LAB_0010a2c0;" goto statement_identifier ;) })) (if_statement "if (uVar2 != 8) {\n    if (uVar2 == 0xb) {\n      FUN_0011e040();\n    }\n    goto LAB_0010a2c0;\n  }" if (parenthesized_expression "(uVar2 != 8)" ( (binary_expression "uVar2 != 8" identifier != number_literal) )) (compound_statement "{\n    if (uVar2 == 0xb) {\n      FUN_0011e040();\n    }\n    goto LAB_0010a2c0;\n  }" { (if_statement "if (uVar2 == 0xb) {\n      FUN_0011e040();\n    }" if (parenthesized_expression "(uVar2 == 0xb)" ( (binary_expression "uVar2 == 0xb" identifier == number_literal) )) (compound_statement "{\n      FUN_0011e040();\n    }" { (expression_statement "FUN_0011e040();" (call_expression "FUN_0011e040()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0010a2c0;" goto statement_identifier ;) })) (expression_statement "uVar5 = bfd_get_mach(param_1);" (assignment_expression "uVar5 = bfd_get_mach(param_1)" identifier = (call_expression "bfd_get_mach(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (uVar5 < 0x12) {\n    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      FUN_0011e060();\n      goto LAB_0010a2c0;\n    }\n  }\n  else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;" if (parenthesized_expression "(uVar5 < 0x12)" ( (binary_expression "uVar5 < 0x12" identifier < number_literal) )) (compound_statement "{\n    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      FUN_0011e060();\n      goto LAB_0010a2c0;\n    }\n  }" { (if_statement "if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      FUN_0011e060();\n      goto LAB_0010a2c0;\n    }" if (parenthesized_expression "((0xf < uVar5) || (uVar5 - 8 < 2))" ( (binary_expression "(0xf < uVar5) || (uVar5 - 8 < 2)" (parenthesized_expression "(0xf < uVar5)" ( (binary_expression "0xf < uVar5" number_literal < identifier) )) || (parenthesized_expression "(uVar5 - 8 < 2)" ( (binary_expression "uVar5 - 8 < 2" (binary_expression "uVar5 - 8" identifier - number_literal) < number_literal) ))) )) (compound_statement "{\nLAB_0010a3d0:\n      FUN_0011e060();\n      goto LAB_0010a2c0;\n    }" { (labeled_statement "LAB_0010a3d0:\n      FUN_0011e060();" statement_identifier : (expression_statement "FUN_0011e060();" (call_expression "FUN_0011e060()" identifier (argument_list "()" ( ))) ;)) (goto_statement "goto LAB_0010a2c0;" goto statement_identifier ;) })) }) (else_clause "else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;" else (if_statement "if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;" if (parenthesized_expression "((uVar5 == 0x88) || (uVar5 == 0x90))" ( (binary_expression "(uVar5 == 0x88) || (uVar5 == 0x90)" (parenthesized_expression "(uVar5 == 0x88)" ( (binary_expression "uVar5 == 0x88" identifier == number_literal) )) || (parenthesized_expression "(uVar5 == 0x90)" ( (binary_expression "uVar5 == 0x90" identifier == number_literal) ))) )) (goto_statement "goto LAB_0010a3d0;" goto statement_identifier ;)))) (expression_statement "FUN_0011e020();" (call_expression "FUN_0011e020()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0010a2c0:\n  lVar3 = FUN_00125d90(param_1,*param_1);" statement_identifier : (expression_statement "lVar3 = FUN_00125d90(param_1,*param_1);" (assignment_expression "lVar3 = FUN_00125d90(param_1,*param_1)" identifier = (call_expression "FUN_00125d90(param_1,*param_1)" identifier (argument_list "(param_1,*param_1)" ( identifier , (pointer_expression "*param_1" * identifier) )))) ;)) (expression_statement "bfd_map_over_sections(param_1,FUN_0010e5c0,0);" (call_expression "bfd_map_over_sections(param_1,FUN_0010e5c0,0)" identifier (argument_list "(param_1,FUN_0010e5c0,0)" ( identifier , identifier , number_literal ))) ;) (if_statement "if (lVar3 != 0) {\n    bfd_map_over_sections(lVar3,FUN_0010e5c0,0);\n  }" if (parenthesized_expression "(lVar3 != 0)" ( (binary_expression "lVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    bfd_map_over_sections(lVar3,FUN_0010e5c0,0);\n  }" { (expression_statement "bfd_map_over_sections(lVar3,FUN_0010e5c0,0);" (call_expression "bfd_map_over_sections(lVar3,FUN_0010e5c0,0)" identifier (argument_list "(lVar3,FUN_0010e5c0,0)" ( identifier , identifier , number_literal ))) ;) })) (expression_statement "FUN_001260c0();" (call_expression "FUN_001260c0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void dump_dwarf(bfd *abfd)\n\n{\n  bfd_endian bVar1;\n  char *pcVar2;\n  uint uVar3;\n  void *pvVar4;\n  char *message;\n  ulong uVar5;\n  \n  is_relocatable = (bfd_boolean)((*(uint *)&abfd->field_0x44 >> 5 & 0x42) == 0);\n  uVar3 = bfd_arch_bits_per_address();\n  eh_addr_size = uVar3 >> 3;\n  bVar1 = abfd->xvec->byteorder;\n  if (bVar1 == BFD_ENDIAN_BIG) {\n    byte_get = byte_get_big_endian;\n    uVar3 = bfd_get_arch(abfd);\n  }\n  else {\n    if (bVar1 != BFD_ENDIAN_LITTLE) {\n      pcVar2 = abfd->filename;\n      message = (char *)dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(message,pcVar2);\n      return;\n    }\n    byte_get = byte_get_little_endian;\n    uVar3 = bfd_get_arch(abfd);\n  }\n  if (uVar3 == 0x43) {\n    init_dwarf_regnames_riscv();\n    goto LAB_0010a2c0;\n  }\n  if (0x43 < uVar3) {\n    if (uVar3 == 0x46) {\n      init_dwarf_regnames_s390();\n    }\n    else if (uVar3 == 0x53) {\n      init_dwarf_regnames_aarch64();\n    }\n    goto LAB_0010a2c0;\n  }\n  if (uVar3 != 8) {\n    if (uVar3 == 0xb) {\n      init_dwarf_regnames_iamcu();\n    }\n    goto LAB_0010a2c0;\n  }\n  uVar5 = bfd_get_mach(abfd);\n  if (uVar5 < 0x12) {\n    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      init_dwarf_regnames_x86_64();\n      goto LAB_0010a2c0;\n    }\n  }\n  else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;\n  init_dwarf_regnames_i386();\nLAB_0010a2c0:\n  pvVar4 = load_separate_debug_file(abfd,abfd->filename);\n  bfd_map_over_sections(abfd,dump_dwarf_section,0);\n  if (pvVar4 != (void *)0x0) {\n    bfd_map_over_sections(pvVar4,dump_dwarf_section,0);\n  }\n  free_debug_memory();\n  return;\n}\n\n" (function_definition "void dump_dwarf(bfd *abfd)\n\n{\n  bfd_endian bVar1;\n  char *pcVar2;\n  uint uVar3;\n  void *pvVar4;\n  char *message;\n  ulong uVar5;\n  \n  is_relocatable = (bfd_boolean)((*(uint *)&abfd->field_0x44 >> 5 & 0x42) == 0);\n  uVar3 = bfd_arch_bits_per_address();\n  eh_addr_size = uVar3 >> 3;\n  bVar1 = abfd->xvec->byteorder;\n  if (bVar1 == BFD_ENDIAN_BIG) {\n    byte_get = byte_get_big_endian;\n    uVar3 = bfd_get_arch(abfd);\n  }\n  else {\n    if (bVar1 != BFD_ENDIAN_LITTLE) {\n      pcVar2 = abfd->filename;\n      message = (char *)dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(message,pcVar2);\n      return;\n    }\n    byte_get = byte_get_little_endian;\n    uVar3 = bfd_get_arch(abfd);\n  }\n  if (uVar3 == 0x43) {\n    init_dwarf_regnames_riscv();\n    goto LAB_0010a2c0;\n  }\n  if (0x43 < uVar3) {\n    if (uVar3 == 0x46) {\n      init_dwarf_regnames_s390();\n    }\n    else if (uVar3 == 0x53) {\n      init_dwarf_regnames_aarch64();\n    }\n    goto LAB_0010a2c0;\n  }\n  if (uVar3 != 8) {\n    if (uVar3 == 0xb) {\n      init_dwarf_regnames_iamcu();\n    }\n    goto LAB_0010a2c0;\n  }\n  uVar5 = bfd_get_mach(abfd);\n  if (uVar5 < 0x12) {\n    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      init_dwarf_regnames_x86_64();\n      goto LAB_0010a2c0;\n    }\n  }\n  else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;\n  init_dwarf_regnames_i386();\nLAB_0010a2c0:\n  pvVar4 = load_separate_debug_file(abfd,abfd->filename);\n  bfd_map_over_sections(abfd,dump_dwarf_section,0);\n  if (pvVar4 != (void *)0x0) {\n    bfd_map_over_sections(pvVar4,dump_dwarf_section,0);\n  }\n  free_debug_memory();\n  return;\n}" primitive_type (function_declarator "dump_dwarf(bfd *abfd)" identifier (parameter_list "(bfd *abfd)" ( (parameter_declaration "bfd *abfd" type_identifier (pointer_declarator "*abfd" * identifier)) ))) (compound_statement "{\n  bfd_endian bVar1;\n  char *pcVar2;\n  uint uVar3;\n  void *pvVar4;\n  char *message;\n  ulong uVar5;\n  \n  is_relocatable = (bfd_boolean)((*(uint *)&abfd->field_0x44 >> 5 & 0x42) == 0);\n  uVar3 = bfd_arch_bits_per_address();\n  eh_addr_size = uVar3 >> 3;\n  bVar1 = abfd->xvec->byteorder;\n  if (bVar1 == BFD_ENDIAN_BIG) {\n    byte_get = byte_get_big_endian;\n    uVar3 = bfd_get_arch(abfd);\n  }\n  else {\n    if (bVar1 != BFD_ENDIAN_LITTLE) {\n      pcVar2 = abfd->filename;\n      message = (char *)dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(message,pcVar2);\n      return;\n    }\n    byte_get = byte_get_little_endian;\n    uVar3 = bfd_get_arch(abfd);\n  }\n  if (uVar3 == 0x43) {\n    init_dwarf_regnames_riscv();\n    goto LAB_0010a2c0;\n  }\n  if (0x43 < uVar3) {\n    if (uVar3 == 0x46) {\n      init_dwarf_regnames_s390();\n    }\n    else if (uVar3 == 0x53) {\n      init_dwarf_regnames_aarch64();\n    }\n    goto LAB_0010a2c0;\n  }\n  if (uVar3 != 8) {\n    if (uVar3 == 0xb) {\n      init_dwarf_regnames_iamcu();\n    }\n    goto LAB_0010a2c0;\n  }\n  uVar5 = bfd_get_mach(abfd);\n  if (uVar5 < 0x12) {\n    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      init_dwarf_regnames_x86_64();\n      goto LAB_0010a2c0;\n    }\n  }\n  else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;\n  init_dwarf_regnames_i386();\nLAB_0010a2c0:\n  pvVar4 = load_separate_debug_file(abfd,abfd->filename);\n  bfd_map_over_sections(abfd,dump_dwarf_section,0);\n  if (pvVar4 != (void *)0x0) {\n    bfd_map_over_sections(pvVar4,dump_dwarf_section,0);\n  }\n  free_debug_memory();\n  return;\n}" { (declaration "bfd_endian bVar1;" type_identifier identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "void *pvVar4;" primitive_type (pointer_declarator "*pvVar4" * identifier) ;) (declaration "char *message;" primitive_type (pointer_declarator "*message" * identifier) ;) (declaration "ulong uVar5;" type_identifier identifier ;) (expression_statement "is_relocatable = (bfd_boolean)((*(uint *)&abfd->field_0x44 >> 5 & 0x42) == 0);" (assignment_expression "is_relocatable = (bfd_boolean)((*(uint *)&abfd->field_0x44 >> 5 & 0x42) == 0)" identifier = (call_expression "(bfd_boolean)((*(uint *)&abfd->field_0x44 >> 5 & 0x42) == 0)" (parenthesized_expression "(bfd_boolean)" ( identifier )) (argument_list "((*(uint *)&abfd->field_0x44 >> 5 & 0x42) == 0)" ( (binary_expression "(*(uint *)&abfd->field_0x44 >> 5 & 0x42) == 0" (parenthesized_expression "(*(uint *)&abfd->field_0x44 >> 5 & 0x42)" ( (binary_expression "*(uint *)&abfd->field_0x44 >> 5 & 0x42" (binary_expression "*(uint *)&abfd->field_0x44 >> 5" (pointer_expression "*(uint *)&abfd->field_0x44" * (cast_expression "(uint *)&abfd->field_0x44" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&abfd->field_0x44" & (field_expression "abfd->field_0x44" identifier -> field_identifier)))) >> number_literal) & number_literal) )) == number_literal) )))) ;) (expression_statement "uVar3 = bfd_arch_bits_per_address();" (assignment_expression "uVar3 = bfd_arch_bits_per_address()" identifier = (call_expression "bfd_arch_bits_per_address()" identifier (argument_list "()" ( )))) ;) (expression_statement "eh_addr_size = uVar3 >> 3;" (assignment_expression "eh_addr_size = uVar3 >> 3" identifier = (binary_expression "uVar3 >> 3" identifier >> number_literal)) ;) (expression_statement "bVar1 = abfd->xvec->byteorder;" (assignment_expression "bVar1 = abfd->xvec->byteorder" identifier = (field_expression "abfd->xvec->byteorder" (field_expression "abfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (bVar1 == BFD_ENDIAN_BIG) {\n    byte_get = byte_get_big_endian;\n    uVar3 = bfd_get_arch(abfd);\n  }\n  else {\n    if (bVar1 != BFD_ENDIAN_LITTLE) {\n      pcVar2 = abfd->filename;\n      message = (char *)dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(message,pcVar2);\n      return;\n    }\n    byte_get = byte_get_little_endian;\n    uVar3 = bfd_get_arch(abfd);\n  }" if (parenthesized_expression "(bVar1 == BFD_ENDIAN_BIG)" ( (binary_expression "bVar1 == BFD_ENDIAN_BIG" identifier == identifier) )) (compound_statement "{\n    byte_get = byte_get_big_endian;\n    uVar3 = bfd_get_arch(abfd);\n  }" { (expression_statement "byte_get = byte_get_big_endian;" (assignment_expression "byte_get = byte_get_big_endian" identifier = identifier) ;) (expression_statement "uVar3 = bfd_get_arch(abfd);" (assignment_expression "uVar3 = bfd_get_arch(abfd)" identifier = (call_expression "bfd_get_arch(abfd)" identifier (argument_list "(abfd)" ( identifier )))) ;) }) (else_clause "else {\n    if (bVar1 != BFD_ENDIAN_LITTLE) {\n      pcVar2 = abfd->filename;\n      message = (char *)dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(message,pcVar2);\n      return;\n    }\n    byte_get = byte_get_little_endian;\n    uVar3 = bfd_get_arch(abfd);\n  }" else (compound_statement "{\n    if (bVar1 != BFD_ENDIAN_LITTLE) {\n      pcVar2 = abfd->filename;\n      message = (char *)dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(message,pcVar2);\n      return;\n    }\n    byte_get = byte_get_little_endian;\n    uVar3 = bfd_get_arch(abfd);\n  }" { (if_statement "if (bVar1 != BFD_ENDIAN_LITTLE) {\n      pcVar2 = abfd->filename;\n      message = (char *)dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(message,pcVar2);\n      return;\n    }" if (parenthesized_expression "(bVar1 != BFD_ENDIAN_LITTLE)" ( (binary_expression "bVar1 != BFD_ENDIAN_LITTLE" identifier != identifier) )) (compound_statement "{\n      pcVar2 = abfd->filename;\n      message = (char *)dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(message,pcVar2);\n      return;\n    }" { (expression_statement "pcVar2 = abfd->filename;" (assignment_expression "pcVar2 = abfd->filename" identifier = (field_expression "abfd->filename" identifier -> field_identifier)) ;) (expression_statement "message = (char *)dcgettext(0,"File %s does not contain any dwarf debug information\n",5);" (assignment_expression "message = (char *)dcgettext(0,"File %s does not contain any dwarf debug information\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"File %s does not contain any dwarf debug information\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"File %s does not contain any dwarf debug information\n",5)" identifier (argument_list "(0,"File %s does not contain any dwarf debug information\n",5)" ( number_literal , (string_literal ""File %s does not contain any dwarf debug information\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(message,pcVar2);" (call_expression "warn(message,pcVar2)" identifier (argument_list "(message,pcVar2)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "byte_get = byte_get_little_endian;" (assignment_expression "byte_get = byte_get_little_endian" identifier = identifier) ;) (expression_statement "uVar3 = bfd_get_arch(abfd);" (assignment_expression "uVar3 = bfd_get_arch(abfd)" identifier = (call_expression "bfd_get_arch(abfd)" identifier (argument_list "(abfd)" ( identifier )))) ;) }))) (if_statement "if (uVar3 == 0x43) {\n    init_dwarf_regnames_riscv();\n    goto LAB_0010a2c0;\n  }" if (parenthesized_expression "(uVar3 == 0x43)" ( (binary_expression "uVar3 == 0x43" identifier == number_literal) )) (compound_statement "{\n    init_dwarf_regnames_riscv();\n    goto LAB_0010a2c0;\n  }" { (expression_statement "init_dwarf_regnames_riscv();" (call_expression "init_dwarf_regnames_riscv()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0010a2c0;" goto statement_identifier ;) })) (if_statement "if (0x43 < uVar3) {\n    if (uVar3 == 0x46) {\n      init_dwarf_regnames_s390();\n    }\n    else if (uVar3 == 0x53) {\n      init_dwarf_regnames_aarch64();\n    }\n    goto LAB_0010a2c0;\n  }" if (parenthesized_expression "(0x43 < uVar3)" ( (binary_expression "0x43 < uVar3" number_literal < identifier) )) (compound_statement "{\n    if (uVar3 == 0x46) {\n      init_dwarf_regnames_s390();\n    }\n    else if (uVar3 == 0x53) {\n      init_dwarf_regnames_aarch64();\n    }\n    goto LAB_0010a2c0;\n  }" { (if_statement "if (uVar3 == 0x46) {\n      init_dwarf_regnames_s390();\n    }\n    else if (uVar3 == 0x53) {\n      init_dwarf_regnames_aarch64();\n    }" if (parenthesized_expression "(uVar3 == 0x46)" ( (binary_expression "uVar3 == 0x46" identifier == number_literal) )) (compound_statement "{\n      init_dwarf_regnames_s390();\n    }" { (expression_statement "init_dwarf_regnames_s390();" (call_expression "init_dwarf_regnames_s390()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else if (uVar3 == 0x53) {\n      init_dwarf_regnames_aarch64();\n    }" else (if_statement "if (uVar3 == 0x53) {\n      init_dwarf_regnames_aarch64();\n    }" if (parenthesized_expression "(uVar3 == 0x53)" ( (binary_expression "uVar3 == 0x53" identifier == number_literal) )) (compound_statement "{\n      init_dwarf_regnames_aarch64();\n    }" { (expression_statement "init_dwarf_regnames_aarch64();" (call_expression "init_dwarf_regnames_aarch64()" identifier (argument_list "()" ( ))) ;) })))) (goto_statement "goto LAB_0010a2c0;" goto statement_identifier ;) })) (if_statement "if (uVar3 != 8) {\n    if (uVar3 == 0xb) {\n      init_dwarf_regnames_iamcu();\n    }\n    goto LAB_0010a2c0;\n  }" if (parenthesized_expression "(uVar3 != 8)" ( (binary_expression "uVar3 != 8" identifier != number_literal) )) (compound_statement "{\n    if (uVar3 == 0xb) {\n      init_dwarf_regnames_iamcu();\n    }\n    goto LAB_0010a2c0;\n  }" { (if_statement "if (uVar3 == 0xb) {\n      init_dwarf_regnames_iamcu();\n    }" if (parenthesized_expression "(uVar3 == 0xb)" ( (binary_expression "uVar3 == 0xb" identifier == number_literal) )) (compound_statement "{\n      init_dwarf_regnames_iamcu();\n    }" { (expression_statement "init_dwarf_regnames_iamcu();" (call_expression "init_dwarf_regnames_iamcu()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0010a2c0;" goto statement_identifier ;) })) (expression_statement "uVar5 = bfd_get_mach(abfd);" (assignment_expression "uVar5 = bfd_get_mach(abfd)" identifier = (call_expression "bfd_get_mach(abfd)" identifier (argument_list "(abfd)" ( identifier )))) ;) (if_statement "if (uVar5 < 0x12) {\n    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      init_dwarf_regnames_x86_64();\n      goto LAB_0010a2c0;\n    }\n  }\n  else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;" if (parenthesized_expression "(uVar5 < 0x12)" ( (binary_expression "uVar5 < 0x12" identifier < number_literal) )) (compound_statement "{\n    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      init_dwarf_regnames_x86_64();\n      goto LAB_0010a2c0;\n    }\n  }" { (if_statement "if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      init_dwarf_regnames_x86_64();\n      goto LAB_0010a2c0;\n    }" if (parenthesized_expression "((0xf < uVar5) || (uVar5 - 8 < 2))" ( (binary_expression "(0xf < uVar5) || (uVar5 - 8 < 2)" (parenthesized_expression "(0xf < uVar5)" ( (binary_expression "0xf < uVar5" number_literal < identifier) )) || (parenthesized_expression "(uVar5 - 8 < 2)" ( (binary_expression "uVar5 - 8 < 2" (binary_expression "uVar5 - 8" identifier - number_literal) < number_literal) ))) )) (compound_statement "{\nLAB_0010a3d0:\n      init_dwarf_regnames_x86_64();\n      goto LAB_0010a2c0;\n    }" { (labeled_statement "LAB_0010a3d0:\n      init_dwarf_regnames_x86_64();" statement_identifier : (expression_statement "init_dwarf_regnames_x86_64();" (call_expression "init_dwarf_regnames_x86_64()" identifier (argument_list "()" ( ))) ;)) (goto_statement "goto LAB_0010a2c0;" goto statement_identifier ;) })) }) (else_clause "else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;" else (if_statement "if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;" if (parenthesized_expression "((uVar5 == 0x88) || (uVar5 == 0x90))" ( (binary_expression "(uVar5 == 0x88) || (uVar5 == 0x90)" (parenthesized_expression "(uVar5 == 0x88)" ( (binary_expression "uVar5 == 0x88" identifier == number_literal) )) || (parenthesized_expression "(uVar5 == 0x90)" ( (binary_expression "uVar5 == 0x90" identifier == number_literal) ))) )) (goto_statement "goto LAB_0010a3d0;" goto statement_identifier ;)))) (expression_statement "init_dwarf_regnames_i386();" (call_expression "init_dwarf_regnames_i386()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0010a2c0:\n  pvVar4 = load_separate_debug_file(abfd,abfd->filename);" statement_identifier : (expression_statement "pvVar4 = load_separate_debug_file(abfd,abfd->filename);" (assignment_expression "pvVar4 = load_separate_debug_file(abfd,abfd->filename)" identifier = (call_expression "load_separate_debug_file(abfd,abfd->filename)" identifier (argument_list "(abfd,abfd->filename)" ( identifier , (field_expression "abfd->filename" identifier -> field_identifier) )))) ;)) (expression_statement "bfd_map_over_sections(abfd,dump_dwarf_section,0);" (call_expression "bfd_map_over_sections(abfd,dump_dwarf_section,0)" identifier (argument_list "(abfd,dump_dwarf_section,0)" ( identifier , identifier , number_literal ))) ;) (if_statement "if (pvVar4 != (void *)0x0) {\n    bfd_map_over_sections(pvVar4,dump_dwarf_section,0);\n  }" if (parenthesized_expression "(pvVar4 != (void *)0x0)" ( (binary_expression "pvVar4 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    bfd_map_over_sections(pvVar4,dump_dwarf_section,0);\n  }" { (expression_statement "bfd_map_over_sections(pvVar4,dump_dwarf_section,0);" (call_expression "bfd_map_over_sections(pvVar4,dump_dwarf_section,0)" identifier (argument_list "(pvVar4,dump_dwarf_section,0)" ( identifier , identifier , number_literal ))) ;) })) (expression_statement "free_debug_memory();" (call_expression "free_debug_memory()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0010a250(undefined8 *param_1)\n\n{\n  undefined8 uVar1;\n  uint uVar2;\n  long lVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  \n  DAT_00157250 = (uint)((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0);\n  uVar2 = bfd_arch_bits_per_address();\n  DAT_00159de4 = uVar2 >> 3;\n  if (*(int *)(param_1[1] + 0xc) == 0) {\n    DAT_00159e20 = FUN_00137570;\n    uVar2 = bfd_get_arch(param_1);\n  }\n  else {\n    if (*(int *)(param_1[1] + 0xc) != 1) {\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }\n    DAT_00159e20 = FUN_00137bd0;\n    uVar2 = bfd_get_arch(param_1);\n  }\n  if (uVar2 == 0x43) {\n    FUN_0011e0c0();\n    goto LAB_0010a2c0;\n  }\n  if (0x43 < uVar2) {\n    if (uVar2 == 0x46) {\n      FUN_0011e0a0();\n    }\n    else if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }\n    goto LAB_0010a2c0;\n  }\n  if (uVar2 != 8) {\n    if (uVar2 == 0xb) {\n      FUN_0011e040();\n    }\n    goto LAB_0010a2c0;\n  }\n  uVar5 = bfd_get_mach(param_1);\n  if (uVar5 < 0x12) {\n    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      FUN_0011e060();\n      goto LAB_0010a2c0;\n    }\n  }\n  else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;\n  FUN_0011e020();\nLAB_0010a2c0:\n  lVar3 = FUN_00125d90(param_1,*param_1);\n  bfd_map_over_sections(param_1,FUN_0010e5c0,0);\n  if (lVar3 != 0) {\n    bfd_map_over_sections(lVar3,FUN_0010e5c0,0);\n  }\n  FUN_001260c0();\n  return;\n}\n\n" (function_definition "void FUN_0010a250(undefined8 *param_1)\n\n{\n  undefined8 uVar1;\n  uint uVar2;\n  long lVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  \n  DAT_00157250 = (uint)((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0);\n  uVar2 = bfd_arch_bits_per_address();\n  DAT_00159de4 = uVar2 >> 3;\n  if (*(int *)(param_1[1] + 0xc) == 0) {\n    DAT_00159e20 = FUN_00137570;\n    uVar2 = bfd_get_arch(param_1);\n  }\n  else {\n    if (*(int *)(param_1[1] + 0xc) != 1) {\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }\n    DAT_00159e20 = FUN_00137bd0;\n    uVar2 = bfd_get_arch(param_1);\n  }\n  if (uVar2 == 0x43) {\n    FUN_0011e0c0();\n    goto LAB_0010a2c0;\n  }\n  if (0x43 < uVar2) {\n    if (uVar2 == 0x46) {\n      FUN_0011e0a0();\n    }\n    else if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }\n    goto LAB_0010a2c0;\n  }\n  if (uVar2 != 8) {\n    if (uVar2 == 0xb) {\n      FUN_0011e040();\n    }\n    goto LAB_0010a2c0;\n  }\n  uVar5 = bfd_get_mach(param_1);\n  if (uVar5 < 0x12) {\n    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      FUN_0011e060();\n      goto LAB_0010a2c0;\n    }\n  }\n  else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;\n  FUN_0011e020();\nLAB_0010a2c0:\n  lVar3 = FUN_00125d90(param_1,*param_1);\n  bfd_map_over_sections(param_1,FUN_0010e5c0,0);\n  if (lVar3 != 0) {\n    bfd_map_over_sections(lVar3,FUN_0010e5c0,0);\n  }\n  FUN_001260c0();\n  return;\n}" primitive_type (function_declarator "FUN_0010a250(undefined8 *param_1)" identifier (parameter_list "(undefined8 *param_1)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined8 uVar1;\n  uint uVar2;\n  long lVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  \n  DAT_00157250 = (uint)((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0);\n  uVar2 = bfd_arch_bits_per_address();\n  DAT_00159de4 = uVar2 >> 3;\n  if (*(int *)(param_1[1] + 0xc) == 0) {\n    DAT_00159e20 = FUN_00137570;\n    uVar2 = bfd_get_arch(param_1);\n  }\n  else {\n    if (*(int *)(param_1[1] + 0xc) != 1) {\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }\n    DAT_00159e20 = FUN_00137bd0;\n    uVar2 = bfd_get_arch(param_1);\n  }\n  if (uVar2 == 0x43) {\n    FUN_0011e0c0();\n    goto LAB_0010a2c0;\n  }\n  if (0x43 < uVar2) {\n    if (uVar2 == 0x46) {\n      FUN_0011e0a0();\n    }\n    else if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }\n    goto LAB_0010a2c0;\n  }\n  if (uVar2 != 8) {\n    if (uVar2 == 0xb) {\n      FUN_0011e040();\n    }\n    goto LAB_0010a2c0;\n  }\n  uVar5 = bfd_get_mach(param_1);\n  if (uVar5 < 0x12) {\n    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      FUN_0011e060();\n      goto LAB_0010a2c0;\n    }\n  }\n  else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;\n  FUN_0011e020();\nLAB_0010a2c0:\n  lVar3 = FUN_00125d90(param_1,*param_1);\n  bfd_map_over_sections(param_1,FUN_0010e5c0,0);\n  if (lVar3 != 0) {\n    bfd_map_over_sections(lVar3,FUN_0010e5c0,0);\n  }\n  FUN_001260c0();\n  return;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (expression_statement "DAT_00157250 = (uint)((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0);" (assignment_expression "DAT_00157250 = (uint)((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0)" identifier = (call_expression "(uint)((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0)" ( (binary_expression "(*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0" (parenthesized_expression "(*(uint *)((long)param_1 + 0x44) >> 5 & 0x42)" ( (binary_expression "*(uint *)((long)param_1 + 0x44) >> 5 & 0x42" (binary_expression "*(uint *)((long)param_1 + 0x44) >> 5" (pointer_expression "*(uint *)((long)param_1 + 0x44)" * (cast_expression "(uint *)((long)param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x44)" ( (binary_expression "(long)param_1 + 0x44" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) >> number_literal) & number_literal) )) == number_literal) )))) ;) (expression_statement "uVar2 = bfd_arch_bits_per_address();" (assignment_expression "uVar2 = bfd_arch_bits_per_address()" identifier = (call_expression "bfd_arch_bits_per_address()" identifier (argument_list "()" ( )))) ;) (expression_statement "DAT_00159de4 = uVar2 >> 3;" (assignment_expression "DAT_00159de4 = uVar2 >> 3" identifier = (binary_expression "uVar2 >> 3" identifier >> number_literal)) ;) (if_statement "if (*(int *)(param_1[1] + 0xc) == 0) {\n    DAT_00159e20 = FUN_00137570;\n    uVar2 = bfd_get_arch(param_1);\n  }\n  else {\n    if (*(int *)(param_1[1] + 0xc) != 1) {\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }\n    DAT_00159e20 = FUN_00137bd0;\n    uVar2 = bfd_get_arch(param_1);\n  }" if (parenthesized_expression "(*(int *)(param_1[1] + 0xc) == 0)" ( (binary_expression "*(int *)(param_1[1] + 0xc) == 0" (pointer_expression "*(int *)(param_1[1] + 0xc)" * (cast_expression "(int *)(param_1[1] + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0xc)" ( (binary_expression "param_1[1] + 0xc" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) == number_literal) )) (compound_statement "{\n    DAT_00159e20 = FUN_00137570;\n    uVar2 = bfd_get_arch(param_1);\n  }" { (expression_statement "DAT_00159e20 = FUN_00137570;" (assignment_expression "DAT_00159e20 = FUN_00137570" identifier = identifier) ;) (expression_statement "uVar2 = bfd_get_arch(param_1);" (assignment_expression "uVar2 = bfd_get_arch(param_1)" identifier = (call_expression "bfd_get_arch(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) }) (else_clause "else {\n    if (*(int *)(param_1[1] + 0xc) != 1) {\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }\n    DAT_00159e20 = FUN_00137bd0;\n    uVar2 = bfd_get_arch(param_1);\n  }" else (compound_statement "{\n    if (*(int *)(param_1[1] + 0xc) != 1) {\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }\n    DAT_00159e20 = FUN_00137bd0;\n    uVar2 = bfd_get_arch(param_1);\n  }" { (if_statement "if (*(int *)(param_1[1] + 0xc) != 1) {\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }" if (parenthesized_expression "(*(int *)(param_1[1] + 0xc) != 1)" ( (binary_expression "*(int *)(param_1[1] + 0xc) != 1" (pointer_expression "*(int *)(param_1[1] + 0xc)" * (cast_expression "(int *)(param_1[1] + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0xc)" ( (binary_expression "param_1[1] + 0xc" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }" { (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);" (assignment_expression "uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5)" identifier = (call_expression "dcgettext(0,"File %s does not contain any dwarf debug information\n",5)" identifier (argument_list "(0,"File %s does not contain any dwarf debug information\n",5)" ( number_literal , (string_literal ""File %s does not contain any dwarf debug information\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar4,uVar1);" (call_expression "warn(uVar4,uVar1)" identifier (argument_list "(uVar4,uVar1)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "DAT_00159e20 = FUN_00137bd0;" (assignment_expression "DAT_00159e20 = FUN_00137bd0" identifier = identifier) ;) (expression_statement "uVar2 = bfd_get_arch(param_1);" (assignment_expression "uVar2 = bfd_get_arch(param_1)" identifier = (call_expression "bfd_get_arch(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) }))) (if_statement "if (uVar2 == 0x43) {\n    FUN_0011e0c0();\n    goto LAB_0010a2c0;\n  }" if (parenthesized_expression "(uVar2 == 0x43)" ( (binary_expression "uVar2 == 0x43" identifier == number_literal) )) (compound_statement "{\n    FUN_0011e0c0();\n    goto LAB_0010a2c0;\n  }" { (expression_statement "FUN_0011e0c0();" (call_expression "FUN_0011e0c0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0010a2c0;" goto statement_identifier ;) })) (if_statement "if (0x43 < uVar2) {\n    if (uVar2 == 0x46) {\n      FUN_0011e0a0();\n    }\n    else if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }\n    goto LAB_0010a2c0;\n  }" if (parenthesized_expression "(0x43 < uVar2)" ( (binary_expression "0x43 < uVar2" number_literal < identifier) )) (compound_statement "{\n    if (uVar2 == 0x46) {\n      FUN_0011e0a0();\n    }\n    else if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }\n    goto LAB_0010a2c0;\n  }" { (if_statement "if (uVar2 == 0x46) {\n      FUN_0011e0a0();\n    }\n    else if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }" if (parenthesized_expression "(uVar2 == 0x46)" ( (binary_expression "uVar2 == 0x46" identifier == number_literal) )) (compound_statement "{\n      FUN_0011e0a0();\n    }" { (expression_statement "FUN_0011e0a0();" (call_expression "FUN_0011e0a0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }" else (if_statement "if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }" if (parenthesized_expression "(uVar2 == 0x53)" ( (binary_expression "uVar2 == 0x53" identifier == number_literal) )) (compound_statement "{\n      FUN_0011e080();\n    }" { (expression_statement "FUN_0011e080();" (call_expression "FUN_0011e080()" identifier (argument_list "()" ( ))) ;) })))) (goto_statement "goto LAB_0010a2c0;" goto statement_identifier ;) })) (if_statement "if (uVar2 != 8) {\n    if (uVar2 == 0xb) {\n      FUN_0011e040();\n    }\n    goto LAB_0010a2c0;\n  }" if (parenthesized_expression "(uVar2 != 8)" ( (binary_expression "uVar2 != 8" identifier != number_literal) )) (compound_statement "{\n    if (uVar2 == 0xb) {\n      FUN_0011e040();\n    }\n    goto LAB_0010a2c0;\n  }" { (if_statement "if (uVar2 == 0xb) {\n      FUN_0011e040();\n    }" if (parenthesized_expression "(uVar2 == 0xb)" ( (binary_expression "uVar2 == 0xb" identifier == number_literal) )) (compound_statement "{\n      FUN_0011e040();\n    }" { (expression_statement "FUN_0011e040();" (call_expression "FUN_0011e040()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0010a2c0;" goto statement_identifier ;) })) (expression_statement "uVar5 = bfd_get_mach(param_1);" (assignment_expression "uVar5 = bfd_get_mach(param_1)" identifier = (call_expression "bfd_get_mach(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (uVar5 < 0x12) {\n    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      FUN_0011e060();\n      goto LAB_0010a2c0;\n    }\n  }\n  else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;" if (parenthesized_expression "(uVar5 < 0x12)" ( (binary_expression "uVar5 < 0x12" identifier < number_literal) )) (compound_statement "{\n    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      FUN_0011e060();\n      goto LAB_0010a2c0;\n    }\n  }" { (if_statement "if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      FUN_0011e060();\n      goto LAB_0010a2c0;\n    }" if (parenthesized_expression "((0xf < uVar5) || (uVar5 - 8 < 2))" ( (binary_expression "(0xf < uVar5) || (uVar5 - 8 < 2)" (parenthesized_expression "(0xf < uVar5)" ( (binary_expression "0xf < uVar5" number_literal < identifier) )) || (parenthesized_expression "(uVar5 - 8 < 2)" ( (binary_expression "uVar5 - 8 < 2" (binary_expression "uVar5 - 8" identifier - number_literal) < number_literal) ))) )) (compound_statement "{\nLAB_0010a3d0:\n      FUN_0011e060();\n      goto LAB_0010a2c0;\n    }" { (labeled_statement "LAB_0010a3d0:\n      FUN_0011e060();" statement_identifier : (expression_statement "FUN_0011e060();" (call_expression "FUN_0011e060()" identifier (argument_list "()" ( ))) ;)) (goto_statement "goto LAB_0010a2c0;" goto statement_identifier ;) })) }) (else_clause "else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;" else (if_statement "if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;" if (parenthesized_expression "((uVar5 == 0x88) || (uVar5 == 0x90))" ( (binary_expression "(uVar5 == 0x88) || (uVar5 == 0x90)" (parenthesized_expression "(uVar5 == 0x88)" ( (binary_expression "uVar5 == 0x88" identifier == number_literal) )) || (parenthesized_expression "(uVar5 == 0x90)" ( (binary_expression "uVar5 == 0x90" identifier == number_literal) ))) )) (goto_statement "goto LAB_0010a3d0;" goto statement_identifier ;)))) (expression_statement "FUN_0011e020();" (call_expression "FUN_0011e020()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0010a2c0:\n  lVar3 = FUN_00125d90(param_1,*param_1);" statement_identifier : (expression_statement "lVar3 = FUN_00125d90(param_1,*param_1);" (assignment_expression "lVar3 = FUN_00125d90(param_1,*param_1)" identifier = (call_expression "FUN_00125d90(param_1,*param_1)" identifier (argument_list "(param_1,*param_1)" ( identifier , (pointer_expression "*param_1" * identifier) )))) ;)) (expression_statement "bfd_map_over_sections(param_1,FUN_0010e5c0,0);" (call_expression "bfd_map_over_sections(param_1,FUN_0010e5c0,0)" identifier (argument_list "(param_1,FUN_0010e5c0,0)" ( identifier , identifier , number_literal ))) ;) (if_statement "if (lVar3 != 0) {\n    bfd_map_over_sections(lVar3,FUN_0010e5c0,0);\n  }" if (parenthesized_expression "(lVar3 != 0)" ( (binary_expression "lVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    bfd_map_over_sections(lVar3,FUN_0010e5c0,0);\n  }" { (expression_statement "bfd_map_over_sections(lVar3,FUN_0010e5c0,0);" (call_expression "bfd_map_over_sections(lVar3,FUN_0010e5c0,0)" identifier (argument_list "(lVar3,FUN_0010e5c0,0)" ( identifier , identifier , number_literal ))) ;) })) (expression_statement "FUN_001260c0();" (call_expression "FUN_001260c0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) >> LIT) & LIT) )) == LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0010a250(undefined8 *param_1)\n\n{\n  undefined8 uVar1;\n  uint uVar2;\n  long lVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  \n  DAT_00157250 = (uint)((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0);\n  uVar2 = bfd_arch_bits_per_address();\n  DAT_00159de4 = uVar2 >> 3;\n  if (*(int *)(param_1[1] + 0xc) == 0) {\n    DAT_00159e20 = FUN_00137570;\n    uVar2 = bfd_get_arch(param_1);\n  }\n  else {\n    if (*(int *)(param_1[1] + 0xc) != 1) {\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }\n    DAT_00159e20 = FUN_00137bd0;\n    uVar2 = bfd_get_arch(param_1);\n  }\n  if (uVar2 == 0x43) {\n    FUN_0011e0c0();\n    goto LAB_0010a2c0;\n  }\n  if (0x43 < uVar2) {\n    if (uVar2 == 0x46) {\n      FUN_0011e0a0();\n    }\n    else if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }\n    goto LAB_0010a2c0;\n  }\n  if (uVar2 != 8) {\n    if (uVar2 == 0xb) {\n      FUN_0011e040();\n    }\n    goto LAB_0010a2c0;\n  }\n  uVar5 = bfd_get_mach(param_1);\n  if (uVar5 < 0x12) {\n    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      FUN_0011e060();\n      goto LAB_0010a2c0;\n    }\n  }\n  else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;\n  FUN_0011e020();\nLAB_0010a2c0:\n  lVar3 = FUN_00125d90(param_1,*param_1);\n  bfd_map_over_sections(param_1,FUN_0010e5c0,0);\n  if (lVar3 != 0) {\n    bfd_map_over_sections(lVar3,FUN_0010e5c0,0);\n  }\n  FUN_001260c0();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0010a250(undefined8 *param_1)" (identifier "FUN_0010a250") (parameter_list "(undefined8 *param_1)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  undefined8 uVar1;\n  uint uVar2;\n  long lVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  \n  DAT_00157250 = (uint)((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0);\n  uVar2 = bfd_arch_bits_per_address();\n  DAT_00159de4 = uVar2 >> 3;\n  if (*(int *)(param_1[1] + 0xc) == 0) {\n    DAT_00159e20 = FUN_00137570;\n    uVar2 = bfd_get_arch(param_1);\n  }\n  else {\n    if (*(int *)(param_1[1] + 0xc) != 1) {\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }\n    DAT_00159e20 = FUN_00137bd0;\n    uVar2 = bfd_get_arch(param_1);\n  }\n  if (uVar2 == 0x43) {\n    FUN_0011e0c0();\n    goto LAB_0010a2c0;\n  }\n  if (0x43 < uVar2) {\n    if (uVar2 == 0x46) {\n      FUN_0011e0a0();\n    }\n    else if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }\n    goto LAB_0010a2c0;\n  }\n  if (uVar2 != 8) {\n    if (uVar2 == 0xb) {\n      FUN_0011e040();\n    }\n    goto LAB_0010a2c0;\n  }\n  uVar5 = bfd_get_mach(param_1);\n  if (uVar5 < 0x12) {\n    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      FUN_0011e060();\n      goto LAB_0010a2c0;\n    }\n  }\n  else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;\n  FUN_0011e020();\nLAB_0010a2c0:\n  lVar3 = FUN_00125d90(param_1,*param_1);\n  bfd_map_over_sections(param_1,FUN_0010e5c0,0);\n  if (lVar3 != 0) {\n    bfd_map_over_sections(lVar3,FUN_0010e5c0,0);\n  }\n  FUN_001260c0();\n  return;\n}" ({ "{") (declaration "undefined8 uVar1;" (type_identifier "undefined8") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "ulong uVar5;" (type_identifier "ulong") (identifier "uVar5") (; ";")) (expression_statement "DAT_00157250 = (uint)((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0);" (assignment_expression "DAT_00157250 = (uint)((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0)" (identifier "DAT_00157250") (= "=") (call_expression "(uint)((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0)" (( "(") (binary_expression "(*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0" (parenthesized_expression "(*(uint *)((long)param_1 + 0x44) >> 5 & 0x42)" (( "(") (binary_expression "*(uint *)((long)param_1 + 0x44) >> 5 & 0x42" (binary_expression "*(uint *)((long)param_1 + 0x44) >> 5" (pointer_expression "*(uint *)((long)param_1 + 0x44)" (* "*") (cast_expression "(uint *)((long)param_1 + 0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x44)" (( "(") (binary_expression "(long)param_1 + 0x44" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x44")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "0x42")) () ")")) (== "==") (number_literal "0")) () ")")))) (; ";")) (expression_statement "uVar2 = bfd_arch_bits_per_address();" (assignment_expression "uVar2 = bfd_arch_bits_per_address()" (identifier "uVar2") (= "=") (call_expression "bfd_arch_bits_per_address()" (identifier "bfd_arch_bits_per_address") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "DAT_00159de4 = uVar2 >> 3;" (assignment_expression "DAT_00159de4 = uVar2 >> 3" (identifier "DAT_00159de4") (= "=") (binary_expression "uVar2 >> 3" (identifier "uVar2") (>> ">>") (number_literal "3"))) (; ";")) (if_statement "if (*(int *)(param_1[1] + 0xc) == 0) {\n    DAT_00159e20 = FUN_00137570;\n    uVar2 = bfd_get_arch(param_1);\n  }\n  else {\n    if (*(int *)(param_1[1] + 0xc) != 1) {\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }\n    DAT_00159e20 = FUN_00137bd0;\n    uVar2 = bfd_get_arch(param_1);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1[1] + 0xc) == 0)" (( "(") (binary_expression "*(int *)(param_1[1] + 0xc) == 0" (pointer_expression "*(int *)(param_1[1] + 0xc)" (* "*") (cast_expression "(int *)(param_1[1] + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[1] + 0xc)" (( "(") (binary_expression "param_1[1] + 0xc" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    DAT_00159e20 = FUN_00137570;\n    uVar2 = bfd_get_arch(param_1);\n  }" ({ "{") (expression_statement "DAT_00159e20 = FUN_00137570;" (assignment_expression "DAT_00159e20 = FUN_00137570" (identifier "DAT_00159e20") (= "=") (identifier "FUN_00137570")) (; ";")) (expression_statement "uVar2 = bfd_get_arch(param_1);" (assignment_expression "uVar2 = bfd_get_arch(param_1)" (identifier "uVar2") (= "=") (call_expression "bfd_get_arch(param_1)" (identifier "bfd_get_arch") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    if (*(int *)(param_1[1] + 0xc) != 1) {\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }\n    DAT_00159e20 = FUN_00137bd0;\n    uVar2 = bfd_get_arch(param_1);\n  }" (else "else") (compound_statement "{\n    if (*(int *)(param_1[1] + 0xc) != 1) {\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }\n    DAT_00159e20 = FUN_00137bd0;\n    uVar2 = bfd_get_arch(param_1);\n  }" ({ "{") (if_statement "if (*(int *)(param_1[1] + 0xc) != 1) {\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1[1] + 0xc) != 1)" (( "(") (binary_expression "*(int *)(param_1[1] + 0xc) != 1" (pointer_expression "*(int *)(param_1[1] + 0xc)" (* "*") (cast_expression "(int *)(param_1[1] + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[1] + 0xc)" (( "(") (binary_expression "param_1[1] + 0xc" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n      uVar1 = *param_1;\n      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);\n      warn(uVar4,uVar1);\n      return;\n    }" ({ "{") (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" (identifier "uVar1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);" (assignment_expression "uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"File %s does not contain any dwarf debug information\n",5)" (identifier "dcgettext") (argument_list "(0,"File %s does not contain any dwarf debug information\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""File %s does not contain any dwarf debug information\n"" (" """) (string_content "File %s does not contain any dwarf debug information") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar4,uVar1);" (call_expression "warn(uVar4,uVar1)" (identifier "warn") (argument_list "(uVar4,uVar1)" (( "(") (identifier "uVar4") (, ",") (identifier "uVar1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "DAT_00159e20 = FUN_00137bd0;" (assignment_expression "DAT_00159e20 = FUN_00137bd0" (identifier "DAT_00159e20") (= "=") (identifier "FUN_00137bd0")) (; ";")) (expression_statement "uVar2 = bfd_get_arch(param_1);" (assignment_expression "uVar2 = bfd_get_arch(param_1)" (identifier "uVar2") (= "=") (call_expression "bfd_get_arch(param_1)" (identifier "bfd_get_arch") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (} "}")))) (if_statement "if (uVar2 == 0x43) {\n    FUN_0011e0c0();\n    goto LAB_0010a2c0;\n  }" (if "if") (parenthesized_expression "(uVar2 == 0x43)" (( "(") (binary_expression "uVar2 == 0x43" (identifier "uVar2") (== "==") (number_literal "0x43")) () ")")) (compound_statement "{\n    FUN_0011e0c0();\n    goto LAB_0010a2c0;\n  }" ({ "{") (expression_statement "FUN_0011e0c0();" (call_expression "FUN_0011e0c0()" (identifier "FUN_0011e0c0") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0010a2c0;" (goto "goto") (statement_identifier "LAB_0010a2c0") (; ";")) (} "}"))) (if_statement "if (0x43 < uVar2) {\n    if (uVar2 == 0x46) {\n      FUN_0011e0a0();\n    }\n    else if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }\n    goto LAB_0010a2c0;\n  }" (if "if") (parenthesized_expression "(0x43 < uVar2)" (( "(") (binary_expression "0x43 < uVar2" (number_literal "0x43") (< "<") (identifier "uVar2")) () ")")) (compound_statement "{\n    if (uVar2 == 0x46) {\n      FUN_0011e0a0();\n    }\n    else if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }\n    goto LAB_0010a2c0;\n  }" ({ "{") (if_statement "if (uVar2 == 0x46) {\n      FUN_0011e0a0();\n    }\n    else if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }" (if "if") (parenthesized_expression "(uVar2 == 0x46)" (( "(") (binary_expression "uVar2 == 0x46" (identifier "uVar2") (== "==") (number_literal "0x46")) () ")")) (compound_statement "{\n      FUN_0011e0a0();\n    }" ({ "{") (expression_statement "FUN_0011e0a0();" (call_expression "FUN_0011e0a0()" (identifier "FUN_0011e0a0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }" (else "else") (if_statement "if (uVar2 == 0x53) {\n      FUN_0011e080();\n    }" (if "if") (parenthesized_expression "(uVar2 == 0x53)" (( "(") (binary_expression "uVar2 == 0x53" (identifier "uVar2") (== "==") (number_literal "0x53")) () ")")) (compound_statement "{\n      FUN_0011e080();\n    }" ({ "{") (expression_statement "FUN_0011e080();" (call_expression "FUN_0011e080()" (identifier "FUN_0011e080") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))))) (goto_statement "goto LAB_0010a2c0;" (goto "goto") (statement_identifier "LAB_0010a2c0") (; ";")) (} "}"))) (if_statement "if (uVar2 != 8) {\n    if (uVar2 == 0xb) {\n      FUN_0011e040();\n    }\n    goto LAB_0010a2c0;\n  }" (if "if") (parenthesized_expression "(uVar2 != 8)" (( "(") (binary_expression "uVar2 != 8" (identifier "uVar2") (!= "!=") (number_literal "8")) () ")")) (compound_statement "{\n    if (uVar2 == 0xb) {\n      FUN_0011e040();\n    }\n    goto LAB_0010a2c0;\n  }" ({ "{") (if_statement "if (uVar2 == 0xb) {\n      FUN_0011e040();\n    }" (if "if") (parenthesized_expression "(uVar2 == 0xb)" (( "(") (binary_expression "uVar2 == 0xb" (identifier "uVar2") (== "==") (number_literal "0xb")) () ")")) (compound_statement "{\n      FUN_0011e040();\n    }" ({ "{") (expression_statement "FUN_0011e040();" (call_expression "FUN_0011e040()" (identifier "FUN_0011e040") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0010a2c0;" (goto "goto") (statement_identifier "LAB_0010a2c0") (; ";")) (} "}"))) (expression_statement "uVar5 = bfd_get_mach(param_1);" (assignment_expression "uVar5 = bfd_get_mach(param_1)" (identifier "uVar5") (= "=") (call_expression "bfd_get_mach(param_1)" (identifier "bfd_get_mach") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (uVar5 < 0x12) {\n    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      FUN_0011e060();\n      goto LAB_0010a2c0;\n    }\n  }\n  else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;" (if "if") (parenthesized_expression "(uVar5 < 0x12)" (( "(") (binary_expression "uVar5 < 0x12" (identifier "uVar5") (< "<") (number_literal "0x12")) () ")")) (compound_statement "{\n    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      FUN_0011e060();\n      goto LAB_0010a2c0;\n    }\n  }" ({ "{") (if_statement "if ((0xf < uVar5) || (uVar5 - 8 < 2)) {\nLAB_0010a3d0:\n      FUN_0011e060();\n      goto LAB_0010a2c0;\n    }" (if "if") (parenthesized_expression "((0xf < uVar5) || (uVar5 - 8 < 2))" (( "(") (binary_expression "(0xf < uVar5) || (uVar5 - 8 < 2)" (parenthesized_expression "(0xf < uVar5)" (( "(") (binary_expression "0xf < uVar5" (number_literal "0xf") (< "<") (identifier "uVar5")) () ")")) (|| "||") (parenthesized_expression "(uVar5 - 8 < 2)" (( "(") (binary_expression "uVar5 - 8 < 2" (binary_expression "uVar5 - 8" (identifier "uVar5") (- "-") (number_literal "8")) (< "<") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\nLAB_0010a3d0:\n      FUN_0011e060();\n      goto LAB_0010a2c0;\n    }" ({ "{") (labeled_statement "LAB_0010a3d0:\n      FUN_0011e060();" (statement_identifier "LAB_0010a3d0") (: ":") (expression_statement "FUN_0011e060();" (call_expression "FUN_0011e060()" (identifier "FUN_0011e060") (argument_list "()" (( "(") () ")"))) (; ";"))) (goto_statement "goto LAB_0010a2c0;" (goto "goto") (statement_identifier "LAB_0010a2c0") (; ";")) (} "}"))) (} "}")) (else_clause "else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;" (else "else") (if_statement "if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;" (if "if") (parenthesized_expression "((uVar5 == 0x88) || (uVar5 == 0x90))" (( "(") (binary_expression "(uVar5 == 0x88) || (uVar5 == 0x90)" (parenthesized_expression "(uVar5 == 0x88)" (( "(") (binary_expression "uVar5 == 0x88" (identifier "uVar5") (== "==") (number_literal "0x88")) () ")")) (|| "||") (parenthesized_expression "(uVar5 == 0x90)" (( "(") (binary_expression "uVar5 == 0x90" (identifier "uVar5") (== "==") (number_literal "0x90")) () ")"))) () ")")) (goto_statement "goto LAB_0010a3d0;" (goto "goto") (statement_identifier "LAB_0010a3d0") (; ";"))))) (expression_statement "FUN_0011e020();" (call_expression "FUN_0011e020()" (identifier "FUN_0011e020") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0010a2c0:\n  lVar3 = FUN_00125d90(param_1,*param_1);" (statement_identifier "LAB_0010a2c0") (: ":") (expression_statement "lVar3 = FUN_00125d90(param_1,*param_1);" (assignment_expression "lVar3 = FUN_00125d90(param_1,*param_1)" (identifier "lVar3") (= "=") (call_expression "FUN_00125d90(param_1,*param_1)" (identifier "FUN_00125d90") (argument_list "(param_1,*param_1)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")))) (; ";"))) (expression_statement "bfd_map_over_sections(param_1,FUN_0010e5c0,0);" (call_expression "bfd_map_over_sections(param_1,FUN_0010e5c0,0)" (identifier "bfd_map_over_sections") (argument_list "(param_1,FUN_0010e5c0,0)" (( "(") (identifier "param_1") (, ",") (identifier "FUN_0010e5c0") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (lVar3 != 0) {\n    bfd_map_over_sections(lVar3,FUN_0010e5c0,0);\n  }" (if "if") (parenthesized_expression "(lVar3 != 0)" (( "(") (binary_expression "lVar3 != 0" (identifier "lVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    bfd_map_over_sections(lVar3,FUN_0010e5c0,0);\n  }" ({ "{") (expression_statement "bfd_map_over_sections(lVar3,FUN_0010e5c0,0);" (call_expression "bfd_map_over_sections(lVar3,FUN_0010e5c0,0)" (identifier "bfd_map_over_sections") (argument_list "(lVar3,FUN_0010e5c0,0)" (( "(") (identifier "lVar3") (, ",") (identifier "FUN_0010e5c0") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001260c0();" (call_expression "FUN_001260c0()" (identifier "FUN_001260c0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *abfd)

{
  type_2 var_3;
  char *pcVar2;
  type_3 var_2;
  void *var_19;
  char *message;
  type_4 var_14;
  
  is_relocatable = (bfd_boolean)((*(type_3 *)&abfd->field_0x44 >> 5 & 0x42) == 0);
  var_2 = var_1();
  eh_addr_size = var_2 >> 3;
  var_3 = abfd->xvec->byteorder;
  if (var_3 == var_4) {
    byte_get = byte_get_big_endian;
    var_2 = var_5(abfd);
  }
  else {
    if (var_3 != var_6) {
      pcVar2 = abfd->filename;
      message = (char *)var_7(0,"File %s does not contain any dwarf debug information\n",5);
      var_8(message,pcVar2);
      return;
    }
    byte_get = byte_get_little_endian;
    var_2 = var_5(abfd);
  }
  if (var_2 == 0x43) {
    var_9();
    goto LAB_0010a2c0;
  }
  if (0x43 < var_2) {
    if (var_2 == 0x46) {
      var_10();
    }
    else if (var_2 == 0x53) {
      var_11();
    }
    goto LAB_0010a2c0;
  }
  if (var_2 != 8) {
    if (var_2 == 0xb) {
      var_12();
    }
    goto LAB_0010a2c0;
  }
  var_14 = var_13(abfd);
  if (var_14 < 0x12) {
    if ((0xf < var_14) || (var_14 - 8 < 2)) {
LAB_0010a3d0:
      var_15();
      goto LAB_0010a2c0;
    }
  }
  else if ((var_14 == 0x88) || (var_14 == 0x90)) goto LAB_0010a3d0;
  var_16();
LAB_0010a2c0:
  var_19 = var_17(abfd,abfd->filename);
  var_18(abfd,dump_dwarf_section,0);
  if (var_19 != (void *)0x0) {
    var_18(var_19,dump_dwarf_section,0);
  }
  var_20();
  return;
}


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

void MASKED(undefined8 *param_1)

{
  undefined8 uVar1;
  uint uVar2;
  long lVar3;
  undefined8 uVar4;
  ulong uVar5;
  
  DAT_00157250 = (uint)((*(uint *)((long)param_1 + 0x44) >> 5 & 0x42) == 0);
  uVar2 = bfd_arch_bits_per_address();
  DAT_00159de4 = uVar2 >> 3;
  if (*(int *)(param_1[1] + 0xc) == 0) {
    DAT_00159e20 = FUN_00137570;
    uVar2 = bfd_get_arch(param_1);
  }
  else {
    if (*(int *)(param_1[1] + 0xc) != 1) {
      uVar1 = *param_1;
      uVar4 = dcgettext(0,"File %s does not contain any dwarf debug information\n",5);
      warn(uVar4,uVar1);
      return;
    }
    DAT_00159e20 = FUN_00137bd0;
    uVar2 = bfd_get_arch(param_1);
  }
  if (uVar2 == 0x43) {
    FUN_0011e0c0();
    goto LAB_0010a2c0;
  }
  if (0x43 < uVar2) {
    if (uVar2 == 0x46) {
      FUN_0011e0a0();
    }
    else if (uVar2 == 0x53) {
      FUN_0011e080();
    }
    goto LAB_0010a2c0;
  }
  if (uVar2 != 8) {
    if (uVar2 == 0xb) {
      FUN_0011e040();
    }
    goto LAB_0010a2c0;
  }
  uVar5 = bfd_get_mach(param_1);
  if (uVar5 < 0x12) {
    if ((0xf < uVar5) || (uVar5 - 8 < 2)) {
LAB_0010a3d0:
      FUN_0011e060();
      goto LAB_0010a2c0;
    }
  }
  else if ((uVar5 == 0x88) || (uVar5 == 0x90)) goto LAB_0010a3d0;
  FUN_0011e020();
LAB_0010a2c0:
  lVar3 = FUN_00125d90(param_1,*param_1);
  bfd_map_over_sections(param_1,FUN_0010e5c0,0);
  if (lVar3 != 0) {
    bfd_map_over_sections(lVar3,FUN_0010e5c0,0);
  }
  FUN_001260c0();
  return;
}

