
void walk_wild_section_specs4_wild2
               (lang_wild_statement_type *ptr,lang_input_statement_type *file,callback_t callback,
               void *data)

{
  wildcard_list *sec;
  wildcard_list *sec_00;
  wildcard_list *sec_01;
  wildcard_list *sec_02;
  asection *s;
  asection *s_00;
  asection *s_01;
  bfd_boolean bVar1;
  char *name;
  section_iterator_callback_data cb_data;
  
  sec = ptr->handler_data[0];
  sec_00 = ptr->handler_data[2];
  sec_01 = ptr->handler_data[1];
  sec_02 = ptr->handler_data[3];
  cb_data.found_section = (asection *)0x0;
  cb_data.multiple_sections_found = 0;
  bfd_get_section_by_name_if(file->the_bfd,(sec->spec).name,section_iterator_callback,&cb_data);
  s_00 = cb_data.found_section;
  if (cb_data.multiple_sections_found == 0) {
    cb_data.found_section = (asection *)0x0;
    bfd_get_section_by_name_if(file->the_bfd,(sec_01->spec).name,section_iterator_callback,&cb_data)
    ;
    s_01 = cb_data.found_section;
    if (cb_data.multiple_sections_found == 0) {
      cb_data.multiple_sections_found = 0;
      for (s = file->the_bfd->sections; s != (asection *)0x0; s = s->next) {
        if (s_00 == s) {
          walk_wild_consider_section(ptr,file,s_00,sec,callback,data);
        }
        else if (s_01 == s) {
          walk_wild_consider_section(ptr,file,s_01,sec_01,callback,data);
        }
        else {
          name = s->name;
          bVar1 = match_simple_wild((sec_00->spec).name,name);
          if (bVar1 == 0) {
            bVar1 = match_simple_wild((sec_02->spec).name,name);
            if (bVar1 != 0) {
              walk_wild_consider_section(ptr,file,s,sec_02,callback,data);
            }
          }
          else {
            walk_wild_consider_section(ptr,file,s,sec_00,callback,data);
          }
        }
      }
      return;
    }
  }
  walk_wild_section_general(ptr,file,callback,data);
  return;
}



void FUN_00114bd0(long param_1,long param_2,undefined8 param_3,undefined8 param_4)

{
  long lVar1;
  long lVar2;
  long lVar3;
  long lVar4;
  undefined8 *puVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  int iVar8;
  undefined8 *local_48;
  int local_40;
  
  lVar1 = *(long *)(param_1 + 0x50);
  lVar2 = *(long *)(param_1 + 0x60);
  lVar3 = *(long *)(param_1 + 0x58);
  lVar4 = *(long *)(param_1 + 0x68);
  local_48 = (undefined8 *)0x0;
  local_40 = 0;
  bfd_get_section_by_name_if
            (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar1 + 8),FUN_00112220,&local_48);
  puVar6 = local_48;
  if (local_40 == 0) {
    local_48 = (undefined8 *)0x0;
    bfd_get_section_by_name_if
              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48);
    puVar7 = local_48;
    if (local_40 == 0) {
      local_40 = 0;
      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;
          puVar5 = (undefined8 *)puVar5[2]) {
        if (puVar6 == puVar5) {
          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);
        }
        else if (puVar7 == puVar5) {
          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);
        }
        else {
          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);
          if (iVar8 == 0) {
            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));
            if (iVar8 != 0) {
              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);
            }
          }
          else {
            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);
          }
        }
      }
      return;
    }
  }
  FUN_00114b10(param_1,param_2,param_3,param_4);
  return;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
MOV RBP,RSI
PUSH RBX
MOV RBX,RDI
SUB RSP,0x48
MOV RAX,qword ptr [RDI + 0x50]
MOV R15,qword ptr [RDI + 0x60]
MOV qword ptr [RSP + 0x8],RDX
MOV RDX,qword ptr [RDI + 0x58]
LEA R13,[RSP + 0x30]
MOV qword ptr [RSP + 0x10],RCX
MOV RCX,qword ptr [RDI + 0x68]
MOV RDI,qword ptr [RSI + 0x20]
MOV RSI,qword ptr [RAX + 0x8]
MOV qword ptr [RSP + 0x18],RDX
LEA RDX,[0x112220]
MOV qword ptr [RSP + 0x20],RCX
MOV RCX,R13
MOV qword ptr [RSP + 0x28],RAX
MOV qword ptr [RSP + 0x30],0x0
MOV dword ptr [RSP + 0x38],0x0
CALL 0x00109070
MOV EDX,dword ptr [RSP + 0x38]
MOV R12,qword ptr [RSP + 0x30]
TEST EDX,EDX
JNZ 0x00114d68
MOV RAX,qword ptr [RSP + 0x18]
MOV RDI,qword ptr [RBP + 0x20]
MOV RCX,R13
LEA RDX,[0x112220]
MOV RSI,qword ptr [RAX + 0x8]
MOV qword ptr [RSP + 0x30],0x0
CALL 0x00109070
MOV EAX,dword ptr [RSP + 0x38]
MOV R13,qword ptr [RSP + 0x30]
TEST EAX,EAX
JNZ 0x00114d68
MOV RAX,qword ptr [RBP + 0x20]
MOV R14,qword ptr [RAX + 0x90]
TEST R14,R14
JNZ 0x00114cc4
ADD RSP,0x48
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV R9,qword ptr [RSP + 0x10]
MOV R8,qword ptr [RSP + 0x8]
MOV RCX,R15
MOV RDX,R14
MOV RSI,RBP
MOV RDI,RBX
CALL 0x00114a20
MOV R14,qword ptr [R14 + 0x10]
TEST R14,R14
JZ 0x00114c91
CMP R12,R14
JZ 0x00114d40
CMP R13,R14
JZ 0x00114d18
MOV R8,qword ptr [R14]
MOV RDI,qword ptr [R15 + 0x8]
MOV RSI,R8
CALL 0x00113260
TEST EAX,EAX
JNZ 0x00114ca0
MOV RAX,qword ptr [RSP + 0x20]
MOV RDI,qword ptr [RAX + 0x8]
CALL 0x00113260
TEST EAX,EAX
JZ 0x00114cbb
MOV R9,qword ptr [RSP + 0x10]
MOV R8,qword ptr [RSP + 0x8]
MOV RDX,R14
MOV RSI,RBP
MOV RCX,qword ptr [RSP + 0x20]
MOV RDI,RBX
CALL 0x00114a20
JMP 0x00114cbb
MOV R9,qword ptr [RSP + 0x10]
MOV R8,qword ptr [RSP + 0x8]
MOV RDX,R13
MOV RSI,RBP
MOV RCX,qword ptr [RSP + 0x18]
MOV RDI,RBX
CALL 0x00114a20
JMP 0x00114cbb
MOV R9,qword ptr [RSP + 0x10]
MOV R8,qword ptr [RSP + 0x8]
MOV RDX,R12
MOV RSI,RBP
MOV RCX,qword ptr [RSP + 0x28]
MOV RDI,RBX
CALL 0x00114a20
JMP 0x00114cbb
MOV RCX,qword ptr [RSP + 0x10]
MOV RDX,qword ptr [RSP + 0x8]
MOV RSI,RBP
MOV RDI,RBX
CALL 0x00114b10
ADD RSP,0x48
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
(translation_unit "void FUN_00114bd0(long param_1,long param_2,undefined8 param_3,undefined8 param_4)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  undefined8 *local_48;\n  int local_40;\n  \n  lVar1 = *(long *)(param_1 + 0x50);\n  lVar2 = *(long *)(param_1 + 0x60);\n  lVar3 = *(long *)(param_1 + 0x58);\n  lVar4 = *(long *)(param_1 + 0x68);\n  local_48 = (undefined8 *)0x0;\n  local_40 = 0;\n  bfd_get_section_by_name_if\n            (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar1 + 8),FUN_00112220,&local_48);\n  puVar6 = local_48;\n  if (local_40 == 0) {\n    local_48 = (undefined8 *)0x0;\n    bfd_get_section_by_name_if\n              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48);\n    puVar7 = local_48;\n    if (local_40 == 0) {\n      local_40 = 0;\n      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }\n      return;\n    }\n  }\n  FUN_00114b10(param_1,param_2,param_3,param_4);\n  return;\n}\n\n" (function_definition "void FUN_00114bd0(long param_1,long param_2,undefined8 param_3,undefined8 param_4)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  undefined8 *local_48;\n  int local_40;\n  \n  lVar1 = *(long *)(param_1 + 0x50);\n  lVar2 = *(long *)(param_1 + 0x60);\n  lVar3 = *(long *)(param_1 + 0x58);\n  lVar4 = *(long *)(param_1 + 0x68);\n  local_48 = (undefined8 *)0x0;\n  local_40 = 0;\n  bfd_get_section_by_name_if\n            (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar1 + 8),FUN_00112220,&local_48);\n  puVar6 = local_48;\n  if (local_40 == 0) {\n    local_48 = (undefined8 *)0x0;\n    bfd_get_section_by_name_if\n              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48);\n    puVar7 = local_48;\n    if (local_40 == 0) {\n      local_40 = 0;\n      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }\n      return;\n    }\n  }\n  FUN_00114b10(param_1,param_2,param_3,param_4);\n  return;\n}" primitive_type (function_declarator "FUN_00114bd0(long param_1,long param_2,undefined8 param_3,undefined8 param_4)" identifier (parameter_list "(long param_1,long param_2,undefined8 param_3,undefined8 param_4)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) ))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  undefined8 *local_48;\n  int local_40;\n  \n  lVar1 = *(long *)(param_1 + 0x50);\n  lVar2 = *(long *)(param_1 + 0x60);\n  lVar3 = *(long *)(param_1 + 0x58);\n  lVar4 = *(long *)(param_1 + 0x68);\n  local_48 = (undefined8 *)0x0;\n  local_40 = 0;\n  bfd_get_section_by_name_if\n            (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar1 + 8),FUN_00112220,&local_48);\n  puVar6 = local_48;\n  if (local_40 == 0) {\n    local_48 = (undefined8 *)0x0;\n    bfd_get_section_by_name_if\n              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48);\n    puVar7 = local_48;\n    if (local_40 == 0) {\n      local_40 = 0;\n      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }\n      return;\n    }\n  }\n  FUN_00114b10(param_1,param_2,param_3,param_4);\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined8 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined8 *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "int local_40;" primitive_type identifier ;) (expression_statement "lVar1 = *(long *)(param_1 + 0x50);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x50)" identifier = (pointer_expression "*(long *)(param_1 + 0x50)" * (cast_expression "(long *)(param_1 + 0x50)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "lVar2 = *(long *)(param_1 + 0x60);" (assignment_expression "lVar2 = *(long *)(param_1 + 0x60)" identifier = (pointer_expression "*(long *)(param_1 + 0x60)" * (cast_expression "(long *)(param_1 + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x58);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x58)" identifier = (pointer_expression "*(long *)(param_1 + 0x58)" * (cast_expression "(long *)(param_1 + 0x58)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "lVar4 = *(long *)(param_1 + 0x68);" (assignment_expression "lVar4 = *(long *)(param_1 + 0x68)" identifier = (pointer_expression "*(long *)(param_1 + 0x68)" * (cast_expression "(long *)(param_1 + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "local_48 = (undefined8 *)0x0;" (assignment_expression "local_48 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "bfd_get_section_by_name_if\n            (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar1 + 8),FUN_00112220,&local_48);" (call_expression "bfd_get_section_by_name_if\n            (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar1 + 8),FUN_00112220,&local_48)" identifier (argument_list "(*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar1 + 8),FUN_00112220,&local_48)" ( (pointer_expression "*(undefined8 *)(param_2 + 0x20)" * (cast_expression "(undefined8 *)(param_2 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(lVar1 + 8)" * (cast_expression "(undefined8 *)(lVar1 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 8)" ( (binary_expression "lVar1 + 8" identifier + number_literal) )))) , identifier , (pointer_expression "&local_48" & identifier) ))) ;) (expression_statement "puVar6 = local_48;" (assignment_expression "puVar6 = local_48" identifier = identifier) ;) (if_statement "if (local_40 == 0) {\n    local_48 = (undefined8 *)0x0;\n    bfd_get_section_by_name_if\n              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48);\n    puVar7 = local_48;\n    if (local_40 == 0) {\n      local_40 = 0;\n      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }\n      return;\n    }\n  }" if (parenthesized_expression "(local_40 == 0)" ( (binary_expression "local_40 == 0" identifier == number_literal) )) (compound_statement "{\n    local_48 = (undefined8 *)0x0;\n    bfd_get_section_by_name_if\n              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48);\n    puVar7 = local_48;\n    if (local_40 == 0) {\n      local_40 = 0;\n      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }\n      return;\n    }\n  }" { (expression_statement "local_48 = (undefined8 *)0x0;" (assignment_expression "local_48 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bfd_get_section_by_name_if\n              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48);" (call_expression "bfd_get_section_by_name_if\n              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48)" identifier (argument_list "(*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48)" ( (pointer_expression "*(undefined8 *)(param_2 + 0x20)" * (cast_expression "(undefined8 *)(param_2 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(lVar3 + 8)" * (cast_expression "(undefined8 *)(lVar3 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) )))) , identifier , (pointer_expression "&local_48" & identifier) ))) ;) (expression_statement "puVar7 = local_48;" (assignment_expression "puVar7 = local_48" identifier = identifier) ;) (if_statement "if (local_40 == 0) {\n      local_40 = 0;\n      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }\n      return;\n    }" if (parenthesized_expression "(local_40 == 0)" ( (binary_expression "local_40 == 0" identifier == number_literal) )) (compound_statement "{\n      local_40 = 0;\n      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }\n      return;\n    }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (for_statement "for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }" for ( (assignment_expression "puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90)" identifier = (pointer_expression "*(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90)" * (cast_expression "(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_2 + 0x20) + 0x90)" ( (binary_expression "*(long *)(param_2 + 0x20) + 0x90" (pointer_expression "*(long *)(param_2 + 0x20)" * (cast_expression "(long *)(param_2 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) + number_literal) ))))) ; (binary_expression "puVar5 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar5 = (undefined8 *)puVar5[2]" identifier = (cast_expression "(undefined8 *)puVar5[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[2]" identifier [ number_literal ]))) ) (compound_statement "{\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }" { (if_statement "if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }" if (parenthesized_expression "(puVar6 == puVar5)" ( (binary_expression "puVar6 == puVar5" identifier == identifier) )) (compound_statement "{\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }" { (expression_statement "FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);" (call_expression "FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4)" identifier (argument_list "(param_1,param_2,puVar6,lVar1,param_3,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }" else (if_statement "if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }" if (parenthesized_expression "(puVar7 == puVar5)" ( (binary_expression "puVar7 == puVar5" identifier == identifier) )) (compound_statement "{\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }" { (expression_statement "FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);" (call_expression "FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4)" identifier (argument_list "(param_1,param_2,puVar7,lVar3,param_3,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }" else (compound_statement "{\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }" { (expression_statement "iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);" (assignment_expression "iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5)" identifier = (call_expression "FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5)" identifier (argument_list "(*(undefined8 *)(lVar2 + 8),*puVar5)" ( (pointer_expression "*(undefined8 *)(lVar2 + 8)" * (cast_expression "(undefined8 *)(lVar2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 8)" ( (binary_expression "lVar2 + 8" identifier + number_literal) )))) , (pointer_expression "*puVar5" * identifier) )))) ;) (if_statement "if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }" { (expression_statement "iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));" (assignment_expression "iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8))" identifier = (call_expression "FUN_00113260(*(undefined8 *)(lVar4 + 8))" identifier (argument_list "(*(undefined8 *)(lVar4 + 8))" ( (pointer_expression "*(undefined8 *)(lVar4 + 8)" * (cast_expression "(undefined8 *)(lVar4 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 8)" ( (binary_expression "lVar4 + 8" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }" { (expression_statement "FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);" (call_expression "FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4)" identifier (argument_list "(param_1,param_2,puVar5,lVar4,param_3,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }" else (compound_statement "{\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }" { (expression_statement "FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);" (call_expression "FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4)" identifier (argument_list "(param_1,param_2,puVar5,lVar2,param_3,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) }))) }))))) })) (return_statement "return;" return ;) })) })) (expression_statement "FUN_00114b10(param_1,param_2,param_3,param_4);" (call_expression "FUN_00114b10(param_1,param_2,param_3,param_4)" identifier (argument_list "(param_1,param_2,param_3,param_4)" ( identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void walk_wild_section_specs4_wild2\n               (lang_wild_statement_type *ptr,lang_input_statement_type *file,callback_t callback,\n               void *data)\n\n{\n  wildcard_list *sec;\n  wildcard_list *sec_00;\n  wildcard_list *sec_01;\n  wildcard_list *sec_02;\n  asection *s;\n  asection *s_00;\n  asection *s_01;\n  bfd_boolean bVar1;\n  char *name;\n  section_iterator_callback_data cb_data;\n  \n  sec = ptr->handler_data[0];\n  sec_00 = ptr->handler_data[2];\n  sec_01 = ptr->handler_data[1];\n  sec_02 = ptr->handler_data[3];\n  cb_data.found_section = (asection *)0x0;\n  cb_data.multiple_sections_found = 0;\n  bfd_get_section_by_name_if(file->the_bfd,(sec->spec).name,section_iterator_callback,&cb_data);\n  s_00 = cb_data.found_section;\n  if (cb_data.multiple_sections_found == 0) {\n    cb_data.found_section = (asection *)0x0;\n    bfd_get_section_by_name_if(file->the_bfd,(sec_01->spec).name,section_iterator_callback,&cb_data)\n    ;\n    s_01 = cb_data.found_section;\n    if (cb_data.multiple_sections_found == 0) {\n      cb_data.multiple_sections_found = 0;\n      for (s = file->the_bfd->sections; s != (asection *)0x0; s = s->next) {\n        if (s_00 == s) {\n          walk_wild_consider_section(ptr,file,s_00,sec,callback,data);\n        }\n        else if (s_01 == s) {\n          walk_wild_consider_section(ptr,file,s_01,sec_01,callback,data);\n        }\n        else {\n          name = s->name;\n          bVar1 = match_simple_wild((sec_00->spec).name,name);\n          if (bVar1 == 0) {\n            bVar1 = match_simple_wild((sec_02->spec).name,name);\n            if (bVar1 != 0) {\n              walk_wild_consider_section(ptr,file,s,sec_02,callback,data);\n            }\n          }\n          else {\n            walk_wild_consider_section(ptr,file,s,sec_00,callback,data);\n          }\n        }\n      }\n      return;\n    }\n  }\n  walk_wild_section_general(ptr,file,callback,data);\n  return;\n}\n\n" (function_definition "void walk_wild_section_specs4_wild2\n               (lang_wild_statement_type *ptr,lang_input_statement_type *file,callback_t callback,\n               void *data)\n\n{\n  wildcard_list *sec;\n  wildcard_list *sec_00;\n  wildcard_list *sec_01;\n  wildcard_list *sec_02;\n  asection *s;\n  asection *s_00;\n  asection *s_01;\n  bfd_boolean bVar1;\n  char *name;\n  section_iterator_callback_data cb_data;\n  \n  sec = ptr->handler_data[0];\n  sec_00 = ptr->handler_data[2];\n  sec_01 = ptr->handler_data[1];\n  sec_02 = ptr->handler_data[3];\n  cb_data.found_section = (asection *)0x0;\n  cb_data.multiple_sections_found = 0;\n  bfd_get_section_by_name_if(file->the_bfd,(sec->spec).name,section_iterator_callback,&cb_data);\n  s_00 = cb_data.found_section;\n  if (cb_data.multiple_sections_found == 0) {\n    cb_data.found_section = (asection *)0x0;\n    bfd_get_section_by_name_if(file->the_bfd,(sec_01->spec).name,section_iterator_callback,&cb_data)\n    ;\n    s_01 = cb_data.found_section;\n    if (cb_data.multiple_sections_found == 0) {\n      cb_data.multiple_sections_found = 0;\n      for (s = file->the_bfd->sections; s != (asection *)0x0; s = s->next) {\n        if (s_00 == s) {\n          walk_wild_consider_section(ptr,file,s_00,sec,callback,data);\n        }\n        else if (s_01 == s) {\n          walk_wild_consider_section(ptr,file,s_01,sec_01,callback,data);\n        }\n        else {\n          name = s->name;\n          bVar1 = match_simple_wild((sec_00->spec).name,name);\n          if (bVar1 == 0) {\n            bVar1 = match_simple_wild((sec_02->spec).name,name);\n            if (bVar1 != 0) {\n              walk_wild_consider_section(ptr,file,s,sec_02,callback,data);\n            }\n          }\n          else {\n            walk_wild_consider_section(ptr,file,s,sec_00,callback,data);\n          }\n        }\n      }\n      return;\n    }\n  }\n  walk_wild_section_general(ptr,file,callback,data);\n  return;\n}" primitive_type (function_declarator "walk_wild_section_specs4_wild2\n               (lang_wild_statement_type *ptr,lang_input_statement_type *file,callback_t callback,\n               void *data)" identifier (parameter_list "(lang_wild_statement_type *ptr,lang_input_statement_type *file,callback_t callback,\n               void *data)" ( (parameter_declaration "lang_wild_statement_type *ptr" type_identifier (pointer_declarator "*ptr" * identifier)) , (parameter_declaration "lang_input_statement_type *file" type_identifier (pointer_declarator "*file" * identifier)) , (parameter_declaration "callback_t callback" type_identifier identifier) , (parameter_declaration "void *data" primitive_type (pointer_declarator "*data" * identifier)) ))) (compound_statement "{\n  wildcard_list *sec;\n  wildcard_list *sec_00;\n  wildcard_list *sec_01;\n  wildcard_list *sec_02;\n  asection *s;\n  asection *s_00;\n  asection *s_01;\n  bfd_boolean bVar1;\n  char *name;\n  section_iterator_callback_data cb_data;\n  \n  sec = ptr->handler_data[0];\n  sec_00 = ptr->handler_data[2];\n  sec_01 = ptr->handler_data[1];\n  sec_02 = ptr->handler_data[3];\n  cb_data.found_section = (asection *)0x0;\n  cb_data.multiple_sections_found = 0;\n  bfd_get_section_by_name_if(file->the_bfd,(sec->spec).name,section_iterator_callback,&cb_data);\n  s_00 = cb_data.found_section;\n  if (cb_data.multiple_sections_found == 0) {\n    cb_data.found_section = (asection *)0x0;\n    bfd_get_section_by_name_if(file->the_bfd,(sec_01->spec).name,section_iterator_callback,&cb_data)\n    ;\n    s_01 = cb_data.found_section;\n    if (cb_data.multiple_sections_found == 0) {\n      cb_data.multiple_sections_found = 0;\n      for (s = file->the_bfd->sections; s != (asection *)0x0; s = s->next) {\n        if (s_00 == s) {\n          walk_wild_consider_section(ptr,file,s_00,sec,callback,data);\n        }\n        else if (s_01 == s) {\n          walk_wild_consider_section(ptr,file,s_01,sec_01,callback,data);\n        }\n        else {\n          name = s->name;\n          bVar1 = match_simple_wild((sec_00->spec).name,name);\n          if (bVar1 == 0) {\n            bVar1 = match_simple_wild((sec_02->spec).name,name);\n            if (bVar1 != 0) {\n              walk_wild_consider_section(ptr,file,s,sec_02,callback,data);\n            }\n          }\n          else {\n            walk_wild_consider_section(ptr,file,s,sec_00,callback,data);\n          }\n        }\n      }\n      return;\n    }\n  }\n  walk_wild_section_general(ptr,file,callback,data);\n  return;\n}" { (declaration "wildcard_list *sec;" type_identifier (pointer_declarator "*sec" * identifier) ;) (declaration "wildcard_list *sec_00;" type_identifier (pointer_declarator "*sec_00" * identifier) ;) (declaration "wildcard_list *sec_01;" type_identifier (pointer_declarator "*sec_01" * identifier) ;) (declaration "wildcard_list *sec_02;" type_identifier (pointer_declarator "*sec_02" * identifier) ;) (declaration "asection *s;" type_identifier (pointer_declarator "*s" * identifier) ;) (declaration "asection *s_00;" type_identifier (pointer_declarator "*s_00" * identifier) ;) (declaration "asection *s_01;" type_identifier (pointer_declarator "*s_01" * identifier) ;) (declaration "bfd_boolean bVar1;" type_identifier identifier ;) (declaration "char *name;" primitive_type (pointer_declarator "*name" * identifier) ;) (declaration "section_iterator_callback_data cb_data;" type_identifier identifier ;) (expression_statement "sec = ptr->handler_data[0];" (assignment_expression "sec = ptr->handler_data[0]" identifier = (subscript_expression "ptr->handler_data[0]" (field_expression "ptr->handler_data" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "sec_00 = ptr->handler_data[2];" (assignment_expression "sec_00 = ptr->handler_data[2]" identifier = (subscript_expression "ptr->handler_data[2]" (field_expression "ptr->handler_data" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "sec_01 = ptr->handler_data[1];" (assignment_expression "sec_01 = ptr->handler_data[1]" identifier = (subscript_expression "ptr->handler_data[1]" (field_expression "ptr->handler_data" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "sec_02 = ptr->handler_data[3];" (assignment_expression "sec_02 = ptr->handler_data[3]" identifier = (subscript_expression "ptr->handler_data[3]" (field_expression "ptr->handler_data" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "cb_data.found_section = (asection *)0x0;" (assignment_expression "cb_data.found_section = (asection *)0x0" (field_expression "cb_data.found_section" identifier . field_identifier) = (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "cb_data.multiple_sections_found = 0;" (assignment_expression "cb_data.multiple_sections_found = 0" (field_expression "cb_data.multiple_sections_found" identifier . field_identifier) = number_literal) ;) (expression_statement "bfd_get_section_by_name_if(file->the_bfd,(sec->spec).name,section_iterator_callback,&cb_data);" (call_expression "bfd_get_section_by_name_if(file->the_bfd,(sec->spec).name,section_iterator_callback,&cb_data)" identifier (argument_list "(file->the_bfd,(sec->spec).name,section_iterator_callback,&cb_data)" ( (field_expression "file->the_bfd" identifier -> field_identifier) , (field_expression "(sec->spec).name" (parenthesized_expression "(sec->spec)" ( (field_expression "sec->spec" identifier -> field_identifier) )) . field_identifier) , identifier , (pointer_expression "&cb_data" & identifier) ))) ;) (expression_statement "s_00 = cb_data.found_section;" (assignment_expression "s_00 = cb_data.found_section" identifier = (field_expression "cb_data.found_section" identifier . field_identifier)) ;) (if_statement "if (cb_data.multiple_sections_found == 0) {\n    cb_data.found_section = (asection *)0x0;\n    bfd_get_section_by_name_if(file->the_bfd,(sec_01->spec).name,section_iterator_callback,&cb_data)\n    ;\n    s_01 = cb_data.found_section;\n    if (cb_data.multiple_sections_found == 0) {\n      cb_data.multiple_sections_found = 0;\n      for (s = file->the_bfd->sections; s != (asection *)0x0; s = s->next) {\n        if (s_00 == s) {\n          walk_wild_consider_section(ptr,file,s_00,sec,callback,data);\n        }\n        else if (s_01 == s) {\n          walk_wild_consider_section(ptr,file,s_01,sec_01,callback,data);\n        }\n        else {\n          name = s->name;\n          bVar1 = match_simple_wild((sec_00->spec).name,name);\n          if (bVar1 == 0) {\n            bVar1 = match_simple_wild((sec_02->spec).name,name);\n            if (bVar1 != 0) {\n              walk_wild_consider_section(ptr,file,s,sec_02,callback,data);\n            }\n          }\n          else {\n            walk_wild_consider_section(ptr,file,s,sec_00,callback,data);\n          }\n        }\n      }\n      return;\n    }\n  }" if (parenthesized_expression "(cb_data.multiple_sections_found == 0)" ( (binary_expression "cb_data.multiple_sections_found == 0" (field_expression "cb_data.multiple_sections_found" identifier . field_identifier) == number_literal) )) (compound_statement "{\n    cb_data.found_section = (asection *)0x0;\n    bfd_get_section_by_name_if(file->the_bfd,(sec_01->spec).name,section_iterator_callback,&cb_data)\n    ;\n    s_01 = cb_data.found_section;\n    if (cb_data.multiple_sections_found == 0) {\n      cb_data.multiple_sections_found = 0;\n      for (s = file->the_bfd->sections; s != (asection *)0x0; s = s->next) {\n        if (s_00 == s) {\n          walk_wild_consider_section(ptr,file,s_00,sec,callback,data);\n        }\n        else if (s_01 == s) {\n          walk_wild_consider_section(ptr,file,s_01,sec_01,callback,data);\n        }\n        else {\n          name = s->name;\n          bVar1 = match_simple_wild((sec_00->spec).name,name);\n          if (bVar1 == 0) {\n            bVar1 = match_simple_wild((sec_02->spec).name,name);\n            if (bVar1 != 0) {\n              walk_wild_consider_section(ptr,file,s,sec_02,callback,data);\n            }\n          }\n          else {\n            walk_wild_consider_section(ptr,file,s,sec_00,callback,data);\n          }\n        }\n      }\n      return;\n    }\n  }" { (expression_statement "cb_data.found_section = (asection *)0x0;" (assignment_expression "cb_data.found_section = (asection *)0x0" (field_expression "cb_data.found_section" identifier . field_identifier) = (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bfd_get_section_by_name_if(file->the_bfd,(sec_01->spec).name,section_iterator_callback,&cb_data)\n    ;" (call_expression "bfd_get_section_by_name_if(file->the_bfd,(sec_01->spec).name,section_iterator_callback,&cb_data)" identifier (argument_list "(file->the_bfd,(sec_01->spec).name,section_iterator_callback,&cb_data)" ( (field_expression "file->the_bfd" identifier -> field_identifier) , (field_expression "(sec_01->spec).name" (parenthesized_expression "(sec_01->spec)" ( (field_expression "sec_01->spec" identifier -> field_identifier) )) . field_identifier) , identifier , (pointer_expression "&cb_data" & identifier) ))) ;) (expression_statement "s_01 = cb_data.found_section;" (assignment_expression "s_01 = cb_data.found_section" identifier = (field_expression "cb_data.found_section" identifier . field_identifier)) ;) (if_statement "if (cb_data.multiple_sections_found == 0) {\n      cb_data.multiple_sections_found = 0;\n      for (s = file->the_bfd->sections; s != (asection *)0x0; s = s->next) {\n        if (s_00 == s) {\n          walk_wild_consider_section(ptr,file,s_00,sec,callback,data);\n        }\n        else if (s_01 == s) {\n          walk_wild_consider_section(ptr,file,s_01,sec_01,callback,data);\n        }\n        else {\n          name = s->name;\n          bVar1 = match_simple_wild((sec_00->spec).name,name);\n          if (bVar1 == 0) {\n            bVar1 = match_simple_wild((sec_02->spec).name,name);\n            if (bVar1 != 0) {\n              walk_wild_consider_section(ptr,file,s,sec_02,callback,data);\n            }\n          }\n          else {\n            walk_wild_consider_section(ptr,file,s,sec_00,callback,data);\n          }\n        }\n      }\n      return;\n    }" if (parenthesized_expression "(cb_data.multiple_sections_found == 0)" ( (binary_expression "cb_data.multiple_sections_found == 0" (field_expression "cb_data.multiple_sections_found" identifier . field_identifier) == number_literal) )) (compound_statement "{\n      cb_data.multiple_sections_found = 0;\n      for (s = file->the_bfd->sections; s != (asection *)0x0; s = s->next) {\n        if (s_00 == s) {\n          walk_wild_consider_section(ptr,file,s_00,sec,callback,data);\n        }\n        else if (s_01 == s) {\n          walk_wild_consider_section(ptr,file,s_01,sec_01,callback,data);\n        }\n        else {\n          name = s->name;\n          bVar1 = match_simple_wild((sec_00->spec).name,name);\n          if (bVar1 == 0) {\n            bVar1 = match_simple_wild((sec_02->spec).name,name);\n            if (bVar1 != 0) {\n              walk_wild_consider_section(ptr,file,s,sec_02,callback,data);\n            }\n          }\n          else {\n            walk_wild_consider_section(ptr,file,s,sec_00,callback,data);\n          }\n        }\n      }\n      return;\n    }" { (expression_statement "cb_data.multiple_sections_found = 0;" (assignment_expression "cb_data.multiple_sections_found = 0" (field_expression "cb_data.multiple_sections_found" identifier . field_identifier) = number_literal) ;) (for_statement "for (s = file->the_bfd->sections; s != (asection *)0x0; s = s->next) {\n        if (s_00 == s) {\n          walk_wild_consider_section(ptr,file,s_00,sec,callback,data);\n        }\n        else if (s_01 == s) {\n          walk_wild_consider_section(ptr,file,s_01,sec_01,callback,data);\n        }\n        else {\n          name = s->name;\n          bVar1 = match_simple_wild((sec_00->spec).name,name);\n          if (bVar1 == 0) {\n            bVar1 = match_simple_wild((sec_02->spec).name,name);\n            if (bVar1 != 0) {\n              walk_wild_consider_section(ptr,file,s,sec_02,callback,data);\n            }\n          }\n          else {\n            walk_wild_consider_section(ptr,file,s,sec_00,callback,data);\n          }\n        }\n      }" for ( (assignment_expression "s = file->the_bfd->sections" identifier = (field_expression "file->the_bfd->sections" (field_expression "file->the_bfd" identifier -> field_identifier) -> field_identifier)) ; (binary_expression "s != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "s = s->next" identifier = (field_expression "s->next" identifier -> field_identifier)) ) (compound_statement "{\n        if (s_00 == s) {\n          walk_wild_consider_section(ptr,file,s_00,sec,callback,data);\n        }\n        else if (s_01 == s) {\n          walk_wild_consider_section(ptr,file,s_01,sec_01,callback,data);\n        }\n        else {\n          name = s->name;\n          bVar1 = match_simple_wild((sec_00->spec).name,name);\n          if (bVar1 == 0) {\n            bVar1 = match_simple_wild((sec_02->spec).name,name);\n            if (bVar1 != 0) {\n              walk_wild_consider_section(ptr,file,s,sec_02,callback,data);\n            }\n          }\n          else {\n            walk_wild_consider_section(ptr,file,s,sec_00,callback,data);\n          }\n        }\n      }" { (if_statement "if (s_00 == s) {\n          walk_wild_consider_section(ptr,file,s_00,sec,callback,data);\n        }\n        else if (s_01 == s) {\n          walk_wild_consider_section(ptr,file,s_01,sec_01,callback,data);\n        }\n        else {\n          name = s->name;\n          bVar1 = match_simple_wild((sec_00->spec).name,name);\n          if (bVar1 == 0) {\n            bVar1 = match_simple_wild((sec_02->spec).name,name);\n            if (bVar1 != 0) {\n              walk_wild_consider_section(ptr,file,s,sec_02,callback,data);\n            }\n          }\n          else {\n            walk_wild_consider_section(ptr,file,s,sec_00,callback,data);\n          }\n        }" if (parenthesized_expression "(s_00 == s)" ( (binary_expression "s_00 == s" identifier == identifier) )) (compound_statement "{\n          walk_wild_consider_section(ptr,file,s_00,sec,callback,data);\n        }" { (expression_statement "walk_wild_consider_section(ptr,file,s_00,sec,callback,data);" (call_expression "walk_wild_consider_section(ptr,file,s_00,sec,callback,data)" identifier (argument_list "(ptr,file,s_00,sec,callback,data)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else if (s_01 == s) {\n          walk_wild_consider_section(ptr,file,s_01,sec_01,callback,data);\n        }\n        else {\n          name = s->name;\n          bVar1 = match_simple_wild((sec_00->spec).name,name);\n          if (bVar1 == 0) {\n            bVar1 = match_simple_wild((sec_02->spec).name,name);\n            if (bVar1 != 0) {\n              walk_wild_consider_section(ptr,file,s,sec_02,callback,data);\n            }\n          }\n          else {\n            walk_wild_consider_section(ptr,file,s,sec_00,callback,data);\n          }\n        }" else (if_statement "if (s_01 == s) {\n          walk_wild_consider_section(ptr,file,s_01,sec_01,callback,data);\n        }\n        else {\n          name = s->name;\n          bVar1 = match_simple_wild((sec_00->spec).name,name);\n          if (bVar1 == 0) {\n            bVar1 = match_simple_wild((sec_02->spec).name,name);\n            if (bVar1 != 0) {\n              walk_wild_consider_section(ptr,file,s,sec_02,callback,data);\n            }\n          }\n          else {\n            walk_wild_consider_section(ptr,file,s,sec_00,callback,data);\n          }\n        }" if (parenthesized_expression "(s_01 == s)" ( (binary_expression "s_01 == s" identifier == identifier) )) (compound_statement "{\n          walk_wild_consider_section(ptr,file,s_01,sec_01,callback,data);\n        }" { (expression_statement "walk_wild_consider_section(ptr,file,s_01,sec_01,callback,data);" (call_expression "walk_wild_consider_section(ptr,file,s_01,sec_01,callback,data)" identifier (argument_list "(ptr,file,s_01,sec_01,callback,data)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n          name = s->name;\n          bVar1 = match_simple_wild((sec_00->spec).name,name);\n          if (bVar1 == 0) {\n            bVar1 = match_simple_wild((sec_02->spec).name,name);\n            if (bVar1 != 0) {\n              walk_wild_consider_section(ptr,file,s,sec_02,callback,data);\n            }\n          }\n          else {\n            walk_wild_consider_section(ptr,file,s,sec_00,callback,data);\n          }\n        }" else (compound_statement "{\n          name = s->name;\n          bVar1 = match_simple_wild((sec_00->spec).name,name);\n          if (bVar1 == 0) {\n            bVar1 = match_simple_wild((sec_02->spec).name,name);\n            if (bVar1 != 0) {\n              walk_wild_consider_section(ptr,file,s,sec_02,callback,data);\n            }\n          }\n          else {\n            walk_wild_consider_section(ptr,file,s,sec_00,callback,data);\n          }\n        }" { (expression_statement "name = s->name;" (assignment_expression "name = s->name" identifier = (field_expression "s->name" identifier -> field_identifier)) ;) (expression_statement "bVar1 = match_simple_wild((sec_00->spec).name,name);" (assignment_expression "bVar1 = match_simple_wild((sec_00->spec).name,name)" identifier = (call_expression "match_simple_wild((sec_00->spec).name,name)" identifier (argument_list "((sec_00->spec).name,name)" ( (field_expression "(sec_00->spec).name" (parenthesized_expression "(sec_00->spec)" ( (field_expression "sec_00->spec" identifier -> field_identifier) )) . field_identifier) , identifier )))) ;) (if_statement "if (bVar1 == 0) {\n            bVar1 = match_simple_wild((sec_02->spec).name,name);\n            if (bVar1 != 0) {\n              walk_wild_consider_section(ptr,file,s,sec_02,callback,data);\n            }\n          }\n          else {\n            walk_wild_consider_section(ptr,file,s,sec_00,callback,data);\n          }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n            bVar1 = match_simple_wild((sec_02->spec).name,name);\n            if (bVar1 != 0) {\n              walk_wild_consider_section(ptr,file,s,sec_02,callback,data);\n            }\n          }" { (expression_statement "bVar1 = match_simple_wild((sec_02->spec).name,name);" (assignment_expression "bVar1 = match_simple_wild((sec_02->spec).name,name)" identifier = (call_expression "match_simple_wild((sec_02->spec).name,name)" identifier (argument_list "((sec_02->spec).name,name)" ( (field_expression "(sec_02->spec).name" (parenthesized_expression "(sec_02->spec)" ( (field_expression "sec_02->spec" identifier -> field_identifier) )) . field_identifier) , identifier )))) ;) (if_statement "if (bVar1 != 0) {\n              walk_wild_consider_section(ptr,file,s,sec_02,callback,data);\n            }" if (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n              walk_wild_consider_section(ptr,file,s,sec_02,callback,data);\n            }" { (expression_statement "walk_wild_consider_section(ptr,file,s,sec_02,callback,data);" (call_expression "walk_wild_consider_section(ptr,file,s,sec_02,callback,data)" identifier (argument_list "(ptr,file,s,sec_02,callback,data)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n            walk_wild_consider_section(ptr,file,s,sec_00,callback,data);\n          }" else (compound_statement "{\n            walk_wild_consider_section(ptr,file,s,sec_00,callback,data);\n          }" { (expression_statement "walk_wild_consider_section(ptr,file,s,sec_00,callback,data);" (call_expression "walk_wild_consider_section(ptr,file,s,sec_00,callback,data)" identifier (argument_list "(ptr,file,s,sec_00,callback,data)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) }))) }))))) })) (return_statement "return;" return ;) })) })) (expression_statement "walk_wild_section_general(ptr,file,callback,data);" (call_expression "walk_wild_section_general(ptr,file,callback,data)" identifier (argument_list "(ptr,file,callback,data)" ( identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00114bd0(long param_1,long param_2,undefined8 param_3,undefined8 param_4)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  undefined8 *local_48;\n  int local_40;\n  \n  lVar1 = *(long *)(param_1 + 0x50);\n  lVar2 = *(long *)(param_1 + 0x60);\n  lVar3 = *(long *)(param_1 + 0x58);\n  lVar4 = *(long *)(param_1 + 0x68);\n  local_48 = (undefined8 *)0x0;\n  local_40 = 0;\n  bfd_get_section_by_name_if\n            (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar1 + 8),FUN_00112220,&local_48);\n  puVar6 = local_48;\n  if (local_40 == 0) {\n    local_48 = (undefined8 *)0x0;\n    bfd_get_section_by_name_if\n              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48);\n    puVar7 = local_48;\n    if (local_40 == 0) {\n      local_40 = 0;\n      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }\n      return;\n    }\n  }\n  FUN_00114b10(param_1,param_2,param_3,param_4);\n  return;\n}\n\n" (function_definition "void FUN_00114bd0(long param_1,long param_2,undefined8 param_3,undefined8 param_4)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  undefined8 *local_48;\n  int local_40;\n  \n  lVar1 = *(long *)(param_1 + 0x50);\n  lVar2 = *(long *)(param_1 + 0x60);\n  lVar3 = *(long *)(param_1 + 0x58);\n  lVar4 = *(long *)(param_1 + 0x68);\n  local_48 = (undefined8 *)0x0;\n  local_40 = 0;\n  bfd_get_section_by_name_if\n            (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar1 + 8),FUN_00112220,&local_48);\n  puVar6 = local_48;\n  if (local_40 == 0) {\n    local_48 = (undefined8 *)0x0;\n    bfd_get_section_by_name_if\n              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48);\n    puVar7 = local_48;\n    if (local_40 == 0) {\n      local_40 = 0;\n      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }\n      return;\n    }\n  }\n  FUN_00114b10(param_1,param_2,param_3,param_4);\n  return;\n}" primitive_type (function_declarator "FUN_00114bd0(long param_1,long param_2,undefined8 param_3,undefined8 param_4)" identifier (parameter_list "(long param_1,long param_2,undefined8 param_3,undefined8 param_4)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) ))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  undefined8 *local_48;\n  int local_40;\n  \n  lVar1 = *(long *)(param_1 + 0x50);\n  lVar2 = *(long *)(param_1 + 0x60);\n  lVar3 = *(long *)(param_1 + 0x58);\n  lVar4 = *(long *)(param_1 + 0x68);\n  local_48 = (undefined8 *)0x0;\n  local_40 = 0;\n  bfd_get_section_by_name_if\n            (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar1 + 8),FUN_00112220,&local_48);\n  puVar6 = local_48;\n  if (local_40 == 0) {\n    local_48 = (undefined8 *)0x0;\n    bfd_get_section_by_name_if\n              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48);\n    puVar7 = local_48;\n    if (local_40 == 0) {\n      local_40 = 0;\n      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }\n      return;\n    }\n  }\n  FUN_00114b10(param_1,param_2,param_3,param_4);\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined8 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined8 *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "int local_40;" primitive_type identifier ;) (expression_statement "lVar1 = *(long *)(param_1 + 0x50);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x50)" identifier = (pointer_expression "*(long *)(param_1 + 0x50)" * (cast_expression "(long *)(param_1 + 0x50)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "lVar2 = *(long *)(param_1 + 0x60);" (assignment_expression "lVar2 = *(long *)(param_1 + 0x60)" identifier = (pointer_expression "*(long *)(param_1 + 0x60)" * (cast_expression "(long *)(param_1 + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x58);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x58)" identifier = (pointer_expression "*(long *)(param_1 + 0x58)" * (cast_expression "(long *)(param_1 + 0x58)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "lVar4 = *(long *)(param_1 + 0x68);" (assignment_expression "lVar4 = *(long *)(param_1 + 0x68)" identifier = (pointer_expression "*(long *)(param_1 + 0x68)" * (cast_expression "(long *)(param_1 + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "local_48 = (undefined8 *)0x0;" (assignment_expression "local_48 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "bfd_get_section_by_name_if\n            (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar1 + 8),FUN_00112220,&local_48);" (call_expression "bfd_get_section_by_name_if\n            (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar1 + 8),FUN_00112220,&local_48)" identifier (argument_list "(*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar1 + 8),FUN_00112220,&local_48)" ( (pointer_expression "*(undefined8 *)(param_2 + 0x20)" * (cast_expression "(undefined8 *)(param_2 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(lVar1 + 8)" * (cast_expression "(undefined8 *)(lVar1 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 8)" ( (binary_expression "lVar1 + 8" identifier + number_literal) )))) , identifier , (pointer_expression "&local_48" & identifier) ))) ;) (expression_statement "puVar6 = local_48;" (assignment_expression "puVar6 = local_48" identifier = identifier) ;) (if_statement "if (local_40 == 0) {\n    local_48 = (undefined8 *)0x0;\n    bfd_get_section_by_name_if\n              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48);\n    puVar7 = local_48;\n    if (local_40 == 0) {\n      local_40 = 0;\n      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }\n      return;\n    }\n  }" if (parenthesized_expression "(local_40 == 0)" ( (binary_expression "local_40 == 0" identifier == number_literal) )) (compound_statement "{\n    local_48 = (undefined8 *)0x0;\n    bfd_get_section_by_name_if\n              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48);\n    puVar7 = local_48;\n    if (local_40 == 0) {\n      local_40 = 0;\n      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }\n      return;\n    }\n  }" { (expression_statement "local_48 = (undefined8 *)0x0;" (assignment_expression "local_48 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bfd_get_section_by_name_if\n              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48);" (call_expression "bfd_get_section_by_name_if\n              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48)" identifier (argument_list "(*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48)" ( (pointer_expression "*(undefined8 *)(param_2 + 0x20)" * (cast_expression "(undefined8 *)(param_2 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(lVar3 + 8)" * (cast_expression "(undefined8 *)(lVar3 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8)" ( (binary_expression "lVar3 + 8" identifier + number_literal) )))) , identifier , (pointer_expression "&local_48" & identifier) ))) ;) (expression_statement "puVar7 = local_48;" (assignment_expression "puVar7 = local_48" identifier = identifier) ;) (if_statement "if (local_40 == 0) {\n      local_40 = 0;\n      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }\n      return;\n    }" if (parenthesized_expression "(local_40 == 0)" ( (binary_expression "local_40 == 0" identifier == number_literal) )) (compound_statement "{\n      local_40 = 0;\n      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }\n      return;\n    }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (for_statement "for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }" for ( (assignment_expression "puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90)" identifier = (pointer_expression "*(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90)" * (cast_expression "(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_2 + 0x20) + 0x90)" ( (binary_expression "*(long *)(param_2 + 0x20) + 0x90" (pointer_expression "*(long *)(param_2 + 0x20)" * (cast_expression "(long *)(param_2 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) + number_literal) ))))) ; (binary_expression "puVar5 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar5 = (undefined8 *)puVar5[2]" identifier = (cast_expression "(undefined8 *)puVar5[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[2]" identifier [ number_literal ]))) ) (compound_statement "{\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }" { (if_statement "if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }" if (parenthesized_expression "(puVar6 == puVar5)" ( (binary_expression "puVar6 == puVar5" identifier == identifier) )) (compound_statement "{\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }" { (expression_statement "FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);" (call_expression "FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4)" identifier (argument_list "(param_1,param_2,puVar6,lVar1,param_3,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }" else (if_statement "if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }" if (parenthesized_expression "(puVar7 == puVar5)" ( (binary_expression "puVar7 == puVar5" identifier == identifier) )) (compound_statement "{\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }" { (expression_statement "FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);" (call_expression "FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4)" identifier (argument_list "(param_1,param_2,puVar7,lVar3,param_3,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }" else (compound_statement "{\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }" { (expression_statement "iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);" (assignment_expression "iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5)" identifier = (call_expression "FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5)" identifier (argument_list "(*(undefined8 *)(lVar2 + 8),*puVar5)" ( (pointer_expression "*(undefined8 *)(lVar2 + 8)" * (cast_expression "(undefined8 *)(lVar2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 8)" ( (binary_expression "lVar2 + 8" identifier + number_literal) )))) , (pointer_expression "*puVar5" * identifier) )))) ;) (if_statement "if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }" { (expression_statement "iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));" (assignment_expression "iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8))" identifier = (call_expression "FUN_00113260(*(undefined8 *)(lVar4 + 8))" identifier (argument_list "(*(undefined8 *)(lVar4 + 8))" ( (pointer_expression "*(undefined8 *)(lVar4 + 8)" * (cast_expression "(undefined8 *)(lVar4 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 8)" ( (binary_expression "lVar4 + 8" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }" { (expression_statement "FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);" (call_expression "FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4)" identifier (argument_list "(param_1,param_2,puVar5,lVar4,param_3,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }" else (compound_statement "{\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }" { (expression_statement "FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);" (call_expression "FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4)" identifier (argument_list "(param_1,param_2,puVar5,lVar2,param_3,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) }))) }))))) })) (return_statement "return;" return ;) })) })) (expression_statement "FUN_00114b10(param_1,param_2,param_3,param_4);" (call_expression "FUN_00114b10(param_1,param_2,param_3,param_4)" identifier (argument_list "(param_1,param_2,param_3,param_4)" ( identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) }))) }))))) })) (return_statement return ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00114bd0(long param_1,long param_2,undefined8 param_3,undefined8 param_4)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  undefined8 *local_48;\n  int local_40;\n  \n  lVar1 = *(long *)(param_1 + 0x50);\n  lVar2 = *(long *)(param_1 + 0x60);\n  lVar3 = *(long *)(param_1 + 0x58);\n  lVar4 = *(long *)(param_1 + 0x68);\n  local_48 = (undefined8 *)0x0;\n  local_40 = 0;\n  bfd_get_section_by_name_if\n            (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar1 + 8),FUN_00112220,&local_48);\n  puVar6 = local_48;\n  if (local_40 == 0) {\n    local_48 = (undefined8 *)0x0;\n    bfd_get_section_by_name_if\n              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48);\n    puVar7 = local_48;\n    if (local_40 == 0) {\n      local_40 = 0;\n      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }\n      return;\n    }\n  }\n  FUN_00114b10(param_1,param_2,param_3,param_4);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00114bd0(long param_1,long param_2,undefined8 param_3,undefined8 param_4)" (identifier "FUN_00114bd0") (parameter_list "(long param_1,long param_2,undefined8 param_3,undefined8 param_4)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "undefined8 param_4" (type_identifier "undefined8") (identifier "param_4")) () ")"))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  undefined8 *local_48;\n  int local_40;\n  \n  lVar1 = *(long *)(param_1 + 0x50);\n  lVar2 = *(long *)(param_1 + 0x60);\n  lVar3 = *(long *)(param_1 + 0x58);\n  lVar4 = *(long *)(param_1 + 0x68);\n  local_48 = (undefined8 *)0x0;\n  local_40 = 0;\n  bfd_get_section_by_name_if\n            (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar1 + 8),FUN_00112220,&local_48);\n  puVar6 = local_48;\n  if (local_40 == 0) {\n    local_48 = (undefined8 *)0x0;\n    bfd_get_section_by_name_if\n              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48);\n    puVar7 = local_48;\n    if (local_40 == 0) {\n      local_40 = 0;\n      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }\n      return;\n    }\n  }\n  FUN_00114b10(param_1,param_2,param_3,param_4);\n  return;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "long lVar4;" (sized_type_specifier "long" (long "long")) (identifier "lVar4") (; ";")) (declaration "undefined8 *puVar5;" (type_identifier "undefined8") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined8 *puVar6;" (type_identifier "undefined8") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined8 *puVar7;" (type_identifier "undefined8") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined8 *local_48;" (type_identifier "undefined8") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (expression_statement "lVar1 = *(long *)(param_1 + 0x50);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x50)" (identifier "lVar1") (= "=") (pointer_expression "*(long *)(param_1 + 0x50)" (* "*") (cast_expression "(long *)(param_1 + 0x50)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "lVar2 = *(long *)(param_1 + 0x60);" (assignment_expression "lVar2 = *(long *)(param_1 + 0x60)" (identifier "lVar2") (= "=") (pointer_expression "*(long *)(param_1 + 0x60)" (* "*") (cast_expression "(long *)(param_1 + 0x60)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "lVar3 = *(long *)(param_1 + 0x58);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x58)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_1 + 0x58)" (* "*") (cast_expression "(long *)(param_1 + 0x58)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "lVar4 = *(long *)(param_1 + 0x68);" (assignment_expression "lVar4 = *(long *)(param_1 + 0x68)" (identifier "lVar4") (= "=") (pointer_expression "*(long *)(param_1 + 0x68)" (* "*") (cast_expression "(long *)(param_1 + 0x68)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (expression_statement "local_48 = (undefined8 *)0x0;" (assignment_expression "local_48 = (undefined8 *)0x0" (identifier "local_48") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "bfd_get_section_by_name_if\n            (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar1 + 8),FUN_00112220,&local_48);" (call_expression "bfd_get_section_by_name_if\n            (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar1 + 8),FUN_00112220,&local_48)" (identifier "bfd_get_section_by_name_if") (argument_list "(*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar1 + 8),FUN_00112220,&local_48)" (( "(") (pointer_expression "*(undefined8 *)(param_2 + 0x20)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(lVar1 + 8)" (* "*") (cast_expression "(undefined8 *)(lVar1 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 8)" (( "(") (binary_expression "lVar1 + 8" (identifier "lVar1") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "FUN_00112220") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")"))) (; ";")) (expression_statement "puVar6 = local_48;" (assignment_expression "puVar6 = local_48" (identifier "puVar6") (= "=") (identifier "local_48")) (; ";")) (if_statement "if (local_40 == 0) {\n    local_48 = (undefined8 *)0x0;\n    bfd_get_section_by_name_if\n              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48);\n    puVar7 = local_48;\n    if (local_40 == 0) {\n      local_40 = 0;\n      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(local_40 == 0)" (( "(") (binary_expression "local_40 == 0" (identifier "local_40") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_48 = (undefined8 *)0x0;\n    bfd_get_section_by_name_if\n              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48);\n    puVar7 = local_48;\n    if (local_40 == 0) {\n      local_40 = 0;\n      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }\n      return;\n    }\n  }" ({ "{") (expression_statement "local_48 = (undefined8 *)0x0;" (assignment_expression "local_48 = (undefined8 *)0x0" (identifier "local_48") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bfd_get_section_by_name_if\n              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48);" (call_expression "bfd_get_section_by_name_if\n              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48)" (identifier "bfd_get_section_by_name_if") (argument_list "(*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48)" (( "(") (pointer_expression "*(undefined8 *)(param_2 + 0x20)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(lVar3 + 8)" (* "*") (cast_expression "(undefined8 *)(lVar3 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 8)" (( "(") (binary_expression "lVar3 + 8" (identifier "lVar3") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "FUN_00112220") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")"))) (; ";")) (expression_statement "puVar7 = local_48;" (assignment_expression "puVar7 = local_48" (identifier "puVar7") (= "=") (identifier "local_48")) (; ";")) (if_statement "if (local_40 == 0) {\n      local_40 = 0;\n      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }\n      return;\n    }" (if "if") (parenthesized_expression "(local_40 == 0)" (( "(") (binary_expression "local_40 == 0" (identifier "local_40") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_40 = 0;\n      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }\n      return;\n    }" ({ "{") (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (for_statement "for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;\n          puVar5 = (undefined8 *)puVar5[2]) {\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }" (for "for") (( "(") (assignment_expression "puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90)" (* "*") (cast_expression "(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_2 + 0x20) + 0x90)" (( "(") (binary_expression "*(long *)(param_2 + 0x20) + 0x90" (pointer_expression "*(long *)(param_2 + 0x20)" (* "*") (cast_expression "(long *)(param_2 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "0x90")) () ")"))))) (; ";") (binary_expression "puVar5 != (undefined8 *)0x0" (identifier "puVar5") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar5 = (undefined8 *)puVar5[2]" (identifier "puVar5") (= "=") (cast_expression "(undefined8 *)puVar5[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")))) () ")") (compound_statement "{\n        if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }\n      }" ({ "{") (if_statement "if (puVar6 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }\n        else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }" (if "if") (parenthesized_expression "(puVar6 == puVar5)" (( "(") (binary_expression "puVar6 == puVar5" (identifier "puVar6") (== "==") (identifier "puVar5")) () ")")) (compound_statement "{\n          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);\n        }" ({ "{") (expression_statement "FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);" (call_expression "FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4)" (identifier "FUN_00114a20") (argument_list "(param_1,param_2,puVar6,lVar1,param_3,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "puVar6") (, ",") (identifier "lVar1") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}")) (else_clause "else if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }" (else "else") (if_statement "if (puVar7 == puVar5) {\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }\n        else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }" (if "if") (parenthesized_expression "(puVar7 == puVar5)" (( "(") (binary_expression "puVar7 == puVar5" (identifier "puVar7") (== "==") (identifier "puVar5")) () ")")) (compound_statement "{\n          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);\n        }" ({ "{") (expression_statement "FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);" (call_expression "FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4)" (identifier "FUN_00114a20") (argument_list "(param_1,param_2,puVar7,lVar3,param_3,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "puVar7") (, ",") (identifier "lVar3") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }" (else "else") (compound_statement "{\n          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);\n          if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }\n        }" ({ "{") (expression_statement "iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);" (assignment_expression "iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5)" (identifier "iVar8") (= "=") (call_expression "FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5)" (identifier "FUN_00113260") (argument_list "(*(undefined8 *)(lVar2 + 8),*puVar5)" (( "(") (pointer_expression "*(undefined8 *)(lVar2 + 8)" (* "*") (cast_expression "(undefined8 *)(lVar2 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 8)" (( "(") (binary_expression "lVar2 + 8" (identifier "lVar2") (+ "+") (number_literal "8")) () ")")))) (, ",") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }\n          else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));\n            if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }\n          }" ({ "{") (expression_statement "iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));" (assignment_expression "iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8))" (identifier "iVar8") (= "=") (call_expression "FUN_00113260(*(undefined8 *)(lVar4 + 8))" (identifier "FUN_00113260") (argument_list "(*(undefined8 *)(lVar4 + 8))" (( "(") (pointer_expression "*(undefined8 *)(lVar4 + 8)" (* "*") (cast_expression "(undefined8 *)(lVar4 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 8)" (( "(") (binary_expression "lVar4 + 8" (identifier "lVar4") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar8 != 0) {\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);\n            }" ({ "{") (expression_statement "FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);" (call_expression "FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4)" (identifier "FUN_00114a20") (argument_list "(param_1,param_2,puVar5,lVar4,param_3,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "puVar5") (, ",") (identifier "lVar4") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }" (else "else") (compound_statement "{\n            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);\n          }" ({ "{") (expression_statement "FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);" (call_expression "FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4)" (identifier "FUN_00114a20") (argument_list "(param_1,param_2,puVar5,lVar2,param_3,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "puVar5") (, ",") (identifier "lVar2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}")))) (} "}")))))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_00114b10(param_1,param_2,param_3,param_4);" (call_expression "FUN_00114b10(param_1,param_2,param_3,param_4)" (identifier "FUN_00114b10") (argument_list "(param_1,param_2,param_3,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1
               (type_1 *ptr,type_2 *file,type_3 callback,
               void *data)

{
  type_4 *sec;
  type_4 *sec_00;
  type_4 *sec_01;
  type_4 *sec_02;
  type_5 *var_2;
  type_5 *var_3;
  type_5 *var_5;
  type_6 var_7;
  char *name;
  type_7 cb_data;
  
  sec = ptr->handler_data[0];
  sec_00 = ptr->handler_data[2];
  sec_01 = ptr->handler_data[1];
  sec_02 = ptr->handler_data[3];
  cb_data.found_section = (type_5 *)0x0;
  cb_data.multiple_sections_found = 0;
  var_1(file->the_bfd,(sec->spec).name,section_iterator_callback,&cb_data);
  var_3 = cb_data.found_section;
  if (cb_data.multiple_sections_found == 0) {
    cb_data.found_section = (type_5 *)0x0;
    var_1(file->the_bfd,(sec_01->spec).name,section_iterator_callback,&cb_data)
    ;
    var_5 = cb_data.found_section;
    if (cb_data.multiple_sections_found == 0) {
      cb_data.multiple_sections_found = 0;
      for (var_2 = file->the_bfd->sections; var_2 != (type_5 *)0x0; var_2 = var_2->next) {
        if (var_3 == var_2) {
          var_4(ptr,file,var_3,sec,callback,data);
        }
        else if (var_5 == var_2) {
          var_4(ptr,file,var_5,sec_01,callback,data);
        }
        else {
          name = var_2->name;
          var_7 = var_6((sec_00->spec).name,name);
          if (var_7 == 0) {
            var_7 = var_6((sec_02->spec).name,name);
            if (var_7 != 0) {
              var_4(ptr,file,var_2,sec_02,callback,data);
            }
          }
          else {
            var_4(ptr,file,var_2,sec_00,callback,data);
          }
        }
      }
      return;
    }
  }
  var_8(ptr,file,callback,data);
  return;
}


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

void MASKED(long param_1,long param_2,undefined8 param_3,undefined8 param_4)

{
  long lVar1;
  long lVar2;
  long lVar3;
  long lVar4;
  undefined8 *puVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  int iVar8;
  undefined8 *local_48;
  int local_40;
  
  lVar1 = *(long *)(param_1 + 0x50);
  lVar2 = *(long *)(param_1 + 0x60);
  lVar3 = *(long *)(param_1 + 0x58);
  lVar4 = *(long *)(param_1 + 0x68);
  local_48 = (undefined8 *)0x0;
  local_40 = 0;
  bfd_get_section_by_name_if
            (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar1 + 8),FUN_00112220,&local_48);
  puVar6 = local_48;
  if (local_40 == 0) {
    local_48 = (undefined8 *)0x0;
    bfd_get_section_by_name_if
              (*(undefined8 *)(param_2 + 0x20),*(undefined8 *)(lVar3 + 8),FUN_00112220,&local_48);
    puVar7 = local_48;
    if (local_40 == 0) {
      local_40 = 0;
      for (puVar5 = *(undefined8 **)(*(long *)(param_2 + 0x20) + 0x90); puVar5 != (undefined8 *)0x0;
          puVar5 = (undefined8 *)puVar5[2]) {
        if (puVar6 == puVar5) {
          FUN_00114a20(param_1,param_2,puVar6,lVar1,param_3,param_4);
        }
        else if (puVar7 == puVar5) {
          FUN_00114a20(param_1,param_2,puVar7,lVar3,param_3,param_4);
        }
        else {
          iVar8 = FUN_00113260(*(undefined8 *)(lVar2 + 8),*puVar5);
          if (iVar8 == 0) {
            iVar8 = FUN_00113260(*(undefined8 *)(lVar4 + 8));
            if (iVar8 != 0) {
              FUN_00114a20(param_1,param_2,puVar5,lVar4,param_3,param_4);
            }
          }
          else {
            FUN_00114a20(param_1,param_2,puVar5,lVar2,param_3,param_4);
          }
        }
      }
      return;
    }
  }
  FUN_00114b10(param_1,param_2,param_3,param_4);
  return;
}

