
lang_input_statement_type * lookup_name(char *name)

{
  int iVar1;
  bfd_boolean bVar2;
  lang_statement_union *entry;
  
  entry = input_file_chain.head;
  if (input_file_chain.head != (lang_statement_union *)0x0) {
    do {
      if ((entry->data_statement).exp != (etree_union *)0x0) {
        iVar1 = filename_cmp();
        if (iVar1 == 0) goto LAB_0011924f;
      }
      entry = (lang_statement_union *)(entry->wild_statement).children.tail;
    } while (entry != (lang_statement_union *)0x0);
  }
  entry = (lang_statement_union *)
          new_afile(name,lang_input_file_is_search_file_enum,default_target,0);
LAB_0011924f:
  if (((ulong)(entry->wild_statement).walk_wild_section_handler & 0x600) != 0x400) {
    return (lang_input_statement_type *)entry;
  }
  bVar2 = load_symbols(&entry->input_statement,(lang_statement_list_type *)0x0);
  if (bVar2 == 0) {
    entry = (lang_statement_union *)0x0;
  }
  return (lang_input_statement_type *)entry;
}



long FUN_00119200(undefined8 param_1)

{
  int iVar1;
  long lVar2;
  
  lVar2 = DAT_00182cc0;
  if (DAT_00182cc0 != 0) {
    do {
      if (*(long *)(lVar2 + 0x18) != 0) {
        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);
        if (iVar1 == 0) goto LAB_0011924f;
      }
      lVar2 = *(long *)(lVar2 + 0x38);
    } while (lVar2 != 0);
  }
  lVar2 = FUN_001158b0(param_1,4,DAT_00182f68,0);
LAB_0011924f:
  if ((*(byte *)(lVar2 + 0x49) & 6) != 4) {
    return lVar2;
  }
  iVar1 = FUN_00118cf0(lVar2,0);
  if (iVar1 == 0) {
    lVar2 = 0;
  }
  return lVar2;
}


PUSH RBP
MOV RBP,RDI
PUSH RBX
SUB RSP,0x8
MOV RBX,qword ptr [0x00182cc0]
TEST RBX,RBX
JZ 0x00119236
NOP dword ptr [RAX]
MOV RDI,qword ptr [RBX + 0x18]
TEST RDI,RDI
JZ 0x0011922d
MOV RSI,RBP
CALL 0x00109240
TEST EAX,EAX
JZ 0x0011924f
MOV RBX,qword ptr [RBX + 0x38]
TEST RBX,RBX
JNZ 0x00119218
MOV RDX,qword ptr [0x00182f68]
XOR ECX,ECX
MOV ESI,0x4
MOV RDI,RBP
CALL 0x001158b0
MOV RBX,RAX
MOVZX EAX,byte ptr [RBX + 0x49]
AND EAX,0x6
CMP AL,0x4
JZ 0x00119268
ADD RSP,0x8
MOV RAX,RBX
POP RBX
POP RBP
RET
XOR ESI,ESI
MOV RDI,RBX
CALL 0x00118cf0
TEST EAX,EAX
MOV EAX,0x0
CMOVZ RBX,RAX
ADD RSP,0x8
MOV RAX,RBX
POP RBX
POP RBP
RET
(translation_unit "long FUN_00119200(undefined8 param_1)\n\n{\n  int iVar1;\n  long lVar2;\n  \n  lVar2 = DAT_00182cc0;\n  if (DAT_00182cc0 != 0) {\n    do {\n      if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      lVar2 = *(long *)(lVar2 + 0x38);\n    } while (lVar2 != 0);\n  }\n  lVar2 = FUN_001158b0(param_1,4,DAT_00182f68,0);\nLAB_0011924f:\n  if ((*(byte *)(lVar2 + 0x49) & 6) != 4) {\n    return lVar2;\n  }\n  iVar1 = FUN_00118cf0(lVar2,0);\n  if (iVar1 == 0) {\n    lVar2 = 0;\n  }\n  return lVar2;\n}\n\n" (function_definition "long FUN_00119200(undefined8 param_1)\n\n{\n  int iVar1;\n  long lVar2;\n  \n  lVar2 = DAT_00182cc0;\n  if (DAT_00182cc0 != 0) {\n    do {\n      if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      lVar2 = *(long *)(lVar2 + 0x38);\n    } while (lVar2 != 0);\n  }\n  lVar2 = FUN_001158b0(param_1,4,DAT_00182f68,0);\nLAB_0011924f:\n  if ((*(byte *)(lVar2 + 0x49) & 6) != 4) {\n    return lVar2;\n  }\n  iVar1 = FUN_00118cf0(lVar2,0);\n  if (iVar1 == 0) {\n    lVar2 = 0;\n  }\n  return lVar2;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_00119200(undefined8 param_1)" identifier (parameter_list "(undefined8 param_1)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  \n  lVar2 = DAT_00182cc0;\n  if (DAT_00182cc0 != 0) {\n    do {\n      if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      lVar2 = *(long *)(lVar2 + 0x38);\n    } while (lVar2 != 0);\n  }\n  lVar2 = FUN_001158b0(param_1,4,DAT_00182f68,0);\nLAB_0011924f:\n  if ((*(byte *)(lVar2 + 0x49) & 6) != 4) {\n    return lVar2;\n  }\n  iVar1 = FUN_00118cf0(lVar2,0);\n  if (iVar1 == 0) {\n    lVar2 = 0;\n  }\n  return lVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar2 = DAT_00182cc0;" (assignment_expression "lVar2 = DAT_00182cc0" identifier = identifier) ;) (if_statement "if (DAT_00182cc0 != 0) {\n    do {\n      if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      lVar2 = *(long *)(lVar2 + 0x38);\n    } while (lVar2 != 0);\n  }" if (parenthesized_expression "(DAT_00182cc0 != 0)" ( (binary_expression "DAT_00182cc0 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      lVar2 = *(long *)(lVar2 + 0x38);\n    } while (lVar2 != 0);\n  }" { (do_statement "do {\n      if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      lVar2 = *(long *)(lVar2 + 0x38);\n    } while (lVar2 != 0);" do (compound_statement "{\n      if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      lVar2 = *(long *)(lVar2 + 0x38);\n    }" { (if_statement "if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }" if (parenthesized_expression "(*(long *)(lVar2 + 0x18) != 0)" ( (binary_expression "*(long *)(lVar2 + 0x18) != 0" (pointer_expression "*(long *)(lVar2 + 0x18)" * (cast_expression "(long *)(lVar2 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x18)" ( (binary_expression "lVar2 + 0x18" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }" { (expression_statement "iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);" (assignment_expression "iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1)" identifier = (call_expression "filename_cmp(*(long *)(lVar2 + 0x18),param_1)" identifier (argument_list "(*(long *)(lVar2 + 0x18),param_1)" ( (pointer_expression "*(long *)(lVar2 + 0x18)" * (cast_expression "(long *)(lVar2 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x18)" ( (binary_expression "lVar2 + 0x18" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar1 == 0) goto LAB_0011924f;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011924f;" goto statement_identifier ;)) })) (expression_statement "lVar2 = *(long *)(lVar2 + 0x38);" (assignment_expression "lVar2 = *(long *)(lVar2 + 0x38)" identifier = (pointer_expression "*(long *)(lVar2 + 0x38)" * (cast_expression "(long *)(lVar2 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x38)" ( (binary_expression "lVar2 + 0x38" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(lVar2 != 0)" ( (binary_expression "lVar2 != 0" identifier != number_literal) )) ;) })) (expression_statement "lVar2 = FUN_001158b0(param_1,4,DAT_00182f68,0);" (assignment_expression "lVar2 = FUN_001158b0(param_1,4,DAT_00182f68,0)" identifier = (call_expression "FUN_001158b0(param_1,4,DAT_00182f68,0)" identifier (argument_list "(param_1,4,DAT_00182f68,0)" ( identifier , number_literal , identifier , number_literal )))) ;) (labeled_statement "LAB_0011924f:\n  if ((*(byte *)(lVar2 + 0x49) & 6) != 4) {\n    return lVar2;\n  }" statement_identifier : (if_statement "if ((*(byte *)(lVar2 + 0x49) & 6) != 4) {\n    return lVar2;\n  }" if (parenthesized_expression "((*(byte *)(lVar2 + 0x49) & 6) != 4)" ( (binary_expression "(*(byte *)(lVar2 + 0x49) & 6) != 4" (parenthesized_expression "(*(byte *)(lVar2 + 0x49) & 6)" ( (binary_expression "*(byte *)(lVar2 + 0x49) & 6" (pointer_expression "*(byte *)(lVar2 + 0x49)" * (cast_expression "(byte *)(lVar2 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x49)" ( (binary_expression "lVar2 + 0x49" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    return lVar2;\n  }" { (return_statement "return lVar2;" return identifier ;) }))) (expression_statement "iVar1 = FUN_00118cf0(lVar2,0);" (assignment_expression "iVar1 = FUN_00118cf0(lVar2,0)" identifier = (call_expression "FUN_00118cf0(lVar2,0)" identifier (argument_list "(lVar2,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar1 == 0) {\n    lVar2 = 0;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    lVar2 = 0;\n  }" { (expression_statement "lVar2 = 0;" (assignment_expression "lVar2 = 0" identifier = number_literal) ;) })) (return_statement "return lVar2;" return identifier ;) })))
(translation_unit "lang_input_statement_type * lookup_name(char *name)\n\n{\n  int iVar1;\n  bfd_boolean bVar2;\n  lang_statement_union *entry;\n  \n  entry = input_file_chain.head;\n  if (input_file_chain.head != (lang_statement_union *)0x0) {\n    do {\n      if ((entry->data_statement).exp != (etree_union *)0x0) {\n        iVar1 = filename_cmp();\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      entry = (lang_statement_union *)(entry->wild_statement).children.tail;\n    } while (entry != (lang_statement_union *)0x0);\n  }\n  entry = (lang_statement_union *)\n          new_afile(name,lang_input_file_is_search_file_enum,default_target,0);\nLAB_0011924f:\n  if (((ulong)(entry->wild_statement).walk_wild_section_handler & 0x600) != 0x400) {\n    return (lang_input_statement_type *)entry;\n  }\n  bVar2 = load_symbols(&entry->input_statement,(lang_statement_list_type *)0x0);\n  if (bVar2 == 0) {\n    entry = (lang_statement_union *)0x0;\n  }\n  return (lang_input_statement_type *)entry;\n}\n\n" (function_definition "lang_input_statement_type * lookup_name(char *name)\n\n{\n  int iVar1;\n  bfd_boolean bVar2;\n  lang_statement_union *entry;\n  \n  entry = input_file_chain.head;\n  if (input_file_chain.head != (lang_statement_union *)0x0) {\n    do {\n      if ((entry->data_statement).exp != (etree_union *)0x0) {\n        iVar1 = filename_cmp();\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      entry = (lang_statement_union *)(entry->wild_statement).children.tail;\n    } while (entry != (lang_statement_union *)0x0);\n  }\n  entry = (lang_statement_union *)\n          new_afile(name,lang_input_file_is_search_file_enum,default_target,0);\nLAB_0011924f:\n  if (((ulong)(entry->wild_statement).walk_wild_section_handler & 0x600) != 0x400) {\n    return (lang_input_statement_type *)entry;\n  }\n  bVar2 = load_symbols(&entry->input_statement,(lang_statement_list_type *)0x0);\n  if (bVar2 == 0) {\n    entry = (lang_statement_union *)0x0;\n  }\n  return (lang_input_statement_type *)entry;\n}" type_identifier (pointer_declarator "* lookup_name(char *name)" * (function_declarator "lookup_name(char *name)" identifier (parameter_list "(char *name)" ( (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) )))) (compound_statement "{\n  int iVar1;\n  bfd_boolean bVar2;\n  lang_statement_union *entry;\n  \n  entry = input_file_chain.head;\n  if (input_file_chain.head != (lang_statement_union *)0x0) {\n    do {\n      if ((entry->data_statement).exp != (etree_union *)0x0) {\n        iVar1 = filename_cmp();\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      entry = (lang_statement_union *)(entry->wild_statement).children.tail;\n    } while (entry != (lang_statement_union *)0x0);\n  }\n  entry = (lang_statement_union *)\n          new_afile(name,lang_input_file_is_search_file_enum,default_target,0);\nLAB_0011924f:\n  if (((ulong)(entry->wild_statement).walk_wild_section_handler & 0x600) != 0x400) {\n    return (lang_input_statement_type *)entry;\n  }\n  bVar2 = load_symbols(&entry->input_statement,(lang_statement_list_type *)0x0);\n  if (bVar2 == 0) {\n    entry = (lang_statement_union *)0x0;\n  }\n  return (lang_input_statement_type *)entry;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "bfd_boolean bVar2;" type_identifier identifier ;) (declaration "lang_statement_union *entry;" type_identifier (pointer_declarator "*entry" * identifier) ;) (expression_statement "entry = input_file_chain.head;" (assignment_expression "entry = input_file_chain.head" identifier = (field_expression "input_file_chain.head" identifier . field_identifier)) ;) (if_statement "if (input_file_chain.head != (lang_statement_union *)0x0) {\n    do {\n      if ((entry->data_statement).exp != (etree_union *)0x0) {\n        iVar1 = filename_cmp();\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      entry = (lang_statement_union *)(entry->wild_statement).children.tail;\n    } while (entry != (lang_statement_union *)0x0);\n  }" if (parenthesized_expression "(input_file_chain.head != (lang_statement_union *)0x0)" ( (binary_expression "input_file_chain.head != (lang_statement_union *)0x0" (field_expression "input_file_chain.head" identifier . field_identifier) != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      if ((entry->data_statement).exp != (etree_union *)0x0) {\n        iVar1 = filename_cmp();\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      entry = (lang_statement_union *)(entry->wild_statement).children.tail;\n    } while (entry != (lang_statement_union *)0x0);\n  }" { (do_statement "do {\n      if ((entry->data_statement).exp != (etree_union *)0x0) {\n        iVar1 = filename_cmp();\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      entry = (lang_statement_union *)(entry->wild_statement).children.tail;\n    } while (entry != (lang_statement_union *)0x0);" do (compound_statement "{\n      if ((entry->data_statement).exp != (etree_union *)0x0) {\n        iVar1 = filename_cmp();\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      entry = (lang_statement_union *)(entry->wild_statement).children.tail;\n    }" { (if_statement "if ((entry->data_statement).exp != (etree_union *)0x0) {\n        iVar1 = filename_cmp();\n        if (iVar1 == 0) goto LAB_0011924f;\n      }" if (parenthesized_expression "((entry->data_statement).exp != (etree_union *)0x0)" ( (binary_expression "(entry->data_statement).exp != (etree_union *)0x0" (field_expression "(entry->data_statement).exp" (parenthesized_expression "(entry->data_statement)" ( (field_expression "entry->data_statement" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(etree_union *)0x0" ( (type_descriptor "etree_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar1 = filename_cmp();\n        if (iVar1 == 0) goto LAB_0011924f;\n      }" { (expression_statement "iVar1 = filename_cmp();" (assignment_expression "iVar1 = filename_cmp()" identifier = (call_expression "filename_cmp()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) goto LAB_0011924f;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011924f;" goto statement_identifier ;)) })) (expression_statement "entry = (lang_statement_union *)(entry->wild_statement).children.tail;" (assignment_expression "entry = (lang_statement_union *)(entry->wild_statement).children.tail" identifier = (cast_expression "(lang_statement_union *)(entry->wild_statement).children.tail" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(entry->wild_statement).children.tail" (field_expression "(entry->wild_statement).children" (parenthesized_expression "(entry->wild_statement)" ( (field_expression "entry->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) }) while (parenthesized_expression "(entry != (lang_statement_union *)0x0)" ( (binary_expression "entry != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "entry = (lang_statement_union *)\n          new_afile(name,lang_input_file_is_search_file_enum,default_target,0);" (assignment_expression "entry = (lang_statement_union *)\n          new_afile(name,lang_input_file_is_search_file_enum,default_target,0)" identifier = (cast_expression "(lang_statement_union *)\n          new_afile(name,lang_input_file_is_search_file_enum,default_target,0)" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "new_afile(name,lang_input_file_is_search_file_enum,default_target,0)" identifier (argument_list "(name,lang_input_file_is_search_file_enum,default_target,0)" ( identifier , identifier , identifier , number_literal ))))) ;) (labeled_statement "LAB_0011924f:\n  if (((ulong)(entry->wild_statement).walk_wild_section_handler & 0x600) != 0x400) {\n    return (lang_input_statement_type *)entry;\n  }" statement_identifier : (if_statement "if (((ulong)(entry->wild_statement).walk_wild_section_handler & 0x600) != 0x400) {\n    return (lang_input_statement_type *)entry;\n  }" if (parenthesized_expression "(((ulong)(entry->wild_statement).walk_wild_section_handler & 0x600) != 0x400)" ( (binary_expression "((ulong)(entry->wild_statement).walk_wild_section_handler & 0x600) != 0x400" (parenthesized_expression "((ulong)(entry->wild_statement).walk_wild_section_handler & 0x600)" ( (binary_expression "(ulong)(entry->wild_statement).walk_wild_section_handler & 0x600" (field_expression "(ulong)(entry->wild_statement).walk_wild_section_handler" (call_expression "(ulong)(entry->wild_statement)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(entry->wild_statement)" ( (field_expression "entry->wild_statement" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    return (lang_input_statement_type *)entry;\n  }" { (return_statement "return (lang_input_statement_type *)entry;" return (cast_expression "(lang_input_statement_type *)entry" ( (type_descriptor "lang_input_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ;) }))) (expression_statement "bVar2 = load_symbols(&entry->input_statement,(lang_statement_list_type *)0x0);" (assignment_expression "bVar2 = load_symbols(&entry->input_statement,(lang_statement_list_type *)0x0)" identifier = (call_expression "load_symbols(&entry->input_statement,(lang_statement_list_type *)0x0)" identifier (argument_list "(&entry->input_statement,(lang_statement_list_type *)0x0)" ( (pointer_expression "&entry->input_statement" & (field_expression "entry->input_statement" identifier -> field_identifier)) , (cast_expression "(lang_statement_list_type *)0x0" ( (type_descriptor "lang_statement_list_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar2 == 0) {\n    entry = (lang_statement_union *)0x0;\n  }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    entry = (lang_statement_union *)0x0;\n  }" { (expression_statement "entry = (lang_statement_union *)0x0;" (assignment_expression "entry = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (return_statement "return (lang_input_statement_type *)entry;" return (cast_expression "(lang_input_statement_type *)entry" ( (type_descriptor "lang_input_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ;) })))
(translation_unit "long FUN_00119200(undefined8 param_1)\n\n{\n  int iVar1;\n  long lVar2;\n  \n  lVar2 = DAT_00182cc0;\n  if (DAT_00182cc0 != 0) {\n    do {\n      if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      lVar2 = *(long *)(lVar2 + 0x38);\n    } while (lVar2 != 0);\n  }\n  lVar2 = FUN_001158b0(param_1,4,DAT_00182f68,0);\nLAB_0011924f:\n  if ((*(byte *)(lVar2 + 0x49) & 6) != 4) {\n    return lVar2;\n  }\n  iVar1 = FUN_00118cf0(lVar2,0);\n  if (iVar1 == 0) {\n    lVar2 = 0;\n  }\n  return lVar2;\n}\n\n" (function_definition "long FUN_00119200(undefined8 param_1)\n\n{\n  int iVar1;\n  long lVar2;\n  \n  lVar2 = DAT_00182cc0;\n  if (DAT_00182cc0 != 0) {\n    do {\n      if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      lVar2 = *(long *)(lVar2 + 0x38);\n    } while (lVar2 != 0);\n  }\n  lVar2 = FUN_001158b0(param_1,4,DAT_00182f68,0);\nLAB_0011924f:\n  if ((*(byte *)(lVar2 + 0x49) & 6) != 4) {\n    return lVar2;\n  }\n  iVar1 = FUN_00118cf0(lVar2,0);\n  if (iVar1 == 0) {\n    lVar2 = 0;\n  }\n  return lVar2;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_00119200(undefined8 param_1)" identifier (parameter_list "(undefined8 param_1)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  \n  lVar2 = DAT_00182cc0;\n  if (DAT_00182cc0 != 0) {\n    do {\n      if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      lVar2 = *(long *)(lVar2 + 0x38);\n    } while (lVar2 != 0);\n  }\n  lVar2 = FUN_001158b0(param_1,4,DAT_00182f68,0);\nLAB_0011924f:\n  if ((*(byte *)(lVar2 + 0x49) & 6) != 4) {\n    return lVar2;\n  }\n  iVar1 = FUN_00118cf0(lVar2,0);\n  if (iVar1 == 0) {\n    lVar2 = 0;\n  }\n  return lVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar2 = DAT_00182cc0;" (assignment_expression "lVar2 = DAT_00182cc0" identifier = identifier) ;) (if_statement "if (DAT_00182cc0 != 0) {\n    do {\n      if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      lVar2 = *(long *)(lVar2 + 0x38);\n    } while (lVar2 != 0);\n  }" if (parenthesized_expression "(DAT_00182cc0 != 0)" ( (binary_expression "DAT_00182cc0 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      lVar2 = *(long *)(lVar2 + 0x38);\n    } while (lVar2 != 0);\n  }" { (do_statement "do {\n      if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      lVar2 = *(long *)(lVar2 + 0x38);\n    } while (lVar2 != 0);" do (compound_statement "{\n      if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      lVar2 = *(long *)(lVar2 + 0x38);\n    }" { (if_statement "if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }" if (parenthesized_expression "(*(long *)(lVar2 + 0x18) != 0)" ( (binary_expression "*(long *)(lVar2 + 0x18) != 0" (pointer_expression "*(long *)(lVar2 + 0x18)" * (cast_expression "(long *)(lVar2 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x18)" ( (binary_expression "lVar2 + 0x18" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }" { (expression_statement "iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);" (assignment_expression "iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1)" identifier = (call_expression "filename_cmp(*(long *)(lVar2 + 0x18),param_1)" identifier (argument_list "(*(long *)(lVar2 + 0x18),param_1)" ( (pointer_expression "*(long *)(lVar2 + 0x18)" * (cast_expression "(long *)(lVar2 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x18)" ( (binary_expression "lVar2 + 0x18" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar1 == 0) goto LAB_0011924f;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011924f;" goto statement_identifier ;)) })) (expression_statement "lVar2 = *(long *)(lVar2 + 0x38);" (assignment_expression "lVar2 = *(long *)(lVar2 + 0x38)" identifier = (pointer_expression "*(long *)(lVar2 + 0x38)" * (cast_expression "(long *)(lVar2 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x38)" ( (binary_expression "lVar2 + 0x38" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(lVar2 != 0)" ( (binary_expression "lVar2 != 0" identifier != number_literal) )) ;) })) (expression_statement "lVar2 = FUN_001158b0(param_1,4,DAT_00182f68,0);" (assignment_expression "lVar2 = FUN_001158b0(param_1,4,DAT_00182f68,0)" identifier = (call_expression "FUN_001158b0(param_1,4,DAT_00182f68,0)" identifier (argument_list "(param_1,4,DAT_00182f68,0)" ( identifier , number_literal , identifier , number_literal )))) ;) (labeled_statement "LAB_0011924f:\n  if ((*(byte *)(lVar2 + 0x49) & 6) != 4) {\n    return lVar2;\n  }" statement_identifier : (if_statement "if ((*(byte *)(lVar2 + 0x49) & 6) != 4) {\n    return lVar2;\n  }" if (parenthesized_expression "((*(byte *)(lVar2 + 0x49) & 6) != 4)" ( (binary_expression "(*(byte *)(lVar2 + 0x49) & 6) != 4" (parenthesized_expression "(*(byte *)(lVar2 + 0x49) & 6)" ( (binary_expression "*(byte *)(lVar2 + 0x49) & 6" (pointer_expression "*(byte *)(lVar2 + 0x49)" * (cast_expression "(byte *)(lVar2 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x49)" ( (binary_expression "lVar2 + 0x49" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    return lVar2;\n  }" { (return_statement "return lVar2;" return identifier ;) }))) (expression_statement "iVar1 = FUN_00118cf0(lVar2,0);" (assignment_expression "iVar1 = FUN_00118cf0(lVar2,0)" identifier = (call_expression "FUN_00118cf0(lVar2,0)" identifier (argument_list "(lVar2,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar1 == 0) {\n    lVar2 = 0;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    lVar2 = 0;\n  }" { (expression_statement "lVar2 = 0;" (assignment_expression "lVar2 = 0" identifier = number_literal) ;) })) (return_statement "return lVar2;" return identifier ;) })))
(translation_unit (function_definition (sized_type_specifier long) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , LIT )))) ;) (labeled_statement statement_identifier : (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 IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (return_statement return IDENT ;) })))
(function_definition "long FUN_00119200(undefined8 param_1)\n\n{\n  int iVar1;\n  long lVar2;\n  \n  lVar2 = DAT_00182cc0;\n  if (DAT_00182cc0 != 0) {\n    do {\n      if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      lVar2 = *(long *)(lVar2 + 0x38);\n    } while (lVar2 != 0);\n  }\n  lVar2 = FUN_001158b0(param_1,4,DAT_00182f68,0);\nLAB_0011924f:\n  if ((*(byte *)(lVar2 + 0x49) & 6) != 4) {\n    return lVar2;\n  }\n  iVar1 = FUN_00118cf0(lVar2,0);\n  if (iVar1 == 0) {\n    lVar2 = 0;\n  }\n  return lVar2;\n}" (sized_type_specifier "long" (long "long")) (function_declarator "FUN_00119200(undefined8 param_1)" (identifier "FUN_00119200") (parameter_list "(undefined8 param_1)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  \n  lVar2 = DAT_00182cc0;\n  if (DAT_00182cc0 != 0) {\n    do {\n      if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      lVar2 = *(long *)(lVar2 + 0x38);\n    } while (lVar2 != 0);\n  }\n  lVar2 = FUN_001158b0(param_1,4,DAT_00182f68,0);\nLAB_0011924f:\n  if ((*(byte *)(lVar2 + 0x49) & 6) != 4) {\n    return lVar2;\n  }\n  iVar1 = FUN_00118cf0(lVar2,0);\n  if (iVar1 == 0) {\n    lVar2 = 0;\n  }\n  return lVar2;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (expression_statement "lVar2 = DAT_00182cc0;" (assignment_expression "lVar2 = DAT_00182cc0" (identifier "lVar2") (= "=") (identifier "DAT_00182cc0")) (; ";")) (if_statement "if (DAT_00182cc0 != 0) {\n    do {\n      if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      lVar2 = *(long *)(lVar2 + 0x38);\n    } while (lVar2 != 0);\n  }" (if "if") (parenthesized_expression "(DAT_00182cc0 != 0)" (( "(") (binary_expression "DAT_00182cc0 != 0" (identifier "DAT_00182cc0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      lVar2 = *(long *)(lVar2 + 0x38);\n    } while (lVar2 != 0);\n  }" ({ "{") (do_statement "do {\n      if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      lVar2 = *(long *)(lVar2 + 0x38);\n    } while (lVar2 != 0);" (do "do") (compound_statement "{\n      if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }\n      lVar2 = *(long *)(lVar2 + 0x38);\n    }" ({ "{") (if_statement "if (*(long *)(lVar2 + 0x18) != 0) {\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }" (if "if") (parenthesized_expression "(*(long *)(lVar2 + 0x18) != 0)" (( "(") (binary_expression "*(long *)(lVar2 + 0x18) != 0" (pointer_expression "*(long *)(lVar2 + 0x18)" (* "*") (cast_expression "(long *)(lVar2 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x18)" (( "(") (binary_expression "lVar2 + 0x18" (identifier "lVar2") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);\n        if (iVar1 == 0) goto LAB_0011924f;\n      }" ({ "{") (expression_statement "iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);" (assignment_expression "iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1)" (identifier "iVar1") (= "=") (call_expression "filename_cmp(*(long *)(lVar2 + 0x18),param_1)" (identifier "filename_cmp") (argument_list "(*(long *)(lVar2 + 0x18),param_1)" (( "(") (pointer_expression "*(long *)(lVar2 + 0x18)" (* "*") (cast_expression "(long *)(lVar2 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x18)" (( "(") (binary_expression "lVar2 + 0x18" (identifier "lVar2") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) goto LAB_0011924f;" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0011924f;" (goto "goto") (statement_identifier "LAB_0011924f") (; ";"))) (} "}"))) (expression_statement "lVar2 = *(long *)(lVar2 + 0x38);" (assignment_expression "lVar2 = *(long *)(lVar2 + 0x38)" (identifier "lVar2") (= "=") (pointer_expression "*(long *)(lVar2 + 0x38)" (* "*") (cast_expression "(long *)(lVar2 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x38)" (( "(") (binary_expression "lVar2 + 0x38" (identifier "lVar2") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar2 != 0)" (( "(") (binary_expression "lVar2 != 0" (identifier "lVar2") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "lVar2 = FUN_001158b0(param_1,4,DAT_00182f68,0);" (assignment_expression "lVar2 = FUN_001158b0(param_1,4,DAT_00182f68,0)" (identifier "lVar2") (= "=") (call_expression "FUN_001158b0(param_1,4,DAT_00182f68,0)" (identifier "FUN_001158b0") (argument_list "(param_1,4,DAT_00182f68,0)" (( "(") (identifier "param_1") (, ",") (number_literal "4") (, ",") (identifier "DAT_00182f68") (, ",") (number_literal "0") () ")")))) (; ";")) (labeled_statement "LAB_0011924f:\n  if ((*(byte *)(lVar2 + 0x49) & 6) != 4) {\n    return lVar2;\n  }" (statement_identifier "LAB_0011924f") (: ":") (if_statement "if ((*(byte *)(lVar2 + 0x49) & 6) != 4) {\n    return lVar2;\n  }" (if "if") (parenthesized_expression "((*(byte *)(lVar2 + 0x49) & 6) != 4)" (( "(") (binary_expression "(*(byte *)(lVar2 + 0x49) & 6) != 4" (parenthesized_expression "(*(byte *)(lVar2 + 0x49) & 6)" (( "(") (binary_expression "*(byte *)(lVar2 + 0x49) & 6" (pointer_expression "*(byte *)(lVar2 + 0x49)" (* "*") (cast_expression "(byte *)(lVar2 + 0x49)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x49)" (( "(") (binary_expression "lVar2 + 0x49" (identifier "lVar2") (+ "+") (number_literal "0x49")) () ")")))) (& "&") (number_literal "6")) () ")")) (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n    return lVar2;\n  }" ({ "{") (return_statement "return lVar2;" (return "return") (identifier "lVar2") (; ";")) (} "}")))) (expression_statement "iVar1 = FUN_00118cf0(lVar2,0);" (assignment_expression "iVar1 = FUN_00118cf0(lVar2,0)" (identifier "iVar1") (= "=") (call_expression "FUN_00118cf0(lVar2,0)" (identifier "FUN_00118cf0") (argument_list "(lVar2,0)" (( "(") (identifier "lVar2") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n    lVar2 = 0;\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    lVar2 = 0;\n  }" ({ "{") (expression_statement "lVar2 = 0;" (assignment_expression "lVar2 = 0" (identifier "lVar2") (= "=") (number_literal "0")) (; ";")) (} "}"))) (return_statement "return lVar2;" (return "return") (identifier "lVar2") (; ";")) (} "}")))

type_1 * function_1(char *name)

{
  int var_2;
  type_2 var_6;
  type_3 *var_3;
  
  var_3 = input_file_chain.head;
  if (input_file_chain.head != (type_3 *)0x0) {
    do {
      if ((var_3->data_statement).exp != (type_4 *)0x0) {
        var_2 = var_1();
        if (var_2 == 0) goto LAB_0011924f;
      }
      var_3 = (type_3 *)(var_3->wild_statement).children.tail;
    } while (var_3 != (type_3 *)0x0);
  }
  var_3 = (type_3 *)
          var_4(name,lang_input_file_is_search_file_enum,default_target,0);
LAB_0011924f:
  if (((ulong)(var_3->wild_statement).walk_wild_section_handler & 0x600) != 0x400) {
    return (type_1 *)var_3;
  }
  var_6 = var_5(&var_3->input_statement,(type_5 *)0x0);
  if (var_6 == 0) {
    var_3 = (type_3 *)0x0;
  }
  return (type_1 *)var_3;
}


(translation_unit (function_definition type: (sized_type_specifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier) (number_literal))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (return_statement (identifier)))))

long MASKED(undefined8 param_1)

{
  int iVar1;
  long lVar2;
  
  lVar2 = DAT_00182cc0;
  if (DAT_00182cc0 != 0) {
    do {
      if (*(long *)(lVar2 + 0x18) != 0) {
        iVar1 = filename_cmp(*(long *)(lVar2 + 0x18),param_1);
        if (iVar1 == 0) goto LAB_0011924f;
      }
      lVar2 = *(long *)(lVar2 + 0x38);
    } while (lVar2 != 0);
  }
  lVar2 = FUN_001158b0(param_1,4,DAT_00182f68,0);
LAB_0011924f:
  if ((*(byte *)(lVar2 + 0x49) & 6) != 4) {
    return lVar2;
  }
  iVar1 = FUN_00118cf0(lVar2,0);
  if (iVar1 == 0) {
    lVar2 = 0;
  }
  return lVar2;
}

