
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

bfd_boolean load_debug_section(dwarf_section_display_enum debug,void *file)

{
  int iVar1;
  asection *sec;
  bfd_boolean bVar2;
  
                    /* WARNING: Load size is inaccurate */
  if ((*(int *)(&DAT_00073570 + debug * 0x40) != 0) &&
     (iVar1 = strcmp(*(char **)(&DAT_0007356c + debug * 0x40),*file), iVar1 == 0)) {
    return 1;
  }
  sec = (asection *)bfd_get_section_by_name(file,(&debug_displays)[debug * 0x10]);
  if (sec == (asection *)0x0) {
    sec = (asection *)bfd_get_section_by_name(file,(&PTR_s__zdebug_abbrev_00073564)[debug * 0x10]);
    if (sec == (asection *)0x0) {
      return 0;
    }
    (&DAT_00073568)[debug * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[debug * 0x10];
  }
  else {
    (&DAT_00073568)[debug * 0x10] = (&debug_displays)[debug * 0x10];
  }
  bVar2 = load_specific_debug_section(debug,sec,file);
  return bVar2;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 FUN_0001c560(int param_1,undefined4 *param_2)

{
  int iVar1;
  undefined4 uVar2;
  
  if ((*(int *)(&DAT_00073570 + param_1 * 0x40) != 0) &&
     (iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0)) {
    return 1;
  }
  iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]);
  if (iVar1 == 0) {
    iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]);
    if (iVar1 == 0) {
      return 0;
    }
    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10];
  }
  else {
    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];
  }
  uVar2 = FUN_0001c340();
  return uVar2;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000153d0
ADD EBX,0x56a97
SUB ESP,0xc
MOV ESI,dword ptr [ESP + 0x20]
MOV EDI,dword ptr [ESP + 0x24]
MOV EAX,ESI
LEA EBP,[EBX + 0x560]
SHL EAX,0x6
ADD EAX,EBP
MOV EDX,dword ptr [EAX + 0x10]
TEST EDX,EDX
JZ 0x0001c5a2
SUB ESP,0x8
PUSH dword ptr [EDI]
PUSH dword ptr [EAX + 0xc]
CALL 0x00014080
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001c5d8
MOV EAX,ESI
SUB ESP,0x8
SHL EAX,0x6
ADD EBP,EAX
PUSH dword ptr [EBP]
PUSH EDI
CALL 0x00014330
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001c5e8
MOV EDX,dword ptr [EBP]
MOV dword ptr [EBP + 0x8],EDX
ADD ESP,0xc
MOV ECX,EDI
MOV EDX,EAX
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
JMP 0x0001c340
MOV EAX,0x1
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
PUSH dword ptr [EBP + 0x4]
PUSH EDI
CALL 0x00014330
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001c608
MOV EDX,dword ptr [EBP + 0x4]
MOV dword ptr [EBP + 0x8],EDX
JMP 0x0001c5c2
XOR EAX,EAX
JMP 0x0001c5dd
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 FUN_0001c560(int param_1,undefined4 *param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if ((*(int *)(&DAT_00073570 + param_1 * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0)) {\n    return 1;\n  }\n  iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]);\n  if (iVar1 == 0) {\n    iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]);\n    if (iVar1 == 0) {\n      return 0;\n    }\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10];\n  }\n  else {\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];\n  }\n  uVar2 = FUN_0001c340();\n  return uVar2;\n}\n\n" comment (function_definition "undefined4 FUN_0001c560(int param_1,undefined4 *param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if ((*(int *)(&DAT_00073570 + param_1 * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0)) {\n    return 1;\n  }\n  iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]);\n  if (iVar1 == 0) {\n    iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]);\n    if (iVar1 == 0) {\n      return 0;\n    }\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10];\n  }\n  else {\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];\n  }\n  uVar2 = FUN_0001c340();\n  return uVar2;\n}" type_identifier (function_declarator "FUN_0001c560(int param_1,undefined4 *param_2)" identifier (parameter_list "(int param_1,undefined4 *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if ((*(int *)(&DAT_00073570 + param_1 * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0)) {\n    return 1;\n  }\n  iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]);\n  if (iVar1 == 0) {\n    iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]);\n    if (iVar1 == 0) {\n      return 0;\n    }\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10];\n  }\n  else {\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];\n  }\n  uVar2 = FUN_0001c340();\n  return uVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (if_statement "if ((*(int *)(&DAT_00073570 + param_1 * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0)) {\n    return 1;\n  }" if (parenthesized_expression "((*(int *)(&DAT_00073570 + param_1 * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0))" ( (binary_expression "(*(int *)(&DAT_00073570 + param_1 * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0)" (parenthesized_expression "(*(int *)(&DAT_00073570 + param_1 * 0x40) != 0)" ( (binary_expression "*(int *)(&DAT_00073570 + param_1 * 0x40) != 0" (pointer_expression "*(int *)(&DAT_00073570 + param_1 * 0x40)" * (cast_expression "(int *)(&DAT_00073570 + param_1 * 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00073570 + param_1 * 0x40)" ( (binary_expression "&DAT_00073570 + param_1 * 0x40" (pointer_expression "&DAT_00073570" & identifier) + (binary_expression "param_1 * 0x40" identifier * number_literal)) )))) != number_literal) )) && (parenthesized_expression "(iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0" (assignment_expression "iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2)" identifier = (call_expression "strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2)" identifier (argument_list "(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2)" ( (pointer_expression "*(char **)(&DAT_0007356c + param_1 * 0x40)" * (cast_expression "(char **)(&DAT_0007356c + param_1 * 0x40)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_0007356c + param_1 * 0x40)" ( (binary_expression "&DAT_0007356c + param_1 * 0x40" (pointer_expression "&DAT_0007356c" & identifier) + (binary_expression "param_1 * 0x40" identifier * number_literal)) )))) , (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]);" (assignment_expression "iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10])" identifier = (call_expression "bfd_get_section_by_name(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10])" identifier (argument_list "(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10])" ( identifier , (subscript_expression "(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]" (parenthesized_expression "(&PTR_s__debug_abbrev_00073560)" ( (pointer_expression "&PTR_s__debug_abbrev_00073560" & identifier) )) [ (binary_expression "param_1 * 0x10" identifier * number_literal) ]) )))) ;) (if_statement "if (iVar1 == 0) {\n    iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]);\n    if (iVar1 == 0) {\n      return 0;\n    }\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10];\n  }\n  else {\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]);\n    if (iVar1 == 0) {\n      return 0;\n    }\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10];\n  }" { (expression_statement "iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]);" (assignment_expression "iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10])" identifier = (call_expression "bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10])" identifier (argument_list "(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10])" ( identifier , (subscript_expression "(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]" (parenthesized_expression "(&PTR_s__zdebug_abbrev_00073564)" ( (pointer_expression "&PTR_s__zdebug_abbrev_00073564" & identifier) )) [ (binary_expression "param_1 * 0x10" identifier * number_literal) ]) )))) ;) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "(&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10];" (assignment_expression "(&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]" (subscript_expression "(&DAT_00073568)[param_1 * 0x10]" (parenthesized_expression "(&DAT_00073568)" ( (pointer_expression "&DAT_00073568" & identifier) )) [ (binary_expression "param_1 * 0x10" identifier * number_literal) ]) = (subscript_expression "(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]" (parenthesized_expression "(&PTR_s__zdebug_abbrev_00073564)" ( (pointer_expression "&PTR_s__zdebug_abbrev_00073564" & identifier) )) [ (binary_expression "param_1 * 0x10" identifier * number_literal) ])) ;) }) (else_clause "else {\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];\n  }" else (compound_statement "{\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];\n  }" { (expression_statement "(&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];" (assignment_expression "(&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]" (subscript_expression "(&DAT_00073568)[param_1 * 0x10]" (parenthesized_expression "(&DAT_00073568)" ( (pointer_expression "&DAT_00073568" & identifier) )) [ (binary_expression "param_1 * 0x10" identifier * number_literal) ]) = (subscript_expression "(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]" (parenthesized_expression "(&PTR_s__debug_abbrev_00073560)" ( (pointer_expression "&PTR_s__debug_abbrev_00073560" & identifier) )) [ (binary_expression "param_1 * 0x10" identifier * number_literal) ])) ;) }))) (expression_statement "uVar2 = FUN_0001c340();" (assignment_expression "uVar2 = FUN_0001c340()" identifier = (call_expression "FUN_0001c340()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbfd_boolean load_debug_section(dwarf_section_display_enum debug,void *file)\n\n{\n  int iVar1;\n  asection *sec;\n  bfd_boolean bVar2;\n  \n                    /* WARNING: Load size is inaccurate */\n  if ((*(int *)(&DAT_00073570 + debug * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + debug * 0x40),*file), iVar1 == 0)) {\n    return 1;\n  }\n  sec = (asection *)bfd_get_section_by_name(file,(&debug_displays)[debug * 0x10]);\n  if (sec == (asection *)0x0) {\n    sec = (asection *)bfd_get_section_by_name(file,(&PTR_s__zdebug_abbrev_00073564)[debug * 0x10]);\n    if (sec == (asection *)0x0) {\n      return 0;\n    }\n    (&DAT_00073568)[debug * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[debug * 0x10];\n  }\n  else {\n    (&DAT_00073568)[debug * 0x10] = (&debug_displays)[debug * 0x10];\n  }\n  bVar2 = load_specific_debug_section(debug,sec,file);\n  return bVar2;\n}\n\n" comment (function_definition "bfd_boolean load_debug_section(dwarf_section_display_enum debug,void *file)\n\n{\n  int iVar1;\n  asection *sec;\n  bfd_boolean bVar2;\n  \n                    /* WARNING: Load size is inaccurate */\n  if ((*(int *)(&DAT_00073570 + debug * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + debug * 0x40),*file), iVar1 == 0)) {\n    return 1;\n  }\n  sec = (asection *)bfd_get_section_by_name(file,(&debug_displays)[debug * 0x10]);\n  if (sec == (asection *)0x0) {\n    sec = (asection *)bfd_get_section_by_name(file,(&PTR_s__zdebug_abbrev_00073564)[debug * 0x10]);\n    if (sec == (asection *)0x0) {\n      return 0;\n    }\n    (&DAT_00073568)[debug * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[debug * 0x10];\n  }\n  else {\n    (&DAT_00073568)[debug * 0x10] = (&debug_displays)[debug * 0x10];\n  }\n  bVar2 = load_specific_debug_section(debug,sec,file);\n  return bVar2;\n}" type_identifier (function_declarator "load_debug_section(dwarf_section_display_enum debug,void *file)" identifier (parameter_list "(dwarf_section_display_enum debug,void *file)" ( (parameter_declaration "dwarf_section_display_enum debug" type_identifier identifier) , (parameter_declaration "void *file" primitive_type (pointer_declarator "*file" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  asection *sec;\n  bfd_boolean bVar2;\n  \n                    /* WARNING: Load size is inaccurate */\n  if ((*(int *)(&DAT_00073570 + debug * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + debug * 0x40),*file), iVar1 == 0)) {\n    return 1;\n  }\n  sec = (asection *)bfd_get_section_by_name(file,(&debug_displays)[debug * 0x10]);\n  if (sec == (asection *)0x0) {\n    sec = (asection *)bfd_get_section_by_name(file,(&PTR_s__zdebug_abbrev_00073564)[debug * 0x10]);\n    if (sec == (asection *)0x0) {\n      return 0;\n    }\n    (&DAT_00073568)[debug * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[debug * 0x10];\n  }\n  else {\n    (&DAT_00073568)[debug * 0x10] = (&debug_displays)[debug * 0x10];\n  }\n  bVar2 = load_specific_debug_section(debug,sec,file);\n  return bVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "asection *sec;" type_identifier (pointer_declarator "*sec" * identifier) ;) (declaration "bfd_boolean bVar2;" type_identifier identifier ;) comment (if_statement "if ((*(int *)(&DAT_00073570 + debug * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + debug * 0x40),*file), iVar1 == 0)) {\n    return 1;\n  }" if (parenthesized_expression "((*(int *)(&DAT_00073570 + debug * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + debug * 0x40),*file), iVar1 == 0))" ( (binary_expression "(*(int *)(&DAT_00073570 + debug * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + debug * 0x40),*file), iVar1 == 0)" (parenthesized_expression "(*(int *)(&DAT_00073570 + debug * 0x40) != 0)" ( (binary_expression "*(int *)(&DAT_00073570 + debug * 0x40) != 0" (pointer_expression "*(int *)(&DAT_00073570 + debug * 0x40)" * (cast_expression "(int *)(&DAT_00073570 + debug * 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00073570 + debug * 0x40)" ( (binary_expression "&DAT_00073570 + debug * 0x40" (pointer_expression "&DAT_00073570" & identifier) + (binary_expression "debug * 0x40" identifier * number_literal)) )))) != number_literal) )) && (parenthesized_expression "(iVar1 = strcmp(*(char **)(&DAT_0007356c + debug * 0x40),*file), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp(*(char **)(&DAT_0007356c + debug * 0x40),*file), iVar1 == 0" (assignment_expression "iVar1 = strcmp(*(char **)(&DAT_0007356c + debug * 0x40),*file)" identifier = (call_expression "strcmp(*(char **)(&DAT_0007356c + debug * 0x40),*file)" identifier (argument_list "(*(char **)(&DAT_0007356c + debug * 0x40),*file)" ( (pointer_expression "*(char **)(&DAT_0007356c + debug * 0x40)" * (cast_expression "(char **)(&DAT_0007356c + debug * 0x40)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_0007356c + debug * 0x40)" ( (binary_expression "&DAT_0007356c + debug * 0x40" (pointer_expression "&DAT_0007356c" & identifier) + (binary_expression "debug * 0x40" identifier * number_literal)) )))) , (pointer_expression "*file" * identifier) )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "sec = (asection *)bfd_get_section_by_name(file,(&debug_displays)[debug * 0x10]);" (assignment_expression "sec = (asection *)bfd_get_section_by_name(file,(&debug_displays)[debug * 0x10])" identifier = (cast_expression "(asection *)bfd_get_section_by_name(file,(&debug_displays)[debug * 0x10])" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_get_section_by_name(file,(&debug_displays)[debug * 0x10])" identifier (argument_list "(file,(&debug_displays)[debug * 0x10])" ( identifier , (subscript_expression "(&debug_displays)[debug * 0x10]" (parenthesized_expression "(&debug_displays)" ( (pointer_expression "&debug_displays" & identifier) )) [ (binary_expression "debug * 0x10" identifier * number_literal) ]) ))))) ;) (if_statement "if (sec == (asection *)0x0) {\n    sec = (asection *)bfd_get_section_by_name(file,(&PTR_s__zdebug_abbrev_00073564)[debug * 0x10]);\n    if (sec == (asection *)0x0) {\n      return 0;\n    }\n    (&DAT_00073568)[debug * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[debug * 0x10];\n  }\n  else {\n    (&DAT_00073568)[debug * 0x10] = (&debug_displays)[debug * 0x10];\n  }" if (parenthesized_expression "(sec == (asection *)0x0)" ( (binary_expression "sec == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sec = (asection *)bfd_get_section_by_name(file,(&PTR_s__zdebug_abbrev_00073564)[debug * 0x10]);\n    if (sec == (asection *)0x0) {\n      return 0;\n    }\n    (&DAT_00073568)[debug * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[debug * 0x10];\n  }" { (expression_statement "sec = (asection *)bfd_get_section_by_name(file,(&PTR_s__zdebug_abbrev_00073564)[debug * 0x10]);" (assignment_expression "sec = (asection *)bfd_get_section_by_name(file,(&PTR_s__zdebug_abbrev_00073564)[debug * 0x10])" identifier = (cast_expression "(asection *)bfd_get_section_by_name(file,(&PTR_s__zdebug_abbrev_00073564)[debug * 0x10])" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_get_section_by_name(file,(&PTR_s__zdebug_abbrev_00073564)[debug * 0x10])" identifier (argument_list "(file,(&PTR_s__zdebug_abbrev_00073564)[debug * 0x10])" ( identifier , (subscript_expression "(&PTR_s__zdebug_abbrev_00073564)[debug * 0x10]" (parenthesized_expression "(&PTR_s__zdebug_abbrev_00073564)" ( (pointer_expression "&PTR_s__zdebug_abbrev_00073564" & identifier) )) [ (binary_expression "debug * 0x10" identifier * number_literal) ]) ))))) ;) (if_statement "if (sec == (asection *)0x0) {\n      return 0;\n    }" if (parenthesized_expression "(sec == (asection *)0x0)" ( (binary_expression "sec == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "(&DAT_00073568)[debug * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[debug * 0x10];" (assignment_expression "(&DAT_00073568)[debug * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[debug * 0x10]" (subscript_expression "(&DAT_00073568)[debug * 0x10]" (parenthesized_expression "(&DAT_00073568)" ( (pointer_expression "&DAT_00073568" & identifier) )) [ (binary_expression "debug * 0x10" identifier * number_literal) ]) = (subscript_expression "(&PTR_s__zdebug_abbrev_00073564)[debug * 0x10]" (parenthesized_expression "(&PTR_s__zdebug_abbrev_00073564)" ( (pointer_expression "&PTR_s__zdebug_abbrev_00073564" & identifier) )) [ (binary_expression "debug * 0x10" identifier * number_literal) ])) ;) }) (else_clause "else {\n    (&DAT_00073568)[debug * 0x10] = (&debug_displays)[debug * 0x10];\n  }" else (compound_statement "{\n    (&DAT_00073568)[debug * 0x10] = (&debug_displays)[debug * 0x10];\n  }" { (expression_statement "(&DAT_00073568)[debug * 0x10] = (&debug_displays)[debug * 0x10];" (assignment_expression "(&DAT_00073568)[debug * 0x10] = (&debug_displays)[debug * 0x10]" (subscript_expression "(&DAT_00073568)[debug * 0x10]" (parenthesized_expression "(&DAT_00073568)" ( (pointer_expression "&DAT_00073568" & identifier) )) [ (binary_expression "debug * 0x10" identifier * number_literal) ]) = (subscript_expression "(&debug_displays)[debug * 0x10]" (parenthesized_expression "(&debug_displays)" ( (pointer_expression "&debug_displays" & identifier) )) [ (binary_expression "debug * 0x10" identifier * number_literal) ])) ;) }))) (expression_statement "bVar2 = load_specific_debug_section(debug,sec,file);" (assignment_expression "bVar2 = load_specific_debug_section(debug,sec,file)" identifier = (call_expression "load_specific_debug_section(debug,sec,file)" identifier (argument_list "(debug,sec,file)" ( identifier , identifier , identifier )))) ;) (return_statement "return bVar2;" return identifier ;) })))
(translation_unit "undefined4 FUN_0001c560(int param_1,undefined4 *param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if ((*(int *)(&DAT_00073570 + param_1 * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0)) {\n    return 1;\n  }\n  iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]);\n  if (iVar1 == 0) {\n    iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]);\n    if (iVar1 == 0) {\n      return 0;\n    }\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10];\n  }\n  else {\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];\n  }\n  uVar2 = FUN_0001c340();\n  return uVar2;\n}\n\n" (function_definition "undefined4 FUN_0001c560(int param_1,undefined4 *param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if ((*(int *)(&DAT_00073570 + param_1 * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0)) {\n    return 1;\n  }\n  iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]);\n  if (iVar1 == 0) {\n    iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]);\n    if (iVar1 == 0) {\n      return 0;\n    }\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10];\n  }\n  else {\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];\n  }\n  uVar2 = FUN_0001c340();\n  return uVar2;\n}" type_identifier (function_declarator "FUN_0001c560(int param_1,undefined4 *param_2)" identifier (parameter_list "(int param_1,undefined4 *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if ((*(int *)(&DAT_00073570 + param_1 * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0)) {\n    return 1;\n  }\n  iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]);\n  if (iVar1 == 0) {\n    iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]);\n    if (iVar1 == 0) {\n      return 0;\n    }\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10];\n  }\n  else {\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];\n  }\n  uVar2 = FUN_0001c340();\n  return uVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (if_statement "if ((*(int *)(&DAT_00073570 + param_1 * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0)) {\n    return 1;\n  }" if (parenthesized_expression "((*(int *)(&DAT_00073570 + param_1 * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0))" ( (binary_expression "(*(int *)(&DAT_00073570 + param_1 * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0)" (parenthesized_expression "(*(int *)(&DAT_00073570 + param_1 * 0x40) != 0)" ( (binary_expression "*(int *)(&DAT_00073570 + param_1 * 0x40) != 0" (pointer_expression "*(int *)(&DAT_00073570 + param_1 * 0x40)" * (cast_expression "(int *)(&DAT_00073570 + param_1 * 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00073570 + param_1 * 0x40)" ( (binary_expression "&DAT_00073570 + param_1 * 0x40" (pointer_expression "&DAT_00073570" & identifier) + (binary_expression "param_1 * 0x40" identifier * number_literal)) )))) != number_literal) )) && (parenthesized_expression "(iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0)" ( (comma_expression "iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0" (assignment_expression "iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2)" identifier = (call_expression "strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2)" identifier (argument_list "(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2)" ( (pointer_expression "*(char **)(&DAT_0007356c + param_1 * 0x40)" * (cast_expression "(char **)(&DAT_0007356c + param_1 * 0x40)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_0007356c + param_1 * 0x40)" ( (binary_expression "&DAT_0007356c + param_1 * 0x40" (pointer_expression "&DAT_0007356c" & identifier) + (binary_expression "param_1 * 0x40" identifier * number_literal)) )))) , (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]);" (assignment_expression "iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10])" identifier = (call_expression "bfd_get_section_by_name(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10])" identifier (argument_list "(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10])" ( identifier , (subscript_expression "(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]" (parenthesized_expression "(&PTR_s__debug_abbrev_00073560)" ( (pointer_expression "&PTR_s__debug_abbrev_00073560" & identifier) )) [ (binary_expression "param_1 * 0x10" identifier * number_literal) ]) )))) ;) (if_statement "if (iVar1 == 0) {\n    iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]);\n    if (iVar1 == 0) {\n      return 0;\n    }\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10];\n  }\n  else {\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]);\n    if (iVar1 == 0) {\n      return 0;\n    }\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10];\n  }" { (expression_statement "iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]);" (assignment_expression "iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10])" identifier = (call_expression "bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10])" identifier (argument_list "(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10])" ( identifier , (subscript_expression "(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]" (parenthesized_expression "(&PTR_s__zdebug_abbrev_00073564)" ( (pointer_expression "&PTR_s__zdebug_abbrev_00073564" & identifier) )) [ (binary_expression "param_1 * 0x10" identifier * number_literal) ]) )))) ;) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "(&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10];" (assignment_expression "(&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]" (subscript_expression "(&DAT_00073568)[param_1 * 0x10]" (parenthesized_expression "(&DAT_00073568)" ( (pointer_expression "&DAT_00073568" & identifier) )) [ (binary_expression "param_1 * 0x10" identifier * number_literal) ]) = (subscript_expression "(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]" (parenthesized_expression "(&PTR_s__zdebug_abbrev_00073564)" ( (pointer_expression "&PTR_s__zdebug_abbrev_00073564" & identifier) )) [ (binary_expression "param_1 * 0x10" identifier * number_literal) ])) ;) }) (else_clause "else {\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];\n  }" else (compound_statement "{\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];\n  }" { (expression_statement "(&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];" (assignment_expression "(&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]" (subscript_expression "(&DAT_00073568)[param_1 * 0x10]" (parenthesized_expression "(&DAT_00073568)" ( (pointer_expression "&DAT_00073568" & identifier) )) [ (binary_expression "param_1 * 0x10" identifier * number_literal) ]) = (subscript_expression "(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]" (parenthesized_expression "(&PTR_s__debug_abbrev_00073560)" ( (pointer_expression "&PTR_s__debug_abbrev_00073560" & identifier) )) [ (binary_expression "param_1 * 0x10" identifier * number_literal) ])) ;) }))) (expression_statement "uVar2 = FUN_0001c340();" (assignment_expression "uVar2 = FUN_0001c340()" identifier = (call_expression "FUN_0001c340()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ])) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (return_statement return IDENT ;) })))
(function_definition "undefined4 FUN_0001c560(int param_1,undefined4 *param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if ((*(int *)(&DAT_00073570 + param_1 * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0)) {\n    return 1;\n  }\n  iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]);\n  if (iVar1 == 0) {\n    iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]);\n    if (iVar1 == 0) {\n      return 0;\n    }\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10];\n  }\n  else {\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];\n  }\n  uVar2 = FUN_0001c340();\n  return uVar2;\n}" (type_identifier "undefined4") (function_declarator "FUN_0001c560(int param_1,undefined4 *param_2)" (identifier "FUN_0001c560") (parameter_list "(int param_1,undefined4 *param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if ((*(int *)(&DAT_00073570 + param_1 * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0)) {\n    return 1;\n  }\n  iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]);\n  if (iVar1 == 0) {\n    iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]);\n    if (iVar1 == 0) {\n      return 0;\n    }\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10];\n  }\n  else {\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];\n  }\n  uVar2 = FUN_0001c340();\n  return uVar2;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (if_statement "if ((*(int *)(&DAT_00073570 + param_1 * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0)) {\n    return 1;\n  }" (if "if") (parenthesized_expression "((*(int *)(&DAT_00073570 + param_1 * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0))" (( "(") (binary_expression "(*(int *)(&DAT_00073570 + param_1 * 0x40) != 0) &&\n     (iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0)" (parenthesized_expression "(*(int *)(&DAT_00073570 + param_1 * 0x40) != 0)" (( "(") (binary_expression "*(int *)(&DAT_00073570 + param_1 * 0x40) != 0" (pointer_expression "*(int *)(&DAT_00073570 + param_1 * 0x40)" (* "*") (cast_expression "(int *)(&DAT_00073570 + param_1 * 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00073570 + param_1 * 0x40)" (( "(") (binary_expression "&DAT_00073570 + param_1 * 0x40" (pointer_expression "&DAT_00073570" (& "&") (identifier "DAT_00073570")) (+ "+") (binary_expression "param_1 * 0x40" (identifier "param_1") (* "*") (number_literal "0x40"))) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0)" (( "(") (comma_expression "iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0" (assignment_expression "iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2)" (identifier "iVar1") (= "=") (call_expression "strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2)" (identifier "strcmp") (argument_list "(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2)" (( "(") (pointer_expression "*(char **)(&DAT_0007356c + param_1 * 0x40)" (* "*") (cast_expression "(char **)(&DAT_0007356c + param_1 * 0x40)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(&DAT_0007356c + param_1 * 0x40)" (( "(") (binary_expression "&DAT_0007356c + param_1 * 0x40" (pointer_expression "&DAT_0007356c" (& "&") (identifier "DAT_0007356c")) (+ "+") (binary_expression "param_1 * 0x40" (identifier "param_1") (* "*") (number_literal "0x40"))) () ")")))) (, ",") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) () ")")))) (, ",") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]);" (assignment_expression "iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10])" (identifier "iVar1") (= "=") (call_expression "bfd_get_section_by_name(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10])" (identifier "bfd_get_section_by_name") (argument_list "(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10])" (( "(") (identifier "param_2") (, ",") (subscript_expression "(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]" (parenthesized_expression "(&PTR_s__debug_abbrev_00073560)" (( "(") (pointer_expression "&PTR_s__debug_abbrev_00073560" (& "&") (identifier "PTR_s__debug_abbrev_00073560")) () ")")) ([ "[") (binary_expression "param_1 * 0x10" (identifier "param_1") (* "*") (number_literal "0x10")) (] "]")) () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n    iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]);\n    if (iVar1 == 0) {\n      return 0;\n    }\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10];\n  }\n  else {\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]);\n    if (iVar1 == 0) {\n      return 0;\n    }\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10];\n  }" ({ "{") (expression_statement "iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]);" (assignment_expression "iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10])" (identifier "iVar1") (= "=") (call_expression "bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10])" (identifier "bfd_get_section_by_name") (argument_list "(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10])" (( "(") (identifier "param_2") (, ",") (subscript_expression "(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]" (parenthesized_expression "(&PTR_s__zdebug_abbrev_00073564)" (( "(") (pointer_expression "&PTR_s__zdebug_abbrev_00073564" (& "&") (identifier "PTR_s__zdebug_abbrev_00073564")) () ")")) ([ "[") (binary_expression "param_1 * 0x10" (identifier "param_1") (* "*") (number_literal "0x10")) (] "]")) () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "(&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10];" (assignment_expression "(&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]" (subscript_expression "(&DAT_00073568)[param_1 * 0x10]" (parenthesized_expression "(&DAT_00073568)" (( "(") (pointer_expression "&DAT_00073568" (& "&") (identifier "DAT_00073568")) () ")")) ([ "[") (binary_expression "param_1 * 0x10" (identifier "param_1") (* "*") (number_literal "0x10")) (] "]")) (= "=") (subscript_expression "(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]" (parenthesized_expression "(&PTR_s__zdebug_abbrev_00073564)" (( "(") (pointer_expression "&PTR_s__zdebug_abbrev_00073564" (& "&") (identifier "PTR_s__zdebug_abbrev_00073564")) () ")")) ([ "[") (binary_expression "param_1 * 0x10" (identifier "param_1") (* "*") (number_literal "0x10")) (] "]"))) (; ";")) (} "}")) (else_clause "else {\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];\n  }" (else "else") (compound_statement "{\n    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];\n  }" ({ "{") (expression_statement "(&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];" (assignment_expression "(&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]" (subscript_expression "(&DAT_00073568)[param_1 * 0x10]" (parenthesized_expression "(&DAT_00073568)" (( "(") (pointer_expression "&DAT_00073568" (& "&") (identifier "DAT_00073568")) () ")")) ([ "[") (binary_expression "param_1 * 0x10" (identifier "param_1") (* "*") (number_literal "0x10")) (] "]")) (= "=") (subscript_expression "(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]" (parenthesized_expression "(&PTR_s__debug_abbrev_00073560)" (( "(") (pointer_expression "&PTR_s__debug_abbrev_00073560" (& "&") (identifier "PTR_s__debug_abbrev_00073560")) () ")")) ([ "[") (binary_expression "param_1 * 0x10" (identifier "param_1") (* "*") (number_literal "0x10")) (] "]"))) (; ";")) (} "}")))) (expression_statement "uVar2 = FUN_0001c340();" (assignment_expression "uVar2 = FUN_0001c340()" (identifier "uVar2") (= "=") (call_expression "FUN_0001c340()" (identifier "FUN_0001c340") (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

type_1 function_1(type_2 var_1,void *file)

{
  int var_3;
  type_3 *var_5;
  type_1 bVar2;
  
                    /* WARNING: Load size is inaccurate */
  if ((*(int *)(&DAT_00073570 + var_1 * 0x40) != 0) &&
     (var_3 = var_2(*(char **)(&DAT_0007356c + var_1 * 0x40),*file), var_3 == 0)) {
    return 1;
  }
  var_5 = (type_3 *)var_4(file,(&debug_displays)[var_1 * 0x10]);
  if (var_5 == (type_3 *)0x0) {
    var_5 = (type_3 *)var_4(file,(&PTR_s__zdebug_abbrev_00073564)[var_1 * 0x10]);
    if (var_5 == (type_3 *)0x0) {
      return 0;
    }
    (&DAT_00073568)[var_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[var_1 * 0x10];
  }
  else {
    (&DAT_00073568)[var_1 * 0x10] = (&debug_displays)[var_1 * 0x10];
  }
  bVar2 = var_6(var_1,var_5,file);
  return bVar2;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (identifier) right: (number_literal))) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (identifier) right: (number_literal))) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (return_statement (identifier)))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 MASKED(int param_1,undefined4 *param_2)

{
  int iVar1;
  undefined4 uVar2;
  
  if ((*(int *)(&DAT_00073570 + param_1 * 0x40) != 0) &&
     (iVar1 = strcmp(*(char **)(&DAT_0007356c + param_1 * 0x40),(char *)*param_2), iVar1 == 0)) {
    return 1;
  }
  iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__debug_abbrev_00073560)[param_1 * 0x10]);
  if (iVar1 == 0) {
    iVar1 = bfd_get_section_by_name(param_2,(&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10]);
    if (iVar1 == 0) {
      return 0;
    }
    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__zdebug_abbrev_00073564)[param_1 * 0x10];
  }
  else {
    (&DAT_00073568)[param_1 * 0x10] = (&PTR_s__debug_abbrev_00073560)[param_1 * 0x10];
  }
  uVar2 = FUN_0001c340();
  return uVar2;
}

