
int closest_target_match(bfd_target *target,void *data)

{
  byte *first;
  bfd_target *pbVar1;
  int iVar2;
  int iVar3;
  long lVar4;
  byte *pbVar5;
  byte *pbVar6;
  bool bVar7;
  bool bVar8;
  bool bVar9;
  
  if (command_line.endian == ENDIAN_BIG) {
    if (target->byteorder != BFD_ENDIAN_BIG) {
      return 0;
    }
    bVar7 = target->flavour < *(bfd_flavour *)((long)data + 8);
    bVar9 = target->flavour == *(bfd_flavour *)((long)data + 8);
  }
  else {
    if ((command_line.endian == ENDIAN_LITTLE) && (target->byteorder != BFD_ENDIAN_LITTLE)) {
      return 0;
    }
    bVar7 = target->flavour < *(bfd_flavour *)((long)data + 8);
    bVar9 = target->flavour == *(bfd_flavour *)((long)data + 8);
  }
  pbVar1 = winner;
  if (bVar9) {
    first = (byte *)target->name;
    lVar4 = 10;
    pbVar5 = first;
    pbVar6 = (byte *)"elf32-big";
    do {
      if (lVar4 == 0) break;
      lVar4 = lVar4 + -1;
      bVar7 = *pbVar5 < *pbVar6;
      bVar9 = *pbVar5 == *pbVar6;
      pbVar5 = pbVar5 + 1;
      pbVar6 = pbVar6 + 1;
    } while (bVar9);
    bVar8 = false;
    bVar7 = (!bVar7 && !bVar9) == bVar7;
    if (!bVar7) {
      lVar4 = 10;
      pbVar5 = first;
      pbVar6 = (byte *)"elf64-big";
      do {
        if (lVar4 == 0) break;
        lVar4 = lVar4 + -1;
        bVar8 = *pbVar5 < *pbVar6;
        bVar7 = *pbVar5 == *pbVar6;
        pbVar5 = pbVar5 + 1;
        pbVar6 = pbVar6 + 1;
      } while (bVar7);
      bVar9 = false;
      bVar7 = (!bVar8 && !bVar7) == bVar8;
      if (!bVar7) {
        lVar4 = 0xd;
        pbVar5 = first;
        pbVar6 = (byte *)"elf32-little";
        do {
          if (lVar4 == 0) break;
          lVar4 = lVar4 + -1;
          bVar9 = *pbVar5 < *pbVar6;
          bVar7 = *pbVar5 == *pbVar6;
          pbVar5 = pbVar5 + 1;
          pbVar6 = pbVar6 + 1;
        } while (bVar7);
        bVar8 = false;
        bVar7 = (!bVar9 && !bVar7) == bVar9;
        if (!bVar7) {
          lVar4 = 0xd;
          pbVar5 = first;
          pbVar6 = (byte *)"elf64-little";
          do {
            if (lVar4 == 0) break;
            lVar4 = lVar4 + -1;
            bVar8 = *pbVar5 < *pbVar6;
            bVar7 = *pbVar5 == *pbVar6;
            pbVar5 = pbVar5 + 1;
            pbVar6 = pbVar6 + 1;
          } while (bVar7);
          if (((!bVar8 && !bVar7) != bVar8) && (pbVar1 = target, winner != (bfd_target *)0x0)) {
                    /* WARNING: Load size is inaccurate */
            iVar2 = name_compare((char *)first,*data);
                    /* WARNING: Load size is inaccurate */
            iVar3 = name_compare(winner->name,*data);
            pbVar1 = target;
            if (iVar2 <= iVar3) {
              return 0;
            }
          }
        }
      }
    }
  }
  winner = pbVar1;
  return 0;
}



undefined8 FUN_00118700(undefined8 *param_1,undefined8 *param_2)

{
  byte *pbVar1;
  undefined8 *puVar2;
  int iVar3;
  int iVar4;
  long lVar5;
  byte *pbVar6;
  byte *pbVar7;
  bool bVar8;
  bool bVar9;
  bool bVar10;
  
  if (DAT_002a67d4 == 1) {
    if (*(int *)((long)param_1 + 0xc) != 0) {
      return 0;
    }
    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);
    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);
  }
  else {
    if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {
      return 0;
    }
    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);
    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);
  }
  puVar2 = DAT_002a5288;
  if (bVar10) {
    pbVar1 = (byte *)*param_1;
    lVar5 = 10;
    pbVar6 = pbVar1;
    pbVar7 = (byte *)"elf32-big";
    do {
      if (lVar5 == 0) break;
      lVar5 = lVar5 + -1;
      bVar8 = *pbVar6 < *pbVar7;
      bVar10 = *pbVar6 == *pbVar7;
      pbVar6 = pbVar6 + 1;
      pbVar7 = pbVar7 + 1;
    } while (bVar10);
    bVar9 = false;
    bVar8 = (!bVar8 && !bVar10) == bVar8;
    if (!bVar8) {
      lVar5 = 10;
      pbVar6 = pbVar1;
      pbVar7 = (byte *)"elf64-big";
      do {
        if (lVar5 == 0) break;
        lVar5 = lVar5 + -1;
        bVar9 = *pbVar6 < *pbVar7;
        bVar8 = *pbVar6 == *pbVar7;
        pbVar6 = pbVar6 + 1;
        pbVar7 = pbVar7 + 1;
      } while (bVar8);
      bVar10 = false;
      bVar8 = (!bVar9 && !bVar8) == bVar9;
      if (!bVar8) {
        lVar5 = 0xd;
        pbVar6 = pbVar1;
        pbVar7 = (byte *)"elf32-little";
        do {
          if (lVar5 == 0) break;
          lVar5 = lVar5 + -1;
          bVar10 = *pbVar6 < *pbVar7;
          bVar8 = *pbVar6 == *pbVar7;
          pbVar6 = pbVar6 + 1;
          pbVar7 = pbVar7 + 1;
        } while (bVar8);
        bVar9 = false;
        bVar8 = (!bVar10 && !bVar8) == bVar10;
        if (!bVar8) {
          lVar5 = 0xd;
          pbVar6 = pbVar1;
          pbVar7 = (byte *)"elf64-little";
          do {
            if (lVar5 == 0) break;
            lVar5 = lVar5 + -1;
            bVar9 = *pbVar6 < *pbVar7;
            bVar8 = *pbVar6 == *pbVar7;
            pbVar6 = pbVar6 + 1;
            pbVar7 = pbVar7 + 1;
          } while (bVar8);
          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)
             ) {
            iVar3 = FUN_00116e40(pbVar1,*param_2);
            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);
            puVar2 = param_1;
            if (iVar3 <= iVar4) {
              return 0;
            }
          }
        }
      }
    }
  }
  DAT_002a5288 = puVar2;
  return 0;
}


MOV EDX,dword ptr [0x002a67d4]
PUSH R12
PUSH RBP
MOV RBP,RSI
PUSH RBX
MOV RBX,RDI
CMP EDX,0x1
JZ 0x001187f8
CMP EDX,0x2
JZ 0x001187e0
MOV EAX,dword ptr [RBP + 0x8]
CMP dword ptr [RBX + 0x8],EAX
JNZ 0x001187d9
MOV R9,qword ptr [RBX]
MOV ECX,0xa
LEA RDI,[0x17008c]
MOV RSI,R9
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x001187d9
MOV ECX,0xa
LEA RDI,[0x170096]
MOV RSI,R9
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x001187d9
MOV ECX,0xd
LEA RDI,[0x1700a0]
MOV RSI,R9
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x001187d9
MOV ECX,0xd
LEA RDI,[0x1700ad]
MOV RSI,R9
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x001187d9
CMP qword ptr [0x002a5288],0x0
JZ 0x001187d2
MOV RSI,qword ptr [RBP]
MOV RDI,R9
CALL 0x00116e40
MOV RSI,qword ptr [RBP]
MOV R12D,EAX
MOV RAX,qword ptr [0x002a5288]
MOV RDI,qword ptr [RAX]
CALL 0x00116e40
CMP R12D,EAX
JLE 0x001187d9
MOV qword ptr [0x002a5288],RBX
POP RBX
XOR EAX,EAX
POP RBP
POP R12
RET
CMP dword ptr [RDI + 0xc],0x1
JZ 0x00118722
POP RBX
XOR EAX,EAX
POP RBP
POP R12
RET
MOV EAX,dword ptr [RDI + 0xc]
TEST EAX,EAX
JNZ 0x001187d9
MOV EAX,dword ptr [RBP + 0x8]
CMP dword ptr [RBX + 0x8],EAX
JNZ 0x001187d9
JMP 0x0011872e
(translation_unit "undefined8 FUN_00118700(undefined8 *param_1,undefined8 *param_2)\n\n{\n  byte *pbVar1;\n  undefined8 *puVar2;\n  int iVar3;\n  int iVar4;\n  long lVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  bool bVar8;\n  bool bVar9;\n  bool bVar10;\n  \n  if (DAT_002a67d4 == 1) {\n    if (*(int *)((long)param_1 + 0xc) != 0) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }\n  else {\n    if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }\n  puVar2 = DAT_002a5288;\n  if (bVar10) {\n    pbVar1 = (byte *)*param_1;\n    lVar5 = 10;\n    pbVar6 = pbVar1;\n    pbVar7 = (byte *)"elf32-big";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar10 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + 1;\n      pbVar7 = pbVar7 + 1;\n    } while (bVar10);\n    bVar9 = false;\n    bVar8 = (!bVar8 && !bVar10) == bVar8;\n    if (!bVar8) {\n      lVar5 = 10;\n      pbVar6 = pbVar1;\n      pbVar7 = (byte *)"elf64-big";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);\n      bVar10 = false;\n      bVar8 = (!bVar9 && !bVar8) == bVar9;\n      if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }\n    }\n  }\n  DAT_002a5288 = puVar2;\n  return 0;\n}\n\n" (function_definition "undefined8 FUN_00118700(undefined8 *param_1,undefined8 *param_2)\n\n{\n  byte *pbVar1;\n  undefined8 *puVar2;\n  int iVar3;\n  int iVar4;\n  long lVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  bool bVar8;\n  bool bVar9;\n  bool bVar10;\n  \n  if (DAT_002a67d4 == 1) {\n    if (*(int *)((long)param_1 + 0xc) != 0) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }\n  else {\n    if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }\n  puVar2 = DAT_002a5288;\n  if (bVar10) {\n    pbVar1 = (byte *)*param_1;\n    lVar5 = 10;\n    pbVar6 = pbVar1;\n    pbVar7 = (byte *)"elf32-big";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar10 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + 1;\n      pbVar7 = pbVar7 + 1;\n    } while (bVar10);\n    bVar9 = false;\n    bVar8 = (!bVar8 && !bVar10) == bVar8;\n    if (!bVar8) {\n      lVar5 = 10;\n      pbVar6 = pbVar1;\n      pbVar7 = (byte *)"elf64-big";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);\n      bVar10 = false;\n      bVar8 = (!bVar9 && !bVar8) == bVar9;\n      if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }\n    }\n  }\n  DAT_002a5288 = puVar2;\n  return 0;\n}" type_identifier (function_declarator "FUN_00118700(undefined8 *param_1,undefined8 *param_2)" identifier (parameter_list "(undefined8 *param_1,undefined8 *param_2)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte *pbVar1;\n  undefined8 *puVar2;\n  int iVar3;\n  int iVar4;\n  long lVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  bool bVar8;\n  bool bVar9;\n  bool bVar10;\n  \n  if (DAT_002a67d4 == 1) {\n    if (*(int *)((long)param_1 + 0xc) != 0) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }\n  else {\n    if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }\n  puVar2 = DAT_002a5288;\n  if (bVar10) {\n    pbVar1 = (byte *)*param_1;\n    lVar5 = 10;\n    pbVar6 = pbVar1;\n    pbVar7 = (byte *)"elf32-big";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar10 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + 1;\n      pbVar7 = pbVar7 + 1;\n    } while (bVar10);\n    bVar9 = false;\n    bVar8 = (!bVar8 && !bVar10) == bVar8;\n    if (!bVar8) {\n      lVar5 = 10;\n      pbVar6 = pbVar1;\n      pbVar7 = (byte *)"elf64-big";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);\n      bVar10 = false;\n      bVar8 = (!bVar9 && !bVar8) == bVar9;\n      if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }\n    }\n  }\n  DAT_002a5288 = puVar2;\n  return 0;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "bool bVar9;" primitive_type identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (if_statement "if (DAT_002a67d4 == 1) {\n    if (*(int *)((long)param_1 + 0xc) != 0) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }\n  else {\n    if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }" if (parenthesized_expression "(DAT_002a67d4 == 1)" ( (binary_expression "DAT_002a67d4 == 1" identifier == number_literal) )) (compound_statement "{\n    if (*(int *)((long)param_1 + 0xc) != 0) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }" { (if_statement "if (*(int *)((long)param_1 + 0xc) != 0) {\n      return 0;\n    }" if (parenthesized_expression "(*(int *)((long)param_1 + 0xc) != 0)" ( (binary_expression "*(int *)((long)param_1 + 0xc) != 0" (pointer_expression "*(int *)((long)param_1 + 0xc)" * (cast_expression "(int *)((long)param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0xc)" ( (binary_expression "(long)param_1 + 0xc" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);" (assignment_expression "bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1)" identifier = (binary_expression "*(uint *)(param_1 + 1) < *(uint *)(param_2 + 1)" (pointer_expression "*(uint *)(param_1 + 1)" * (cast_expression "(uint *)(param_1 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) )))) < (pointer_expression "*(uint *)(param_2 + 1)" * (cast_expression "(uint *)(param_2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )))))) ;) (expression_statement "bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);" (assignment_expression "bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1)" identifier = (binary_expression "*(uint *)(param_1 + 1) == *(uint *)(param_2 + 1)" (pointer_expression "*(uint *)(param_1 + 1)" * (cast_expression "(uint *)(param_1 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) )))) == (pointer_expression "*(uint *)(param_2 + 1)" * (cast_expression "(uint *)(param_2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )))))) ;) }) (else_clause "else {\n    if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }" else (compound_statement "{\n    if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }" { (if_statement "if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {\n      return 0;\n    }" if (parenthesized_expression "((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1))" ( (binary_expression "(DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)" (parenthesized_expression "(DAT_002a67d4 == 2)" ( (binary_expression "DAT_002a67d4 == 2" identifier == number_literal) )) && (parenthesized_expression "(*(int *)((long)param_1 + 0xc) != 1)" ( (binary_expression "*(int *)((long)param_1 + 0xc) != 1" (pointer_expression "*(int *)((long)param_1 + 0xc)" * (cast_expression "(int *)((long)param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0xc)" ( (binary_expression "(long)param_1 + 0xc" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);" (assignment_expression "bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1)" identifier = (binary_expression "*(uint *)(param_1 + 1) < *(uint *)(param_2 + 1)" (pointer_expression "*(uint *)(param_1 + 1)" * (cast_expression "(uint *)(param_1 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) )))) < (pointer_expression "*(uint *)(param_2 + 1)" * (cast_expression "(uint *)(param_2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )))))) ;) (expression_statement "bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);" (assignment_expression "bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1)" identifier = (binary_expression "*(uint *)(param_1 + 1) == *(uint *)(param_2 + 1)" (pointer_expression "*(uint *)(param_1 + 1)" * (cast_expression "(uint *)(param_1 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) )))) == (pointer_expression "*(uint *)(param_2 + 1)" * (cast_expression "(uint *)(param_2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )))))) ;) }))) (expression_statement "puVar2 = DAT_002a5288;" (assignment_expression "puVar2 = DAT_002a5288" identifier = identifier) ;) (if_statement "if (bVar10) {\n    pbVar1 = (byte *)*param_1;\n    lVar5 = 10;\n    pbVar6 = pbVar1;\n    pbVar7 = (byte *)"elf32-big";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar10 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + 1;\n      pbVar7 = pbVar7 + 1;\n    } while (bVar10);\n    bVar9 = false;\n    bVar8 = (!bVar8 && !bVar10) == bVar8;\n    if (!bVar8) {\n      lVar5 = 10;\n      pbVar6 = pbVar1;\n      pbVar7 = (byte *)"elf64-big";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);\n      bVar10 = false;\n      bVar8 = (!bVar9 && !bVar8) == bVar9;\n      if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n    pbVar1 = (byte *)*param_1;\n    lVar5 = 10;\n    pbVar6 = pbVar1;\n    pbVar7 = (byte *)"elf32-big";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar10 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + 1;\n      pbVar7 = pbVar7 + 1;\n    } while (bVar10);\n    bVar9 = false;\n    bVar8 = (!bVar8 && !bVar10) == bVar8;\n    if (!bVar8) {\n      lVar5 = 10;\n      pbVar6 = pbVar1;\n      pbVar7 = (byte *)"elf64-big";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);\n      bVar10 = false;\n      bVar8 = (!bVar9 && !bVar8) == bVar9;\n      if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "pbVar1 = (byte *)*param_1;" (assignment_expression "pbVar1 = (byte *)*param_1" identifier = (cast_expression "(byte *)*param_1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "lVar5 = 10;" (assignment_expression "lVar5 = 10" identifier = number_literal) ;) (expression_statement "pbVar6 = pbVar1;" (assignment_expression "pbVar6 = pbVar1" identifier = identifier) ;) (expression_statement "pbVar7 = (byte *)"elf32-big";" (assignment_expression "pbVar7 = (byte *)"elf32-big"" identifier = (cast_expression "(byte *)"elf32-big"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""elf32-big"" " string_content "))) ;) (do_statement "do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar10 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + 1;\n      pbVar7 = pbVar7 + 1;\n    } while (bVar10);" do (compound_statement "{\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar10 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + 1;\n      pbVar7 = pbVar7 + 1;\n    }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar8 = *pbVar6 < *pbVar7;" (assignment_expression "bVar8 = *pbVar6 < *pbVar7" identifier = (binary_expression "*pbVar6 < *pbVar7" (pointer_expression "*pbVar6" * identifier) < (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "bVar10 = *pbVar6 == *pbVar7;" (assignment_expression "bVar10 = *pbVar6 == *pbVar7" identifier = (binary_expression "*pbVar6 == *pbVar7" (pointer_expression "*pbVar6" * identifier) == (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (expression_statement "bVar9 = false;" (assignment_expression "bVar9 = false" identifier = false) ;) (expression_statement "bVar8 = (!bVar8 && !bVar10) == bVar8;" (assignment_expression "bVar8 = (!bVar8 && !bVar10) == bVar8" identifier = (binary_expression "(!bVar8 && !bVar10) == bVar8" (parenthesized_expression "(!bVar8 && !bVar10)" ( (binary_expression "!bVar8 && !bVar10" (unary_expression "!bVar8" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar8) {\n      lVar5 = 10;\n      pbVar6 = pbVar1;\n      pbVar7 = (byte *)"elf64-big";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);\n      bVar10 = false;\n      bVar8 = (!bVar9 && !bVar8) == bVar9;\n      if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar8)" ( (unary_expression "!bVar8" ! identifier) )) (compound_statement "{\n      lVar5 = 10;\n      pbVar6 = pbVar1;\n      pbVar7 = (byte *)"elf64-big";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);\n      bVar10 = false;\n      bVar8 = (!bVar9 && !bVar8) == bVar9;\n      if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }\n    }" { (expression_statement "lVar5 = 10;" (assignment_expression "lVar5 = 10" identifier = number_literal) ;) (expression_statement "pbVar6 = pbVar1;" (assignment_expression "pbVar6 = pbVar1" identifier = identifier) ;) (expression_statement "pbVar7 = (byte *)"elf64-big";" (assignment_expression "pbVar7 = (byte *)"elf64-big"" identifier = (cast_expression "(byte *)"elf64-big"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""elf64-big"" " string_content "))) ;) (do_statement "do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);" do (compound_statement "{\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar9 = *pbVar6 < *pbVar7;" (assignment_expression "bVar9 = *pbVar6 < *pbVar7" identifier = (binary_expression "*pbVar6 < *pbVar7" (pointer_expression "*pbVar6" * identifier) < (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "bVar8 = *pbVar6 == *pbVar7;" (assignment_expression "bVar8 = *pbVar6 == *pbVar7" identifier = (binary_expression "*pbVar6 == *pbVar7" (pointer_expression "*pbVar6" * identifier) == (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (expression_statement "bVar8 = (!bVar9 && !bVar8) == bVar9;" (assignment_expression "bVar8 = (!bVar9 && !bVar8) == bVar9" identifier = (binary_expression "(!bVar9 && !bVar8) == bVar9" (parenthesized_expression "(!bVar9 && !bVar8)" ( (binary_expression "!bVar9 && !bVar8" (unary_expression "!bVar9" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(!bVar8)" ( (unary_expression "!bVar8" ! identifier) )) (compound_statement "{\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }" { (expression_statement "lVar5 = 0xd;" (assignment_expression "lVar5 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar6 = pbVar1;" (assignment_expression "pbVar6 = pbVar1" identifier = identifier) ;) (expression_statement "pbVar7 = (byte *)"elf32-little";" (assignment_expression "pbVar7 = (byte *)"elf32-little"" identifier = (cast_expression "(byte *)"elf32-little"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""elf32-little"" " string_content "))) ;) (do_statement "do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);" do (compound_statement "{\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar10 = *pbVar6 < *pbVar7;" (assignment_expression "bVar10 = *pbVar6 < *pbVar7" identifier = (binary_expression "*pbVar6 < *pbVar7" (pointer_expression "*pbVar6" * identifier) < (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "bVar8 = *pbVar6 == *pbVar7;" (assignment_expression "bVar8 = *pbVar6 == *pbVar7" identifier = (binary_expression "*pbVar6 == *pbVar7" (pointer_expression "*pbVar6" * identifier) == (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (expression_statement "bVar9 = false;" (assignment_expression "bVar9 = false" identifier = false) ;) (expression_statement "bVar8 = (!bVar10 && !bVar8) == bVar10;" (assignment_expression "bVar8 = (!bVar10 && !bVar8) == bVar10" identifier = (binary_expression "(!bVar10 && !bVar8) == bVar10" (parenthesized_expression "(!bVar10 && !bVar8)" ( (binary_expression "!bVar10 && !bVar8" (unary_expression "!bVar10" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }" if (parenthesized_expression "(!bVar8)" ( (unary_expression "!bVar8" ! identifier) )) (compound_statement "{\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }" { (expression_statement "lVar5 = 0xd;" (assignment_expression "lVar5 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar6 = pbVar1;" (assignment_expression "pbVar6 = pbVar1" identifier = identifier) ;) (expression_statement "pbVar7 = (byte *)"elf64-little";" (assignment_expression "pbVar7 = (byte *)"elf64-little"" identifier = (cast_expression "(byte *)"elf64-little"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""elf64-little"" " string_content "))) ;) (do_statement "do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);" do (compound_statement "{\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar9 = *pbVar6 < *pbVar7;" (assignment_expression "bVar9 = *pbVar6 < *pbVar7" identifier = (binary_expression "*pbVar6 < *pbVar7" (pointer_expression "*pbVar6" * identifier) < (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "bVar8 = *pbVar6 == *pbVar7;" (assignment_expression "bVar8 = *pbVar6 == *pbVar7" identifier = (binary_expression "*pbVar6 == *pbVar7" (pointer_expression "*pbVar6" * identifier) == (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (if_statement "if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }" if (parenthesized_expression "(((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             )" ( (binary_expression "((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)" (parenthesized_expression "((!bVar9 && !bVar8) != bVar9)" ( (binary_expression "(!bVar9 && !bVar8) != bVar9" (parenthesized_expression "(!bVar9 && !bVar8)" ( (binary_expression "!bVar9 && !bVar8" (unary_expression "!bVar9" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) != identifier) )) && (parenthesized_expression "(puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)" ( (comma_expression "puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0" (assignment_expression "puVar2 = param_1" identifier = identifier) , (binary_expression "DAT_002a5288 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }" { (expression_statement "iVar3 = FUN_00116e40(pbVar1,*param_2);" (assignment_expression "iVar3 = FUN_00116e40(pbVar1,*param_2)" identifier = (call_expression "FUN_00116e40(pbVar1,*param_2)" identifier (argument_list "(pbVar1,*param_2)" ( identifier , (pointer_expression "*param_2" * identifier) )))) ;) (expression_statement "iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);" (assignment_expression "iVar4 = FUN_00116e40(*DAT_002a5288,*param_2)" identifier = (call_expression "FUN_00116e40(*DAT_002a5288,*param_2)" identifier (argument_list "(*DAT_002a5288,*param_2)" ( (pointer_expression "*DAT_002a5288" * identifier) , (pointer_expression "*param_2" * identifier) )))) ;) (expression_statement "puVar2 = param_1;" (assignment_expression "puVar2 = param_1" identifier = identifier) ;) (if_statement "if (iVar3 <= iVar4) {\n              return 0;\n            }" if (parenthesized_expression "(iVar3 <= iVar4)" ( (binary_expression "iVar3 <= iVar4" identifier <= identifier) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) })) })) })) })) })) (expression_statement "DAT_002a5288 = puVar2;" (assignment_expression "DAT_002a5288 = puVar2" identifier = identifier) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "int closest_target_match(bfd_target *target,void *data)\n\n{\n  byte *first;\n  bfd_target *pbVar1;\n  int iVar2;\n  int iVar3;\n  long lVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  bool bVar7;\n  bool bVar8;\n  bool bVar9;\n  \n  if (command_line.endian == ENDIAN_BIG) {\n    if (target->byteorder != BFD_ENDIAN_BIG) {\n      return 0;\n    }\n    bVar7 = target->flavour < *(bfd_flavour *)((long)data + 8);\n    bVar9 = target->flavour == *(bfd_flavour *)((long)data + 8);\n  }\n  else {\n    if ((command_line.endian == ENDIAN_LITTLE) && (target->byteorder != BFD_ENDIAN_LITTLE)) {\n      return 0;\n    }\n    bVar7 = target->flavour < *(bfd_flavour *)((long)data + 8);\n    bVar9 = target->flavour == *(bfd_flavour *)((long)data + 8);\n  }\n  pbVar1 = winner;\n  if (bVar9) {\n    first = (byte *)target->name;\n    lVar4 = 10;\n    pbVar5 = first;\n    pbVar6 = (byte *)"elf32-big";\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar7 = *pbVar5 < *pbVar6;\n      bVar9 = *pbVar5 == *pbVar6;\n      pbVar5 = pbVar5 + 1;\n      pbVar6 = pbVar6 + 1;\n    } while (bVar9);\n    bVar8 = false;\n    bVar7 = (!bVar7 && !bVar9) == bVar7;\n    if (!bVar7) {\n      lVar4 = 10;\n      pbVar5 = first;\n      pbVar6 = (byte *)"elf64-big";\n      do {\n        if (lVar4 == 0) break;\n        lVar4 = lVar4 + -1;\n        bVar8 = *pbVar5 < *pbVar6;\n        bVar7 = *pbVar5 == *pbVar6;\n        pbVar5 = pbVar5 + 1;\n        pbVar6 = pbVar6 + 1;\n      } while (bVar7);\n      bVar9 = false;\n      bVar7 = (!bVar8 && !bVar7) == bVar8;\n      if (!bVar7) {\n        lVar4 = 0xd;\n        pbVar5 = first;\n        pbVar6 = (byte *)"elf32-little";\n        do {\n          if (lVar4 == 0) break;\n          lVar4 = lVar4 + -1;\n          bVar9 = *pbVar5 < *pbVar6;\n          bVar7 = *pbVar5 == *pbVar6;\n          pbVar5 = pbVar5 + 1;\n          pbVar6 = pbVar6 + 1;\n        } while (bVar7);\n        bVar8 = false;\n        bVar7 = (!bVar9 && !bVar7) == bVar9;\n        if (!bVar7) {\n          lVar4 = 0xd;\n          pbVar5 = first;\n          pbVar6 = (byte *)"elf64-little";\n          do {\n            if (lVar4 == 0) break;\n            lVar4 = lVar4 + -1;\n            bVar8 = *pbVar5 < *pbVar6;\n            bVar7 = *pbVar5 == *pbVar6;\n            pbVar5 = pbVar5 + 1;\n            pbVar6 = pbVar6 + 1;\n          } while (bVar7);\n          if (((!bVar8 && !bVar7) != bVar8) && (pbVar1 = target, winner != (bfd_target *)0x0)) {\n                    /* WARNING: Load size is inaccurate */\n            iVar2 = name_compare((char *)first,*data);\n                    /* WARNING: Load size is inaccurate */\n            iVar3 = name_compare(winner->name,*data);\n            pbVar1 = target;\n            if (iVar2 <= iVar3) {\n              return 0;\n            }\n          }\n        }\n      }\n    }\n  }\n  winner = pbVar1;\n  return 0;\n}\n\n" (function_definition "int closest_target_match(bfd_target *target,void *data)\n\n{\n  byte *first;\n  bfd_target *pbVar1;\n  int iVar2;\n  int iVar3;\n  long lVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  bool bVar7;\n  bool bVar8;\n  bool bVar9;\n  \n  if (command_line.endian == ENDIAN_BIG) {\n    if (target->byteorder != BFD_ENDIAN_BIG) {\n      return 0;\n    }\n    bVar7 = target->flavour < *(bfd_flavour *)((long)data + 8);\n    bVar9 = target->flavour == *(bfd_flavour *)((long)data + 8);\n  }\n  else {\n    if ((command_line.endian == ENDIAN_LITTLE) && (target->byteorder != BFD_ENDIAN_LITTLE)) {\n      return 0;\n    }\n    bVar7 = target->flavour < *(bfd_flavour *)((long)data + 8);\n    bVar9 = target->flavour == *(bfd_flavour *)((long)data + 8);\n  }\n  pbVar1 = winner;\n  if (bVar9) {\n    first = (byte *)target->name;\n    lVar4 = 10;\n    pbVar5 = first;\n    pbVar6 = (byte *)"elf32-big";\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar7 = *pbVar5 < *pbVar6;\n      bVar9 = *pbVar5 == *pbVar6;\n      pbVar5 = pbVar5 + 1;\n      pbVar6 = pbVar6 + 1;\n    } while (bVar9);\n    bVar8 = false;\n    bVar7 = (!bVar7 && !bVar9) == bVar7;\n    if (!bVar7) {\n      lVar4 = 10;\n      pbVar5 = first;\n      pbVar6 = (byte *)"elf64-big";\n      do {\n        if (lVar4 == 0) break;\n        lVar4 = lVar4 + -1;\n        bVar8 = *pbVar5 < *pbVar6;\n        bVar7 = *pbVar5 == *pbVar6;\n        pbVar5 = pbVar5 + 1;\n        pbVar6 = pbVar6 + 1;\n      } while (bVar7);\n      bVar9 = false;\n      bVar7 = (!bVar8 && !bVar7) == bVar8;\n      if (!bVar7) {\n        lVar4 = 0xd;\n        pbVar5 = first;\n        pbVar6 = (byte *)"elf32-little";\n        do {\n          if (lVar4 == 0) break;\n          lVar4 = lVar4 + -1;\n          bVar9 = *pbVar5 < *pbVar6;\n          bVar7 = *pbVar5 == *pbVar6;\n          pbVar5 = pbVar5 + 1;\n          pbVar6 = pbVar6 + 1;\n        } while (bVar7);\n        bVar8 = false;\n        bVar7 = (!bVar9 && !bVar7) == bVar9;\n        if (!bVar7) {\n          lVar4 = 0xd;\n          pbVar5 = first;\n          pbVar6 = (byte *)"elf64-little";\n          do {\n            if (lVar4 == 0) break;\n            lVar4 = lVar4 + -1;\n            bVar8 = *pbVar5 < *pbVar6;\n            bVar7 = *pbVar5 == *pbVar6;\n            pbVar5 = pbVar5 + 1;\n            pbVar6 = pbVar6 + 1;\n          } while (bVar7);\n          if (((!bVar8 && !bVar7) != bVar8) && (pbVar1 = target, winner != (bfd_target *)0x0)) {\n                    /* WARNING: Load size is inaccurate */\n            iVar2 = name_compare((char *)first,*data);\n                    /* WARNING: Load size is inaccurate */\n            iVar3 = name_compare(winner->name,*data);\n            pbVar1 = target;\n            if (iVar2 <= iVar3) {\n              return 0;\n            }\n          }\n        }\n      }\n    }\n  }\n  winner = pbVar1;\n  return 0;\n}" primitive_type (function_declarator "closest_target_match(bfd_target *target,void *data)" identifier (parameter_list "(bfd_target *target,void *data)" ( (parameter_declaration "bfd_target *target" type_identifier (pointer_declarator "*target" * identifier)) , (parameter_declaration "void *data" primitive_type (pointer_declarator "*data" * identifier)) ))) (compound_statement "{\n  byte *first;\n  bfd_target *pbVar1;\n  int iVar2;\n  int iVar3;\n  long lVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  bool bVar7;\n  bool bVar8;\n  bool bVar9;\n  \n  if (command_line.endian == ENDIAN_BIG) {\n    if (target->byteorder != BFD_ENDIAN_BIG) {\n      return 0;\n    }\n    bVar7 = target->flavour < *(bfd_flavour *)((long)data + 8);\n    bVar9 = target->flavour == *(bfd_flavour *)((long)data + 8);\n  }\n  else {\n    if ((command_line.endian == ENDIAN_LITTLE) && (target->byteorder != BFD_ENDIAN_LITTLE)) {\n      return 0;\n    }\n    bVar7 = target->flavour < *(bfd_flavour *)((long)data + 8);\n    bVar9 = target->flavour == *(bfd_flavour *)((long)data + 8);\n  }\n  pbVar1 = winner;\n  if (bVar9) {\n    first = (byte *)target->name;\n    lVar4 = 10;\n    pbVar5 = first;\n    pbVar6 = (byte *)"elf32-big";\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar7 = *pbVar5 < *pbVar6;\n      bVar9 = *pbVar5 == *pbVar6;\n      pbVar5 = pbVar5 + 1;\n      pbVar6 = pbVar6 + 1;\n    } while (bVar9);\n    bVar8 = false;\n    bVar7 = (!bVar7 && !bVar9) == bVar7;\n    if (!bVar7) {\n      lVar4 = 10;\n      pbVar5 = first;\n      pbVar6 = (byte *)"elf64-big";\n      do {\n        if (lVar4 == 0) break;\n        lVar4 = lVar4 + -1;\n        bVar8 = *pbVar5 < *pbVar6;\n        bVar7 = *pbVar5 == *pbVar6;\n        pbVar5 = pbVar5 + 1;\n        pbVar6 = pbVar6 + 1;\n      } while (bVar7);\n      bVar9 = false;\n      bVar7 = (!bVar8 && !bVar7) == bVar8;\n      if (!bVar7) {\n        lVar4 = 0xd;\n        pbVar5 = first;\n        pbVar6 = (byte *)"elf32-little";\n        do {\n          if (lVar4 == 0) break;\n          lVar4 = lVar4 + -1;\n          bVar9 = *pbVar5 < *pbVar6;\n          bVar7 = *pbVar5 == *pbVar6;\n          pbVar5 = pbVar5 + 1;\n          pbVar6 = pbVar6 + 1;\n        } while (bVar7);\n        bVar8 = false;\n        bVar7 = (!bVar9 && !bVar7) == bVar9;\n        if (!bVar7) {\n          lVar4 = 0xd;\n          pbVar5 = first;\n          pbVar6 = (byte *)"elf64-little";\n          do {\n            if (lVar4 == 0) break;\n            lVar4 = lVar4 + -1;\n            bVar8 = *pbVar5 < *pbVar6;\n            bVar7 = *pbVar5 == *pbVar6;\n            pbVar5 = pbVar5 + 1;\n            pbVar6 = pbVar6 + 1;\n          } while (bVar7);\n          if (((!bVar8 && !bVar7) != bVar8) && (pbVar1 = target, winner != (bfd_target *)0x0)) {\n                    /* WARNING: Load size is inaccurate */\n            iVar2 = name_compare((char *)first,*data);\n                    /* WARNING: Load size is inaccurate */\n            iVar3 = name_compare(winner->name,*data);\n            pbVar1 = target;\n            if (iVar2 <= iVar3) {\n              return 0;\n            }\n          }\n        }\n      }\n    }\n  }\n  winner = pbVar1;\n  return 0;\n}" { (declaration "byte *first;" type_identifier (pointer_declarator "*first" * identifier) ;) (declaration "bfd_target *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "bool bVar9;" primitive_type identifier ;) (if_statement "if (command_line.endian == ENDIAN_BIG) {\n    if (target->byteorder != BFD_ENDIAN_BIG) {\n      return 0;\n    }\n    bVar7 = target->flavour < *(bfd_flavour *)((long)data + 8);\n    bVar9 = target->flavour == *(bfd_flavour *)((long)data + 8);\n  }\n  else {\n    if ((command_line.endian == ENDIAN_LITTLE) && (target->byteorder != BFD_ENDIAN_LITTLE)) {\n      return 0;\n    }\n    bVar7 = target->flavour < *(bfd_flavour *)((long)data + 8);\n    bVar9 = target->flavour == *(bfd_flavour *)((long)data + 8);\n  }" if (parenthesized_expression "(command_line.endian == ENDIAN_BIG)" ( (binary_expression "command_line.endian == ENDIAN_BIG" (field_expression "command_line.endian" identifier . field_identifier) == identifier) )) (compound_statement "{\n    if (target->byteorder != BFD_ENDIAN_BIG) {\n      return 0;\n    }\n    bVar7 = target->flavour < *(bfd_flavour *)((long)data + 8);\n    bVar9 = target->flavour == *(bfd_flavour *)((long)data + 8);\n  }" { (if_statement "if (target->byteorder != BFD_ENDIAN_BIG) {\n      return 0;\n    }" if (parenthesized_expression "(target->byteorder != BFD_ENDIAN_BIG)" ( (binary_expression "target->byteorder != BFD_ENDIAN_BIG" (field_expression "target->byteorder" identifier -> field_identifier) != identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar7 = target->flavour < *(bfd_flavour *)((long)data + 8);" (assignment_expression "bVar7 = target->flavour < *(bfd_flavour *)((long)data + 8)" identifier = (binary_expression "target->flavour < *(bfd_flavour *)((long)data + 8)" (field_expression "target->flavour" identifier -> field_identifier) < (pointer_expression "*(bfd_flavour *)((long)data + 8)" * (cast_expression "(bfd_flavour *)((long)data + 8)" ( (type_descriptor "bfd_flavour *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 8)" ( (binary_expression "(long)data + 8" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))))) ;) (expression_statement "bVar9 = target->flavour == *(bfd_flavour *)((long)data + 8);" (assignment_expression "bVar9 = target->flavour == *(bfd_flavour *)((long)data + 8)" identifier = (binary_expression "target->flavour == *(bfd_flavour *)((long)data + 8)" (field_expression "target->flavour" identifier -> field_identifier) == (pointer_expression "*(bfd_flavour *)((long)data + 8)" * (cast_expression "(bfd_flavour *)((long)data + 8)" ( (type_descriptor "bfd_flavour *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 8)" ( (binary_expression "(long)data + 8" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))))) ;) }) (else_clause "else {\n    if ((command_line.endian == ENDIAN_LITTLE) && (target->byteorder != BFD_ENDIAN_LITTLE)) {\n      return 0;\n    }\n    bVar7 = target->flavour < *(bfd_flavour *)((long)data + 8);\n    bVar9 = target->flavour == *(bfd_flavour *)((long)data + 8);\n  }" else (compound_statement "{\n    if ((command_line.endian == ENDIAN_LITTLE) && (target->byteorder != BFD_ENDIAN_LITTLE)) {\n      return 0;\n    }\n    bVar7 = target->flavour < *(bfd_flavour *)((long)data + 8);\n    bVar9 = target->flavour == *(bfd_flavour *)((long)data + 8);\n  }" { (if_statement "if ((command_line.endian == ENDIAN_LITTLE) && (target->byteorder != BFD_ENDIAN_LITTLE)) {\n      return 0;\n    }" if (parenthesized_expression "((command_line.endian == ENDIAN_LITTLE) && (target->byteorder != BFD_ENDIAN_LITTLE))" ( (binary_expression "(command_line.endian == ENDIAN_LITTLE) && (target->byteorder != BFD_ENDIAN_LITTLE)" (parenthesized_expression "(command_line.endian == ENDIAN_LITTLE)" ( (binary_expression "command_line.endian == ENDIAN_LITTLE" (field_expression "command_line.endian" identifier . field_identifier) == identifier) )) && (parenthesized_expression "(target->byteorder != BFD_ENDIAN_LITTLE)" ( (binary_expression "target->byteorder != BFD_ENDIAN_LITTLE" (field_expression "target->byteorder" identifier -> field_identifier) != identifier) ))) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar7 = target->flavour < *(bfd_flavour *)((long)data + 8);" (assignment_expression "bVar7 = target->flavour < *(bfd_flavour *)((long)data + 8)" identifier = (binary_expression "target->flavour < *(bfd_flavour *)((long)data + 8)" (field_expression "target->flavour" identifier -> field_identifier) < (pointer_expression "*(bfd_flavour *)((long)data + 8)" * (cast_expression "(bfd_flavour *)((long)data + 8)" ( (type_descriptor "bfd_flavour *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 8)" ( (binary_expression "(long)data + 8" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))))) ;) (expression_statement "bVar9 = target->flavour == *(bfd_flavour *)((long)data + 8);" (assignment_expression "bVar9 = target->flavour == *(bfd_flavour *)((long)data + 8)" identifier = (binary_expression "target->flavour == *(bfd_flavour *)((long)data + 8)" (field_expression "target->flavour" identifier -> field_identifier) == (pointer_expression "*(bfd_flavour *)((long)data + 8)" * (cast_expression "(bfd_flavour *)((long)data + 8)" ( (type_descriptor "bfd_flavour *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 8)" ( (binary_expression "(long)data + 8" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))))) ;) }))) (expression_statement "pbVar1 = winner;" (assignment_expression "pbVar1 = winner" identifier = identifier) ;) (if_statement "if (bVar9) {\n    first = (byte *)target->name;\n    lVar4 = 10;\n    pbVar5 = first;\n    pbVar6 = (byte *)"elf32-big";\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar7 = *pbVar5 < *pbVar6;\n      bVar9 = *pbVar5 == *pbVar6;\n      pbVar5 = pbVar5 + 1;\n      pbVar6 = pbVar6 + 1;\n    } while (bVar9);\n    bVar8 = false;\n    bVar7 = (!bVar7 && !bVar9) == bVar7;\n    if (!bVar7) {\n      lVar4 = 10;\n      pbVar5 = first;\n      pbVar6 = (byte *)"elf64-big";\n      do {\n        if (lVar4 == 0) break;\n        lVar4 = lVar4 + -1;\n        bVar8 = *pbVar5 < *pbVar6;\n        bVar7 = *pbVar5 == *pbVar6;\n        pbVar5 = pbVar5 + 1;\n        pbVar6 = pbVar6 + 1;\n      } while (bVar7);\n      bVar9 = false;\n      bVar7 = (!bVar8 && !bVar7) == bVar8;\n      if (!bVar7) {\n        lVar4 = 0xd;\n        pbVar5 = first;\n        pbVar6 = (byte *)"elf32-little";\n        do {\n          if (lVar4 == 0) break;\n          lVar4 = lVar4 + -1;\n          bVar9 = *pbVar5 < *pbVar6;\n          bVar7 = *pbVar5 == *pbVar6;\n          pbVar5 = pbVar5 + 1;\n          pbVar6 = pbVar6 + 1;\n        } while (bVar7);\n        bVar8 = false;\n        bVar7 = (!bVar9 && !bVar7) == bVar9;\n        if (!bVar7) {\n          lVar4 = 0xd;\n          pbVar5 = first;\n          pbVar6 = (byte *)"elf64-little";\n          do {\n            if (lVar4 == 0) break;\n            lVar4 = lVar4 + -1;\n            bVar8 = *pbVar5 < *pbVar6;\n            bVar7 = *pbVar5 == *pbVar6;\n            pbVar5 = pbVar5 + 1;\n            pbVar6 = pbVar6 + 1;\n          } while (bVar7);\n          if (((!bVar8 && !bVar7) != bVar8) && (pbVar1 = target, winner != (bfd_target *)0x0)) {\n                    /* WARNING: Load size is inaccurate */\n            iVar2 = name_compare((char *)first,*data);\n                    /* WARNING: Load size is inaccurate */\n            iVar3 = name_compare(winner->name,*data);\n            pbVar1 = target;\n            if (iVar2 <= iVar3) {\n              return 0;\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(bVar9)" ( identifier )) (compound_statement "{\n    first = (byte *)target->name;\n    lVar4 = 10;\n    pbVar5 = first;\n    pbVar6 = (byte *)"elf32-big";\n    do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar7 = *pbVar5 < *pbVar6;\n      bVar9 = *pbVar5 == *pbVar6;\n      pbVar5 = pbVar5 + 1;\n      pbVar6 = pbVar6 + 1;\n    } while (bVar9);\n    bVar8 = false;\n    bVar7 = (!bVar7 && !bVar9) == bVar7;\n    if (!bVar7) {\n      lVar4 = 10;\n      pbVar5 = first;\n      pbVar6 = (byte *)"elf64-big";\n      do {\n        if (lVar4 == 0) break;\n        lVar4 = lVar4 + -1;\n        bVar8 = *pbVar5 < *pbVar6;\n        bVar7 = *pbVar5 == *pbVar6;\n        pbVar5 = pbVar5 + 1;\n        pbVar6 = pbVar6 + 1;\n      } while (bVar7);\n      bVar9 = false;\n      bVar7 = (!bVar8 && !bVar7) == bVar8;\n      if (!bVar7) {\n        lVar4 = 0xd;\n        pbVar5 = first;\n        pbVar6 = (byte *)"elf32-little";\n        do {\n          if (lVar4 == 0) break;\n          lVar4 = lVar4 + -1;\n          bVar9 = *pbVar5 < *pbVar6;\n          bVar7 = *pbVar5 == *pbVar6;\n          pbVar5 = pbVar5 + 1;\n          pbVar6 = pbVar6 + 1;\n        } while (bVar7);\n        bVar8 = false;\n        bVar7 = (!bVar9 && !bVar7) == bVar9;\n        if (!bVar7) {\n          lVar4 = 0xd;\n          pbVar5 = first;\n          pbVar6 = (byte *)"elf64-little";\n          do {\n            if (lVar4 == 0) break;\n            lVar4 = lVar4 + -1;\n            bVar8 = *pbVar5 < *pbVar6;\n            bVar7 = *pbVar5 == *pbVar6;\n            pbVar5 = pbVar5 + 1;\n            pbVar6 = pbVar6 + 1;\n          } while (bVar7);\n          if (((!bVar8 && !bVar7) != bVar8) && (pbVar1 = target, winner != (bfd_target *)0x0)) {\n                    /* WARNING: Load size is inaccurate */\n            iVar2 = name_compare((char *)first,*data);\n                    /* WARNING: Load size is inaccurate */\n            iVar3 = name_compare(winner->name,*data);\n            pbVar1 = target;\n            if (iVar2 <= iVar3) {\n              return 0;\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "first = (byte *)target->name;" (assignment_expression "first = (byte *)target->name" identifier = (cast_expression "(byte *)target->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "target->name" identifier -> field_identifier))) ;) (expression_statement "lVar4 = 10;" (assignment_expression "lVar4 = 10" identifier = number_literal) ;) (expression_statement "pbVar5 = first;" (assignment_expression "pbVar5 = first" identifier = identifier) ;) (expression_statement "pbVar6 = (byte *)"elf32-big";" (assignment_expression "pbVar6 = (byte *)"elf32-big"" identifier = (cast_expression "(byte *)"elf32-big"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""elf32-big"" " string_content "))) ;) (do_statement "do {\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar7 = *pbVar5 < *pbVar6;\n      bVar9 = *pbVar5 == *pbVar6;\n      pbVar5 = pbVar5 + 1;\n      pbVar6 = pbVar6 + 1;\n    } while (bVar9);" do (compound_statement "{\n      if (lVar4 == 0) break;\n      lVar4 = lVar4 + -1;\n      bVar7 = *pbVar5 < *pbVar6;\n      bVar9 = *pbVar5 == *pbVar6;\n      pbVar5 = pbVar5 + 1;\n      pbVar6 = pbVar6 + 1;\n    }" { (if_statement "if (lVar4 == 0) break;" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar4 = lVar4 + -1;" (assignment_expression "lVar4 = lVar4 + -1" identifier = (binary_expression "lVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar7 = *pbVar5 < *pbVar6;" (assignment_expression "bVar7 = *pbVar5 < *pbVar6" identifier = (binary_expression "*pbVar5 < *pbVar6" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar6" * identifier))) ;) (expression_statement "bVar9 = *pbVar5 == *pbVar6;" (assignment_expression "bVar9 = *pbVar5 == *pbVar6" identifier = (binary_expression "*pbVar5 == *pbVar6" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar6" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar9)" ( identifier )) ;) (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" identifier = false) ;) (expression_statement "bVar7 = (!bVar7 && !bVar9) == bVar7;" (assignment_expression "bVar7 = (!bVar7 && !bVar9) == bVar7" identifier = (binary_expression "(!bVar7 && !bVar9) == bVar7" (parenthesized_expression "(!bVar7 && !bVar9)" ( (binary_expression "!bVar7 && !bVar9" (unary_expression "!bVar7" ! identifier) && (unary_expression "!bVar9" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar7) {\n      lVar4 = 10;\n      pbVar5 = first;\n      pbVar6 = (byte *)"elf64-big";\n      do {\n        if (lVar4 == 0) break;\n        lVar4 = lVar4 + -1;\n        bVar8 = *pbVar5 < *pbVar6;\n        bVar7 = *pbVar5 == *pbVar6;\n        pbVar5 = pbVar5 + 1;\n        pbVar6 = pbVar6 + 1;\n      } while (bVar7);\n      bVar9 = false;\n      bVar7 = (!bVar8 && !bVar7) == bVar8;\n      if (!bVar7) {\n        lVar4 = 0xd;\n        pbVar5 = first;\n        pbVar6 = (byte *)"elf32-little";\n        do {\n          if (lVar4 == 0) break;\n          lVar4 = lVar4 + -1;\n          bVar9 = *pbVar5 < *pbVar6;\n          bVar7 = *pbVar5 == *pbVar6;\n          pbVar5 = pbVar5 + 1;\n          pbVar6 = pbVar6 + 1;\n        } while (bVar7);\n        bVar8 = false;\n        bVar7 = (!bVar9 && !bVar7) == bVar9;\n        if (!bVar7) {\n          lVar4 = 0xd;\n          pbVar5 = first;\n          pbVar6 = (byte *)"elf64-little";\n          do {\n            if (lVar4 == 0) break;\n            lVar4 = lVar4 + -1;\n            bVar8 = *pbVar5 < *pbVar6;\n            bVar7 = *pbVar5 == *pbVar6;\n            pbVar5 = pbVar5 + 1;\n            pbVar6 = pbVar6 + 1;\n          } while (bVar7);\n          if (((!bVar8 && !bVar7) != bVar8) && (pbVar1 = target, winner != (bfd_target *)0x0)) {\n                    /* WARNING: Load size is inaccurate */\n            iVar2 = name_compare((char *)first,*data);\n                    /* WARNING: Load size is inaccurate */\n            iVar3 = name_compare(winner->name,*data);\n            pbVar1 = target;\n            if (iVar2 <= iVar3) {\n              return 0;\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar7)" ( (unary_expression "!bVar7" ! identifier) )) (compound_statement "{\n      lVar4 = 10;\n      pbVar5 = first;\n      pbVar6 = (byte *)"elf64-big";\n      do {\n        if (lVar4 == 0) break;\n        lVar4 = lVar4 + -1;\n        bVar8 = *pbVar5 < *pbVar6;\n        bVar7 = *pbVar5 == *pbVar6;\n        pbVar5 = pbVar5 + 1;\n        pbVar6 = pbVar6 + 1;\n      } while (bVar7);\n      bVar9 = false;\n      bVar7 = (!bVar8 && !bVar7) == bVar8;\n      if (!bVar7) {\n        lVar4 = 0xd;\n        pbVar5 = first;\n        pbVar6 = (byte *)"elf32-little";\n        do {\n          if (lVar4 == 0) break;\n          lVar4 = lVar4 + -1;\n          bVar9 = *pbVar5 < *pbVar6;\n          bVar7 = *pbVar5 == *pbVar6;\n          pbVar5 = pbVar5 + 1;\n          pbVar6 = pbVar6 + 1;\n        } while (bVar7);\n        bVar8 = false;\n        bVar7 = (!bVar9 && !bVar7) == bVar9;\n        if (!bVar7) {\n          lVar4 = 0xd;\n          pbVar5 = first;\n          pbVar6 = (byte *)"elf64-little";\n          do {\n            if (lVar4 == 0) break;\n            lVar4 = lVar4 + -1;\n            bVar8 = *pbVar5 < *pbVar6;\n            bVar7 = *pbVar5 == *pbVar6;\n            pbVar5 = pbVar5 + 1;\n            pbVar6 = pbVar6 + 1;\n          } while (bVar7);\n          if (((!bVar8 && !bVar7) != bVar8) && (pbVar1 = target, winner != (bfd_target *)0x0)) {\n                    /* WARNING: Load size is inaccurate */\n            iVar2 = name_compare((char *)first,*data);\n                    /* WARNING: Load size is inaccurate */\n            iVar3 = name_compare(winner->name,*data);\n            pbVar1 = target;\n            if (iVar2 <= iVar3) {\n              return 0;\n            }\n          }\n        }\n      }\n    }" { (expression_statement "lVar4 = 10;" (assignment_expression "lVar4 = 10" identifier = number_literal) ;) (expression_statement "pbVar5 = first;" (assignment_expression "pbVar5 = first" identifier = identifier) ;) (expression_statement "pbVar6 = (byte *)"elf64-big";" (assignment_expression "pbVar6 = (byte *)"elf64-big"" identifier = (cast_expression "(byte *)"elf64-big"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""elf64-big"" " string_content "))) ;) (do_statement "do {\n        if (lVar4 == 0) break;\n        lVar4 = lVar4 + -1;\n        bVar8 = *pbVar5 < *pbVar6;\n        bVar7 = *pbVar5 == *pbVar6;\n        pbVar5 = pbVar5 + 1;\n        pbVar6 = pbVar6 + 1;\n      } while (bVar7);" do (compound_statement "{\n        if (lVar4 == 0) break;\n        lVar4 = lVar4 + -1;\n        bVar8 = *pbVar5 < *pbVar6;\n        bVar7 = *pbVar5 == *pbVar6;\n        pbVar5 = pbVar5 + 1;\n        pbVar6 = pbVar6 + 1;\n      }" { (if_statement "if (lVar4 == 0) break;" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar4 = lVar4 + -1;" (assignment_expression "lVar4 = lVar4 + -1" identifier = (binary_expression "lVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar8 = *pbVar5 < *pbVar6;" (assignment_expression "bVar8 = *pbVar5 < *pbVar6" identifier = (binary_expression "*pbVar5 < *pbVar6" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar6" * identifier))) ;) (expression_statement "bVar7 = *pbVar5 == *pbVar6;" (assignment_expression "bVar7 = *pbVar5 == *pbVar6" identifier = (binary_expression "*pbVar5 == *pbVar6" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar6" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar7)" ( identifier )) ;) (expression_statement "bVar9 = false;" (assignment_expression "bVar9 = false" identifier = false) ;) (expression_statement "bVar7 = (!bVar8 && !bVar7) == bVar8;" (assignment_expression "bVar7 = (!bVar8 && !bVar7) == bVar8" identifier = (binary_expression "(!bVar8 && !bVar7) == bVar8" (parenthesized_expression "(!bVar8 && !bVar7)" ( (binary_expression "!bVar8 && !bVar7" (unary_expression "!bVar8" ! identifier) && (unary_expression "!bVar7" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar7) {\n        lVar4 = 0xd;\n        pbVar5 = first;\n        pbVar6 = (byte *)"elf32-little";\n        do {\n          if (lVar4 == 0) break;\n          lVar4 = lVar4 + -1;\n          bVar9 = *pbVar5 < *pbVar6;\n          bVar7 = *pbVar5 == *pbVar6;\n          pbVar5 = pbVar5 + 1;\n          pbVar6 = pbVar6 + 1;\n        } while (bVar7);\n        bVar8 = false;\n        bVar7 = (!bVar9 && !bVar7) == bVar9;\n        if (!bVar7) {\n          lVar4 = 0xd;\n          pbVar5 = first;\n          pbVar6 = (byte *)"elf64-little";\n          do {\n            if (lVar4 == 0) break;\n            lVar4 = lVar4 + -1;\n            bVar8 = *pbVar5 < *pbVar6;\n            bVar7 = *pbVar5 == *pbVar6;\n            pbVar5 = pbVar5 + 1;\n            pbVar6 = pbVar6 + 1;\n          } while (bVar7);\n          if (((!bVar8 && !bVar7) != bVar8) && (pbVar1 = target, winner != (bfd_target *)0x0)) {\n                    /* WARNING: Load size is inaccurate */\n            iVar2 = name_compare((char *)first,*data);\n                    /* WARNING: Load size is inaccurate */\n            iVar3 = name_compare(winner->name,*data);\n            pbVar1 = target;\n            if (iVar2 <= iVar3) {\n              return 0;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(!bVar7)" ( (unary_expression "!bVar7" ! identifier) )) (compound_statement "{\n        lVar4 = 0xd;\n        pbVar5 = first;\n        pbVar6 = (byte *)"elf32-little";\n        do {\n          if (lVar4 == 0) break;\n          lVar4 = lVar4 + -1;\n          bVar9 = *pbVar5 < *pbVar6;\n          bVar7 = *pbVar5 == *pbVar6;\n          pbVar5 = pbVar5 + 1;\n          pbVar6 = pbVar6 + 1;\n        } while (bVar7);\n        bVar8 = false;\n        bVar7 = (!bVar9 && !bVar7) == bVar9;\n        if (!bVar7) {\n          lVar4 = 0xd;\n          pbVar5 = first;\n          pbVar6 = (byte *)"elf64-little";\n          do {\n            if (lVar4 == 0) break;\n            lVar4 = lVar4 + -1;\n            bVar8 = *pbVar5 < *pbVar6;\n            bVar7 = *pbVar5 == *pbVar6;\n            pbVar5 = pbVar5 + 1;\n            pbVar6 = pbVar6 + 1;\n          } while (bVar7);\n          if (((!bVar8 && !bVar7) != bVar8) && (pbVar1 = target, winner != (bfd_target *)0x0)) {\n                    /* WARNING: Load size is inaccurate */\n            iVar2 = name_compare((char *)first,*data);\n                    /* WARNING: Load size is inaccurate */\n            iVar3 = name_compare(winner->name,*data);\n            pbVar1 = target;\n            if (iVar2 <= iVar3) {\n              return 0;\n            }\n          }\n        }\n      }" { (expression_statement "lVar4 = 0xd;" (assignment_expression "lVar4 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar5 = first;" (assignment_expression "pbVar5 = first" identifier = identifier) ;) (expression_statement "pbVar6 = (byte *)"elf32-little";" (assignment_expression "pbVar6 = (byte *)"elf32-little"" identifier = (cast_expression "(byte *)"elf32-little"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""elf32-little"" " string_content "))) ;) (do_statement "do {\n          if (lVar4 == 0) break;\n          lVar4 = lVar4 + -1;\n          bVar9 = *pbVar5 < *pbVar6;\n          bVar7 = *pbVar5 == *pbVar6;\n          pbVar5 = pbVar5 + 1;\n          pbVar6 = pbVar6 + 1;\n        } while (bVar7);" do (compound_statement "{\n          if (lVar4 == 0) break;\n          lVar4 = lVar4 + -1;\n          bVar9 = *pbVar5 < *pbVar6;\n          bVar7 = *pbVar5 == *pbVar6;\n          pbVar5 = pbVar5 + 1;\n          pbVar6 = pbVar6 + 1;\n        }" { (if_statement "if (lVar4 == 0) break;" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar4 = lVar4 + -1;" (assignment_expression "lVar4 = lVar4 + -1" identifier = (binary_expression "lVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar9 = *pbVar5 < *pbVar6;" (assignment_expression "bVar9 = *pbVar5 < *pbVar6" identifier = (binary_expression "*pbVar5 < *pbVar6" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar6" * identifier))) ;) (expression_statement "bVar7 = *pbVar5 == *pbVar6;" (assignment_expression "bVar7 = *pbVar5 == *pbVar6" identifier = (binary_expression "*pbVar5 == *pbVar6" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar6" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar7)" ( identifier )) ;) (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" identifier = false) ;) (expression_statement "bVar7 = (!bVar9 && !bVar7) == bVar9;" (assignment_expression "bVar7 = (!bVar9 && !bVar7) == bVar9" identifier = (binary_expression "(!bVar9 && !bVar7) == bVar9" (parenthesized_expression "(!bVar9 && !bVar7)" ( (binary_expression "!bVar9 && !bVar7" (unary_expression "!bVar9" ! identifier) && (unary_expression "!bVar7" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar7) {\n          lVar4 = 0xd;\n          pbVar5 = first;\n          pbVar6 = (byte *)"elf64-little";\n          do {\n            if (lVar4 == 0) break;\n            lVar4 = lVar4 + -1;\n            bVar8 = *pbVar5 < *pbVar6;\n            bVar7 = *pbVar5 == *pbVar6;\n            pbVar5 = pbVar5 + 1;\n            pbVar6 = pbVar6 + 1;\n          } while (bVar7);\n          if (((!bVar8 && !bVar7) != bVar8) && (pbVar1 = target, winner != (bfd_target *)0x0)) {\n                    /* WARNING: Load size is inaccurate */\n            iVar2 = name_compare((char *)first,*data);\n                    /* WARNING: Load size is inaccurate */\n            iVar3 = name_compare(winner->name,*data);\n            pbVar1 = target;\n            if (iVar2 <= iVar3) {\n              return 0;\n            }\n          }\n        }" if (parenthesized_expression "(!bVar7)" ( (unary_expression "!bVar7" ! identifier) )) (compound_statement "{\n          lVar4 = 0xd;\n          pbVar5 = first;\n          pbVar6 = (byte *)"elf64-little";\n          do {\n            if (lVar4 == 0) break;\n            lVar4 = lVar4 + -1;\n            bVar8 = *pbVar5 < *pbVar6;\n            bVar7 = *pbVar5 == *pbVar6;\n            pbVar5 = pbVar5 + 1;\n            pbVar6 = pbVar6 + 1;\n          } while (bVar7);\n          if (((!bVar8 && !bVar7) != bVar8) && (pbVar1 = target, winner != (bfd_target *)0x0)) {\n                    /* WARNING: Load size is inaccurate */\n            iVar2 = name_compare((char *)first,*data);\n                    /* WARNING: Load size is inaccurate */\n            iVar3 = name_compare(winner->name,*data);\n            pbVar1 = target;\n            if (iVar2 <= iVar3) {\n              return 0;\n            }\n          }\n        }" { (expression_statement "lVar4 = 0xd;" (assignment_expression "lVar4 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar5 = first;" (assignment_expression "pbVar5 = first" identifier = identifier) ;) (expression_statement "pbVar6 = (byte *)"elf64-little";" (assignment_expression "pbVar6 = (byte *)"elf64-little"" identifier = (cast_expression "(byte *)"elf64-little"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""elf64-little"" " string_content "))) ;) (do_statement "do {\n            if (lVar4 == 0) break;\n            lVar4 = lVar4 + -1;\n            bVar8 = *pbVar5 < *pbVar6;\n            bVar7 = *pbVar5 == *pbVar6;\n            pbVar5 = pbVar5 + 1;\n            pbVar6 = pbVar6 + 1;\n          } while (bVar7);" do (compound_statement "{\n            if (lVar4 == 0) break;\n            lVar4 = lVar4 + -1;\n            bVar8 = *pbVar5 < *pbVar6;\n            bVar7 = *pbVar5 == *pbVar6;\n            pbVar5 = pbVar5 + 1;\n            pbVar6 = pbVar6 + 1;\n          }" { (if_statement "if (lVar4 == 0) break;" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar4 = lVar4 + -1;" (assignment_expression "lVar4 = lVar4 + -1" identifier = (binary_expression "lVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar8 = *pbVar5 < *pbVar6;" (assignment_expression "bVar8 = *pbVar5 < *pbVar6" identifier = (binary_expression "*pbVar5 < *pbVar6" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar6" * identifier))) ;) (expression_statement "bVar7 = *pbVar5 == *pbVar6;" (assignment_expression "bVar7 = *pbVar5 == *pbVar6" identifier = (binary_expression "*pbVar5 == *pbVar6" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar6" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar7)" ( identifier )) ;) (if_statement "if (((!bVar8 && !bVar7) != bVar8) && (pbVar1 = target, winner != (bfd_target *)0x0)) {\n                    /* WARNING: Load size is inaccurate */\n            iVar2 = name_compare((char *)first,*data);\n                    /* WARNING: Load size is inaccurate */\n            iVar3 = name_compare(winner->name,*data);\n            pbVar1 = target;\n            if (iVar2 <= iVar3) {\n              return 0;\n            }\n          }" if (parenthesized_expression "(((!bVar8 && !bVar7) != bVar8) && (pbVar1 = target, winner != (bfd_target *)0x0))" ( (binary_expression "((!bVar8 && !bVar7) != bVar8) && (pbVar1 = target, winner != (bfd_target *)0x0)" (parenthesized_expression "((!bVar8 && !bVar7) != bVar8)" ( (binary_expression "(!bVar8 && !bVar7) != bVar8" (parenthesized_expression "(!bVar8 && !bVar7)" ( (binary_expression "!bVar8 && !bVar7" (unary_expression "!bVar8" ! identifier) && (unary_expression "!bVar7" ! identifier)) )) != identifier) )) && (parenthesized_expression "(pbVar1 = target, winner != (bfd_target *)0x0)" ( (comma_expression "pbVar1 = target, winner != (bfd_target *)0x0" (assignment_expression "pbVar1 = target" identifier = identifier) , (binary_expression "winner != (bfd_target *)0x0" identifier != (cast_expression "(bfd_target *)0x0" ( (type_descriptor "bfd_target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                    /* WARNING: Load size is inaccurate */\n            iVar2 = name_compare((char *)first,*data);\n                    /* WARNING: Load size is inaccurate */\n            iVar3 = name_compare(winner->name,*data);\n            pbVar1 = target;\n            if (iVar2 <= iVar3) {\n              return 0;\n            }\n          }" { comment (expression_statement "iVar2 = name_compare((char *)first,*data);" (assignment_expression "iVar2 = name_compare((char *)first,*data)" identifier = (call_expression "name_compare((char *)first,*data)" identifier (argument_list "((char *)first,*data)" ( (cast_expression "(char *)first" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "*data" * identifier) )))) ;) comment (expression_statement "iVar3 = name_compare(winner->name,*data);" (assignment_expression "iVar3 = name_compare(winner->name,*data)" identifier = (call_expression "name_compare(winner->name,*data)" identifier (argument_list "(winner->name,*data)" ( (field_expression "winner->name" identifier -> field_identifier) , (pointer_expression "*data" * identifier) )))) ;) (expression_statement "pbVar1 = target;" (assignment_expression "pbVar1 = target" identifier = identifier) ;) (if_statement "if (iVar2 <= iVar3) {\n              return 0;\n            }" if (parenthesized_expression "(iVar2 <= iVar3)" ( (binary_expression "iVar2 <= iVar3" identifier <= identifier) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) })) })) })) })) })) (expression_statement "winner = pbVar1;" (assignment_expression "winner = pbVar1" identifier = identifier) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "undefined8 FUN_00118700(undefined8 *param_1,undefined8 *param_2)\n\n{\n  byte *pbVar1;\n  undefined8 *puVar2;\n  int iVar3;\n  int iVar4;\n  long lVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  bool bVar8;\n  bool bVar9;\n  bool bVar10;\n  \n  if (DAT_002a67d4 == 1) {\n    if (*(int *)((long)param_1 + 0xc) != 0) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }\n  else {\n    if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }\n  puVar2 = DAT_002a5288;\n  if (bVar10) {\n    pbVar1 = (byte *)*param_1;\n    lVar5 = 10;\n    pbVar6 = pbVar1;\n    pbVar7 = (byte *)"elf32-big";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar10 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + 1;\n      pbVar7 = pbVar7 + 1;\n    } while (bVar10);\n    bVar9 = false;\n    bVar8 = (!bVar8 && !bVar10) == bVar8;\n    if (!bVar8) {\n      lVar5 = 10;\n      pbVar6 = pbVar1;\n      pbVar7 = (byte *)"elf64-big";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);\n      bVar10 = false;\n      bVar8 = (!bVar9 && !bVar8) == bVar9;\n      if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }\n    }\n  }\n  DAT_002a5288 = puVar2;\n  return 0;\n}\n\n" (function_definition "undefined8 FUN_00118700(undefined8 *param_1,undefined8 *param_2)\n\n{\n  byte *pbVar1;\n  undefined8 *puVar2;\n  int iVar3;\n  int iVar4;\n  long lVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  bool bVar8;\n  bool bVar9;\n  bool bVar10;\n  \n  if (DAT_002a67d4 == 1) {\n    if (*(int *)((long)param_1 + 0xc) != 0) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }\n  else {\n    if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }\n  puVar2 = DAT_002a5288;\n  if (bVar10) {\n    pbVar1 = (byte *)*param_1;\n    lVar5 = 10;\n    pbVar6 = pbVar1;\n    pbVar7 = (byte *)"elf32-big";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar10 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + 1;\n      pbVar7 = pbVar7 + 1;\n    } while (bVar10);\n    bVar9 = false;\n    bVar8 = (!bVar8 && !bVar10) == bVar8;\n    if (!bVar8) {\n      lVar5 = 10;\n      pbVar6 = pbVar1;\n      pbVar7 = (byte *)"elf64-big";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);\n      bVar10 = false;\n      bVar8 = (!bVar9 && !bVar8) == bVar9;\n      if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }\n    }\n  }\n  DAT_002a5288 = puVar2;\n  return 0;\n}" type_identifier (function_declarator "FUN_00118700(undefined8 *param_1,undefined8 *param_2)" identifier (parameter_list "(undefined8 *param_1,undefined8 *param_2)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte *pbVar1;\n  undefined8 *puVar2;\n  int iVar3;\n  int iVar4;\n  long lVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  bool bVar8;\n  bool bVar9;\n  bool bVar10;\n  \n  if (DAT_002a67d4 == 1) {\n    if (*(int *)((long)param_1 + 0xc) != 0) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }\n  else {\n    if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }\n  puVar2 = DAT_002a5288;\n  if (bVar10) {\n    pbVar1 = (byte *)*param_1;\n    lVar5 = 10;\n    pbVar6 = pbVar1;\n    pbVar7 = (byte *)"elf32-big";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar10 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + 1;\n      pbVar7 = pbVar7 + 1;\n    } while (bVar10);\n    bVar9 = false;\n    bVar8 = (!bVar8 && !bVar10) == bVar8;\n    if (!bVar8) {\n      lVar5 = 10;\n      pbVar6 = pbVar1;\n      pbVar7 = (byte *)"elf64-big";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);\n      bVar10 = false;\n      bVar8 = (!bVar9 && !bVar8) == bVar9;\n      if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }\n    }\n  }\n  DAT_002a5288 = puVar2;\n  return 0;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "bool bVar9;" primitive_type identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (if_statement "if (DAT_002a67d4 == 1) {\n    if (*(int *)((long)param_1 + 0xc) != 0) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }\n  else {\n    if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }" if (parenthesized_expression "(DAT_002a67d4 == 1)" ( (binary_expression "DAT_002a67d4 == 1" identifier == number_literal) )) (compound_statement "{\n    if (*(int *)((long)param_1 + 0xc) != 0) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }" { (if_statement "if (*(int *)((long)param_1 + 0xc) != 0) {\n      return 0;\n    }" if (parenthesized_expression "(*(int *)((long)param_1 + 0xc) != 0)" ( (binary_expression "*(int *)((long)param_1 + 0xc) != 0" (pointer_expression "*(int *)((long)param_1 + 0xc)" * (cast_expression "(int *)((long)param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0xc)" ( (binary_expression "(long)param_1 + 0xc" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);" (assignment_expression "bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1)" identifier = (binary_expression "*(uint *)(param_1 + 1) < *(uint *)(param_2 + 1)" (pointer_expression "*(uint *)(param_1 + 1)" * (cast_expression "(uint *)(param_1 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) )))) < (pointer_expression "*(uint *)(param_2 + 1)" * (cast_expression "(uint *)(param_2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )))))) ;) (expression_statement "bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);" (assignment_expression "bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1)" identifier = (binary_expression "*(uint *)(param_1 + 1) == *(uint *)(param_2 + 1)" (pointer_expression "*(uint *)(param_1 + 1)" * (cast_expression "(uint *)(param_1 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) )))) == (pointer_expression "*(uint *)(param_2 + 1)" * (cast_expression "(uint *)(param_2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )))))) ;) }) (else_clause "else {\n    if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }" else (compound_statement "{\n    if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }" { (if_statement "if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {\n      return 0;\n    }" if (parenthesized_expression "((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1))" ( (binary_expression "(DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)" (parenthesized_expression "(DAT_002a67d4 == 2)" ( (binary_expression "DAT_002a67d4 == 2" identifier == number_literal) )) && (parenthesized_expression "(*(int *)((long)param_1 + 0xc) != 1)" ( (binary_expression "*(int *)((long)param_1 + 0xc) != 1" (pointer_expression "*(int *)((long)param_1 + 0xc)" * (cast_expression "(int *)((long)param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0xc)" ( (binary_expression "(long)param_1 + 0xc" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);" (assignment_expression "bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1)" identifier = (binary_expression "*(uint *)(param_1 + 1) < *(uint *)(param_2 + 1)" (pointer_expression "*(uint *)(param_1 + 1)" * (cast_expression "(uint *)(param_1 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) )))) < (pointer_expression "*(uint *)(param_2 + 1)" * (cast_expression "(uint *)(param_2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )))))) ;) (expression_statement "bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);" (assignment_expression "bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1)" identifier = (binary_expression "*(uint *)(param_1 + 1) == *(uint *)(param_2 + 1)" (pointer_expression "*(uint *)(param_1 + 1)" * (cast_expression "(uint *)(param_1 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) )))) == (pointer_expression "*(uint *)(param_2 + 1)" * (cast_expression "(uint *)(param_2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )))))) ;) }))) (expression_statement "puVar2 = DAT_002a5288;" (assignment_expression "puVar2 = DAT_002a5288" identifier = identifier) ;) (if_statement "if (bVar10) {\n    pbVar1 = (byte *)*param_1;\n    lVar5 = 10;\n    pbVar6 = pbVar1;\n    pbVar7 = (byte *)"elf32-big";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar10 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + 1;\n      pbVar7 = pbVar7 + 1;\n    } while (bVar10);\n    bVar9 = false;\n    bVar8 = (!bVar8 && !bVar10) == bVar8;\n    if (!bVar8) {\n      lVar5 = 10;\n      pbVar6 = pbVar1;\n      pbVar7 = (byte *)"elf64-big";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);\n      bVar10 = false;\n      bVar8 = (!bVar9 && !bVar8) == bVar9;\n      if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n    pbVar1 = (byte *)*param_1;\n    lVar5 = 10;\n    pbVar6 = pbVar1;\n    pbVar7 = (byte *)"elf32-big";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar10 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + 1;\n      pbVar7 = pbVar7 + 1;\n    } while (bVar10);\n    bVar9 = false;\n    bVar8 = (!bVar8 && !bVar10) == bVar8;\n    if (!bVar8) {\n      lVar5 = 10;\n      pbVar6 = pbVar1;\n      pbVar7 = (byte *)"elf64-big";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);\n      bVar10 = false;\n      bVar8 = (!bVar9 && !bVar8) == bVar9;\n      if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "pbVar1 = (byte *)*param_1;" (assignment_expression "pbVar1 = (byte *)*param_1" identifier = (cast_expression "(byte *)*param_1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "lVar5 = 10;" (assignment_expression "lVar5 = 10" identifier = number_literal) ;) (expression_statement "pbVar6 = pbVar1;" (assignment_expression "pbVar6 = pbVar1" identifier = identifier) ;) (expression_statement "pbVar7 = (byte *)"elf32-big";" (assignment_expression "pbVar7 = (byte *)"elf32-big"" identifier = (cast_expression "(byte *)"elf32-big"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""elf32-big"" " string_content "))) ;) (do_statement "do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar10 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + 1;\n      pbVar7 = pbVar7 + 1;\n    } while (bVar10);" do (compound_statement "{\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar10 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + 1;\n      pbVar7 = pbVar7 + 1;\n    }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar8 = *pbVar6 < *pbVar7;" (assignment_expression "bVar8 = *pbVar6 < *pbVar7" identifier = (binary_expression "*pbVar6 < *pbVar7" (pointer_expression "*pbVar6" * identifier) < (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "bVar10 = *pbVar6 == *pbVar7;" (assignment_expression "bVar10 = *pbVar6 == *pbVar7" identifier = (binary_expression "*pbVar6 == *pbVar7" (pointer_expression "*pbVar6" * identifier) == (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (expression_statement "bVar9 = false;" (assignment_expression "bVar9 = false" identifier = false) ;) (expression_statement "bVar8 = (!bVar8 && !bVar10) == bVar8;" (assignment_expression "bVar8 = (!bVar8 && !bVar10) == bVar8" identifier = (binary_expression "(!bVar8 && !bVar10) == bVar8" (parenthesized_expression "(!bVar8 && !bVar10)" ( (binary_expression "!bVar8 && !bVar10" (unary_expression "!bVar8" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar8) {\n      lVar5 = 10;\n      pbVar6 = pbVar1;\n      pbVar7 = (byte *)"elf64-big";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);\n      bVar10 = false;\n      bVar8 = (!bVar9 && !bVar8) == bVar9;\n      if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar8)" ( (unary_expression "!bVar8" ! identifier) )) (compound_statement "{\n      lVar5 = 10;\n      pbVar6 = pbVar1;\n      pbVar7 = (byte *)"elf64-big";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);\n      bVar10 = false;\n      bVar8 = (!bVar9 && !bVar8) == bVar9;\n      if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }\n    }" { (expression_statement "lVar5 = 10;" (assignment_expression "lVar5 = 10" identifier = number_literal) ;) (expression_statement "pbVar6 = pbVar1;" (assignment_expression "pbVar6 = pbVar1" identifier = identifier) ;) (expression_statement "pbVar7 = (byte *)"elf64-big";" (assignment_expression "pbVar7 = (byte *)"elf64-big"" identifier = (cast_expression "(byte *)"elf64-big"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""elf64-big"" " string_content "))) ;) (do_statement "do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);" do (compound_statement "{\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar9 = *pbVar6 < *pbVar7;" (assignment_expression "bVar9 = *pbVar6 < *pbVar7" identifier = (binary_expression "*pbVar6 < *pbVar7" (pointer_expression "*pbVar6" * identifier) < (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "bVar8 = *pbVar6 == *pbVar7;" (assignment_expression "bVar8 = *pbVar6 == *pbVar7" identifier = (binary_expression "*pbVar6 == *pbVar7" (pointer_expression "*pbVar6" * identifier) == (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (expression_statement "bVar8 = (!bVar9 && !bVar8) == bVar9;" (assignment_expression "bVar8 = (!bVar9 && !bVar8) == bVar9" identifier = (binary_expression "(!bVar9 && !bVar8) == bVar9" (parenthesized_expression "(!bVar9 && !bVar8)" ( (binary_expression "!bVar9 && !bVar8" (unary_expression "!bVar9" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(!bVar8)" ( (unary_expression "!bVar8" ! identifier) )) (compound_statement "{\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }" { (expression_statement "lVar5 = 0xd;" (assignment_expression "lVar5 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar6 = pbVar1;" (assignment_expression "pbVar6 = pbVar1" identifier = identifier) ;) (expression_statement "pbVar7 = (byte *)"elf32-little";" (assignment_expression "pbVar7 = (byte *)"elf32-little"" identifier = (cast_expression "(byte *)"elf32-little"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""elf32-little"" " string_content "))) ;) (do_statement "do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);" do (compound_statement "{\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar10 = *pbVar6 < *pbVar7;" (assignment_expression "bVar10 = *pbVar6 < *pbVar7" identifier = (binary_expression "*pbVar6 < *pbVar7" (pointer_expression "*pbVar6" * identifier) < (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "bVar8 = *pbVar6 == *pbVar7;" (assignment_expression "bVar8 = *pbVar6 == *pbVar7" identifier = (binary_expression "*pbVar6 == *pbVar7" (pointer_expression "*pbVar6" * identifier) == (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (expression_statement "bVar9 = false;" (assignment_expression "bVar9 = false" identifier = false) ;) (expression_statement "bVar8 = (!bVar10 && !bVar8) == bVar10;" (assignment_expression "bVar8 = (!bVar10 && !bVar8) == bVar10" identifier = (binary_expression "(!bVar10 && !bVar8) == bVar10" (parenthesized_expression "(!bVar10 && !bVar8)" ( (binary_expression "!bVar10 && !bVar8" (unary_expression "!bVar10" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }" if (parenthesized_expression "(!bVar8)" ( (unary_expression "!bVar8" ! identifier) )) (compound_statement "{\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }" { (expression_statement "lVar5 = 0xd;" (assignment_expression "lVar5 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar6 = pbVar1;" (assignment_expression "pbVar6 = pbVar1" identifier = identifier) ;) (expression_statement "pbVar7 = (byte *)"elf64-little";" (assignment_expression "pbVar7 = (byte *)"elf64-little"" identifier = (cast_expression "(byte *)"elf64-little"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""elf64-little"" " string_content "))) ;) (do_statement "do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);" do (compound_statement "{\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar9 = *pbVar6 < *pbVar7;" (assignment_expression "bVar9 = *pbVar6 < *pbVar7" identifier = (binary_expression "*pbVar6 < *pbVar7" (pointer_expression "*pbVar6" * identifier) < (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "bVar8 = *pbVar6 == *pbVar7;" (assignment_expression "bVar8 = *pbVar6 == *pbVar7" identifier = (binary_expression "*pbVar6 == *pbVar7" (pointer_expression "*pbVar6" * identifier) == (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (if_statement "if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }" if (parenthesized_expression "(((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             )" ( (binary_expression "((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)" (parenthesized_expression "((!bVar9 && !bVar8) != bVar9)" ( (binary_expression "(!bVar9 && !bVar8) != bVar9" (parenthesized_expression "(!bVar9 && !bVar8)" ( (binary_expression "!bVar9 && !bVar8" (unary_expression "!bVar9" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) != identifier) )) && (parenthesized_expression "(puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)" ( (comma_expression "puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0" (assignment_expression "puVar2 = param_1" identifier = identifier) , (binary_expression "DAT_002a5288 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }" { (expression_statement "iVar3 = FUN_00116e40(pbVar1,*param_2);" (assignment_expression "iVar3 = FUN_00116e40(pbVar1,*param_2)" identifier = (call_expression "FUN_00116e40(pbVar1,*param_2)" identifier (argument_list "(pbVar1,*param_2)" ( identifier , (pointer_expression "*param_2" * identifier) )))) ;) (expression_statement "iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);" (assignment_expression "iVar4 = FUN_00116e40(*DAT_002a5288,*param_2)" identifier = (call_expression "FUN_00116e40(*DAT_002a5288,*param_2)" identifier (argument_list "(*DAT_002a5288,*param_2)" ( (pointer_expression "*DAT_002a5288" * identifier) , (pointer_expression "*param_2" * identifier) )))) ;) (expression_statement "puVar2 = param_1;" (assignment_expression "puVar2 = param_1" identifier = identifier) ;) (if_statement "if (iVar3 <= iVar4) {\n              return 0;\n            }" if (parenthesized_expression "(iVar3 <= iVar4)" ( (binary_expression "iVar3 <= iVar4" identifier <= identifier) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) })) })) })) })) })) (expression_statement "DAT_002a5288 = puVar2;" (assignment_expression "DAT_002a5288 = puVar2" identifier = identifier) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) != LIT) ))) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) && (parenthesized_expression ( (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 ( IDENT , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) })) })) })) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (return_statement return LIT ;) })))
(function_definition "undefined8 FUN_00118700(undefined8 *param_1,undefined8 *param_2)\n\n{\n  byte *pbVar1;\n  undefined8 *puVar2;\n  int iVar3;\n  int iVar4;\n  long lVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  bool bVar8;\n  bool bVar9;\n  bool bVar10;\n  \n  if (DAT_002a67d4 == 1) {\n    if (*(int *)((long)param_1 + 0xc) != 0) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }\n  else {\n    if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }\n  puVar2 = DAT_002a5288;\n  if (bVar10) {\n    pbVar1 = (byte *)*param_1;\n    lVar5 = 10;\n    pbVar6 = pbVar1;\n    pbVar7 = (byte *)"elf32-big";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar10 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + 1;\n      pbVar7 = pbVar7 + 1;\n    } while (bVar10);\n    bVar9 = false;\n    bVar8 = (!bVar8 && !bVar10) == bVar8;\n    if (!bVar8) {\n      lVar5 = 10;\n      pbVar6 = pbVar1;\n      pbVar7 = (byte *)"elf64-big";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);\n      bVar10 = false;\n      bVar8 = (!bVar9 && !bVar8) == bVar9;\n      if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }\n    }\n  }\n  DAT_002a5288 = puVar2;\n  return 0;\n}" (type_identifier "undefined8") (function_declarator "FUN_00118700(undefined8 *param_1,undefined8 *param_2)" (identifier "FUN_00118700") (parameter_list "(undefined8 *param_1,undefined8 *param_2)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined8 *param_2" (type_identifier "undefined8") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  byte *pbVar1;\n  undefined8 *puVar2;\n  int iVar3;\n  int iVar4;\n  long lVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  bool bVar8;\n  bool bVar9;\n  bool bVar10;\n  \n  if (DAT_002a67d4 == 1) {\n    if (*(int *)((long)param_1 + 0xc) != 0) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }\n  else {\n    if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }\n  puVar2 = DAT_002a5288;\n  if (bVar10) {\n    pbVar1 = (byte *)*param_1;\n    lVar5 = 10;\n    pbVar6 = pbVar1;\n    pbVar7 = (byte *)"elf32-big";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar10 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + 1;\n      pbVar7 = pbVar7 + 1;\n    } while (bVar10);\n    bVar9 = false;\n    bVar8 = (!bVar8 && !bVar10) == bVar8;\n    if (!bVar8) {\n      lVar5 = 10;\n      pbVar6 = pbVar1;\n      pbVar7 = (byte *)"elf64-big";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);\n      bVar10 = false;\n      bVar8 = (!bVar9 && !bVar8) == bVar9;\n      if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }\n    }\n  }\n  DAT_002a5288 = puVar2;\n  return 0;\n}" ({ "{") (declaration "byte *pbVar1;" (type_identifier "byte") (pointer_declarator "*pbVar1" (* "*") (identifier "pbVar1")) (; ";")) (declaration "undefined8 *puVar2;" (type_identifier "undefined8") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "byte *pbVar6;" (type_identifier "byte") (pointer_declarator "*pbVar6" (* "*") (identifier "pbVar6")) (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "bool bVar8;" (primitive_type "bool") (identifier "bVar8") (; ";")) (declaration "bool bVar9;" (primitive_type "bool") (identifier "bVar9") (; ";")) (declaration "bool bVar10;" (primitive_type "bool") (identifier "bVar10") (; ";")) (if_statement "if (DAT_002a67d4 == 1) {\n    if (*(int *)((long)param_1 + 0xc) != 0) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }\n  else {\n    if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }" (if "if") (parenthesized_expression "(DAT_002a67d4 == 1)" (( "(") (binary_expression "DAT_002a67d4 == 1" (identifier "DAT_002a67d4") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    if (*(int *)((long)param_1 + 0xc) != 0) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }" ({ "{") (if_statement "if (*(int *)((long)param_1 + 0xc) != 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(*(int *)((long)param_1 + 0xc) != 0)" (( "(") (binary_expression "*(int *)((long)param_1 + 0xc) != 0" (pointer_expression "*(int *)((long)param_1 + 0xc)" (* "*") (cast_expression "(int *)((long)param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0xc)" (( "(") (binary_expression "(long)param_1 + 0xc" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);" (assignment_expression "bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1)" (identifier "bVar8") (= "=") (binary_expression "*(uint *)(param_1 + 1) < *(uint *)(param_2 + 1)" (pointer_expression "*(uint *)(param_1 + 1)" (* "*") (cast_expression "(uint *)(param_1 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 1)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) () ")")))) (< "<") (pointer_expression "*(uint *)(param_2 + 1)" (* "*") (cast_expression "(uint *)(param_2 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 1)" (( "(") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) () ")")))))) (; ";")) (expression_statement "bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);" (assignment_expression "bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1)" (identifier "bVar10") (= "=") (binary_expression "*(uint *)(param_1 + 1) == *(uint *)(param_2 + 1)" (pointer_expression "*(uint *)(param_1 + 1)" (* "*") (cast_expression "(uint *)(param_1 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 1)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) () ")")))) (== "==") (pointer_expression "*(uint *)(param_2 + 1)" (* "*") (cast_expression "(uint *)(param_2 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 1)" (( "(") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) () ")")))))) (; ";")) (} "}")) (else_clause "else {\n    if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }" (else "else") (compound_statement "{\n    if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {\n      return 0;\n    }\n    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);\n    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);\n  }" ({ "{") (if_statement "if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {\n      return 0;\n    }" (if "if") (parenthesized_expression "((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1))" (( "(") (binary_expression "(DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)" (parenthesized_expression "(DAT_002a67d4 == 2)" (( "(") (binary_expression "DAT_002a67d4 == 2" (identifier "DAT_002a67d4") (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)((long)param_1 + 0xc) != 1)" (( "(") (binary_expression "*(int *)((long)param_1 + 0xc) != 1" (pointer_expression "*(int *)((long)param_1 + 0xc)" (* "*") (cast_expression "(int *)((long)param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0xc)" (( "(") (binary_expression "(long)param_1 + 0xc" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);" (assignment_expression "bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1)" (identifier "bVar8") (= "=") (binary_expression "*(uint *)(param_1 + 1) < *(uint *)(param_2 + 1)" (pointer_expression "*(uint *)(param_1 + 1)" (* "*") (cast_expression "(uint *)(param_1 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 1)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) () ")")))) (< "<") (pointer_expression "*(uint *)(param_2 + 1)" (* "*") (cast_expression "(uint *)(param_2 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 1)" (( "(") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) () ")")))))) (; ";")) (expression_statement "bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);" (assignment_expression "bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1)" (identifier "bVar10") (= "=") (binary_expression "*(uint *)(param_1 + 1) == *(uint *)(param_2 + 1)" (pointer_expression "*(uint *)(param_1 + 1)" (* "*") (cast_expression "(uint *)(param_1 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 1)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) () ")")))) (== "==") (pointer_expression "*(uint *)(param_2 + 1)" (* "*") (cast_expression "(uint *)(param_2 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 1)" (( "(") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) () ")")))))) (; ";")) (} "}")))) (expression_statement "puVar2 = DAT_002a5288;" (assignment_expression "puVar2 = DAT_002a5288" (identifier "puVar2") (= "=") (identifier "DAT_002a5288")) (; ";")) (if_statement "if (bVar10) {\n    pbVar1 = (byte *)*param_1;\n    lVar5 = 10;\n    pbVar6 = pbVar1;\n    pbVar7 = (byte *)"elf32-big";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar10 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + 1;\n      pbVar7 = pbVar7 + 1;\n    } while (bVar10);\n    bVar9 = false;\n    bVar8 = (!bVar8 && !bVar10) == bVar8;\n    if (!bVar8) {\n      lVar5 = 10;\n      pbVar6 = pbVar1;\n      pbVar7 = (byte *)"elf64-big";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);\n      bVar10 = false;\n      bVar8 = (!bVar9 && !bVar8) == bVar9;\n      if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (compound_statement "{\n    pbVar1 = (byte *)*param_1;\n    lVar5 = 10;\n    pbVar6 = pbVar1;\n    pbVar7 = (byte *)"elf32-big";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar10 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + 1;\n      pbVar7 = pbVar7 + 1;\n    } while (bVar10);\n    bVar9 = false;\n    bVar8 = (!bVar8 && !bVar10) == bVar8;\n    if (!bVar8) {\n      lVar5 = 10;\n      pbVar6 = pbVar1;\n      pbVar7 = (byte *)"elf64-big";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);\n      bVar10 = false;\n      bVar8 = (!bVar9 && !bVar8) == bVar9;\n      if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "pbVar1 = (byte *)*param_1;" (assignment_expression "pbVar1 = (byte *)*param_1" (identifier "pbVar1") (= "=") (cast_expression "(byte *)*param_1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "lVar5 = 10;" (assignment_expression "lVar5 = 10" (identifier "lVar5") (= "=") (number_literal "10")) (; ";")) (expression_statement "pbVar6 = pbVar1;" (assignment_expression "pbVar6 = pbVar1" (identifier "pbVar6") (= "=") (identifier "pbVar1")) (; ";")) (expression_statement "pbVar7 = (byte *)"elf32-big";" (assignment_expression "pbVar7 = (byte *)"elf32-big"" (identifier "pbVar7") (= "=") (cast_expression "(byte *)"elf32-big"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""elf32-big"" (" """) (string_content "elf32-big") (" """)))) (; ";")) (do_statement "do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar10 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + 1;\n      pbVar7 = pbVar7 + 1;\n    } while (bVar10);" (do "do") (compound_statement "{\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar10 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + 1;\n      pbVar7 = pbVar7 + 1;\n    }" ({ "{") (if_statement "if (lVar5 == 0) break;" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" (identifier "lVar5") (= "=") (binary_expression "lVar5 + -1" (identifier "lVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar8 = *pbVar6 < *pbVar7;" (assignment_expression "bVar8 = *pbVar6 < *pbVar7" (identifier "bVar8") (= "=") (binary_expression "*pbVar6 < *pbVar7" (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6")) (< "<") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")))) (; ";")) (expression_statement "bVar10 = *pbVar6 == *pbVar7;" (assignment_expression "bVar10 = *pbVar6 == *pbVar7" (identifier "bVar10") (= "=") (binary_expression "*pbVar6 == *pbVar7" (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6")) (== "==") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")))) (; ";")) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" (identifier "pbVar6") (= "=") (binary_expression "pbVar6 + 1" (identifier "pbVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (; ";")) (expression_statement "bVar9 = false;" (assignment_expression "bVar9 = false" (identifier "bVar9") (= "=") (false "false")) (; ";")) (expression_statement "bVar8 = (!bVar8 && !bVar10) == bVar8;" (assignment_expression "bVar8 = (!bVar8 && !bVar10) == bVar8" (identifier "bVar8") (= "=") (binary_expression "(!bVar8 && !bVar10) == bVar8" (parenthesized_expression "(!bVar8 && !bVar10)" (( "(") (binary_expression "!bVar8 && !bVar10" (unary_expression "!bVar8" (! "!") (identifier "bVar8")) (&& "&&") (unary_expression "!bVar10" (! "!") (identifier "bVar10"))) () ")")) (== "==") (identifier "bVar8"))) (; ";")) (if_statement "if (!bVar8) {\n      lVar5 = 10;\n      pbVar6 = pbVar1;\n      pbVar7 = (byte *)"elf64-big";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);\n      bVar10 = false;\n      bVar8 = (!bVar9 && !bVar8) == bVar9;\n      if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(!bVar8)" (( "(") (unary_expression "!bVar8" (! "!") (identifier "bVar8")) () ")")) (compound_statement "{\n      lVar5 = 10;\n      pbVar6 = pbVar1;\n      pbVar7 = (byte *)"elf64-big";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);\n      bVar10 = false;\n      bVar8 = (!bVar9 && !bVar8) == bVar9;\n      if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "lVar5 = 10;" (assignment_expression "lVar5 = 10" (identifier "lVar5") (= "=") (number_literal "10")) (; ";")) (expression_statement "pbVar6 = pbVar1;" (assignment_expression "pbVar6 = pbVar1" (identifier "pbVar6") (= "=") (identifier "pbVar1")) (; ";")) (expression_statement "pbVar7 = (byte *)"elf64-big";" (assignment_expression "pbVar7 = (byte *)"elf64-big"" (identifier "pbVar7") (= "=") (cast_expression "(byte *)"elf64-big"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""elf64-big"" (" """) (string_content "elf64-big") (" """)))) (; ";")) (do_statement "do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      } while (bVar8);" (do "do") (compound_statement "{\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar9 = *pbVar6 < *pbVar7;\n        bVar8 = *pbVar6 == *pbVar7;\n        pbVar6 = pbVar6 + 1;\n        pbVar7 = pbVar7 + 1;\n      }" ({ "{") (if_statement "if (lVar5 == 0) break;" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" (identifier "lVar5") (= "=") (binary_expression "lVar5 + -1" (identifier "lVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar9 = *pbVar6 < *pbVar7;" (assignment_expression "bVar9 = *pbVar6 < *pbVar7" (identifier "bVar9") (= "=") (binary_expression "*pbVar6 < *pbVar7" (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6")) (< "<") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")))) (; ";")) (expression_statement "bVar8 = *pbVar6 == *pbVar7;" (assignment_expression "bVar8 = *pbVar6 == *pbVar7" (identifier "bVar8") (= "=") (binary_expression "*pbVar6 == *pbVar7" (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6")) (== "==") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")))) (; ";")) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" (identifier "pbVar6") (= "=") (binary_expression "pbVar6 + 1" (identifier "pbVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar8)" (( "(") (identifier "bVar8") () ")")) (; ";")) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" (identifier "bVar10") (= "=") (false "false")) (; ";")) (expression_statement "bVar8 = (!bVar9 && !bVar8) == bVar9;" (assignment_expression "bVar8 = (!bVar9 && !bVar8) == bVar9" (identifier "bVar8") (= "=") (binary_expression "(!bVar9 && !bVar8) == bVar9" (parenthesized_expression "(!bVar9 && !bVar8)" (( "(") (binary_expression "!bVar9 && !bVar8" (unary_expression "!bVar9" (! "!") (identifier "bVar9")) (&& "&&") (unary_expression "!bVar8" (! "!") (identifier "bVar8"))) () ")")) (== "==") (identifier "bVar9"))) (; ";")) (if_statement "if (!bVar8) {\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(!bVar8)" (( "(") (unary_expression "!bVar8" (! "!") (identifier "bVar8")) () ")")) (compound_statement "{\n        lVar5 = 0xd;\n        pbVar6 = pbVar1;\n        pbVar7 = (byte *)"elf32-little";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);\n        bVar9 = false;\n        bVar8 = (!bVar10 && !bVar8) == bVar10;\n        if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "lVar5 = 0xd;" (assignment_expression "lVar5 = 0xd" (identifier "lVar5") (= "=") (number_literal "0xd")) (; ";")) (expression_statement "pbVar6 = pbVar1;" (assignment_expression "pbVar6 = pbVar1" (identifier "pbVar6") (= "=") (identifier "pbVar1")) (; ";")) (expression_statement "pbVar7 = (byte *)"elf32-little";" (assignment_expression "pbVar7 = (byte *)"elf32-little"" (identifier "pbVar7") (= "=") (cast_expression "(byte *)"elf32-little"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""elf32-little"" (" """) (string_content "elf32-little") (" """)))) (; ";")) (do_statement "do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        } while (bVar8);" (do "do") (compound_statement "{\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar10 = *pbVar6 < *pbVar7;\n          bVar8 = *pbVar6 == *pbVar7;\n          pbVar6 = pbVar6 + 1;\n          pbVar7 = pbVar7 + 1;\n        }" ({ "{") (if_statement "if (lVar5 == 0) break;" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" (identifier "lVar5") (= "=") (binary_expression "lVar5 + -1" (identifier "lVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar10 = *pbVar6 < *pbVar7;" (assignment_expression "bVar10 = *pbVar6 < *pbVar7" (identifier "bVar10") (= "=") (binary_expression "*pbVar6 < *pbVar7" (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6")) (< "<") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")))) (; ";")) (expression_statement "bVar8 = *pbVar6 == *pbVar7;" (assignment_expression "bVar8 = *pbVar6 == *pbVar7" (identifier "bVar8") (= "=") (binary_expression "*pbVar6 == *pbVar7" (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6")) (== "==") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")))) (; ";")) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" (identifier "pbVar6") (= "=") (binary_expression "pbVar6 + 1" (identifier "pbVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar8)" (( "(") (identifier "bVar8") () ")")) (; ";")) (expression_statement "bVar9 = false;" (assignment_expression "bVar9 = false" (identifier "bVar9") (= "=") (false "false")) (; ";")) (expression_statement "bVar8 = (!bVar10 && !bVar8) == bVar10;" (assignment_expression "bVar8 = (!bVar10 && !bVar8) == bVar10" (identifier "bVar8") (= "=") (binary_expression "(!bVar10 && !bVar8) == bVar10" (parenthesized_expression "(!bVar10 && !bVar8)" (( "(") (binary_expression "!bVar10 && !bVar8" (unary_expression "!bVar10" (! "!") (identifier "bVar10")) (&& "&&") (unary_expression "!bVar8" (! "!") (identifier "bVar8"))) () ")")) (== "==") (identifier "bVar10"))) (; ";")) (if_statement "if (!bVar8) {\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(!bVar8)" (( "(") (unary_expression "!bVar8" (! "!") (identifier "bVar8")) () ")")) (compound_statement "{\n          lVar5 = 0xd;\n          pbVar6 = pbVar1;\n          pbVar7 = (byte *)"elf64-little";\n          do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);\n          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }\n        }" ({ "{") (expression_statement "lVar5 = 0xd;" (assignment_expression "lVar5 = 0xd" (identifier "lVar5") (= "=") (number_literal "0xd")) (; ";")) (expression_statement "pbVar6 = pbVar1;" (assignment_expression "pbVar6 = pbVar1" (identifier "pbVar6") (= "=") (identifier "pbVar1")) (; ";")) (expression_statement "pbVar7 = (byte *)"elf64-little";" (assignment_expression "pbVar7 = (byte *)"elf64-little"" (identifier "pbVar7") (= "=") (cast_expression "(byte *)"elf64-little"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""elf64-little"" (" """) (string_content "elf64-little") (" """)))) (; ";")) (do_statement "do {\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          } while (bVar8);" (do "do") (compound_statement "{\n            if (lVar5 == 0) break;\n            lVar5 = lVar5 + -1;\n            bVar9 = *pbVar6 < *pbVar7;\n            bVar8 = *pbVar6 == *pbVar7;\n            pbVar6 = pbVar6 + 1;\n            pbVar7 = pbVar7 + 1;\n          }" ({ "{") (if_statement "if (lVar5 == 0) break;" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" (identifier "lVar5") (= "=") (binary_expression "lVar5 + -1" (identifier "lVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar9 = *pbVar6 < *pbVar7;" (assignment_expression "bVar9 = *pbVar6 < *pbVar7" (identifier "bVar9") (= "=") (binary_expression "*pbVar6 < *pbVar7" (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6")) (< "<") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")))) (; ";")) (expression_statement "bVar8 = *pbVar6 == *pbVar7;" (assignment_expression "bVar8 = *pbVar6 == *pbVar7" (identifier "bVar8") (= "=") (binary_expression "*pbVar6 == *pbVar7" (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6")) (== "==") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")))) (; ";")) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" (identifier "pbVar6") (= "=") (binary_expression "pbVar6 + 1" (identifier "pbVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar8)" (( "(") (identifier "bVar8") () ")")) (; ";")) (if_statement "if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             ) {\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }" (if "if") (parenthesized_expression "(((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)\n             )" (( "(") (binary_expression "((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)" (parenthesized_expression "((!bVar9 && !bVar8) != bVar9)" (( "(") (binary_expression "(!bVar9 && !bVar8) != bVar9" (parenthesized_expression "(!bVar9 && !bVar8)" (( "(") (binary_expression "!bVar9 && !bVar8" (unary_expression "!bVar9" (! "!") (identifier "bVar9")) (&& "&&") (unary_expression "!bVar8" (! "!") (identifier "bVar8"))) () ")")) (!= "!=") (identifier "bVar9")) () ")")) (&& "&&") (parenthesized_expression "(puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)" (( "(") (comma_expression "puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0" (assignment_expression "puVar2 = param_1" (identifier "puVar2") (= "=") (identifier "param_1")) (, ",") (binary_expression "DAT_002a5288 != (undefined8 *)0x0" (identifier "DAT_002a5288") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n            iVar3 = FUN_00116e40(pbVar1,*param_2);\n            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);\n            puVar2 = param_1;\n            if (iVar3 <= iVar4) {\n              return 0;\n            }\n          }" ({ "{") (expression_statement "iVar3 = FUN_00116e40(pbVar1,*param_2);" (assignment_expression "iVar3 = FUN_00116e40(pbVar1,*param_2)" (identifier "iVar3") (= "=") (call_expression "FUN_00116e40(pbVar1,*param_2)" (identifier "FUN_00116e40") (argument_list "(pbVar1,*param_2)" (( "(") (identifier "pbVar1") (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")")))) (; ";")) (expression_statement "iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);" (assignment_expression "iVar4 = FUN_00116e40(*DAT_002a5288,*param_2)" (identifier "iVar4") (= "=") (call_expression "FUN_00116e40(*DAT_002a5288,*param_2)" (identifier "FUN_00116e40") (argument_list "(*DAT_002a5288,*param_2)" (( "(") (pointer_expression "*DAT_002a5288" (* "*") (identifier "DAT_002a5288")) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")")))) (; ";")) (expression_statement "puVar2 = param_1;" (assignment_expression "puVar2 = param_1" (identifier "puVar2") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (iVar3 <= iVar4) {\n              return 0;\n            }" (if "if") (parenthesized_expression "(iVar3 <= iVar4)" (( "(") (binary_expression "iVar3 <= iVar4" (identifier "iVar3") (<= "<=") (identifier "iVar4")) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (expression_statement "DAT_002a5288 = puVar2;" (assignment_expression "DAT_002a5288 = puVar2" (identifier "DAT_002a5288") (= "=") (identifier "puVar2")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

int function_1(type_1 *target,void *data)

{
  type_2 *first;
  type_1 *pbVar1;
  int var_13;
  int var_14;
  long var_5;
  type_2 *var_6;
  type_2 *var_7;
  bool var_8;
  bool var_9;
  bool var_10;
  
  if (command_line.endian == var_1) {
    if (target->byteorder != var_2) {
      return 0;
    }
    var_8 = target->flavour < *(type_3 *)((long)data + 8);
    var_10 = target->flavour == *(type_3 *)((long)data + 8);
  }
  else {
    if ((command_line.endian == var_3) && (target->byteorder != var_4)) {
      return 0;
    }
    var_8 = target->flavour < *(type_3 *)((long)data + 8);
    var_10 = target->flavour == *(type_3 *)((long)data + 8);
  }
  pbVar1 = var_11;
  if (var_10) {
    first = (type_2 *)target->name;
    var_5 = 10;
    var_6 = first;
    var_7 = (type_2 *)"elf32-big";
    do {
      if (var_5 == 0) break;
      var_5 = var_5 + -1;
      var_8 = *var_6 < *var_7;
      var_10 = *var_6 == *var_7;
      var_6 = var_6 + 1;
      var_7 = var_7 + 1;
    } while (var_10);
    var_9 = false;
    var_8 = (!var_8 && !var_10) == var_8;
    if (!var_8) {
      var_5 = 10;
      var_6 = first;
      var_7 = (type_2 *)"elf64-big";
      do {
        if (var_5 == 0) break;
        var_5 = var_5 + -1;
        var_9 = *var_6 < *var_7;
        var_8 = *var_6 == *var_7;
        var_6 = var_6 + 1;
        var_7 = var_7 + 1;
      } while (var_8);
      var_10 = false;
      var_8 = (!var_9 && !var_8) == var_9;
      if (!var_8) {
        var_5 = 0xd;
        var_6 = first;
        var_7 = (type_2 *)"elf32-little";
        do {
          if (var_5 == 0) break;
          var_5 = var_5 + -1;
          var_10 = *var_6 < *var_7;
          var_8 = *var_6 == *var_7;
          var_6 = var_6 + 1;
          var_7 = var_7 + 1;
        } while (var_8);
        var_9 = false;
        var_8 = (!var_10 && !var_8) == var_10;
        if (!var_8) {
          var_5 = 0xd;
          var_6 = first;
          var_7 = (type_2 *)"elf64-little";
          do {
            if (var_5 == 0) break;
            var_5 = var_5 + -1;
            var_9 = *var_6 < *var_7;
            var_8 = *var_6 == *var_7;
            var_6 = var_6 + 1;
            var_7 = var_7 + 1;
          } while (var_8);
          if (((!var_9 && !var_8) != var_9) && (pbVar1 = target, var_11 != (type_1 *)0x0)) {
                    /* WARNING: Load size is inaccurate */
            var_13 = var_12((char *)first,*data);
                    /* WARNING: Load size is inaccurate */
            var_14 = var_12(var_11->name,*data);
            pbVar1 = target;
            if (var_13 <= var_14) {
              return 0;
            }
          }
        }
      }
    }
  }
  var_11 = pbVar1;
  return 0;
}


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

undefined8 MASKED(undefined8 *param_1,undefined8 *param_2)

{
  byte *pbVar1;
  undefined8 *puVar2;
  int iVar3;
  int iVar4;
  long lVar5;
  byte *pbVar6;
  byte *pbVar7;
  bool bVar8;
  bool bVar9;
  bool bVar10;
  
  if (DAT_002a67d4 == 1) {
    if (*(int *)((long)param_1 + 0xc) != 0) {
      return 0;
    }
    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);
    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);
  }
  else {
    if ((DAT_002a67d4 == 2) && (*(int *)((long)param_1 + 0xc) != 1)) {
      return 0;
    }
    bVar8 = *(uint *)(param_1 + 1) < *(uint *)(param_2 + 1);
    bVar10 = *(uint *)(param_1 + 1) == *(uint *)(param_2 + 1);
  }
  puVar2 = DAT_002a5288;
  if (bVar10) {
    pbVar1 = (byte *)*param_1;
    lVar5 = 10;
    pbVar6 = pbVar1;
    pbVar7 = (byte *)"elf32-big";
    do {
      if (lVar5 == 0) break;
      lVar5 = lVar5 + -1;
      bVar8 = *pbVar6 < *pbVar7;
      bVar10 = *pbVar6 == *pbVar7;
      pbVar6 = pbVar6 + 1;
      pbVar7 = pbVar7 + 1;
    } while (bVar10);
    bVar9 = false;
    bVar8 = (!bVar8 && !bVar10) == bVar8;
    if (!bVar8) {
      lVar5 = 10;
      pbVar6 = pbVar1;
      pbVar7 = (byte *)"elf64-big";
      do {
        if (lVar5 == 0) break;
        lVar5 = lVar5 + -1;
        bVar9 = *pbVar6 < *pbVar7;
        bVar8 = *pbVar6 == *pbVar7;
        pbVar6 = pbVar6 + 1;
        pbVar7 = pbVar7 + 1;
      } while (bVar8);
      bVar10 = false;
      bVar8 = (!bVar9 && !bVar8) == bVar9;
      if (!bVar8) {
        lVar5 = 0xd;
        pbVar6 = pbVar1;
        pbVar7 = (byte *)"elf32-little";
        do {
          if (lVar5 == 0) break;
          lVar5 = lVar5 + -1;
          bVar10 = *pbVar6 < *pbVar7;
          bVar8 = *pbVar6 == *pbVar7;
          pbVar6 = pbVar6 + 1;
          pbVar7 = pbVar7 + 1;
        } while (bVar8);
        bVar9 = false;
        bVar8 = (!bVar10 && !bVar8) == bVar10;
        if (!bVar8) {
          lVar5 = 0xd;
          pbVar6 = pbVar1;
          pbVar7 = (byte *)"elf64-little";
          do {
            if (lVar5 == 0) break;
            lVar5 = lVar5 + -1;
            bVar9 = *pbVar6 < *pbVar7;
            bVar8 = *pbVar6 == *pbVar7;
            pbVar6 = pbVar6 + 1;
            pbVar7 = pbVar7 + 1;
          } while (bVar8);
          if (((!bVar9 && !bVar8) != bVar9) && (puVar2 = param_1, DAT_002a5288 != (undefined8 *)0x0)
             ) {
            iVar3 = FUN_00116e40(pbVar1,*param_2);
            iVar4 = FUN_00116e40(*DAT_002a5288,*param_2);
            puVar2 = param_1;
            if (iVar3 <= iVar4) {
              return 0;
            }
          }
        }
      }
    }
  }
  DAT_002a5288 = puVar2;
  return 0;
}

