
void gldelf_i386_stat_needed(lang_input_statement_type *s)

{
  bfd *pbVar1;
  lang_input_statement_type *plVar2;
  int iVar3;
  ulong uVar4;
  char *pcVar5;
  char *pcVar6;
  long lVar7;
  stat st;
  
  if ((global_found == (lang_input_statement_type *)0x0) && (s->the_bfd != (bfd *)0x0)) {
    uVar4 = bfd_elf_get_dyn_lib_class(s->the_bfd);
    plVar2 = global_found;
    if ((uVar4 & 1) == 0) {
      iVar3 = bfd_stat(s->the_bfd,&st);
      if (iVar3 == 0) {
        if (((st.st_dev != global_stat.st_dev) || (global_stat.st_ino != st.st_ino)) ||
           (plVar2 = s, st.st_ino == 0)) {
          pcVar6 = global_needed->name;
          pcVar5 = strchr(pcVar6,0x2f);
          plVar2 = global_found;
          if ((pcVar5 == (char *)0x0) &&
             (pcVar6 = strstr(pcVar6,".so."), plVar2 = global_found, pcVar6 != (char *)0x0)) {
            lVar7 = bfd_elf_get_dt_soname(s->the_bfd);
            if (lVar7 == 0) {
              lVar7 = lbasename(s->filename);
            }
            iVar3 = filename_ncmp(lVar7,global_needed->name,pcVar6 + (4 - (long)global_needed->name)
                                 );
            plVar2 = global_found;
            if (iVar3 == 0) {
              pbVar1 = global_needed->by;
              pcVar6 = global_needed->name;
              pcVar5 = (char *)dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",
                                         5);
              einfo(pcVar5,pcVar6,pbVar1,lVar7);
              plVar2 = global_found;
            }
          }
        }
      }
      else {
        pbVar1 = s->the_bfd;
        pcVar6 = (char *)dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);
        einfo(pcVar6,pbVar1);
        plVar2 = global_found;
      }
    }
    global_found = plVar2;
    return;
  }
  return;
}



void FUN_00136d70(long param_1)

{
  undefined8 uVar1;
  long lVar2;
  int iVar3;
  ulong uVar4;
  char *pcVar5;
  char *pcVar6;
  long lVar7;
  undefined8 uVar8;
  undefined8 uVar9;
  long local_a8;
  long local_a0;
  
  if ((DAT_002b52f8 == 0) && (*(long *)(param_1 + 0x20) != 0)) {
    uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20));
    lVar2 = DAT_002b52f8;
    if ((uVar4 & 1) == 0) {
      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);
      if (iVar3 == 0) {
        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||
           (lVar2 = param_1, local_a0 == 0)) {
          pcVar6 = *(char **)(DAT_002b5390 + 0x10);
          pcVar5 = strchr(pcVar6,0x2f);
          lVar2 = DAT_002b52f8;
          if ((pcVar5 == (char *)0x0) &&
             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {
            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));
            if (lVar7 == 0) {
              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));
            }
            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),
                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));
            lVar2 = DAT_002b52f8;
            if (iVar3 == 0) {
              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);
              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);
              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);
              FUN_00129380(uVar8,uVar9,uVar1,lVar7);
              lVar2 = DAT_002b52f8;
            }
          }
        }
      }
      else {
        uVar1 = *(undefined8 *)(param_1 + 0x20);
        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);
        FUN_00129380(uVar9,uVar1);
        lVar2 = DAT_002b52f8;
      }
    }
    DAT_002b52f8 = lVar2;
    return;
  }
  return;
}


CMP qword ptr [0x002b52f8],0x0
JZ 0x00136d80
RET
MOV RAX,qword ptr [RDI + 0x20]
TEST RAX,RAX
JZ 0x00136d7a
PUSH R12
PUSH RBP
PUSH RBX
MOV RBX,RDI
MOV RDI,RAX
SUB RSP,0x90
CALL 0x0010d3f0
TEST AL,0x1
JZ 0x00136db0
ADD RSP,0x90
POP RBX
POP RBP
POP R12
RET
MOV RDI,qword ptr [RBX + 0x20]
MOV RSI,RSP
CALL 0x0010d270
TEST EAX,EAX
JNZ 0x00136eb0
MOV RAX,qword ptr [0x002b5300]
CMP qword ptr [RSP],RAX
JZ 0x00136e80
MOV RAX,qword ptr [0x002b5390]
MOV ESI,0x2f
MOV RBP,qword ptr [RAX + 0x10]
MOV RDI,RBP
CALL 0x0010d3a0
TEST RAX,RAX
JNZ 0x00136da3
LEA RSI,[0x19ffbc]
MOV RDI,RBP
CALL 0x0010dd40
TEST RAX,RAX
JZ 0x00136da3
MOV RDI,qword ptr [RBX + 0x20]
LEA RBP,[RAX + 0x4]
CALL 0x0010d3d0
MOV R12,RAX
TEST RAX,RAX
JZ 0x00136ed9
MOV RAX,qword ptr [0x002b5390]
MOV RDX,RBP
MOV RDI,R12
MOV RSI,qword ptr [RAX + 0x10]
SUB RDX,RSI
CALL 0x0010d460
TEST EAX,EAX
JNZ 0x00136da3
MOV RAX,qword ptr [0x002b5390]
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x19fa98]
MOV RBP,qword ptr [RAX + 0x8]
MOV RBX,qword ptr [RAX + 0x10]
CALL 0x0010d300
MOV RCX,R12
MOV RDI,RAX
MOV RDX,RBP
MOV RSI,RBX
XOR EAX,EAX
CALL 0x00129380
JMP 0x00136da3
MOV RAX,qword ptr [RSP + 0x8]
CMP qword ptr [0x002b5308],RAX
JNZ 0x00136dd5
TEST RAX,RAX
JZ 0x00136dd5
MOV qword ptr [0x002b52f8],RBX
JMP 0x00136da3
MOV RBX,qword ptr [RBX + 0x20]
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x19ff9e]
CALL 0x0010d300
MOV RDI,RAX
MOV RSI,RBX
XOR EAX,EAX
CALL 0x00129380
JMP 0x00136da3
MOV RDI,qword ptr [RBX + 0x10]
CALL 0x0010d610
MOV R12,RAX
JMP 0x00136e1f
(translation_unit "void FUN_00136d70(long param_1)\n\n{\n  undefined8 uVar1;\n  long lVar2;\n  int iVar3;\n  ulong uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  long lVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long local_a8;\n  long local_a0;\n  \n  if ((DAT_002b52f8 == 0) && (*(long *)(param_1 + 0x20) != 0)) {\n    uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20));\n    lVar2 = DAT_002b52f8;\n    if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);\n      if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }\n    }\n    DAT_002b52f8 = lVar2;\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00136d70(long param_1)\n\n{\n  undefined8 uVar1;\n  long lVar2;\n  int iVar3;\n  ulong uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  long lVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long local_a8;\n  long local_a0;\n  \n  if ((DAT_002b52f8 == 0) && (*(long *)(param_1 + 0x20) != 0)) {\n    uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20));\n    lVar2 = DAT_002b52f8;\n    if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);\n      if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }\n    }\n    DAT_002b52f8 = lVar2;\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00136d70(long param_1)" identifier (parameter_list "(long param_1)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  long lVar2;\n  int iVar3;\n  ulong uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  long lVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long local_a8;\n  long local_a0;\n  \n  if ((DAT_002b52f8 == 0) && (*(long *)(param_1 + 0x20) != 0)) {\n    uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20));\n    lVar2 = DAT_002b52f8;\n    if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);\n      if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }\n    }\n    DAT_002b52f8 = lVar2;\n    return;\n  }\n  return;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "long local_a8;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_a0;" (sized_type_specifier "long" long) identifier ;) (if_statement "if ((DAT_002b52f8 == 0) && (*(long *)(param_1 + 0x20) != 0)) {\n    uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20));\n    lVar2 = DAT_002b52f8;\n    if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);\n      if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }\n    }\n    DAT_002b52f8 = lVar2;\n    return;\n  }" if (parenthesized_expression "((DAT_002b52f8 == 0) && (*(long *)(param_1 + 0x20) != 0))" ( (binary_expression "(DAT_002b52f8 == 0) && (*(long *)(param_1 + 0x20) != 0)" (parenthesized_expression "(DAT_002b52f8 == 0)" ( (binary_expression "DAT_002b52f8 == 0" identifier == number_literal) )) && (parenthesized_expression "(*(long *)(param_1 + 0x20) != 0)" ( (binary_expression "*(long *)(param_1 + 0x20) != 0" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20));\n    lVar2 = DAT_002b52f8;\n    if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);\n      if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }\n    }\n    DAT_002b52f8 = lVar2;\n    return;\n  }" { (expression_statement "uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20));" (assignment_expression "uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20))" identifier = (call_expression "bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20))" identifier (argument_list "(*(long *)(param_1 + 0x20))" ( (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) )))) ;) (expression_statement "lVar2 = DAT_002b52f8;" (assignment_expression "lVar2 = DAT_002b52f8" identifier = identifier) ;) (if_statement "if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);\n      if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }\n    }" if (parenthesized_expression "((uVar4 & 1) == 0)" ( (binary_expression "(uVar4 & 1) == 0" (parenthesized_expression "(uVar4 & 1)" ( (binary_expression "uVar4 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);\n      if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }\n    }" { (expression_statement "iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);" (assignment_expression "iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8)" identifier = (call_expression "bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x20),&local_a8)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x20)" * (cast_expression "(undefined8 *)(param_1 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) , (pointer_expression "&local_a8" & identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }" { (if_statement "if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }" if (parenthesized_expression "(((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0))" ( (binary_expression "((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)" (parenthesized_expression "((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0))" ( (binary_expression "(local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)" (parenthesized_expression "(local_a8 != DAT_002b5300)" ( (binary_expression "local_a8 != DAT_002b5300" identifier != identifier) )) || (parenthesized_expression "(DAT_002b5308 != local_a0)" ( (binary_expression "DAT_002b5308 != local_a0" identifier != identifier) ))) )) || (parenthesized_expression "(lVar2 = param_1, local_a0 == 0)" ( (comma_expression "lVar2 = param_1, local_a0 == 0" (assignment_expression "lVar2 = param_1" identifier = identifier) , (binary_expression "local_a0 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }" { (expression_statement "pcVar6 = *(char **)(DAT_002b5390 + 0x10);" (assignment_expression "pcVar6 = *(char **)(DAT_002b5390 + 0x10)" identifier = (pointer_expression "*(char **)(DAT_002b5390 + 0x10)" * (cast_expression "(char **)(DAT_002b5390 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_002b5390 + 0x10)" ( (binary_expression "DAT_002b5390 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pcVar5 = strchr(pcVar6,0x2f);" (assignment_expression "pcVar5 = strchr(pcVar6,0x2f)" identifier = (call_expression "strchr(pcVar6,0x2f)" identifier (argument_list "(pcVar6,0x2f)" ( identifier , number_literal )))) ;) (expression_statement "lVar2 = DAT_002b52f8;" (assignment_expression "lVar2 = DAT_002b52f8" identifier = identifier) ;) (if_statement "if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }" if (parenthesized_expression "((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0))" ( (binary_expression "(pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)" (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)" ( (comma_expression "pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0" (assignment_expression "pcVar6 = strstr(pcVar6,".so.")" identifier = (call_expression "strstr(pcVar6,".so.")" identifier (argument_list "(pcVar6,".so.")" ( identifier , (string_literal "".so."" " string_content ") )))) , (comma_expression "lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0" (assignment_expression "lVar2 = DAT_002b52f8" identifier = identifier) , (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }" { (expression_statement "lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));" (assignment_expression "lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20))" identifier = (call_expression "bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20))" identifier (argument_list "(*(undefined8 *)(param_1 + 0x20))" ( (pointer_expression "*(undefined8 *)(param_1 + 0x20)" * (cast_expression "(undefined8 *)(param_1 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) )))) ;) (if_statement "if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }" { (expression_statement "lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));" (assignment_expression "lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10))" identifier = (call_expression "lbasename(*(undefined8 *)(param_1 + 0x10))" identifier (argument_list "(*(undefined8 *)(param_1 + 0x10))" ( (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) )))) ;) })) (expression_statement "iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));" (assignment_expression "iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)))" identifier = (call_expression "filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)))" identifier (argument_list "(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)))" ( identifier , (pointer_expression "*(long *)(DAT_002b5390 + 0x10)" * (cast_expression "(long *)(DAT_002b5390 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5390 + 0x10)" ( (binary_expression "DAT_002b5390 + 0x10" identifier + number_literal) )))) , (binary_expression "pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10))" identifier + (parenthesized_expression "(4 - *(long *)(DAT_002b5390 + 0x10))" ( (binary_expression "4 - *(long *)(DAT_002b5390 + 0x10)" number_literal - (pointer_expression "*(long *)(DAT_002b5390 + 0x10)" * (cast_expression "(long *)(DAT_002b5390 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5390 + 0x10)" ( (binary_expression "DAT_002b5390 + 0x10" identifier + number_literal) ))))) ))) )))) ;) (expression_statement "lVar2 = DAT_002b52f8;" (assignment_expression "lVar2 = DAT_002b52f8" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }" { (expression_statement "uVar1 = *(undefined8 *)(DAT_002b5390 + 8);" (assignment_expression "uVar1 = *(undefined8 *)(DAT_002b5390 + 8)" identifier = (pointer_expression "*(undefined8 *)(DAT_002b5390 + 8)" * (cast_expression "(undefined8 *)(DAT_002b5390 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5390 + 8)" ( (binary_expression "DAT_002b5390 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);" (assignment_expression "uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(DAT_002b5390 + 0x10)" * (cast_expression "(undefined8 *)(DAT_002b5390 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5390 + 0x10)" ( (binary_expression "DAT_002b5390 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);" (assignment_expression "uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5)" identifier = (call_expression "dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5)" identifier (argument_list "(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5)" ( number_literal , (string_literal ""%P: warning: %s, needed by %pB, may conflict with %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00129380(uVar8,uVar9,uVar1,lVar7);" (call_expression "FUN_00129380(uVar8,uVar9,uVar1,lVar7)" identifier (argument_list "(uVar8,uVar9,uVar1,lVar7)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "lVar2 = DAT_002b52f8;" (assignment_expression "lVar2 = DAT_002b52f8" identifier = identifier) ;) })) })) })) }) (else_clause "else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }" else (compound_statement "{\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }" { (expression_statement "uVar1 = *(undefined8 *)(param_1 + 0x20);" (assignment_expression "uVar1 = *(undefined8 *)(param_1 + 0x20)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x20)" * (cast_expression "(undefined8 *)(param_1 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5)" identifier = (call_expression "dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5)" identifier (argument_list "(0,"%P: %pB: bfd_stat failed: %E\n",5)" ( number_literal , (string_literal ""%P: %pB: bfd_stat failed: %E\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00129380(uVar9,uVar1);" (call_expression "FUN_00129380(uVar9,uVar1)" identifier (argument_list "(uVar9,uVar1)" ( identifier , identifier ))) ;) (expression_statement "lVar2 = DAT_002b52f8;" (assignment_expression "lVar2 = DAT_002b52f8" identifier = identifier) ;) }))) })) (expression_statement "DAT_002b52f8 = lVar2;" (assignment_expression "DAT_002b52f8 = lVar2" identifier = identifier) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void gldelf_i386_stat_needed(lang_input_statement_type *s)\n\n{\n  bfd *pbVar1;\n  lang_input_statement_type *plVar2;\n  int iVar3;\n  ulong uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  long lVar7;\n  stat st;\n  \n  if ((global_found == (lang_input_statement_type *)0x0) && (s->the_bfd != (bfd *)0x0)) {\n    uVar4 = bfd_elf_get_dyn_lib_class(s->the_bfd);\n    plVar2 = global_found;\n    if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(s->the_bfd,&st);\n      if (iVar3 == 0) {\n        if (((st.st_dev != global_stat.st_dev) || (global_stat.st_ino != st.st_ino)) ||\n           (plVar2 = s, st.st_ino == 0)) {\n          pcVar6 = global_needed->name;\n          pcVar5 = strchr(pcVar6,0x2f);\n          plVar2 = global_found;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), plVar2 = global_found, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(s->the_bfd);\n            if (lVar7 == 0) {\n              lVar7 = lbasename(s->filename);\n            }\n            iVar3 = filename_ncmp(lVar7,global_needed->name,pcVar6 + (4 - (long)global_needed->name)\n                                 );\n            plVar2 = global_found;\n            if (iVar3 == 0) {\n              pbVar1 = global_needed->by;\n              pcVar6 = global_needed->name;\n              pcVar5 = (char *)dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",\n                                         5);\n              einfo(pcVar5,pcVar6,pbVar1,lVar7);\n              plVar2 = global_found;\n            }\n          }\n        }\n      }\n      else {\n        pbVar1 = s->the_bfd;\n        pcVar6 = (char *)dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        einfo(pcVar6,pbVar1);\n        plVar2 = global_found;\n      }\n    }\n    global_found = plVar2;\n    return;\n  }\n  return;\n}\n\n" (function_definition "void gldelf_i386_stat_needed(lang_input_statement_type *s)\n\n{\n  bfd *pbVar1;\n  lang_input_statement_type *plVar2;\n  int iVar3;\n  ulong uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  long lVar7;\n  stat st;\n  \n  if ((global_found == (lang_input_statement_type *)0x0) && (s->the_bfd != (bfd *)0x0)) {\n    uVar4 = bfd_elf_get_dyn_lib_class(s->the_bfd);\n    plVar2 = global_found;\n    if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(s->the_bfd,&st);\n      if (iVar3 == 0) {\n        if (((st.st_dev != global_stat.st_dev) || (global_stat.st_ino != st.st_ino)) ||\n           (plVar2 = s, st.st_ino == 0)) {\n          pcVar6 = global_needed->name;\n          pcVar5 = strchr(pcVar6,0x2f);\n          plVar2 = global_found;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), plVar2 = global_found, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(s->the_bfd);\n            if (lVar7 == 0) {\n              lVar7 = lbasename(s->filename);\n            }\n            iVar3 = filename_ncmp(lVar7,global_needed->name,pcVar6 + (4 - (long)global_needed->name)\n                                 );\n            plVar2 = global_found;\n            if (iVar3 == 0) {\n              pbVar1 = global_needed->by;\n              pcVar6 = global_needed->name;\n              pcVar5 = (char *)dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",\n                                         5);\n              einfo(pcVar5,pcVar6,pbVar1,lVar7);\n              plVar2 = global_found;\n            }\n          }\n        }\n      }\n      else {\n        pbVar1 = s->the_bfd;\n        pcVar6 = (char *)dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        einfo(pcVar6,pbVar1);\n        plVar2 = global_found;\n      }\n    }\n    global_found = plVar2;\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "gldelf_i386_stat_needed(lang_input_statement_type *s)" identifier (parameter_list "(lang_input_statement_type *s)" ( (parameter_declaration "lang_input_statement_type *s" type_identifier (pointer_declarator "*s" * identifier)) ))) (compound_statement "{\n  bfd *pbVar1;\n  lang_input_statement_type *plVar2;\n  int iVar3;\n  ulong uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  long lVar7;\n  stat st;\n  \n  if ((global_found == (lang_input_statement_type *)0x0) && (s->the_bfd != (bfd *)0x0)) {\n    uVar4 = bfd_elf_get_dyn_lib_class(s->the_bfd);\n    plVar2 = global_found;\n    if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(s->the_bfd,&st);\n      if (iVar3 == 0) {\n        if (((st.st_dev != global_stat.st_dev) || (global_stat.st_ino != st.st_ino)) ||\n           (plVar2 = s, st.st_ino == 0)) {\n          pcVar6 = global_needed->name;\n          pcVar5 = strchr(pcVar6,0x2f);\n          plVar2 = global_found;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), plVar2 = global_found, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(s->the_bfd);\n            if (lVar7 == 0) {\n              lVar7 = lbasename(s->filename);\n            }\n            iVar3 = filename_ncmp(lVar7,global_needed->name,pcVar6 + (4 - (long)global_needed->name)\n                                 );\n            plVar2 = global_found;\n            if (iVar3 == 0) {\n              pbVar1 = global_needed->by;\n              pcVar6 = global_needed->name;\n              pcVar5 = (char *)dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",\n                                         5);\n              einfo(pcVar5,pcVar6,pbVar1,lVar7);\n              plVar2 = global_found;\n            }\n          }\n        }\n      }\n      else {\n        pbVar1 = s->the_bfd;\n        pcVar6 = (char *)dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        einfo(pcVar6,pbVar1);\n        plVar2 = global_found;\n      }\n    }\n    global_found = plVar2;\n    return;\n  }\n  return;\n}" { (declaration "bfd *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "lang_input_statement_type *plVar2;" type_identifier (pointer_declarator "*plVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "stat st;" type_identifier identifier ;) (if_statement "if ((global_found == (lang_input_statement_type *)0x0) && (s->the_bfd != (bfd *)0x0)) {\n    uVar4 = bfd_elf_get_dyn_lib_class(s->the_bfd);\n    plVar2 = global_found;\n    if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(s->the_bfd,&st);\n      if (iVar3 == 0) {\n        if (((st.st_dev != global_stat.st_dev) || (global_stat.st_ino != st.st_ino)) ||\n           (plVar2 = s, st.st_ino == 0)) {\n          pcVar6 = global_needed->name;\n          pcVar5 = strchr(pcVar6,0x2f);\n          plVar2 = global_found;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), plVar2 = global_found, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(s->the_bfd);\n            if (lVar7 == 0) {\n              lVar7 = lbasename(s->filename);\n            }\n            iVar3 = filename_ncmp(lVar7,global_needed->name,pcVar6 + (4 - (long)global_needed->name)\n                                 );\n            plVar2 = global_found;\n            if (iVar3 == 0) {\n              pbVar1 = global_needed->by;\n              pcVar6 = global_needed->name;\n              pcVar5 = (char *)dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",\n                                         5);\n              einfo(pcVar5,pcVar6,pbVar1,lVar7);\n              plVar2 = global_found;\n            }\n          }\n        }\n      }\n      else {\n        pbVar1 = s->the_bfd;\n        pcVar6 = (char *)dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        einfo(pcVar6,pbVar1);\n        plVar2 = global_found;\n      }\n    }\n    global_found = plVar2;\n    return;\n  }" if (parenthesized_expression "((global_found == (lang_input_statement_type *)0x0) && (s->the_bfd != (bfd *)0x0))" ( (binary_expression "(global_found == (lang_input_statement_type *)0x0) && (s->the_bfd != (bfd *)0x0)" (parenthesized_expression "(global_found == (lang_input_statement_type *)0x0)" ( (binary_expression "global_found == (lang_input_statement_type *)0x0" identifier == (cast_expression "(lang_input_statement_type *)0x0" ( (type_descriptor "lang_input_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(s->the_bfd != (bfd *)0x0)" ( (binary_expression "s->the_bfd != (bfd *)0x0" (field_expression "s->the_bfd" identifier -> field_identifier) != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    uVar4 = bfd_elf_get_dyn_lib_class(s->the_bfd);\n    plVar2 = global_found;\n    if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(s->the_bfd,&st);\n      if (iVar3 == 0) {\n        if (((st.st_dev != global_stat.st_dev) || (global_stat.st_ino != st.st_ino)) ||\n           (plVar2 = s, st.st_ino == 0)) {\n          pcVar6 = global_needed->name;\n          pcVar5 = strchr(pcVar6,0x2f);\n          plVar2 = global_found;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), plVar2 = global_found, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(s->the_bfd);\n            if (lVar7 == 0) {\n              lVar7 = lbasename(s->filename);\n            }\n            iVar3 = filename_ncmp(lVar7,global_needed->name,pcVar6 + (4 - (long)global_needed->name)\n                                 );\n            plVar2 = global_found;\n            if (iVar3 == 0) {\n              pbVar1 = global_needed->by;\n              pcVar6 = global_needed->name;\n              pcVar5 = (char *)dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",\n                                         5);\n              einfo(pcVar5,pcVar6,pbVar1,lVar7);\n              plVar2 = global_found;\n            }\n          }\n        }\n      }\n      else {\n        pbVar1 = s->the_bfd;\n        pcVar6 = (char *)dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        einfo(pcVar6,pbVar1);\n        plVar2 = global_found;\n      }\n    }\n    global_found = plVar2;\n    return;\n  }" { (expression_statement "uVar4 = bfd_elf_get_dyn_lib_class(s->the_bfd);" (assignment_expression "uVar4 = bfd_elf_get_dyn_lib_class(s->the_bfd)" identifier = (call_expression "bfd_elf_get_dyn_lib_class(s->the_bfd)" identifier (argument_list "(s->the_bfd)" ( (field_expression "s->the_bfd" identifier -> field_identifier) )))) ;) (expression_statement "plVar2 = global_found;" (assignment_expression "plVar2 = global_found" identifier = identifier) ;) (if_statement "if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(s->the_bfd,&st);\n      if (iVar3 == 0) {\n        if (((st.st_dev != global_stat.st_dev) || (global_stat.st_ino != st.st_ino)) ||\n           (plVar2 = s, st.st_ino == 0)) {\n          pcVar6 = global_needed->name;\n          pcVar5 = strchr(pcVar6,0x2f);\n          plVar2 = global_found;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), plVar2 = global_found, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(s->the_bfd);\n            if (lVar7 == 0) {\n              lVar7 = lbasename(s->filename);\n            }\n            iVar3 = filename_ncmp(lVar7,global_needed->name,pcVar6 + (4 - (long)global_needed->name)\n                                 );\n            plVar2 = global_found;\n            if (iVar3 == 0) {\n              pbVar1 = global_needed->by;\n              pcVar6 = global_needed->name;\n              pcVar5 = (char *)dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",\n                                         5);\n              einfo(pcVar5,pcVar6,pbVar1,lVar7);\n              plVar2 = global_found;\n            }\n          }\n        }\n      }\n      else {\n        pbVar1 = s->the_bfd;\n        pcVar6 = (char *)dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        einfo(pcVar6,pbVar1);\n        plVar2 = global_found;\n      }\n    }" if (parenthesized_expression "((uVar4 & 1) == 0)" ( (binary_expression "(uVar4 & 1) == 0" (parenthesized_expression "(uVar4 & 1)" ( (binary_expression "uVar4 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar3 = bfd_stat(s->the_bfd,&st);\n      if (iVar3 == 0) {\n        if (((st.st_dev != global_stat.st_dev) || (global_stat.st_ino != st.st_ino)) ||\n           (plVar2 = s, st.st_ino == 0)) {\n          pcVar6 = global_needed->name;\n          pcVar5 = strchr(pcVar6,0x2f);\n          plVar2 = global_found;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), plVar2 = global_found, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(s->the_bfd);\n            if (lVar7 == 0) {\n              lVar7 = lbasename(s->filename);\n            }\n            iVar3 = filename_ncmp(lVar7,global_needed->name,pcVar6 + (4 - (long)global_needed->name)\n                                 );\n            plVar2 = global_found;\n            if (iVar3 == 0) {\n              pbVar1 = global_needed->by;\n              pcVar6 = global_needed->name;\n              pcVar5 = (char *)dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",\n                                         5);\n              einfo(pcVar5,pcVar6,pbVar1,lVar7);\n              plVar2 = global_found;\n            }\n          }\n        }\n      }\n      else {\n        pbVar1 = s->the_bfd;\n        pcVar6 = (char *)dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        einfo(pcVar6,pbVar1);\n        plVar2 = global_found;\n      }\n    }" { (expression_statement "iVar3 = bfd_stat(s->the_bfd,&st);" (assignment_expression "iVar3 = bfd_stat(s->the_bfd,&st)" identifier = (call_expression "bfd_stat(s->the_bfd,&st)" identifier (argument_list "(s->the_bfd,&st)" ( (field_expression "s->the_bfd" identifier -> field_identifier) , (pointer_expression "&st" & identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n        if (((st.st_dev != global_stat.st_dev) || (global_stat.st_ino != st.st_ino)) ||\n           (plVar2 = s, st.st_ino == 0)) {\n          pcVar6 = global_needed->name;\n          pcVar5 = strchr(pcVar6,0x2f);\n          plVar2 = global_found;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), plVar2 = global_found, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(s->the_bfd);\n            if (lVar7 == 0) {\n              lVar7 = lbasename(s->filename);\n            }\n            iVar3 = filename_ncmp(lVar7,global_needed->name,pcVar6 + (4 - (long)global_needed->name)\n                                 );\n            plVar2 = global_found;\n            if (iVar3 == 0) {\n              pbVar1 = global_needed->by;\n              pcVar6 = global_needed->name;\n              pcVar5 = (char *)dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",\n                                         5);\n              einfo(pcVar5,pcVar6,pbVar1,lVar7);\n              plVar2 = global_found;\n            }\n          }\n        }\n      }\n      else {\n        pbVar1 = s->the_bfd;\n        pcVar6 = (char *)dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        einfo(pcVar6,pbVar1);\n        plVar2 = global_found;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        if (((st.st_dev != global_stat.st_dev) || (global_stat.st_ino != st.st_ino)) ||\n           (plVar2 = s, st.st_ino == 0)) {\n          pcVar6 = global_needed->name;\n          pcVar5 = strchr(pcVar6,0x2f);\n          plVar2 = global_found;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), plVar2 = global_found, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(s->the_bfd);\n            if (lVar7 == 0) {\n              lVar7 = lbasename(s->filename);\n            }\n            iVar3 = filename_ncmp(lVar7,global_needed->name,pcVar6 + (4 - (long)global_needed->name)\n                                 );\n            plVar2 = global_found;\n            if (iVar3 == 0) {\n              pbVar1 = global_needed->by;\n              pcVar6 = global_needed->name;\n              pcVar5 = (char *)dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",\n                                         5);\n              einfo(pcVar5,pcVar6,pbVar1,lVar7);\n              plVar2 = global_found;\n            }\n          }\n        }\n      }" { (if_statement "if (((st.st_dev != global_stat.st_dev) || (global_stat.st_ino != st.st_ino)) ||\n           (plVar2 = s, st.st_ino == 0)) {\n          pcVar6 = global_needed->name;\n          pcVar5 = strchr(pcVar6,0x2f);\n          plVar2 = global_found;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), plVar2 = global_found, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(s->the_bfd);\n            if (lVar7 == 0) {\n              lVar7 = lbasename(s->filename);\n            }\n            iVar3 = filename_ncmp(lVar7,global_needed->name,pcVar6 + (4 - (long)global_needed->name)\n                                 );\n            plVar2 = global_found;\n            if (iVar3 == 0) {\n              pbVar1 = global_needed->by;\n              pcVar6 = global_needed->name;\n              pcVar5 = (char *)dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",\n                                         5);\n              einfo(pcVar5,pcVar6,pbVar1,lVar7);\n              plVar2 = global_found;\n            }\n          }\n        }" if (parenthesized_expression "(((st.st_dev != global_stat.st_dev) || (global_stat.st_ino != st.st_ino)) ||\n           (plVar2 = s, st.st_ino == 0))" ( (binary_expression "((st.st_dev != global_stat.st_dev) || (global_stat.st_ino != st.st_ino)) ||\n           (plVar2 = s, st.st_ino == 0)" (parenthesized_expression "((st.st_dev != global_stat.st_dev) || (global_stat.st_ino != st.st_ino))" ( (binary_expression "(st.st_dev != global_stat.st_dev) || (global_stat.st_ino != st.st_ino)" (parenthesized_expression "(st.st_dev != global_stat.st_dev)" ( (binary_expression "st.st_dev != global_stat.st_dev" (field_expression "st.st_dev" identifier . field_identifier) != (field_expression "global_stat.st_dev" identifier . field_identifier)) )) || (parenthesized_expression "(global_stat.st_ino != st.st_ino)" ( (binary_expression "global_stat.st_ino != st.st_ino" (field_expression "global_stat.st_ino" identifier . field_identifier) != (field_expression "st.st_ino" identifier . field_identifier)) ))) )) || (parenthesized_expression "(plVar2 = s, st.st_ino == 0)" ( (comma_expression "plVar2 = s, st.st_ino == 0" (assignment_expression "plVar2 = s" identifier = identifier) , (binary_expression "st.st_ino == 0" (field_expression "st.st_ino" identifier . field_identifier) == number_literal)) ))) )) (compound_statement "{\n          pcVar6 = global_needed->name;\n          pcVar5 = strchr(pcVar6,0x2f);\n          plVar2 = global_found;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), plVar2 = global_found, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(s->the_bfd);\n            if (lVar7 == 0) {\n              lVar7 = lbasename(s->filename);\n            }\n            iVar3 = filename_ncmp(lVar7,global_needed->name,pcVar6 + (4 - (long)global_needed->name)\n                                 );\n            plVar2 = global_found;\n            if (iVar3 == 0) {\n              pbVar1 = global_needed->by;\n              pcVar6 = global_needed->name;\n              pcVar5 = (char *)dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",\n                                         5);\n              einfo(pcVar5,pcVar6,pbVar1,lVar7);\n              plVar2 = global_found;\n            }\n          }\n        }" { (expression_statement "pcVar6 = global_needed->name;" (assignment_expression "pcVar6 = global_needed->name" identifier = (field_expression "global_needed->name" identifier -> field_identifier)) ;) (expression_statement "pcVar5 = strchr(pcVar6,0x2f);" (assignment_expression "pcVar5 = strchr(pcVar6,0x2f)" identifier = (call_expression "strchr(pcVar6,0x2f)" identifier (argument_list "(pcVar6,0x2f)" ( identifier , number_literal )))) ;) (expression_statement "plVar2 = global_found;" (assignment_expression "plVar2 = global_found" identifier = identifier) ;) (if_statement "if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), plVar2 = global_found, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(s->the_bfd);\n            if (lVar7 == 0) {\n              lVar7 = lbasename(s->filename);\n            }\n            iVar3 = filename_ncmp(lVar7,global_needed->name,pcVar6 + (4 - (long)global_needed->name)\n                                 );\n            plVar2 = global_found;\n            if (iVar3 == 0) {\n              pbVar1 = global_needed->by;\n              pcVar6 = global_needed->name;\n              pcVar5 = (char *)dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",\n                                         5);\n              einfo(pcVar5,pcVar6,pbVar1,lVar7);\n              plVar2 = global_found;\n            }\n          }" if (parenthesized_expression "((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), plVar2 = global_found, pcVar6 != (char *)0x0))" ( (binary_expression "(pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), plVar2 = global_found, pcVar6 != (char *)0x0)" (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar6 = strstr(pcVar6,".so."), plVar2 = global_found, pcVar6 != (char *)0x0)" ( (comma_expression "pcVar6 = strstr(pcVar6,".so."), plVar2 = global_found, pcVar6 != (char *)0x0" (assignment_expression "pcVar6 = strstr(pcVar6,".so.")" identifier = (call_expression "strstr(pcVar6,".so.")" identifier (argument_list "(pcVar6,".so.")" ( identifier , (string_literal "".so."" " string_content ") )))) , (comma_expression "plVar2 = global_found, pcVar6 != (char *)0x0" (assignment_expression "plVar2 = global_found" identifier = identifier) , (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n            lVar7 = bfd_elf_get_dt_soname(s->the_bfd);\n            if (lVar7 == 0) {\n              lVar7 = lbasename(s->filename);\n            }\n            iVar3 = filename_ncmp(lVar7,global_needed->name,pcVar6 + (4 - (long)global_needed->name)\n                                 );\n            plVar2 = global_found;\n            if (iVar3 == 0) {\n              pbVar1 = global_needed->by;\n              pcVar6 = global_needed->name;\n              pcVar5 = (char *)dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",\n                                         5);\n              einfo(pcVar5,pcVar6,pbVar1,lVar7);\n              plVar2 = global_found;\n            }\n          }" { (expression_statement "lVar7 = bfd_elf_get_dt_soname(s->the_bfd);" (assignment_expression "lVar7 = bfd_elf_get_dt_soname(s->the_bfd)" identifier = (call_expression "bfd_elf_get_dt_soname(s->the_bfd)" identifier (argument_list "(s->the_bfd)" ( (field_expression "s->the_bfd" identifier -> field_identifier) )))) ;) (if_statement "if (lVar7 == 0) {\n              lVar7 = lbasename(s->filename);\n            }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              lVar7 = lbasename(s->filename);\n            }" { (expression_statement "lVar7 = lbasename(s->filename);" (assignment_expression "lVar7 = lbasename(s->filename)" identifier = (call_expression "lbasename(s->filename)" identifier (argument_list "(s->filename)" ( (field_expression "s->filename" identifier -> field_identifier) )))) ;) })) (expression_statement "iVar3 = filename_ncmp(lVar7,global_needed->name,pcVar6 + (4 - (long)global_needed->name)\n                                 );" (assignment_expression "iVar3 = filename_ncmp(lVar7,global_needed->name,pcVar6 + (4 - (long)global_needed->name)\n                                 )" identifier = (call_expression "filename_ncmp(lVar7,global_needed->name,pcVar6 + (4 - (long)global_needed->name)\n                                 )" identifier (argument_list "(lVar7,global_needed->name,pcVar6 + (4 - (long)global_needed->name)\n                                 )" ( identifier , (field_expression "global_needed->name" identifier -> field_identifier) , (binary_expression "pcVar6 + (4 - (long)global_needed->name)" identifier + (parenthesized_expression "(4 - (long)global_needed->name)" ( (binary_expression "4 - (long)global_needed->name" number_literal - (cast_expression "(long)global_needed->name" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "global_needed->name" identifier -> field_identifier))) ))) )))) ;) (expression_statement "plVar2 = global_found;" (assignment_expression "plVar2 = global_found" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n              pbVar1 = global_needed->by;\n              pcVar6 = global_needed->name;\n              pcVar5 = (char *)dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",\n                                         5);\n              einfo(pcVar5,pcVar6,pbVar1,lVar7);\n              plVar2 = global_found;\n            }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n              pbVar1 = global_needed->by;\n              pcVar6 = global_needed->name;\n              pcVar5 = (char *)dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",\n                                         5);\n              einfo(pcVar5,pcVar6,pbVar1,lVar7);\n              plVar2 = global_found;\n            }" { (expression_statement "pbVar1 = global_needed->by;" (assignment_expression "pbVar1 = global_needed->by" identifier = (field_expression "global_needed->by" identifier -> field_identifier)) ;) (expression_statement "pcVar6 = global_needed->name;" (assignment_expression "pcVar6 = global_needed->name" identifier = (field_expression "global_needed->name" identifier -> field_identifier)) ;) (expression_statement "pcVar5 = (char *)dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",\n                                         5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",\n                                         5)" identifier = (cast_expression "(char *)dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",\n                                         5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",\n                                         5)" identifier (argument_list "(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",\n                                         5)" ( number_literal , (string_literal ""%P: warning: %s, needed by %pB, may conflict with %s\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar5,pcVar6,pbVar1,lVar7);" (call_expression "einfo(pcVar5,pcVar6,pbVar1,lVar7)" identifier (argument_list "(pcVar5,pcVar6,pbVar1,lVar7)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "plVar2 = global_found;" (assignment_expression "plVar2 = global_found" identifier = identifier) ;) })) })) })) }) (else_clause "else {\n        pbVar1 = s->the_bfd;\n        pcVar6 = (char *)dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        einfo(pcVar6,pbVar1);\n        plVar2 = global_found;\n      }" else (compound_statement "{\n        pbVar1 = s->the_bfd;\n        pcVar6 = (char *)dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        einfo(pcVar6,pbVar1);\n        plVar2 = global_found;\n      }" { (expression_statement "pbVar1 = s->the_bfd;" (assignment_expression "pbVar1 = s->the_bfd" identifier = (field_expression "s->the_bfd" identifier -> field_identifier)) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5)" identifier (argument_list "(0,"%P: %pB: bfd_stat failed: %E\n",5)" ( number_literal , (string_literal ""%P: %pB: bfd_stat failed: %E\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar6,pbVar1);" (call_expression "einfo(pcVar6,pbVar1)" identifier (argument_list "(pcVar6,pbVar1)" ( identifier , identifier ))) ;) (expression_statement "plVar2 = global_found;" (assignment_expression "plVar2 = global_found" identifier = identifier) ;) }))) })) (expression_statement "global_found = plVar2;" (assignment_expression "global_found = plVar2" identifier = identifier) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00136d70(long param_1)\n\n{\n  undefined8 uVar1;\n  long lVar2;\n  int iVar3;\n  ulong uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  long lVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long local_a8;\n  long local_a0;\n  \n  if ((DAT_002b52f8 == 0) && (*(long *)(param_1 + 0x20) != 0)) {\n    uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20));\n    lVar2 = DAT_002b52f8;\n    if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);\n      if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }\n    }\n    DAT_002b52f8 = lVar2;\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00136d70(long param_1)\n\n{\n  undefined8 uVar1;\n  long lVar2;\n  int iVar3;\n  ulong uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  long lVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long local_a8;\n  long local_a0;\n  \n  if ((DAT_002b52f8 == 0) && (*(long *)(param_1 + 0x20) != 0)) {\n    uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20));\n    lVar2 = DAT_002b52f8;\n    if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);\n      if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }\n    }\n    DAT_002b52f8 = lVar2;\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00136d70(long param_1)" identifier (parameter_list "(long param_1)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  long lVar2;\n  int iVar3;\n  ulong uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  long lVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long local_a8;\n  long local_a0;\n  \n  if ((DAT_002b52f8 == 0) && (*(long *)(param_1 + 0x20) != 0)) {\n    uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20));\n    lVar2 = DAT_002b52f8;\n    if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);\n      if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }\n    }\n    DAT_002b52f8 = lVar2;\n    return;\n  }\n  return;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "long local_a8;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_a0;" (sized_type_specifier "long" long) identifier ;) (if_statement "if ((DAT_002b52f8 == 0) && (*(long *)(param_1 + 0x20) != 0)) {\n    uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20));\n    lVar2 = DAT_002b52f8;\n    if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);\n      if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }\n    }\n    DAT_002b52f8 = lVar2;\n    return;\n  }" if (parenthesized_expression "((DAT_002b52f8 == 0) && (*(long *)(param_1 + 0x20) != 0))" ( (binary_expression "(DAT_002b52f8 == 0) && (*(long *)(param_1 + 0x20) != 0)" (parenthesized_expression "(DAT_002b52f8 == 0)" ( (binary_expression "DAT_002b52f8 == 0" identifier == number_literal) )) && (parenthesized_expression "(*(long *)(param_1 + 0x20) != 0)" ( (binary_expression "*(long *)(param_1 + 0x20) != 0" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20));\n    lVar2 = DAT_002b52f8;\n    if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);\n      if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }\n    }\n    DAT_002b52f8 = lVar2;\n    return;\n  }" { (expression_statement "uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20));" (assignment_expression "uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20))" identifier = (call_expression "bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20))" identifier (argument_list "(*(long *)(param_1 + 0x20))" ( (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) )))) ;) (expression_statement "lVar2 = DAT_002b52f8;" (assignment_expression "lVar2 = DAT_002b52f8" identifier = identifier) ;) (if_statement "if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);\n      if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }\n    }" if (parenthesized_expression "((uVar4 & 1) == 0)" ( (binary_expression "(uVar4 & 1) == 0" (parenthesized_expression "(uVar4 & 1)" ( (binary_expression "uVar4 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);\n      if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }\n    }" { (expression_statement "iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);" (assignment_expression "iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8)" identifier = (call_expression "bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x20),&local_a8)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x20)" * (cast_expression "(undefined8 *)(param_1 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) , (pointer_expression "&local_a8" & identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }" { (if_statement "if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }" if (parenthesized_expression "(((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0))" ( (binary_expression "((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)" (parenthesized_expression "((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0))" ( (binary_expression "(local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)" (parenthesized_expression "(local_a8 != DAT_002b5300)" ( (binary_expression "local_a8 != DAT_002b5300" identifier != identifier) )) || (parenthesized_expression "(DAT_002b5308 != local_a0)" ( (binary_expression "DAT_002b5308 != local_a0" identifier != identifier) ))) )) || (parenthesized_expression "(lVar2 = param_1, local_a0 == 0)" ( (comma_expression "lVar2 = param_1, local_a0 == 0" (assignment_expression "lVar2 = param_1" identifier = identifier) , (binary_expression "local_a0 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }" { (expression_statement "pcVar6 = *(char **)(DAT_002b5390 + 0x10);" (assignment_expression "pcVar6 = *(char **)(DAT_002b5390 + 0x10)" identifier = (pointer_expression "*(char **)(DAT_002b5390 + 0x10)" * (cast_expression "(char **)(DAT_002b5390 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_002b5390 + 0x10)" ( (binary_expression "DAT_002b5390 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pcVar5 = strchr(pcVar6,0x2f);" (assignment_expression "pcVar5 = strchr(pcVar6,0x2f)" identifier = (call_expression "strchr(pcVar6,0x2f)" identifier (argument_list "(pcVar6,0x2f)" ( identifier , number_literal )))) ;) (expression_statement "lVar2 = DAT_002b52f8;" (assignment_expression "lVar2 = DAT_002b52f8" identifier = identifier) ;) (if_statement "if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }" if (parenthesized_expression "((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0))" ( (binary_expression "(pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)" (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)" ( (comma_expression "pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0" (assignment_expression "pcVar6 = strstr(pcVar6,".so.")" identifier = (call_expression "strstr(pcVar6,".so.")" identifier (argument_list "(pcVar6,".so.")" ( identifier , (string_literal "".so."" " string_content ") )))) , (comma_expression "lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0" (assignment_expression "lVar2 = DAT_002b52f8" identifier = identifier) , (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }" { (expression_statement "lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));" (assignment_expression "lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20))" identifier = (call_expression "bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20))" identifier (argument_list "(*(undefined8 *)(param_1 + 0x20))" ( (pointer_expression "*(undefined8 *)(param_1 + 0x20)" * (cast_expression "(undefined8 *)(param_1 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) )))) ;) (if_statement "if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }" { (expression_statement "lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));" (assignment_expression "lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10))" identifier = (call_expression "lbasename(*(undefined8 *)(param_1 + 0x10))" identifier (argument_list "(*(undefined8 *)(param_1 + 0x10))" ( (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) )))) ;) })) (expression_statement "iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));" (assignment_expression "iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)))" identifier = (call_expression "filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)))" identifier (argument_list "(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)))" ( identifier , (pointer_expression "*(long *)(DAT_002b5390 + 0x10)" * (cast_expression "(long *)(DAT_002b5390 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5390 + 0x10)" ( (binary_expression "DAT_002b5390 + 0x10" identifier + number_literal) )))) , (binary_expression "pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10))" identifier + (parenthesized_expression "(4 - *(long *)(DAT_002b5390 + 0x10))" ( (binary_expression "4 - *(long *)(DAT_002b5390 + 0x10)" number_literal - (pointer_expression "*(long *)(DAT_002b5390 + 0x10)" * (cast_expression "(long *)(DAT_002b5390 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5390 + 0x10)" ( (binary_expression "DAT_002b5390 + 0x10" identifier + number_literal) ))))) ))) )))) ;) (expression_statement "lVar2 = DAT_002b52f8;" (assignment_expression "lVar2 = DAT_002b52f8" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }" { (expression_statement "uVar1 = *(undefined8 *)(DAT_002b5390 + 8);" (assignment_expression "uVar1 = *(undefined8 *)(DAT_002b5390 + 8)" identifier = (pointer_expression "*(undefined8 *)(DAT_002b5390 + 8)" * (cast_expression "(undefined8 *)(DAT_002b5390 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5390 + 8)" ( (binary_expression "DAT_002b5390 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);" (assignment_expression "uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(DAT_002b5390 + 0x10)" * (cast_expression "(undefined8 *)(DAT_002b5390 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5390 + 0x10)" ( (binary_expression "DAT_002b5390 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);" (assignment_expression "uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5)" identifier = (call_expression "dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5)" identifier (argument_list "(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5)" ( number_literal , (string_literal ""%P: warning: %s, needed by %pB, may conflict with %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00129380(uVar8,uVar9,uVar1,lVar7);" (call_expression "FUN_00129380(uVar8,uVar9,uVar1,lVar7)" identifier (argument_list "(uVar8,uVar9,uVar1,lVar7)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "lVar2 = DAT_002b52f8;" (assignment_expression "lVar2 = DAT_002b52f8" identifier = identifier) ;) })) })) })) }) (else_clause "else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }" else (compound_statement "{\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }" { (expression_statement "uVar1 = *(undefined8 *)(param_1 + 0x20);" (assignment_expression "uVar1 = *(undefined8 *)(param_1 + 0x20)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x20)" * (cast_expression "(undefined8 *)(param_1 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5)" identifier = (call_expression "dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5)" identifier (argument_list "(0,"%P: %pB: bfd_stat failed: %E\n",5)" ( number_literal , (string_literal ""%P: %pB: bfd_stat failed: %E\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00129380(uVar9,uVar1);" (call_expression "FUN_00129380(uVar9,uVar1)" identifier (argument_list "(uVar9,uVar1)" ( identifier , identifier ))) ;) (expression_statement "lVar2 = DAT_002b52f8;" (assignment_expression "lVar2 = DAT_002b52f8" identifier = identifier) ;) }))) })) (expression_statement "DAT_002b52f8 = lVar2;" (assignment_expression "DAT_002b52f8 = lVar2" identifier = identifier) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) || (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (return_statement return ;) })) (return_statement return ;) })))
(function_definition "void FUN_00136d70(long param_1)\n\n{\n  undefined8 uVar1;\n  long lVar2;\n  int iVar3;\n  ulong uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  long lVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long local_a8;\n  long local_a0;\n  \n  if ((DAT_002b52f8 == 0) && (*(long *)(param_1 + 0x20) != 0)) {\n    uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20));\n    lVar2 = DAT_002b52f8;\n    if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);\n      if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }\n    }\n    DAT_002b52f8 = lVar2;\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00136d70(long param_1)" (identifier "FUN_00136d70") (parameter_list "(long param_1)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined8 uVar1;\n  long lVar2;\n  int iVar3;\n  ulong uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  long lVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long local_a8;\n  long local_a0;\n  \n  if ((DAT_002b52f8 == 0) && (*(long *)(param_1 + 0x20) != 0)) {\n    uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20));\n    lVar2 = DAT_002b52f8;\n    if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);\n      if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }\n    }\n    DAT_002b52f8 = lVar2;\n    return;\n  }\n  return;\n}" ({ "{") (declaration "undefined8 uVar1;" (type_identifier "undefined8") (identifier "uVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "ulong uVar4;" (type_identifier "ulong") (identifier "uVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "undefined8 uVar8;" (type_identifier "undefined8") (identifier "uVar8") (; ";")) (declaration "undefined8 uVar9;" (type_identifier "undefined8") (identifier "uVar9") (; ";")) (declaration "long local_a8;" (sized_type_specifier "long" (long "long")) (identifier "local_a8") (; ";")) (declaration "long local_a0;" (sized_type_specifier "long" (long "long")) (identifier "local_a0") (; ";")) (if_statement "if ((DAT_002b52f8 == 0) && (*(long *)(param_1 + 0x20) != 0)) {\n    uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20));\n    lVar2 = DAT_002b52f8;\n    if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);\n      if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }\n    }\n    DAT_002b52f8 = lVar2;\n    return;\n  }" (if "if") (parenthesized_expression "((DAT_002b52f8 == 0) && (*(long *)(param_1 + 0x20) != 0))" (( "(") (binary_expression "(DAT_002b52f8 == 0) && (*(long *)(param_1 + 0x20) != 0)" (parenthesized_expression "(DAT_002b52f8 == 0)" (( "(") (binary_expression "DAT_002b52f8 == 0" (identifier "DAT_002b52f8") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(long *)(param_1 + 0x20) != 0)" (( "(") (binary_expression "*(long *)(param_1 + 0x20) != 0" (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20));\n    lVar2 = DAT_002b52f8;\n    if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);\n      if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }\n    }\n    DAT_002b52f8 = lVar2;\n    return;\n  }" ({ "{") (expression_statement "uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20));" (assignment_expression "uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20))" (identifier "uVar4") (= "=") (call_expression "bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20))" (identifier "bfd_elf_get_dyn_lib_class") (argument_list "(*(long *)(param_1 + 0x20))" (( "(") (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) () ")")))) (; ";")) (expression_statement "lVar2 = DAT_002b52f8;" (assignment_expression "lVar2 = DAT_002b52f8" (identifier "lVar2") (= "=") (identifier "DAT_002b52f8")) (; ";")) (if_statement "if ((uVar4 & 1) == 0) {\n      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);\n      if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }\n    }" (if "if") (parenthesized_expression "((uVar4 & 1) == 0)" (( "(") (binary_expression "(uVar4 & 1) == 0" (parenthesized_expression "(uVar4 & 1)" (( "(") (binary_expression "uVar4 & 1" (identifier "uVar4") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);\n      if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }\n    }" ({ "{") (expression_statement "iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);" (assignment_expression "iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8)" (identifier "iVar3") (= "=") (call_expression "bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8)" (identifier "bfd_stat") (argument_list "(*(undefined8 *)(param_1 + 0x20),&local_a8)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x20)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (pointer_expression "&local_a8" (& "&") (identifier "local_a8")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }\n      else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }\n      }" ({ "{") (if_statement "if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)) {\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0))" (( "(") (binary_expression "((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||\n           (lVar2 = param_1, local_a0 == 0)" (parenthesized_expression "((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0))" (( "(") (binary_expression "(local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)" (parenthesized_expression "(local_a8 != DAT_002b5300)" (( "(") (binary_expression "local_a8 != DAT_002b5300" (identifier "local_a8") (!= "!=") (identifier "DAT_002b5300")) () ")")) (|| "||") (parenthesized_expression "(DAT_002b5308 != local_a0)" (( "(") (binary_expression "DAT_002b5308 != local_a0" (identifier "DAT_002b5308") (!= "!=") (identifier "local_a0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(lVar2 = param_1, local_a0 == 0)" (( "(") (comma_expression "lVar2 = param_1, local_a0 == 0" (assignment_expression "lVar2 = param_1" (identifier "lVar2") (= "=") (identifier "param_1")) (, ",") (binary_expression "local_a0 == 0" (identifier "local_a0") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          pcVar6 = *(char **)(DAT_002b5390 + 0x10);\n          pcVar5 = strchr(pcVar6,0x2f);\n          lVar2 = DAT_002b52f8;\n          if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }\n        }" ({ "{") (expression_statement "pcVar6 = *(char **)(DAT_002b5390 + 0x10);" (assignment_expression "pcVar6 = *(char **)(DAT_002b5390 + 0x10)" (identifier "pcVar6") (= "=") (pointer_expression "*(char **)(DAT_002b5390 + 0x10)" (* "*") (cast_expression "(char **)(DAT_002b5390 + 0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_002b5390 + 0x10)" (( "(") (binary_expression "DAT_002b5390 + 0x10" (identifier "DAT_002b5390") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "pcVar5 = strchr(pcVar6,0x2f);" (assignment_expression "pcVar5 = strchr(pcVar6,0x2f)" (identifier "pcVar5") (= "=") (call_expression "strchr(pcVar6,0x2f)" (identifier "strchr") (argument_list "(pcVar6,0x2f)" (( "(") (identifier "pcVar6") (, ",") (number_literal "0x2f") () ")")))) (; ";")) (expression_statement "lVar2 = DAT_002b52f8;" (assignment_expression "lVar2 = DAT_002b52f8" (identifier "lVar2") (= "=") (identifier "DAT_002b52f8")) (; ";")) (if_statement "if ((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }" (if "if") (parenthesized_expression "((pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0))" (( "(") (binary_expression "(pcVar5 == (char *)0x0) &&\n             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)" (parenthesized_expression "(pcVar5 == (char *)0x0)" (( "(") (binary_expression "pcVar5 == (char *)0x0" (identifier "pcVar5") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)" (( "(") (comma_expression "pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0" (assignment_expression "pcVar6 = strstr(pcVar6,".so.")" (identifier "pcVar6") (= "=") (call_expression "strstr(pcVar6,".so.")" (identifier "strstr") (argument_list "(pcVar6,".so.")" (( "(") (identifier "pcVar6") (, ",") (string_literal "".so."" (" """) (string_content ".so.") (" """)) () ")")))) (, ",") (comma_expression "lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0" (assignment_expression "lVar2 = DAT_002b52f8" (identifier "lVar2") (= "=") (identifier "DAT_002b52f8")) (, ",") (binary_expression "pcVar6 != (char *)0x0" (identifier "pcVar6") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))))) () ")"))) () ")")) (compound_statement "{\n            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));\n            if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }\n            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));\n            lVar2 = DAT_002b52f8;\n            if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }\n          }" ({ "{") (expression_statement "lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));" (assignment_expression "lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20))" (identifier "lVar7") (= "=") (call_expression "bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20))" (identifier "bfd_elf_get_dt_soname") (argument_list "(*(undefined8 *)(param_1 + 0x20))" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x20)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) () ")")))) (; ";")) (if_statement "if (lVar7 == 0) {\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }" (if "if") (parenthesized_expression "(lVar7 == 0)" (( "(") (binary_expression "lVar7 == 0" (identifier "lVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));\n            }" ({ "{") (expression_statement "lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));" (assignment_expression "lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10))" (identifier "lVar7") (= "=") (call_expression "lbasename(*(undefined8 *)(param_1 + 0x10))" (identifier "lbasename") (argument_list "(*(undefined8 *)(param_1 + 0x10))" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) () ")")))) (; ";")) (} "}"))) (expression_statement "iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));" (assignment_expression "iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)))" (identifier "iVar3") (= "=") (call_expression "filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)))" (identifier "filename_ncmp") (argument_list "(lVar7,*(long *)(DAT_002b5390 + 0x10),\n                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)))" (( "(") (identifier "lVar7") (, ",") (pointer_expression "*(long *)(DAT_002b5390 + 0x10)" (* "*") (cast_expression "(long *)(DAT_002b5390 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002b5390 + 0x10)" (( "(") (binary_expression "DAT_002b5390 + 0x10" (identifier "DAT_002b5390") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (binary_expression "pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10))" (identifier "pcVar6") (+ "+") (parenthesized_expression "(4 - *(long *)(DAT_002b5390 + 0x10))" (( "(") (binary_expression "4 - *(long *)(DAT_002b5390 + 0x10)" (number_literal "4") (- "-") (pointer_expression "*(long *)(DAT_002b5390 + 0x10)" (* "*") (cast_expression "(long *)(DAT_002b5390 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002b5390 + 0x10)" (( "(") (binary_expression "DAT_002b5390 + 0x10" (identifier "DAT_002b5390") (+ "+") (number_literal "0x10")) () ")"))))) () ")"))) () ")")))) (; ";")) (expression_statement "lVar2 = DAT_002b52f8;" (assignment_expression "lVar2 = DAT_002b52f8" (identifier "lVar2") (= "=") (identifier "DAT_002b52f8")) (; ";")) (if_statement "if (iVar3 == 0) {\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);\n              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);\n              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);\n              FUN_00129380(uVar8,uVar9,uVar1,lVar7);\n              lVar2 = DAT_002b52f8;\n            }" ({ "{") (expression_statement "uVar1 = *(undefined8 *)(DAT_002b5390 + 8);" (assignment_expression "uVar1 = *(undefined8 *)(DAT_002b5390 + 8)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined8 *)(DAT_002b5390 + 8)" (* "*") (cast_expression "(undefined8 *)(DAT_002b5390 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002b5390 + 8)" (( "(") (binary_expression "DAT_002b5390 + 8" (identifier "DAT_002b5390") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);" (assignment_expression "uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined8 *)(DAT_002b5390 + 0x10)" (* "*") (cast_expression "(undefined8 *)(DAT_002b5390 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002b5390 + 0x10)" (( "(") (binary_expression "DAT_002b5390 + 0x10" (identifier "DAT_002b5390") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);" (assignment_expression "uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5)" (identifier "uVar8") (= "=") (call_expression "dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5)" (identifier "dcgettext") (argument_list "(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%P: warning: %s, needed by %pB, may conflict with %s\n"" (" """) (string_content "%P: warning: %s, needed by %pB, may conflict with %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00129380(uVar8,uVar9,uVar1,lVar7);" (call_expression "FUN_00129380(uVar8,uVar9,uVar1,lVar7)" (identifier "FUN_00129380") (argument_list "(uVar8,uVar9,uVar1,lVar7)" (( "(") (identifier "uVar8") (, ",") (identifier "uVar9") (, ",") (identifier "uVar1") (, ",") (identifier "lVar7") () ")"))) (; ";")) (expression_statement "lVar2 = DAT_002b52f8;" (assignment_expression "lVar2 = DAT_002b52f8" (identifier "lVar2") (= "=") (identifier "DAT_002b52f8")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }" (else "else") (compound_statement "{\n        uVar1 = *(undefined8 *)(param_1 + 0x20);\n        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);\n        FUN_00129380(uVar9,uVar1);\n        lVar2 = DAT_002b52f8;\n      }" ({ "{") (expression_statement "uVar1 = *(undefined8 *)(param_1 + 0x20);" (assignment_expression "uVar1 = *(undefined8 *)(param_1 + 0x20)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x20)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5)" (identifier "dcgettext") (argument_list "(0,"%P: %pB: bfd_stat failed: %E\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%P: %pB: bfd_stat failed: %E\n"" (" """) (string_content "%P: %pB: bfd_stat failed: %E") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00129380(uVar9,uVar1);" (call_expression "FUN_00129380(uVar9,uVar1)" (identifier "FUN_00129380") (argument_list "(uVar9,uVar1)" (( "(") (identifier "uVar9") (, ",") (identifier "uVar1") () ")"))) (; ";")) (expression_statement "lVar2 = DAT_002b52f8;" (assignment_expression "lVar2 = DAT_002b52f8" (identifier "lVar2") (= "=") (identifier "DAT_002b52f8")) (; ";")) (} "}")))) (} "}"))) (expression_statement "DAT_002b52f8 = lVar2;" (assignment_expression "DAT_002b52f8 = lVar2" (identifier "DAT_002b52f8") (= "=") (identifier "lVar2")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *s)

{
  type_2 *pbVar1;
  type_1 *plVar2;
  int var_5;
  type_3 var_3;
  char *var_7;
  char *var_9;
  long var_11;
  type_4 st;
  
  if ((var_1 == (type_1 *)0x0) && (s->the_bfd != (type_2 *)0x0)) {
    var_3 = var_2(s->the_bfd);
    plVar2 = var_1;
    if ((var_3 & 1) == 0) {
      var_5 = var_4(s->the_bfd,&st);
      if (var_5 == 0) {
        if (((st.st_dev != global_stat.st_dev) || (global_stat.st_ino != st.st_ino)) ||
           (plVar2 = s, st.st_ino == 0)) {
          var_9 = global_needed->name;
          var_7 = var_6(var_9,0x2f);
          plVar2 = var_1;
          if ((var_7 == (char *)0x0) &&
             (var_9 = var_8(var_9,".so."), plVar2 = var_1, var_9 != (char *)0x0)) {
            var_11 = var_10(s->the_bfd);
            if (var_11 == 0) {
              var_11 = var_12(s->filename);
            }
            var_5 = var_13(var_11,global_needed->name,var_9 + (4 - (long)global_needed->name)
                                 );
            plVar2 = var_1;
            if (var_5 == 0) {
              pbVar1 = global_needed->by;
              var_9 = global_needed->name;
              var_7 = (char *)var_14(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",
                                         5);
              var_15(var_7,var_9,pbVar1,var_11);
              plVar2 = var_1;
            }
          }
        }
      }
      else {
        pbVar1 = s->the_bfd;
        var_9 = (char *)var_14(0,"%P: %pB: bfd_stat failed: %E\n",5);
        var_15(var_9,pbVar1);
        plVar2 = var_1;
      }
    }
    var_1 = plVar2;
    return;
  }
  return;
}


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

void MASKED(long param_1)

{
  undefined8 uVar1;
  long lVar2;
  int iVar3;
  ulong uVar4;
  char *pcVar5;
  char *pcVar6;
  long lVar7;
  undefined8 uVar8;
  undefined8 uVar9;
  long local_a8;
  long local_a0;
  
  if ((DAT_002b52f8 == 0) && (*(long *)(param_1 + 0x20) != 0)) {
    uVar4 = bfd_elf_get_dyn_lib_class(*(long *)(param_1 + 0x20));
    lVar2 = DAT_002b52f8;
    if ((uVar4 & 1) == 0) {
      iVar3 = bfd_stat(*(undefined8 *)(param_1 + 0x20),&local_a8);
      if (iVar3 == 0) {
        if (((local_a8 != DAT_002b5300) || (DAT_002b5308 != local_a0)) ||
           (lVar2 = param_1, local_a0 == 0)) {
          pcVar6 = *(char **)(DAT_002b5390 + 0x10);
          pcVar5 = strchr(pcVar6,0x2f);
          lVar2 = DAT_002b52f8;
          if ((pcVar5 == (char *)0x0) &&
             (pcVar6 = strstr(pcVar6,".so."), lVar2 = DAT_002b52f8, pcVar6 != (char *)0x0)) {
            lVar7 = bfd_elf_get_dt_soname(*(undefined8 *)(param_1 + 0x20));
            if (lVar7 == 0) {
              lVar7 = lbasename(*(undefined8 *)(param_1 + 0x10));
            }
            iVar3 = filename_ncmp(lVar7,*(long *)(DAT_002b5390 + 0x10),
                                  pcVar6 + (4 - *(long *)(DAT_002b5390 + 0x10)));
            lVar2 = DAT_002b52f8;
            if (iVar3 == 0) {
              uVar1 = *(undefined8 *)(DAT_002b5390 + 8);
              uVar9 = *(undefined8 *)(DAT_002b5390 + 0x10);
              uVar8 = dcgettext(0,"%P: warning: %s, needed by %pB, may conflict with %s\n",5);
              FUN_00129380(uVar8,uVar9,uVar1,lVar7);
              lVar2 = DAT_002b52f8;
            }
          }
        }
      }
      else {
        uVar1 = *(undefined8 *)(param_1 + 0x20);
        uVar9 = dcgettext(0,"%P: %pB: bfd_stat failed: %E\n",5);
        FUN_00129380(uVar9,uVar1);
        lVar2 = DAT_002b52f8;
      }
    }
    DAT_002b52f8 = lVar2;
    return;
  }
  return;
}

