
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Unknown calling convention */

int compare_symbols(void *ap,void *bp)

{
  int *piVar1;
  int *piVar2;
  char *__haystack;
  char *__haystack_00;
  uint uVar3;
  char *pcVar4;
  char *pcVar5;
  size_t sVar6;
  int iVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  int local_2c;
  
  local_2c = 1;
                    /* WARNING: Load size is inaccurate */
  piVar1 = *ap;
                    /* WARNING: Load size is inaccurate */
  piVar2 = *bp;
  uVar12 = piVar1[5];
  uVar9 = piVar2[5];
  uVar8 = piVar1[2] + *(uint *)(uVar12 + 0x1c);
  uVar11 = piVar1[3] + *(int *)(uVar12 + 0x20) + (uint)CARRY4(piVar1[2],*(uint *)(uVar12 + 0x1c));
  uVar3 = piVar2[2] + *(uint *)(uVar9 + 0x1c);
  uVar10 = piVar2[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(piVar2[2],*(uint *)(uVar9 + 0x1c));
  if (uVar10 < uVar11 || uVar10 - uVar11 < (uint)(uVar3 < uVar8)) {
    return 1;
  }
  if (uVar11 < uVar10 || uVar11 - uVar10 < (uint)(uVar8 < uVar3)) {
    return -1;
  }
  if (uVar9 < uVar12) {
    return 1;
  }
  if (uVar12 < uVar9) {
    return -1;
  }
  __haystack = (char *)piVar1[1];
  __haystack_00 = (char *)piVar2[1];
  pcVar4 = strstr(__haystack,"gnu_compiled");
  pcVar5 = strstr(__haystack_00,"gnu_compiled");
  if (pcVar4 == (char *)0x0) {
    pcVar4 = strstr(__haystack,"gcc2_compiled");
    if ((pcVar5 != (char *)0x0) ||
       (pcVar5 = strstr(__haystack_00,"gcc2_compiled"), pcVar5 != (char *)0x0)) {
      local_2c = -1;
      goto joined_r0x00016f76;
    }
    if (pcVar4 != (char *)0x0) {
      return 1;
    }
  }
  else if (pcVar5 == (char *)0x0) {
    pcVar4 = strstr(__haystack_00,"gcc2_compiled");
joined_r0x00016f76:
    if (pcVar4 == (char *)0x0) {
      return local_2c;
    }
  }
  uVar12 = piVar1[4];
  if (((uVar12 & 0x4000) == 0) &&
     ((sVar6 = strlen(__haystack), __haystack[sVar6 - 2] != '.' ||
      ((__haystack[sVar6 - 1] != 'o' && (__haystack[sVar6 - 1] != 'a')))))) {
    uVar9 = piVar2[4];
    if ((uVar9 & 0x4000) != 0) {
      return -1;
    }
    sVar6 = strlen(__haystack_00);
    if (__haystack_00[sVar6 - 2] == '.') {
      if (__haystack_00[sVar6 - 1] == 'o') {
        return -1;
      }
      if (__haystack_00[sVar6 - 1] == 'a') {
        return -1;
      }
    }
  }
  else {
    uVar9 = piVar2[4];
    if (((uVar9 & 0x4000) == 0) &&
       ((sVar6 = strlen(__haystack_00), __haystack_00[sVar6 - 2] != '.' ||
        ((__haystack_00[sVar6 - 1] != 'a' && (__haystack_00[sVar6 - 1] != 'o')))))) {
      return 1;
    }
  }
  uVar3 = uVar12 ^ uVar9;
  if ((uVar3 & 4) != 0) {
    return -(uint)((uVar12 & 4) == 0) | 1;
  }
  if ((uVar3 & 8) != 0) {
    uVar12 = uVar12 & 8;
LAB_00016f91:
    return (-(uint)(uVar12 == 0) & 2) - 1;
  }
  if ((uVar3 & 1) != 0) {
    return -(uint)((uVar12 & 1) == 0) | 1;
  }
  if ((uVar3 & 2) != 0) {
    uVar12 = uVar12 & 2;
    goto LAB_00016f91;
  }
  if ((*(int *)(*(int *)(*piVar1 + 4) + 4) != 5) || (*(int *)(*(int *)(*piVar2 + 4) + 4) != 5))
  goto LAB_0001706b;
  if ((uVar12 & 0x200100) == 0) {
    uVar12 = piVar1[10];
    uVar3 = piVar1[0xb];
    if ((uVar9 & 0x200100) == 0) goto LAB_00017101;
    uVar9 = 0;
    uVar8 = 0;
  }
  else {
    if ((uVar9 & 0x200100) != 0) goto LAB_0001706b;
    uVar12 = 0;
    uVar3 = 0;
LAB_00017101:
    uVar9 = piVar2[10];
    uVar8 = piVar2[0xb];
  }
  if ((uVar8 != uVar3) || (uVar9 != uVar12)) {
    return (uint)(uVar3 <= uVar8 && (uint)(uVar9 < uVar12) <= uVar8 - uVar3) * 2 + -1;
  }
LAB_0001706b:
  if (*__haystack == '.') {
    if (*__haystack_00 != '.') {
      return 1;
    }
  }
  else if (*__haystack_00 == '.') {
    return -1;
  }
  iVar7 = strcmp(__haystack,__haystack_00);
  return iVar7;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

uint FUN_00016da0(int *param_1,int *param_2)

{
  char *__haystack;
  char *__haystack_00;
  uint uVar1;
  char *pcVar2;
  char *pcVar3;
  size_t sVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint local_2c;
  
  local_2c = 1;
  param_1 = (int *)*param_1;
  param_2 = (int *)*param_2;
  uVar9 = param_1[5];
  uVar6 = param_2[5];
  uVar5 = param_1[2] + *(uint *)(uVar9 + 0x1c);
  uVar8 = param_1[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c));
  uVar1 = param_2[2] + *(uint *)(uVar6 + 0x1c);
  uVar7 = param_2[3] + *(int *)(uVar6 + 0x20) + (uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c));
  if (uVar7 < uVar8 || uVar7 - uVar8 < (uint)(uVar1 < uVar5)) {
    return 1;
  }
  if (uVar8 < uVar7 || uVar8 - uVar7 < (uint)(uVar5 < uVar1)) {
    return 0xffffffff;
  }
  if (uVar6 < uVar9) {
    return 1;
  }
  if (uVar9 < uVar6) {
    return 0xffffffff;
  }
  __haystack = (char *)param_1[1];
  __haystack_00 = (char *)param_2[1];
  pcVar2 = strstr(__haystack,"gnu_compiled");
  pcVar3 = strstr(__haystack_00,"gnu_compiled");
  if (pcVar2 == (char *)0x0) {
    pcVar2 = strstr(__haystack,"gcc2_compiled");
    if ((pcVar3 != (char *)0x0) ||
       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)) {
      local_2c = 0xffffffff;
      goto joined_r0x00016f76;
    }
    if (pcVar2 != (char *)0x0) {
      return 1;
    }
  }
  else if (pcVar3 == (char *)0x0) {
    pcVar2 = strstr(__haystack_00,"gcc2_compiled");
joined_r0x00016f76:
    if (pcVar2 == (char *)0x0) {
      return local_2c;
    }
  }
  uVar9 = param_1[4];
  if (((uVar9 & 0x4000) == 0) &&
     ((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||
      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))))) {
    uVar6 = param_2[4];
    if ((uVar6 & 0x4000) != 0) {
      return 0xffffffff;
    }
    sVar4 = strlen(__haystack_00);
    if (__haystack_00[sVar4 - 2] == '.') {
      if (__haystack_00[sVar4 - 1] == 'o') {
        return 0xffffffff;
      }
      if (__haystack_00[sVar4 - 1] == 'a') {
        return 0xffffffff;
      }
    }
  }
  else {
    uVar6 = param_2[4];
    if (((uVar6 & 0x4000) == 0) &&
       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||
        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {
      return 1;
    }
  }
  uVar1 = uVar9 ^ uVar6;
  if ((uVar1 & 4) != 0) {
    return -(uint)((uVar9 & 4) == 0) | 1;
  }
  if ((uVar1 & 8) != 0) {
    uVar9 = uVar9 & 8;
LAB_00016f91:
    return (-(uint)(uVar9 == 0) & 2) - 1;
  }
  if ((uVar1 & 1) != 0) {
    return -(uint)((uVar9 & 1) == 0) | 1;
  }
  if ((uVar1 & 2) != 0) {
    uVar9 = uVar9 & 2;
    goto LAB_00016f91;
  }
  if ((*(int *)(*(int *)(*param_1 + 4) + 4) != 5) || (*(int *)(*(int *)(*param_2 + 4) + 4) != 5))
  goto LAB_0001706b;
  if ((uVar9 & 0x200100) == 0) {
    uVar9 = param_1[10];
    uVar1 = param_1[0xb];
    if ((uVar6 & 0x200100) == 0) goto LAB_00017101;
    uVar6 = 0;
    uVar5 = 0;
  }
  else {
    if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;
    uVar9 = 0;
    uVar1 = 0;
LAB_00017101:
    uVar6 = param_2[10];
    uVar5 = param_2[0xb];
  }
  if ((uVar5 != uVar1) || (uVar6 != uVar9)) {
    return (uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1;
  }
LAB_0001706b:
  if (*__haystack == '.') {
    if (*__haystack_00 != '.') {
      return 1;
    }
  }
  else if (*__haystack_00 == '.') {
    return 0xffffffff;
  }
  uVar9 = strcmp(__haystack,__haystack_00);
  return uVar9;
}


CALL 0x0001c79a
ADD EAX,0x5c25b
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x2c
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x40]
MOV dword ptr [ESP + 0x10],0x1
MOV ESI,dword ptr [EAX]
MOV EAX,dword ptr [ESP + 0x44]
MOV EAX,dword ptr [EAX]
MOV EBX,dword ptr [ESI + 0x14]
MOV ECX,dword ptr [ESI + 0x8]
MOV EDI,dword ptr [EAX + 0x14]
MOV EDX,EBX
MOV EBX,dword ptr [ESI + 0xc]
MOV dword ptr [ESP + 0x14],EAX
ADD ECX,dword ptr [EDX + 0x1c]
ADC EBX,dword ptr [EDX + 0x20]
MOV dword ptr [ESP + 0x18],EDX
MOV EDX,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [EAX + 0x8]
ADD EAX,dword ptr [EDI + 0x1c]
ADC EDX,dword ptr [EDI + 0x20]
MOV EBP,EDX
CMP EAX,ECX
SBB EBP,EBX
JC 0x00016ee0
CMP ECX,EAX
MOV ECX,EBX
SBB ECX,EDX
JC 0x00016ed8
CMP dword ptr [ESP + 0x18],EDI
JA 0x00016ee0
JC 0x00016ed8
MOV EBX,dword ptr [ESI + 0x4]
MOV EAX,dword ptr [ESP + 0x14]
SUB ESP,0x8
MOV dword ptr [ESP + 0x24],EBX
MOV EBP,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [ESP + 0x14]
LEA EDI,[EAX + 0xfffdc5b3]
PUSH EDI
PUSH EBX
MOV EBX,EAX
MOV dword ptr [ESP + 0x1c],EAX
CALL 0x00014060
POP EDX
POP ECX
MOV dword ptr [ESP + 0x20],EAX
PUSH EDI
PUSH EBP
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x00014060
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x18]
MOV EDI,EAX
TEST EDX,EDX
JZ 0x00016f40
TEST EAX,EAX
JZ 0x00016fa8
MOV EDX,dword ptr [ESI + 0x10]
TEST DH,0x40
JNZ 0x00016f08
MOV dword ptr [ESP + 0x10],EDX
SUB ESP,0xc
MOV EDI,dword ptr [ESP + 0x28]
PUSH EDI
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x00014480
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x10]
CMP byte ptr [EDI + EAX*0x1 + -0x2],0x2e
JZ 0x00016ef0
MOV EAX,dword ptr [ESP + 0x14]
MOV EDI,dword ptr [EAX + 0x10]
TEST EDI,0x4000
JNZ 0x00016ed8
MOV dword ptr [ESP + 0x10],EDX
SUB ESP,0xc
PUSH EBP
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x00014480
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x10]
CMP byte ptr [EBP + EAX*0x1 + -0x2],0x2e
JNZ 0x00016f1b
MOVZX EAX,byte ptr [EBP + EAX*0x1 + -0x1]
CMP AL,0x6f
JZ 0x00016ed8
CMP AL,0x61
JNZ 0x00016f1b
LEA ESI,[ESI]
MOV dword ptr [ESP + 0x10],0xffffffff
MOV EAX,dword ptr [ESP + 0x10]
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,dword ptr [ESP + 0x1c]
MOVZX EAX,byte ptr [EDI + EAX*0x1 + -0x1]
CMP AL,0x6f
JZ 0x00016f08
CMP AL,0x61
JNZ 0x00016e9a
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x14]
MOV EDI,dword ptr [EAX + 0x10]
TEST EDI,0x4000
JZ 0x00017020
MOV EAX,EDX
XOR EAX,EDI
TEST AL,0x4
JZ 0x00016f88
MOV ESI,EDX
AND ESI,0x4
CMP ESI,0x1
SBB EAX,EAX
OR EAX,0x1
MOV dword ptr [ESP + 0x10],EAX
JMP 0x00016ee0
SUB ESP,0x8
MOV EBX,dword ptr [ESP + 0x14]
LEA ECX,[EBX + 0xfffdc5c0]
PUSH ECX
MOV dword ptr [ESP + 0x24],ECX
PUSH dword ptr [ESP + 0x28]
CALL 0x00014060
ADD ESP,0x10
TEST EDI,EDI
MOV ECX,dword ptr [ESP + 0x18]
MOV EDX,EAX
JZ 0x00016ff0
MOV dword ptr [ESP + 0x10],0xffffffff
TEST EDX,EDX
JNZ 0x00016e6b
JMP 0x00016ee0
TEST AL,0x8
JZ 0x00016fd0
MOV ESI,EDX
AND ESI,0x8
CMP ESI,0x1
SBB EAX,EAX
AND EAX,0x2
SUB EAX,0x1
MOV dword ptr [ESP + 0x10],EAX
JMP 0x00016ee0
SUB ESP,0x8
MOV EBX,dword ptr [ESP + 0x14]
LEA EAX,[EBX + 0xfffdc5c0]
PUSH EAX
PUSH EBP
CALL 0x00014060
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00016e6b
JMP 0x00016ee0
TEST AL,0x1
JZ 0x00017050
MOV ESI,EDX
AND ESI,0x1
CMP ESI,0x1
SBB EAX,EAX
OR EAX,0x1
MOV dword ptr [ESP + 0x10],EAX
JMP 0x00016ee0
MOV dword ptr [ESP + 0x18],EAX
SUB ESP,0x8
PUSH ECX
PUSH EBP
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x00014060
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x18]
TEST EAX,EAX
JNZ 0x00016f6c
TEST EDX,EDX
JNZ 0x00016ee0
JMP 0x00016e6b
MOV dword ptr [ESP + 0x10],EDX
SUB ESP,0xc
PUSH EBP
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x00014480
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x10]
CMP byte ptr [EBP + EAX*0x1 + -0x2],0x2e
JZ 0x00017116
MOV dword ptr [ESP + 0x10],0x1
JMP 0x00016ee0
TEST AL,0x2
JZ 0x00017060
MOV ESI,EDX
AND ESI,0x2
JMP 0x00016f91
MOV EAX,dword ptr [ESI]
MOV EAX,dword ptr [EAX + 0x4]
CMP dword ptr [EAX + 0x4],0x5
JZ 0x0001709d
MOV ESI,dword ptr [ESP + 0x1c]
MOVZX EAX,byte ptr [EBP]
CMP byte ptr [ESI],0x2e
JZ 0x000170e3
CMP AL,0x2e
JZ 0x00016ed8
SUB ESP,0x8
PUSH EBP
PUSH dword ptr [ESP + 0x28]
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x00014080
ADD ESP,0x10
MOV dword ptr [ESP + 0x10],EAX
JMP 0x00016ee0
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x4]
CMP dword ptr [EAX + 0x4],0x5
JNZ 0x0001706b
AND EDI,0x200100
AND EDX,0x200100
JNZ 0x000170f5
MOV EAX,dword ptr [ESI + 0x28]
MOV EDX,dword ptr [ESI + 0x2c]
TEST EDI,EDI
JZ 0x00017101
XOR ECX,ECX
XOR EBX,EBX
CMP EBX,EDX
JZ 0x0001710d
CMP ECX,EAX
SBB EBX,EDX
SETNC AL
MOVZX EAX,AL
LEA EAX,[EAX + EAX*0x1 + -0x1]
MOV dword ptr [ESP + 0x10],EAX
JMP 0x00016ee0
MOV dword ptr [ESP + 0x10],0x1
CMP AL,0x2e
JNZ 0x00016ee0
JMP 0x00017080
TEST EDI,EDI
JNZ 0x0001706b
XOR EAX,EAX
XOR EDX,EDX
MOV ESI,dword ptr [ESP + 0x14]
MOV ECX,dword ptr [ESI + 0x28]
MOV EBX,dword ptr [ESI + 0x2c]
JMP 0x000170c8
CMP ECX,EAX
JNZ 0x000170cc
JMP 0x0001706b
MOVZX EAX,byte ptr [EBP + EAX*0x1 + -0x1]
CMP AL,0x61
JZ 0x00016f1b
CMP AL,0x6f
JNZ 0x00017043
JMP 0x00016f1b
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nuint FUN_00016da0(int *param_1,int *param_2)\n\n{\n  char *__haystack;\n  char *__haystack_00;\n  uint uVar1;\n  char *pcVar2;\n  char *pcVar3;\n  size_t sVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint local_2c;\n  \n  local_2c = 1;\n  param_1 = (int *)*param_1;\n  param_2 = (int *)*param_2;\n  uVar9 = param_1[5];\n  uVar6 = param_2[5];\n  uVar5 = param_1[2] + *(uint *)(uVar9 + 0x1c);\n  uVar8 = param_1[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c));\n  uVar1 = param_2[2] + *(uint *)(uVar6 + 0x1c);\n  uVar7 = param_2[3] + *(int *)(uVar6 + 0x20) + (uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c));\n  if (uVar7 < uVar8 || uVar7 - uVar8 < (uint)(uVar1 < uVar5)) {\n    return 1;\n  }\n  if (uVar8 < uVar7 || uVar8 - uVar7 < (uint)(uVar5 < uVar1)) {\n    return 0xffffffff;\n  }\n  if (uVar6 < uVar9) {\n    return 1;\n  }\n  if (uVar9 < uVar6) {\n    return 0xffffffff;\n  }\n  __haystack = (char *)param_1[1];\n  __haystack_00 = (char *)param_2[1];\n  pcVar2 = strstr(__haystack,"gnu_compiled");\n  pcVar3 = strstr(__haystack_00,"gnu_compiled");\n  if (pcVar2 == (char *)0x0) {\n    pcVar2 = strstr(__haystack,"gcc2_compiled");\n    if ((pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)) {\n      local_2c = 0xffffffff;\n      goto joined_r0x00016f76;\n    }\n    if (pcVar2 != (char *)0x0) {\n      return 1;\n    }\n  }\n  else if (pcVar3 == (char *)0x0) {\n    pcVar2 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }\n  }\n  uVar9 = param_1[4];\n  if (((uVar9 & 0x4000) == 0) &&\n     ((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))))) {\n    uVar6 = param_2[4];\n    if ((uVar6 & 0x4000) != 0) {\n      return 0xffffffff;\n    }\n    sVar4 = strlen(__haystack_00);\n    if (__haystack_00[sVar4 - 2] == '.') {\n      if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }\n      if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }\n    }\n  }\n  else {\n    uVar6 = param_2[4];\n    if (((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {\n      return 1;\n    }\n  }\n  uVar1 = uVar9 ^ uVar6;\n  if ((uVar1 & 4) != 0) {\n    return -(uint)((uVar9 & 4) == 0) | 1;\n  }\n  if ((uVar1 & 8) != 0) {\n    uVar9 = uVar9 & 8;\nLAB_00016f91:\n    return (-(uint)(uVar9 == 0) & 2) - 1;\n  }\n  if ((uVar1 & 1) != 0) {\n    return -(uint)((uVar9 & 1) == 0) | 1;\n  }\n  if ((uVar1 & 2) != 0) {\n    uVar9 = uVar9 & 2;\n    goto LAB_00016f91;\n  }\n  if ((*(int *)(*(int *)(*param_1 + 4) + 4) != 5) || (*(int *)(*(int *)(*param_2 + 4) + 4) != 5))\n  goto LAB_0001706b;\n  if ((uVar9 & 0x200100) == 0) {\n    uVar9 = param_1[10];\n    uVar1 = param_1[0xb];\n    if ((uVar6 & 0x200100) == 0) goto LAB_00017101;\n    uVar6 = 0;\n    uVar5 = 0;\n  }\n  else {\n    if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;\n    uVar9 = 0;\n    uVar1 = 0;\nLAB_00017101:\n    uVar6 = param_2[10];\n    uVar5 = param_2[0xb];\n  }\n  if ((uVar5 != uVar1) || (uVar6 != uVar9)) {\n    return (uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1;\n  }\nLAB_0001706b:\n  if (*__haystack == '.') {\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }\n  else if (*__haystack_00 == '.') {\n    return 0xffffffff;\n  }\n  uVar9 = strcmp(__haystack,__haystack_00);\n  return uVar9;\n}\n\n" comment (function_definition "uint FUN_00016da0(int *param_1,int *param_2)\n\n{\n  char *__haystack;\n  char *__haystack_00;\n  uint uVar1;\n  char *pcVar2;\n  char *pcVar3;\n  size_t sVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint local_2c;\n  \n  local_2c = 1;\n  param_1 = (int *)*param_1;\n  param_2 = (int *)*param_2;\n  uVar9 = param_1[5];\n  uVar6 = param_2[5];\n  uVar5 = param_1[2] + *(uint *)(uVar9 + 0x1c);\n  uVar8 = param_1[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c));\n  uVar1 = param_2[2] + *(uint *)(uVar6 + 0x1c);\n  uVar7 = param_2[3] + *(int *)(uVar6 + 0x20) + (uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c));\n  if (uVar7 < uVar8 || uVar7 - uVar8 < (uint)(uVar1 < uVar5)) {\n    return 1;\n  }\n  if (uVar8 < uVar7 || uVar8 - uVar7 < (uint)(uVar5 < uVar1)) {\n    return 0xffffffff;\n  }\n  if (uVar6 < uVar9) {\n    return 1;\n  }\n  if (uVar9 < uVar6) {\n    return 0xffffffff;\n  }\n  __haystack = (char *)param_1[1];\n  __haystack_00 = (char *)param_2[1];\n  pcVar2 = strstr(__haystack,"gnu_compiled");\n  pcVar3 = strstr(__haystack_00,"gnu_compiled");\n  if (pcVar2 == (char *)0x0) {\n    pcVar2 = strstr(__haystack,"gcc2_compiled");\n    if ((pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)) {\n      local_2c = 0xffffffff;\n      goto joined_r0x00016f76;\n    }\n    if (pcVar2 != (char *)0x0) {\n      return 1;\n    }\n  }\n  else if (pcVar3 == (char *)0x0) {\n    pcVar2 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }\n  }\n  uVar9 = param_1[4];\n  if (((uVar9 & 0x4000) == 0) &&\n     ((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))))) {\n    uVar6 = param_2[4];\n    if ((uVar6 & 0x4000) != 0) {\n      return 0xffffffff;\n    }\n    sVar4 = strlen(__haystack_00);\n    if (__haystack_00[sVar4 - 2] == '.') {\n      if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }\n      if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }\n    }\n  }\n  else {\n    uVar6 = param_2[4];\n    if (((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {\n      return 1;\n    }\n  }\n  uVar1 = uVar9 ^ uVar6;\n  if ((uVar1 & 4) != 0) {\n    return -(uint)((uVar9 & 4) == 0) | 1;\n  }\n  if ((uVar1 & 8) != 0) {\n    uVar9 = uVar9 & 8;\nLAB_00016f91:\n    return (-(uint)(uVar9 == 0) & 2) - 1;\n  }\n  if ((uVar1 & 1) != 0) {\n    return -(uint)((uVar9 & 1) == 0) | 1;\n  }\n  if ((uVar1 & 2) != 0) {\n    uVar9 = uVar9 & 2;\n    goto LAB_00016f91;\n  }\n  if ((*(int *)(*(int *)(*param_1 + 4) + 4) != 5) || (*(int *)(*(int *)(*param_2 + 4) + 4) != 5))\n  goto LAB_0001706b;\n  if ((uVar9 & 0x200100) == 0) {\n    uVar9 = param_1[10];\n    uVar1 = param_1[0xb];\n    if ((uVar6 & 0x200100) == 0) goto LAB_00017101;\n    uVar6 = 0;\n    uVar5 = 0;\n  }\n  else {\n    if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;\n    uVar9 = 0;\n    uVar1 = 0;\nLAB_00017101:\n    uVar6 = param_2[10];\n    uVar5 = param_2[0xb];\n  }\n  if ((uVar5 != uVar1) || (uVar6 != uVar9)) {\n    return (uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1;\n  }\nLAB_0001706b:\n  if (*__haystack == '.') {\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }\n  else if (*__haystack_00 == '.') {\n    return 0xffffffff;\n  }\n  uVar9 = strcmp(__haystack,__haystack_00);\n  return uVar9;\n}" type_identifier (function_declarator "FUN_00016da0(int *param_1,int *param_2)" identifier (parameter_list "(int *param_1,int *param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  char *__haystack;\n  char *__haystack_00;\n  uint uVar1;\n  char *pcVar2;\n  char *pcVar3;\n  size_t sVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint local_2c;\n  \n  local_2c = 1;\n  param_1 = (int *)*param_1;\n  param_2 = (int *)*param_2;\n  uVar9 = param_1[5];\n  uVar6 = param_2[5];\n  uVar5 = param_1[2] + *(uint *)(uVar9 + 0x1c);\n  uVar8 = param_1[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c));\n  uVar1 = param_2[2] + *(uint *)(uVar6 + 0x1c);\n  uVar7 = param_2[3] + *(int *)(uVar6 + 0x20) + (uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c));\n  if (uVar7 < uVar8 || uVar7 - uVar8 < (uint)(uVar1 < uVar5)) {\n    return 1;\n  }\n  if (uVar8 < uVar7 || uVar8 - uVar7 < (uint)(uVar5 < uVar1)) {\n    return 0xffffffff;\n  }\n  if (uVar6 < uVar9) {\n    return 1;\n  }\n  if (uVar9 < uVar6) {\n    return 0xffffffff;\n  }\n  __haystack = (char *)param_1[1];\n  __haystack_00 = (char *)param_2[1];\n  pcVar2 = strstr(__haystack,"gnu_compiled");\n  pcVar3 = strstr(__haystack_00,"gnu_compiled");\n  if (pcVar2 == (char *)0x0) {\n    pcVar2 = strstr(__haystack,"gcc2_compiled");\n    if ((pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)) {\n      local_2c = 0xffffffff;\n      goto joined_r0x00016f76;\n    }\n    if (pcVar2 != (char *)0x0) {\n      return 1;\n    }\n  }\n  else if (pcVar3 == (char *)0x0) {\n    pcVar2 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }\n  }\n  uVar9 = param_1[4];\n  if (((uVar9 & 0x4000) == 0) &&\n     ((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))))) {\n    uVar6 = param_2[4];\n    if ((uVar6 & 0x4000) != 0) {\n      return 0xffffffff;\n    }\n    sVar4 = strlen(__haystack_00);\n    if (__haystack_00[sVar4 - 2] == '.') {\n      if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }\n      if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }\n    }\n  }\n  else {\n    uVar6 = param_2[4];\n    if (((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {\n      return 1;\n    }\n  }\n  uVar1 = uVar9 ^ uVar6;\n  if ((uVar1 & 4) != 0) {\n    return -(uint)((uVar9 & 4) == 0) | 1;\n  }\n  if ((uVar1 & 8) != 0) {\n    uVar9 = uVar9 & 8;\nLAB_00016f91:\n    return (-(uint)(uVar9 == 0) & 2) - 1;\n  }\n  if ((uVar1 & 1) != 0) {\n    return -(uint)((uVar9 & 1) == 0) | 1;\n  }\n  if ((uVar1 & 2) != 0) {\n    uVar9 = uVar9 & 2;\n    goto LAB_00016f91;\n  }\n  if ((*(int *)(*(int *)(*param_1 + 4) + 4) != 5) || (*(int *)(*(int *)(*param_2 + 4) + 4) != 5))\n  goto LAB_0001706b;\n  if ((uVar9 & 0x200100) == 0) {\n    uVar9 = param_1[10];\n    uVar1 = param_1[0xb];\n    if ((uVar6 & 0x200100) == 0) goto LAB_00017101;\n    uVar6 = 0;\n    uVar5 = 0;\n  }\n  else {\n    if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;\n    uVar9 = 0;\n    uVar1 = 0;\nLAB_00017101:\n    uVar6 = param_2[10];\n    uVar5 = param_2[0xb];\n  }\n  if ((uVar5 != uVar1) || (uVar6 != uVar9)) {\n    return (uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1;\n  }\nLAB_0001706b:\n  if (*__haystack == '.') {\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }\n  else if (*__haystack_00 == '.') {\n    return 0xffffffff;\n  }\n  uVar9 = strcmp(__haystack,__haystack_00);\n  return uVar9;\n}" { (declaration "char *__haystack;" primitive_type (pointer_declarator "*__haystack" * identifier) ;) (declaration "char *__haystack_00;" primitive_type (pointer_declarator "*__haystack_00" * identifier) ;) (declaration "uint uVar1;" type_identifier identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (expression_statement "local_2c = 1;" (assignment_expression "local_2c = 1" identifier = number_literal) ;) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "param_2 = (int *)*param_2;" (assignment_expression "param_2 = (int *)*param_2" identifier = (cast_expression "(int *)*param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "uVar9 = param_1[5];" (assignment_expression "uVar9 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_2[5];" (assignment_expression "uVar6 = param_2[5]" identifier = (subscript_expression "param_2[5]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = param_1[2] + *(uint *)(uVar9 + 0x1c);" (assignment_expression "uVar5 = param_1[2] + *(uint *)(uVar9 + 0x1c)" identifier = (binary_expression "param_1[2] + *(uint *)(uVar9 + 0x1c)" (subscript_expression "param_1[2]" identifier [ number_literal ]) + (pointer_expression "*(uint *)(uVar9 + 0x1c)" * (cast_expression "(uint *)(uVar9 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x1c)" ( (binary_expression "uVar9 + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "uVar8 = param_1[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c));" (assignment_expression "uVar8 = param_1[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c))" identifier = (binary_expression "param_1[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c))" (binary_expression "param_1[3] + *(int *)(uVar9 + 0x20)" (subscript_expression "param_1[3]" identifier [ number_literal ]) + (pointer_expression "*(int *)(uVar9 + 0x20)" * (cast_expression "(int *)(uVar9 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x20)" ( (binary_expression "uVar9 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c))" identifier (argument_list "(param_1[2],*(uint *)(uVar9 + 0x1c))" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , (pointer_expression "*(uint *)(uVar9 + 0x1c)" * (cast_expression "(uint *)(uVar9 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x1c)" ( (binary_expression "uVar9 + 0x1c" identifier + number_literal) )))) )))))) ;) (expression_statement "uVar1 = param_2[2] + *(uint *)(uVar6 + 0x1c);" (assignment_expression "uVar1 = param_2[2] + *(uint *)(uVar6 + 0x1c)" identifier = (binary_expression "param_2[2] + *(uint *)(uVar6 + 0x1c)" (subscript_expression "param_2[2]" identifier [ number_literal ]) + (pointer_expression "*(uint *)(uVar6 + 0x1c)" * (cast_expression "(uint *)(uVar6 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 + 0x1c)" ( (binary_expression "uVar6 + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "uVar7 = param_2[3] + *(int *)(uVar6 + 0x20) + (uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c));" (assignment_expression "uVar7 = param_2[3] + *(int *)(uVar6 + 0x20) + (uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c))" identifier = (binary_expression "param_2[3] + *(int *)(uVar6 + 0x20) + (uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c))" (binary_expression "param_2[3] + *(int *)(uVar6 + 0x20)" (subscript_expression "param_2[3]" identifier [ number_literal ]) + (pointer_expression "*(int *)(uVar6 + 0x20)" * (cast_expression "(int *)(uVar6 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 + 0x20)" ( (binary_expression "uVar6 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c))" identifier (argument_list "(param_2[2],*(uint *)(uVar6 + 0x1c))" ( (subscript_expression "param_2[2]" identifier [ number_literal ]) , (pointer_expression "*(uint *)(uVar6 + 0x1c)" * (cast_expression "(uint *)(uVar6 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 + 0x1c)" ( (binary_expression "uVar6 + 0x1c" identifier + number_literal) )))) )))))) ;) (if_statement "if (uVar7 < uVar8 || uVar7 - uVar8 < (uint)(uVar1 < uVar5)) {\n    return 1;\n  }" if (parenthesized_expression "(uVar7 < uVar8 || uVar7 - uVar8 < (uint)(uVar1 < uVar5))" ( (binary_expression "uVar7 < uVar8 || uVar7 - uVar8 < (uint)(uVar1 < uVar5)" (binary_expression "uVar7 < uVar8" identifier < identifier) || (binary_expression "uVar7 - uVar8 < (uint)(uVar1 < uVar5)" (binary_expression "uVar7 - uVar8" identifier - identifier) < (call_expression "(uint)(uVar1 < uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 < uVar5)" ( (binary_expression "uVar1 < uVar5" identifier < identifier) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (uVar8 < uVar7 || uVar8 - uVar7 < (uint)(uVar5 < uVar1)) {\n    return 0xffffffff;\n  }" if (parenthesized_expression "(uVar8 < uVar7 || uVar8 - uVar7 < (uint)(uVar5 < uVar1))" ( (binary_expression "uVar8 < uVar7 || uVar8 - uVar7 < (uint)(uVar5 < uVar1)" (binary_expression "uVar8 < uVar7" identifier < identifier) || (binary_expression "uVar8 - uVar7 < (uint)(uVar5 < uVar1)" (binary_expression "uVar8 - uVar7" identifier - identifier) < (call_expression "(uint)(uVar5 < uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 < uVar1)" ( (binary_expression "uVar5 < uVar1" identifier < identifier) ))))) )) (compound_statement "{\n    return 0xffffffff;\n  }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (if_statement "if (uVar6 < uVar9) {\n    return 1;\n  }" if (parenthesized_expression "(uVar6 < uVar9)" ( (binary_expression "uVar6 < uVar9" identifier < identifier) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (uVar9 < uVar6) {\n    return 0xffffffff;\n  }" if (parenthesized_expression "(uVar9 < uVar6)" ( (binary_expression "uVar9 < uVar6" identifier < identifier) )) (compound_statement "{\n    return 0xffffffff;\n  }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "__haystack = (char *)param_1[1];" (assignment_expression "__haystack = (char *)param_1[1]" identifier = (cast_expression "(char *)param_1[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "__haystack_00 = (char *)param_2[1];" (assignment_expression "__haystack_00 = (char *)param_2[1]" identifier = (cast_expression "(char *)param_2[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) ;) (expression_statement "pcVar2 = strstr(__haystack,"gnu_compiled");" (assignment_expression "pcVar2 = strstr(__haystack,"gnu_compiled")" identifier = (call_expression "strstr(__haystack,"gnu_compiled")" identifier (argument_list "(__haystack,"gnu_compiled")" ( identifier , (string_literal ""gnu_compiled"" " string_content ") )))) ;) (expression_statement "pcVar3 = strstr(__haystack_00,"gnu_compiled");" (assignment_expression "pcVar3 = strstr(__haystack_00,"gnu_compiled")" identifier = (call_expression "strstr(__haystack_00,"gnu_compiled")" identifier (argument_list "(__haystack_00,"gnu_compiled")" ( identifier , (string_literal ""gnu_compiled"" " string_content ") )))) ;) (if_statement "if (pcVar2 == (char *)0x0) {\n    pcVar2 = strstr(__haystack,"gcc2_compiled");\n    if ((pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)) {\n      local_2c = 0xffffffff;\n      goto joined_r0x00016f76;\n    }\n    if (pcVar2 != (char *)0x0) {\n      return 1;\n    }\n  }\n  else if (pcVar3 == (char *)0x0) {\n    pcVar2 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }\n  }" if (parenthesized_expression "(pcVar2 == (char *)0x0)" ( (binary_expression "pcVar2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar2 = strstr(__haystack,"gcc2_compiled");\n    if ((pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)) {\n      local_2c = 0xffffffff;\n      goto joined_r0x00016f76;\n    }\n    if (pcVar2 != (char *)0x0) {\n      return 1;\n    }\n  }" { (expression_statement "pcVar2 = strstr(__haystack,"gcc2_compiled");" (assignment_expression "pcVar2 = strstr(__haystack,"gcc2_compiled")" identifier = (call_expression "strstr(__haystack,"gcc2_compiled")" identifier (argument_list "(__haystack,"gcc2_compiled")" ( identifier , (string_literal ""gcc2_compiled"" " string_content ") )))) ;) (if_statement "if ((pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)) {\n      local_2c = 0xffffffff;\n      goto joined_r0x00016f76;\n    }" if (parenthesized_expression "((pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0))" ( (binary_expression "(pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)" (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)" ( (comma_expression "pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0" (assignment_expression "pcVar3 = strstr(__haystack_00,"gcc2_compiled")" identifier = (call_expression "strstr(__haystack_00,"gcc2_compiled")" identifier (argument_list "(__haystack_00,"gcc2_compiled")" ( identifier , (string_literal ""gcc2_compiled"" " string_content ") )))) , (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      local_2c = 0xffffffff;\n      goto joined_r0x00016f76;\n    }" { (expression_statement "local_2c = 0xffffffff;" (assignment_expression "local_2c = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto joined_r0x00016f76;" goto statement_identifier ;) })) (if_statement "if (pcVar2 != (char *)0x0) {\n      return 1;\n    }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }) (else_clause "else if (pcVar3 == (char *)0x0) {\n    pcVar2 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }\n  }" else (if_statement "if (pcVar3 == (char *)0x0) {\n    pcVar2 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }\n  }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar2 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }\n  }" { (expression_statement "pcVar2 = strstr(__haystack_00,"gcc2_compiled");" (assignment_expression "pcVar2 = strstr(__haystack_00,"gcc2_compiled")" identifier = (call_expression "strstr(__haystack_00,"gcc2_compiled")" identifier (argument_list "(__haystack_00,"gcc2_compiled")" ( identifier , (string_literal ""gcc2_compiled"" " string_content ") )))) ;) (labeled_statement "joined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }" statement_identifier : (if_statement "if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }" if (parenthesized_expression "(pcVar2 == (char *)0x0)" ( (binary_expression "pcVar2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return local_2c;\n    }" { (return_statement "return local_2c;" return identifier ;) }))) })))) (expression_statement "uVar9 = param_1[4];" (assignment_expression "uVar9 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (if_statement "if (((uVar9 & 0x4000) == 0) &&\n     ((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))))) {\n    uVar6 = param_2[4];\n    if ((uVar6 & 0x4000) != 0) {\n      return 0xffffffff;\n    }\n    sVar4 = strlen(__haystack_00);\n    if (__haystack_00[sVar4 - 2] == '.') {\n      if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }\n      if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }\n    }\n  }\n  else {\n    uVar6 = param_2[4];\n    if (((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {\n      return 1;\n    }\n  }" if (parenthesized_expression "(((uVar9 & 0x4000) == 0) &&\n     ((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a'))))))" ( (binary_expression "((uVar9 & 0x4000) == 0) &&\n     ((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))))" (parenthesized_expression "((uVar9 & 0x4000) == 0)" ( (binary_expression "(uVar9 & 0x4000) == 0" (parenthesized_expression "(uVar9 & 0x4000)" ( (binary_expression "uVar9 & 0x4000" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))))" ( (parenthesized_expression "(sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a'))))" ( (comma_expression "sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))" (assignment_expression "sVar4 = strlen(__haystack)" identifier = (call_expression "strlen(__haystack)" identifier (argument_list "(__haystack)" ( identifier )))) , (binary_expression "__haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))" (binary_expression "__haystack[sVar4 - 2] != '.'" (subscript_expression "__haystack[sVar4 - 2]" identifier [ (binary_expression "sVar4 - 2" identifier - number_literal) ]) != (char_literal "'.'" ' character ')) || (parenthesized_expression "((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))" ( (parenthesized_expression "(__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a'))" ( (binary_expression "__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')" (binary_expression "__haystack[sVar4 - 1] != 'o'" (subscript_expression "__haystack[sVar4 - 1]" identifier [ (binary_expression "sVar4 - 1" identifier - number_literal) ]) != (char_literal "'o'" ' character ')) && (parenthesized_expression "(__haystack[sVar4 - 1] != 'a')" ( (binary_expression "__haystack[sVar4 - 1] != 'a'" (subscript_expression "__haystack[sVar4 - 1]" identifier [ (binary_expression "sVar4 - 1" identifier - number_literal) ]) != (char_literal "'a'" ' character ')) ))) )) )))) )) ))) )) (compound_statement "{\n    uVar6 = param_2[4];\n    if ((uVar6 & 0x4000) != 0) {\n      return 0xffffffff;\n    }\n    sVar4 = strlen(__haystack_00);\n    if (__haystack_00[sVar4 - 2] == '.') {\n      if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }\n      if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }\n    }\n  }" { (expression_statement "uVar6 = param_2[4];" (assignment_expression "uVar6 = param_2[4]" identifier = (subscript_expression "param_2[4]" identifier [ number_literal ])) ;) (if_statement "if ((uVar6 & 0x4000) != 0) {\n      return 0xffffffff;\n    }" if (parenthesized_expression "((uVar6 & 0x4000) != 0)" ( (binary_expression "(uVar6 & 0x4000) != 0" (parenthesized_expression "(uVar6 & 0x4000)" ( (binary_expression "uVar6 & 0x4000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      return 0xffffffff;\n    }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "sVar4 = strlen(__haystack_00);" (assignment_expression "sVar4 = strlen(__haystack_00)" identifier = (call_expression "strlen(__haystack_00)" identifier (argument_list "(__haystack_00)" ( identifier )))) ;) (if_statement "if (__haystack_00[sVar4 - 2] == '.') {\n      if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }\n      if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }\n    }" if (parenthesized_expression "(__haystack_00[sVar4 - 2] == '.')" ( (binary_expression "__haystack_00[sVar4 - 2] == '.'" (subscript_expression "__haystack_00[sVar4 - 2]" identifier [ (binary_expression "sVar4 - 2" identifier - number_literal) ]) == (char_literal "'.'" ' character ')) )) (compound_statement "{\n      if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }\n      if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }\n    }" { (if_statement "if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }" if (parenthesized_expression "(__haystack_00[sVar4 - 1] == 'o')" ( (binary_expression "__haystack_00[sVar4 - 1] == 'o'" (subscript_expression "__haystack_00[sVar4 - 1]" identifier [ (binary_expression "sVar4 - 1" identifier - number_literal) ]) == (char_literal "'o'" ' character ')) )) (compound_statement "{\n        return 0xffffffff;\n      }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (if_statement "if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }" if (parenthesized_expression "(__haystack_00[sVar4 - 1] == 'a')" ( (binary_expression "__haystack_00[sVar4 - 1] == 'a'" (subscript_expression "__haystack_00[sVar4 - 1]" identifier [ (binary_expression "sVar4 - 1" identifier - number_literal) ]) == (char_literal "'a'" ' character ')) )) (compound_statement "{\n        return 0xffffffff;\n      }" { (return_statement "return 0xffffffff;" return number_literal ;) })) })) }) (else_clause "else {\n    uVar6 = param_2[4];\n    if (((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {\n      return 1;\n    }\n  }" else (compound_statement "{\n    uVar6 = param_2[4];\n    if (((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {\n      return 1;\n    }\n  }" { (expression_statement "uVar6 = param_2[4];" (assignment_expression "uVar6 = param_2[4]" identifier = (subscript_expression "param_2[4]" identifier [ number_literal ])) ;) (if_statement "if (((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {\n      return 1;\n    }" if (parenthesized_expression "(((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o'))))))" ( (binary_expression "((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))" (parenthesized_expression "((uVar6 & 0x4000) == 0)" ( (binary_expression "(uVar6 & 0x4000) == 0" (parenthesized_expression "(uVar6 & 0x4000)" ( (binary_expression "uVar6 & 0x4000" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))" ( (parenthesized_expression "(sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o'))))" ( (comma_expression "sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))" (assignment_expression "sVar4 = strlen(__haystack_00)" identifier = (call_expression "strlen(__haystack_00)" identifier (argument_list "(__haystack_00)" ( identifier )))) , (binary_expression "__haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))" (binary_expression "__haystack_00[sVar4 - 2] != '.'" (subscript_expression "__haystack_00[sVar4 - 2]" identifier [ (binary_expression "sVar4 - 2" identifier - number_literal) ]) != (char_literal "'.'" ' character ')) || (parenthesized_expression "((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))" ( (parenthesized_expression "(__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o'))" ( (binary_expression "__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')" (binary_expression "__haystack_00[sVar4 - 1] != 'a'" (subscript_expression "__haystack_00[sVar4 - 1]" identifier [ (binary_expression "sVar4 - 1" identifier - number_literal) ]) != (char_literal "'a'" ' character ')) && (parenthesized_expression "(__haystack_00[sVar4 - 1] != 'o')" ( (binary_expression "__haystack_00[sVar4 - 1] != 'o'" (subscript_expression "__haystack_00[sVar4 - 1]" identifier [ (binary_expression "sVar4 - 1" identifier - number_literal) ]) != (char_literal "'o'" ' character ')) ))) )) )))) )) ))) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }))) (expression_statement "uVar1 = uVar9 ^ uVar6;" (assignment_expression "uVar1 = uVar9 ^ uVar6" identifier = (binary_expression "uVar9 ^ uVar6" identifier ^ identifier)) ;) (if_statement "if ((uVar1 & 4) != 0) {\n    return -(uint)((uVar9 & 4) == 0) | 1;\n  }" if (parenthesized_expression "((uVar1 & 4) != 0)" ( (binary_expression "(uVar1 & 4) != 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    return -(uint)((uVar9 & 4) == 0) | 1;\n  }" { (return_statement "return -(uint)((uVar9 & 4) == 0) | 1;" return (binary_expression "-(uint)((uVar9 & 4) == 0) | 1" (unary_expression "-(uint)((uVar9 & 4) == 0)" - (call_expression "(uint)((uVar9 & 4) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar9 & 4) == 0)" ( (binary_expression "(uVar9 & 4) == 0" (parenthesized_expression "(uVar9 & 4)" ( (binary_expression "uVar9 & 4" identifier & number_literal) )) == number_literal) )))) | number_literal) ;) })) (if_statement "if ((uVar1 & 8) != 0) {\n    uVar9 = uVar9 & 8;\nLAB_00016f91:\n    return (-(uint)(uVar9 == 0) & 2) - 1;\n  }" if (parenthesized_expression "((uVar1 & 8) != 0)" ( (binary_expression "(uVar1 & 8) != 0" (parenthesized_expression "(uVar1 & 8)" ( (binary_expression "uVar1 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar9 = uVar9 & 8;\nLAB_00016f91:\n    return (-(uint)(uVar9 == 0) & 2) - 1;\n  }" { (expression_statement "uVar9 = uVar9 & 8;" (assignment_expression "uVar9 = uVar9 & 8" identifier = (binary_expression "uVar9 & 8" identifier & number_literal)) ;) (labeled_statement "LAB_00016f91:\n    return (-(uint)(uVar9 == 0) & 2) - 1;" statement_identifier : (return_statement "return (-(uint)(uVar9 == 0) & 2) - 1;" return (binary_expression "(-(uint)(uVar9 == 0) & 2) - 1" (parenthesized_expression "(-(uint)(uVar9 == 0) & 2)" ( (binary_expression "-(uint)(uVar9 == 0) & 2" (unary_expression "-(uint)(uVar9 == 0)" - (call_expression "(uint)(uVar9 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )))) & number_literal) )) - number_literal) ;)) })) (if_statement "if ((uVar1 & 1) != 0) {\n    return -(uint)((uVar9 & 1) == 0) | 1;\n  }" if (parenthesized_expression "((uVar1 & 1) != 0)" ( (binary_expression "(uVar1 & 1) != 0" (parenthesized_expression "(uVar1 & 1)" ( (binary_expression "uVar1 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    return -(uint)((uVar9 & 1) == 0) | 1;\n  }" { (return_statement "return -(uint)((uVar9 & 1) == 0) | 1;" return (binary_expression "-(uint)((uVar9 & 1) == 0) | 1" (unary_expression "-(uint)((uVar9 & 1) == 0)" - (call_expression "(uint)((uVar9 & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar9 & 1) == 0)" ( (binary_expression "(uVar9 & 1) == 0" (parenthesized_expression "(uVar9 & 1)" ( (binary_expression "uVar9 & 1" identifier & number_literal) )) == number_literal) )))) | number_literal) ;) })) (if_statement "if ((uVar1 & 2) != 0) {\n    uVar9 = uVar9 & 2;\n    goto LAB_00016f91;\n  }" if (parenthesized_expression "((uVar1 & 2) != 0)" ( (binary_expression "(uVar1 & 2) != 0" (parenthesized_expression "(uVar1 & 2)" ( (binary_expression "uVar1 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar9 = uVar9 & 2;\n    goto LAB_00016f91;\n  }" { (expression_statement "uVar9 = uVar9 & 2;" (assignment_expression "uVar9 = uVar9 & 2" identifier = (binary_expression "uVar9 & 2" identifier & number_literal)) ;) (goto_statement "goto LAB_00016f91;" goto statement_identifier ;) })) (if_statement "if ((*(int *)(*(int *)(*param_1 + 4) + 4) != 5) || (*(int *)(*(int *)(*param_2 + 4) + 4) != 5))\n  goto LAB_0001706b;" if (parenthesized_expression "((*(int *)(*(int *)(*param_1 + 4) + 4) != 5) || (*(int *)(*(int *)(*param_2 + 4) + 4) != 5))" ( (binary_expression "(*(int *)(*(int *)(*param_1 + 4) + 4) != 5) || (*(int *)(*(int *)(*param_2 + 4) + 4) != 5)" (parenthesized_expression "(*(int *)(*(int *)(*param_1 + 4) + 4) != 5)" ( (binary_expression "*(int *)(*(int *)(*param_1 + 4) + 4) != 5" (pointer_expression "*(int *)(*(int *)(*param_1 + 4) + 4)" * (cast_expression "(int *)(*(int *)(*param_1 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*param_1 + 4) + 4)" ( (binary_expression "*(int *)(*param_1 + 4) + 4" (pointer_expression "*(int *)(*param_1 + 4)" * (cast_expression "(int *)(*param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 4)" ( (binary_expression "*param_1 + 4" (pointer_expression "*param_1" * identifier) + number_literal) )))) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(int *)(*(int *)(*param_2 + 4) + 4) != 5)" ( (binary_expression "*(int *)(*(int *)(*param_2 + 4) + 4) != 5" (pointer_expression "*(int *)(*(int *)(*param_2 + 4) + 4)" * (cast_expression "(int *)(*(int *)(*param_2 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*param_2 + 4) + 4)" ( (binary_expression "*(int *)(*param_2 + 4) + 4" (pointer_expression "*(int *)(*param_2 + 4)" * (cast_expression "(int *)(*param_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + 4)" ( (binary_expression "*param_2 + 4" (pointer_expression "*param_2" * identifier) + number_literal) )))) + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_0001706b;" goto statement_identifier ;)) (if_statement "if ((uVar9 & 0x200100) == 0) {\n    uVar9 = param_1[10];\n    uVar1 = param_1[0xb];\n    if ((uVar6 & 0x200100) == 0) goto LAB_00017101;\n    uVar6 = 0;\n    uVar5 = 0;\n  }\n  else {\n    if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;\n    uVar9 = 0;\n    uVar1 = 0;\nLAB_00017101:\n    uVar6 = param_2[10];\n    uVar5 = param_2[0xb];\n  }" if (parenthesized_expression "((uVar9 & 0x200100) == 0)" ( (binary_expression "(uVar9 & 0x200100) == 0" (parenthesized_expression "(uVar9 & 0x200100)" ( (binary_expression "uVar9 & 0x200100" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar9 = param_1[10];\n    uVar1 = param_1[0xb];\n    if ((uVar6 & 0x200100) == 0) goto LAB_00017101;\n    uVar6 = 0;\n    uVar5 = 0;\n  }" { (expression_statement "uVar9 = param_1[10];" (assignment_expression "uVar9 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "uVar1 = param_1[0xb];" (assignment_expression "uVar1 = param_1[0xb]" identifier = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) (if_statement "if ((uVar6 & 0x200100) == 0) goto LAB_00017101;" if (parenthesized_expression "((uVar6 & 0x200100) == 0)" ( (binary_expression "(uVar6 & 0x200100) == 0" (parenthesized_expression "(uVar6 & 0x200100)" ( (binary_expression "uVar6 & 0x200100" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00017101;" goto statement_identifier ;)) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;\n    uVar9 = 0;\n    uVar1 = 0;\nLAB_00017101:\n    uVar6 = param_2[10];\n    uVar5 = param_2[0xb];\n  }" else (compound_statement "{\n    if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;\n    uVar9 = 0;\n    uVar1 = 0;\nLAB_00017101:\n    uVar6 = param_2[10];\n    uVar5 = param_2[0xb];\n  }" { (if_statement "if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;" if (parenthesized_expression "((uVar6 & 0x200100) != 0)" ( (binary_expression "(uVar6 & 0x200100) != 0" (parenthesized_expression "(uVar6 & 0x200100)" ( (binary_expression "uVar6 & 0x200100" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001706b;" goto statement_identifier ;)) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00017101:\n    uVar6 = param_2[10];" statement_identifier : (expression_statement "uVar6 = param_2[10];" (assignment_expression "uVar6 = param_2[10]" identifier = (subscript_expression "param_2[10]" identifier [ number_literal ])) ;)) (expression_statement "uVar5 = param_2[0xb];" (assignment_expression "uVar5 = param_2[0xb]" identifier = (subscript_expression "param_2[0xb]" identifier [ number_literal ])) ;) }))) (if_statement "if ((uVar5 != uVar1) || (uVar6 != uVar9)) {\n    return (uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1;\n  }" if (parenthesized_expression "((uVar5 != uVar1) || (uVar6 != uVar9))" ( (binary_expression "(uVar5 != uVar1) || (uVar6 != uVar9)" (parenthesized_expression "(uVar5 != uVar1)" ( (binary_expression "uVar5 != uVar1" identifier != identifier) )) || (parenthesized_expression "(uVar6 != uVar9)" ( (binary_expression "uVar6 != uVar9" identifier != identifier) ))) )) (compound_statement "{\n    return (uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1;\n  }" { (return_statement "return (uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1;" return (binary_expression "(uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1" (binary_expression "(uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2" (call_expression "(uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1)" ( (binary_expression "uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1" (binary_expression "uVar1 <= uVar5" identifier <= identifier) && (binary_expression "(uint)(uVar6 < uVar9) <= uVar5 - uVar1" (call_expression "(uint)(uVar6 < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 < uVar9)" ( (binary_expression "uVar6 < uVar9" identifier < identifier) ))) <= (binary_expression "uVar5 - uVar1" identifier - identifier))) ))) * number_literal) - number_literal) ;) })) (labeled_statement "LAB_0001706b:\n  if (*__haystack == '.') {\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }\n  else if (*__haystack_00 == '.') {\n    return 0xffffffff;\n  }" statement_identifier : (if_statement "if (*__haystack == '.') {\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }\n  else if (*__haystack_00 == '.') {\n    return 0xffffffff;\n  }" if (parenthesized_expression "(*__haystack == '.')" ( (binary_expression "*__haystack == '.'" (pointer_expression "*__haystack" * identifier) == (char_literal "'.'" ' character ')) )) (compound_statement "{\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }" { (if_statement "if (*__haystack_00 != '.') {\n      return 1;\n    }" if (parenthesized_expression "(*__haystack_00 != '.')" ( (binary_expression "*__haystack_00 != '.'" (pointer_expression "*__haystack_00" * identifier) != (char_literal "'.'" ' character ')) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }) (else_clause "else if (*__haystack_00 == '.') {\n    return 0xffffffff;\n  }" else (if_statement "if (*__haystack_00 == '.') {\n    return 0xffffffff;\n  }" if (parenthesized_expression "(*__haystack_00 == '.')" ( (binary_expression "*__haystack_00 == '.'" (pointer_expression "*__haystack_00" * identifier) == (char_literal "'.'" ' character ')) )) (compound_statement "{\n    return 0xffffffff;\n  }" { (return_statement "return 0xffffffff;" return number_literal ;) }))))) (expression_statement "uVar9 = strcmp(__haystack,__haystack_00);" (assignment_expression "uVar9 = strcmp(__haystack,__haystack_00)" identifier = (call_expression "strcmp(__haystack,__haystack_00)" identifier (argument_list "(__haystack,__haystack_00)" ( identifier , identifier )))) ;) (return_statement "return uVar9;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Unknown calling convention */\n\nint compare_symbols(void *ap,void *bp)\n\n{\n  int *piVar1;\n  int *piVar2;\n  char *__haystack;\n  char *__haystack_00;\n  uint uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  size_t sVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  int local_2c;\n  \n  local_2c = 1;\n                    /* WARNING: Load size is inaccurate */\n  piVar1 = *ap;\n                    /* WARNING: Load size is inaccurate */\n  piVar2 = *bp;\n  uVar12 = piVar1[5];\n  uVar9 = piVar2[5];\n  uVar8 = piVar1[2] + *(uint *)(uVar12 + 0x1c);\n  uVar11 = piVar1[3] + *(int *)(uVar12 + 0x20) + (uint)CARRY4(piVar1[2],*(uint *)(uVar12 + 0x1c));\n  uVar3 = piVar2[2] + *(uint *)(uVar9 + 0x1c);\n  uVar10 = piVar2[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(piVar2[2],*(uint *)(uVar9 + 0x1c));\n  if (uVar10 < uVar11 || uVar10 - uVar11 < (uint)(uVar3 < uVar8)) {\n    return 1;\n  }\n  if (uVar11 < uVar10 || uVar11 - uVar10 < (uint)(uVar8 < uVar3)) {\n    return -1;\n  }\n  if (uVar9 < uVar12) {\n    return 1;\n  }\n  if (uVar12 < uVar9) {\n    return -1;\n  }\n  __haystack = (char *)piVar1[1];\n  __haystack_00 = (char *)piVar2[1];\n  pcVar4 = strstr(__haystack,"gnu_compiled");\n  pcVar5 = strstr(__haystack_00,"gnu_compiled");\n  if (pcVar4 == (char *)0x0) {\n    pcVar4 = strstr(__haystack,"gcc2_compiled");\n    if ((pcVar5 != (char *)0x0) ||\n       (pcVar5 = strstr(__haystack_00,"gcc2_compiled"), pcVar5 != (char *)0x0)) {\n      local_2c = -1;\n      goto joined_r0x00016f76;\n    }\n    if (pcVar4 != (char *)0x0) {\n      return 1;\n    }\n  }\n  else if (pcVar5 == (char *)0x0) {\n    pcVar4 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar4 == (char *)0x0) {\n      return local_2c;\n    }\n  }\n  uVar12 = piVar1[4];\n  if (((uVar12 & 0x4000) == 0) &&\n     ((sVar6 = strlen(__haystack), __haystack[sVar6 - 2] != '.' ||\n      ((__haystack[sVar6 - 1] != 'o' && (__haystack[sVar6 - 1] != 'a')))))) {\n    uVar9 = piVar2[4];\n    if ((uVar9 & 0x4000) != 0) {\n      return -1;\n    }\n    sVar6 = strlen(__haystack_00);\n    if (__haystack_00[sVar6 - 2] == '.') {\n      if (__haystack_00[sVar6 - 1] == 'o') {\n        return -1;\n      }\n      if (__haystack_00[sVar6 - 1] == 'a') {\n        return -1;\n      }\n    }\n  }\n  else {\n    uVar9 = piVar2[4];\n    if (((uVar9 & 0x4000) == 0) &&\n       ((sVar6 = strlen(__haystack_00), __haystack_00[sVar6 - 2] != '.' ||\n        ((__haystack_00[sVar6 - 1] != 'a' && (__haystack_00[sVar6 - 1] != 'o')))))) {\n      return 1;\n    }\n  }\n  uVar3 = uVar12 ^ uVar9;\n  if ((uVar3 & 4) != 0) {\n    return -(uint)((uVar12 & 4) == 0) | 1;\n  }\n  if ((uVar3 & 8) != 0) {\n    uVar12 = uVar12 & 8;\nLAB_00016f91:\n    return (-(uint)(uVar12 == 0) & 2) - 1;\n  }\n  if ((uVar3 & 1) != 0) {\n    return -(uint)((uVar12 & 1) == 0) | 1;\n  }\n  if ((uVar3 & 2) != 0) {\n    uVar12 = uVar12 & 2;\n    goto LAB_00016f91;\n  }\n  if ((*(int *)(*(int *)(*piVar1 + 4) + 4) != 5) || (*(int *)(*(int *)(*piVar2 + 4) + 4) != 5))\n  goto LAB_0001706b;\n  if ((uVar12 & 0x200100) == 0) {\n    uVar12 = piVar1[10];\n    uVar3 = piVar1[0xb];\n    if ((uVar9 & 0x200100) == 0) goto LAB_00017101;\n    uVar9 = 0;\n    uVar8 = 0;\n  }\n  else {\n    if ((uVar9 & 0x200100) != 0) goto LAB_0001706b;\n    uVar12 = 0;\n    uVar3 = 0;\nLAB_00017101:\n    uVar9 = piVar2[10];\n    uVar8 = piVar2[0xb];\n  }\n  if ((uVar8 != uVar3) || (uVar9 != uVar12)) {\n    return (uint)(uVar3 <= uVar8 && (uint)(uVar9 < uVar12) <= uVar8 - uVar3) * 2 + -1;\n  }\nLAB_0001706b:\n  if (*__haystack == '.') {\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }\n  else if (*__haystack_00 == '.') {\n    return -1;\n  }\n  iVar7 = strcmp(__haystack,__haystack_00);\n  return iVar7;\n}\n\n" comment comment (function_definition "int compare_symbols(void *ap,void *bp)\n\n{\n  int *piVar1;\n  int *piVar2;\n  char *__haystack;\n  char *__haystack_00;\n  uint uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  size_t sVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  int local_2c;\n  \n  local_2c = 1;\n                    /* WARNING: Load size is inaccurate */\n  piVar1 = *ap;\n                    /* WARNING: Load size is inaccurate */\n  piVar2 = *bp;\n  uVar12 = piVar1[5];\n  uVar9 = piVar2[5];\n  uVar8 = piVar1[2] + *(uint *)(uVar12 + 0x1c);\n  uVar11 = piVar1[3] + *(int *)(uVar12 + 0x20) + (uint)CARRY4(piVar1[2],*(uint *)(uVar12 + 0x1c));\n  uVar3 = piVar2[2] + *(uint *)(uVar9 + 0x1c);\n  uVar10 = piVar2[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(piVar2[2],*(uint *)(uVar9 + 0x1c));\n  if (uVar10 < uVar11 || uVar10 - uVar11 < (uint)(uVar3 < uVar8)) {\n    return 1;\n  }\n  if (uVar11 < uVar10 || uVar11 - uVar10 < (uint)(uVar8 < uVar3)) {\n    return -1;\n  }\n  if (uVar9 < uVar12) {\n    return 1;\n  }\n  if (uVar12 < uVar9) {\n    return -1;\n  }\n  __haystack = (char *)piVar1[1];\n  __haystack_00 = (char *)piVar2[1];\n  pcVar4 = strstr(__haystack,"gnu_compiled");\n  pcVar5 = strstr(__haystack_00,"gnu_compiled");\n  if (pcVar4 == (char *)0x0) {\n    pcVar4 = strstr(__haystack,"gcc2_compiled");\n    if ((pcVar5 != (char *)0x0) ||\n       (pcVar5 = strstr(__haystack_00,"gcc2_compiled"), pcVar5 != (char *)0x0)) {\n      local_2c = -1;\n      goto joined_r0x00016f76;\n    }\n    if (pcVar4 != (char *)0x0) {\n      return 1;\n    }\n  }\n  else if (pcVar5 == (char *)0x0) {\n    pcVar4 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar4 == (char *)0x0) {\n      return local_2c;\n    }\n  }\n  uVar12 = piVar1[4];\n  if (((uVar12 & 0x4000) == 0) &&\n     ((sVar6 = strlen(__haystack), __haystack[sVar6 - 2] != '.' ||\n      ((__haystack[sVar6 - 1] != 'o' && (__haystack[sVar6 - 1] != 'a')))))) {\n    uVar9 = piVar2[4];\n    if ((uVar9 & 0x4000) != 0) {\n      return -1;\n    }\n    sVar6 = strlen(__haystack_00);\n    if (__haystack_00[sVar6 - 2] == '.') {\n      if (__haystack_00[sVar6 - 1] == 'o') {\n        return -1;\n      }\n      if (__haystack_00[sVar6 - 1] == 'a') {\n        return -1;\n      }\n    }\n  }\n  else {\n    uVar9 = piVar2[4];\n    if (((uVar9 & 0x4000) == 0) &&\n       ((sVar6 = strlen(__haystack_00), __haystack_00[sVar6 - 2] != '.' ||\n        ((__haystack_00[sVar6 - 1] != 'a' && (__haystack_00[sVar6 - 1] != 'o')))))) {\n      return 1;\n    }\n  }\n  uVar3 = uVar12 ^ uVar9;\n  if ((uVar3 & 4) != 0) {\n    return -(uint)((uVar12 & 4) == 0) | 1;\n  }\n  if ((uVar3 & 8) != 0) {\n    uVar12 = uVar12 & 8;\nLAB_00016f91:\n    return (-(uint)(uVar12 == 0) & 2) - 1;\n  }\n  if ((uVar3 & 1) != 0) {\n    return -(uint)((uVar12 & 1) == 0) | 1;\n  }\n  if ((uVar3 & 2) != 0) {\n    uVar12 = uVar12 & 2;\n    goto LAB_00016f91;\n  }\n  if ((*(int *)(*(int *)(*piVar1 + 4) + 4) != 5) || (*(int *)(*(int *)(*piVar2 + 4) + 4) != 5))\n  goto LAB_0001706b;\n  if ((uVar12 & 0x200100) == 0) {\n    uVar12 = piVar1[10];\n    uVar3 = piVar1[0xb];\n    if ((uVar9 & 0x200100) == 0) goto LAB_00017101;\n    uVar9 = 0;\n    uVar8 = 0;\n  }\n  else {\n    if ((uVar9 & 0x200100) != 0) goto LAB_0001706b;\n    uVar12 = 0;\n    uVar3 = 0;\nLAB_00017101:\n    uVar9 = piVar2[10];\n    uVar8 = piVar2[0xb];\n  }\n  if ((uVar8 != uVar3) || (uVar9 != uVar12)) {\n    return (uint)(uVar3 <= uVar8 && (uint)(uVar9 < uVar12) <= uVar8 - uVar3) * 2 + -1;\n  }\nLAB_0001706b:\n  if (*__haystack == '.') {\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }\n  else if (*__haystack_00 == '.') {\n    return -1;\n  }\n  iVar7 = strcmp(__haystack,__haystack_00);\n  return iVar7;\n}" primitive_type (function_declarator "compare_symbols(void *ap,void *bp)" identifier (parameter_list "(void *ap,void *bp)" ( (parameter_declaration "void *ap" primitive_type (pointer_declarator "*ap" * identifier)) , (parameter_declaration "void *bp" primitive_type (pointer_declarator "*bp" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  int *piVar2;\n  char *__haystack;\n  char *__haystack_00;\n  uint uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  size_t sVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  int local_2c;\n  \n  local_2c = 1;\n                    /* WARNING: Load size is inaccurate */\n  piVar1 = *ap;\n                    /* WARNING: Load size is inaccurate */\n  piVar2 = *bp;\n  uVar12 = piVar1[5];\n  uVar9 = piVar2[5];\n  uVar8 = piVar1[2] + *(uint *)(uVar12 + 0x1c);\n  uVar11 = piVar1[3] + *(int *)(uVar12 + 0x20) + (uint)CARRY4(piVar1[2],*(uint *)(uVar12 + 0x1c));\n  uVar3 = piVar2[2] + *(uint *)(uVar9 + 0x1c);\n  uVar10 = piVar2[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(piVar2[2],*(uint *)(uVar9 + 0x1c));\n  if (uVar10 < uVar11 || uVar10 - uVar11 < (uint)(uVar3 < uVar8)) {\n    return 1;\n  }\n  if (uVar11 < uVar10 || uVar11 - uVar10 < (uint)(uVar8 < uVar3)) {\n    return -1;\n  }\n  if (uVar9 < uVar12) {\n    return 1;\n  }\n  if (uVar12 < uVar9) {\n    return -1;\n  }\n  __haystack = (char *)piVar1[1];\n  __haystack_00 = (char *)piVar2[1];\n  pcVar4 = strstr(__haystack,"gnu_compiled");\n  pcVar5 = strstr(__haystack_00,"gnu_compiled");\n  if (pcVar4 == (char *)0x0) {\n    pcVar4 = strstr(__haystack,"gcc2_compiled");\n    if ((pcVar5 != (char *)0x0) ||\n       (pcVar5 = strstr(__haystack_00,"gcc2_compiled"), pcVar5 != (char *)0x0)) {\n      local_2c = -1;\n      goto joined_r0x00016f76;\n    }\n    if (pcVar4 != (char *)0x0) {\n      return 1;\n    }\n  }\n  else if (pcVar5 == (char *)0x0) {\n    pcVar4 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar4 == (char *)0x0) {\n      return local_2c;\n    }\n  }\n  uVar12 = piVar1[4];\n  if (((uVar12 & 0x4000) == 0) &&\n     ((sVar6 = strlen(__haystack), __haystack[sVar6 - 2] != '.' ||\n      ((__haystack[sVar6 - 1] != 'o' && (__haystack[sVar6 - 1] != 'a')))))) {\n    uVar9 = piVar2[4];\n    if ((uVar9 & 0x4000) != 0) {\n      return -1;\n    }\n    sVar6 = strlen(__haystack_00);\n    if (__haystack_00[sVar6 - 2] == '.') {\n      if (__haystack_00[sVar6 - 1] == 'o') {\n        return -1;\n      }\n      if (__haystack_00[sVar6 - 1] == 'a') {\n        return -1;\n      }\n    }\n  }\n  else {\n    uVar9 = piVar2[4];\n    if (((uVar9 & 0x4000) == 0) &&\n       ((sVar6 = strlen(__haystack_00), __haystack_00[sVar6 - 2] != '.' ||\n        ((__haystack_00[sVar6 - 1] != 'a' && (__haystack_00[sVar6 - 1] != 'o')))))) {\n      return 1;\n    }\n  }\n  uVar3 = uVar12 ^ uVar9;\n  if ((uVar3 & 4) != 0) {\n    return -(uint)((uVar12 & 4) == 0) | 1;\n  }\n  if ((uVar3 & 8) != 0) {\n    uVar12 = uVar12 & 8;\nLAB_00016f91:\n    return (-(uint)(uVar12 == 0) & 2) - 1;\n  }\n  if ((uVar3 & 1) != 0) {\n    return -(uint)((uVar12 & 1) == 0) | 1;\n  }\n  if ((uVar3 & 2) != 0) {\n    uVar12 = uVar12 & 2;\n    goto LAB_00016f91;\n  }\n  if ((*(int *)(*(int *)(*piVar1 + 4) + 4) != 5) || (*(int *)(*(int *)(*piVar2 + 4) + 4) != 5))\n  goto LAB_0001706b;\n  if ((uVar12 & 0x200100) == 0) {\n    uVar12 = piVar1[10];\n    uVar3 = piVar1[0xb];\n    if ((uVar9 & 0x200100) == 0) goto LAB_00017101;\n    uVar9 = 0;\n    uVar8 = 0;\n  }\n  else {\n    if ((uVar9 & 0x200100) != 0) goto LAB_0001706b;\n    uVar12 = 0;\n    uVar3 = 0;\nLAB_00017101:\n    uVar9 = piVar2[10];\n    uVar8 = piVar2[0xb];\n  }\n  if ((uVar8 != uVar3) || (uVar9 != uVar12)) {\n    return (uint)(uVar3 <= uVar8 && (uint)(uVar9 < uVar12) <= uVar8 - uVar3) * 2 + -1;\n  }\nLAB_0001706b:\n  if (*__haystack == '.') {\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }\n  else if (*__haystack_00 == '.') {\n    return -1;\n  }\n  iVar7 = strcmp(__haystack,__haystack_00);\n  return iVar7;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "char *__haystack;" primitive_type (pointer_declarator "*__haystack" * identifier) ;) (declaration "char *__haystack_00;" primitive_type (pointer_declarator "*__haystack_00" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "local_2c = 1;" (assignment_expression "local_2c = 1" identifier = number_literal) ;) comment (expression_statement "piVar1 = *ap;" (assignment_expression "piVar1 = *ap" identifier = (pointer_expression "*ap" * identifier)) ;) comment (expression_statement "piVar2 = *bp;" (assignment_expression "piVar2 = *bp" identifier = (pointer_expression "*bp" * identifier)) ;) (expression_statement "uVar12 = piVar1[5];" (assignment_expression "uVar12 = piVar1[5]" identifier = (subscript_expression "piVar1[5]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = piVar2[5];" (assignment_expression "uVar9 = piVar2[5]" identifier = (subscript_expression "piVar2[5]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = piVar1[2] + *(uint *)(uVar12 + 0x1c);" (assignment_expression "uVar8 = piVar1[2] + *(uint *)(uVar12 + 0x1c)" identifier = (binary_expression "piVar1[2] + *(uint *)(uVar12 + 0x1c)" (subscript_expression "piVar1[2]" identifier [ number_literal ]) + (pointer_expression "*(uint *)(uVar12 + 0x1c)" * (cast_expression "(uint *)(uVar12 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x1c)" ( (binary_expression "uVar12 + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "uVar11 = piVar1[3] + *(int *)(uVar12 + 0x20) + (uint)CARRY4(piVar1[2],*(uint *)(uVar12 + 0x1c));" (assignment_expression "uVar11 = piVar1[3] + *(int *)(uVar12 + 0x20) + (uint)CARRY4(piVar1[2],*(uint *)(uVar12 + 0x1c))" identifier = (binary_expression "piVar1[3] + *(int *)(uVar12 + 0x20) + (uint)CARRY4(piVar1[2],*(uint *)(uVar12 + 0x1c))" (binary_expression "piVar1[3] + *(int *)(uVar12 + 0x20)" (subscript_expression "piVar1[3]" identifier [ number_literal ]) + (pointer_expression "*(int *)(uVar12 + 0x20)" * (cast_expression "(int *)(uVar12 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x20)" ( (binary_expression "uVar12 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(piVar1[2],*(uint *)(uVar12 + 0x1c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(piVar1[2],*(uint *)(uVar12 + 0x1c))" identifier (argument_list "(piVar1[2],*(uint *)(uVar12 + 0x1c))" ( (subscript_expression "piVar1[2]" identifier [ number_literal ]) , (pointer_expression "*(uint *)(uVar12 + 0x1c)" * (cast_expression "(uint *)(uVar12 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x1c)" ( (binary_expression "uVar12 + 0x1c" identifier + number_literal) )))) )))))) ;) (expression_statement "uVar3 = piVar2[2] + *(uint *)(uVar9 + 0x1c);" (assignment_expression "uVar3 = piVar2[2] + *(uint *)(uVar9 + 0x1c)" identifier = (binary_expression "piVar2[2] + *(uint *)(uVar9 + 0x1c)" (subscript_expression "piVar2[2]" identifier [ number_literal ]) + (pointer_expression "*(uint *)(uVar9 + 0x1c)" * (cast_expression "(uint *)(uVar9 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x1c)" ( (binary_expression "uVar9 + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "uVar10 = piVar2[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(piVar2[2],*(uint *)(uVar9 + 0x1c));" (assignment_expression "uVar10 = piVar2[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(piVar2[2],*(uint *)(uVar9 + 0x1c))" identifier = (binary_expression "piVar2[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(piVar2[2],*(uint *)(uVar9 + 0x1c))" (binary_expression "piVar2[3] + *(int *)(uVar9 + 0x20)" (subscript_expression "piVar2[3]" identifier [ number_literal ]) + (pointer_expression "*(int *)(uVar9 + 0x20)" * (cast_expression "(int *)(uVar9 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x20)" ( (binary_expression "uVar9 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(piVar2[2],*(uint *)(uVar9 + 0x1c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(piVar2[2],*(uint *)(uVar9 + 0x1c))" identifier (argument_list "(piVar2[2],*(uint *)(uVar9 + 0x1c))" ( (subscript_expression "piVar2[2]" identifier [ number_literal ]) , (pointer_expression "*(uint *)(uVar9 + 0x1c)" * (cast_expression "(uint *)(uVar9 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x1c)" ( (binary_expression "uVar9 + 0x1c" identifier + number_literal) )))) )))))) ;) (if_statement "if (uVar10 < uVar11 || uVar10 - uVar11 < (uint)(uVar3 < uVar8)) {\n    return 1;\n  }" if (parenthesized_expression "(uVar10 < uVar11 || uVar10 - uVar11 < (uint)(uVar3 < uVar8))" ( (binary_expression "uVar10 < uVar11 || uVar10 - uVar11 < (uint)(uVar3 < uVar8)" (binary_expression "uVar10 < uVar11" identifier < identifier) || (binary_expression "uVar10 - uVar11 < (uint)(uVar3 < uVar8)" (binary_expression "uVar10 - uVar11" identifier - identifier) < (call_expression "(uint)(uVar3 < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < uVar8)" ( (binary_expression "uVar3 < uVar8" identifier < identifier) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (uVar11 < uVar10 || uVar11 - uVar10 < (uint)(uVar8 < uVar3)) {\n    return -1;\n  }" if (parenthesized_expression "(uVar11 < uVar10 || uVar11 - uVar10 < (uint)(uVar8 < uVar3))" ( (binary_expression "uVar11 < uVar10 || uVar11 - uVar10 < (uint)(uVar8 < uVar3)" (binary_expression "uVar11 < uVar10" identifier < identifier) || (binary_expression "uVar11 - uVar10 < (uint)(uVar8 < uVar3)" (binary_expression "uVar11 - uVar10" identifier - identifier) < (call_expression "(uint)(uVar8 < uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 < uVar3)" ( (binary_expression "uVar8 < uVar3" identifier < identifier) ))))) )) (compound_statement "{\n    return -1;\n  }" { (return_statement "return -1;" return number_literal ;) })) (if_statement "if (uVar9 < uVar12) {\n    return 1;\n  }" if (parenthesized_expression "(uVar9 < uVar12)" ( (binary_expression "uVar9 < uVar12" identifier < identifier) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (uVar12 < uVar9) {\n    return -1;\n  }" if (parenthesized_expression "(uVar12 < uVar9)" ( (binary_expression "uVar12 < uVar9" identifier < identifier) )) (compound_statement "{\n    return -1;\n  }" { (return_statement "return -1;" return number_literal ;) })) (expression_statement "__haystack = (char *)piVar1[1];" (assignment_expression "__haystack = (char *)piVar1[1]" identifier = (cast_expression "(char *)piVar1[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar1[1]" identifier [ number_literal ]))) ;) (expression_statement "__haystack_00 = (char *)piVar2[1];" (assignment_expression "__haystack_00 = (char *)piVar2[1]" identifier = (cast_expression "(char *)piVar2[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[1]" identifier [ number_literal ]))) ;) (expression_statement "pcVar4 = strstr(__haystack,"gnu_compiled");" (assignment_expression "pcVar4 = strstr(__haystack,"gnu_compiled")" identifier = (call_expression "strstr(__haystack,"gnu_compiled")" identifier (argument_list "(__haystack,"gnu_compiled")" ( identifier , (string_literal ""gnu_compiled"" " string_content ") )))) ;) (expression_statement "pcVar5 = strstr(__haystack_00,"gnu_compiled");" (assignment_expression "pcVar5 = strstr(__haystack_00,"gnu_compiled")" identifier = (call_expression "strstr(__haystack_00,"gnu_compiled")" identifier (argument_list "(__haystack_00,"gnu_compiled")" ( identifier , (string_literal ""gnu_compiled"" " string_content ") )))) ;) (if_statement "if (pcVar4 == (char *)0x0) {\n    pcVar4 = strstr(__haystack,"gcc2_compiled");\n    if ((pcVar5 != (char *)0x0) ||\n       (pcVar5 = strstr(__haystack_00,"gcc2_compiled"), pcVar5 != (char *)0x0)) {\n      local_2c = -1;\n      goto joined_r0x00016f76;\n    }\n    if (pcVar4 != (char *)0x0) {\n      return 1;\n    }\n  }\n  else if (pcVar5 == (char *)0x0) {\n    pcVar4 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar4 == (char *)0x0) {\n      return local_2c;\n    }\n  }" if (parenthesized_expression "(pcVar4 == (char *)0x0)" ( (binary_expression "pcVar4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar4 = strstr(__haystack,"gcc2_compiled");\n    if ((pcVar5 != (char *)0x0) ||\n       (pcVar5 = strstr(__haystack_00,"gcc2_compiled"), pcVar5 != (char *)0x0)) {\n      local_2c = -1;\n      goto joined_r0x00016f76;\n    }\n    if (pcVar4 != (char *)0x0) {\n      return 1;\n    }\n  }" { (expression_statement "pcVar4 = strstr(__haystack,"gcc2_compiled");" (assignment_expression "pcVar4 = strstr(__haystack,"gcc2_compiled")" identifier = (call_expression "strstr(__haystack,"gcc2_compiled")" identifier (argument_list "(__haystack,"gcc2_compiled")" ( identifier , (string_literal ""gcc2_compiled"" " string_content ") )))) ;) (if_statement "if ((pcVar5 != (char *)0x0) ||\n       (pcVar5 = strstr(__haystack_00,"gcc2_compiled"), pcVar5 != (char *)0x0)) {\n      local_2c = -1;\n      goto joined_r0x00016f76;\n    }" if (parenthesized_expression "((pcVar5 != (char *)0x0) ||\n       (pcVar5 = strstr(__haystack_00,"gcc2_compiled"), pcVar5 != (char *)0x0))" ( (binary_expression "(pcVar5 != (char *)0x0) ||\n       (pcVar5 = strstr(__haystack_00,"gcc2_compiled"), pcVar5 != (char *)0x0)" (parenthesized_expression "(pcVar5 != (char *)0x0)" ( (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar5 = strstr(__haystack_00,"gcc2_compiled"), pcVar5 != (char *)0x0)" ( (comma_expression "pcVar5 = strstr(__haystack_00,"gcc2_compiled"), pcVar5 != (char *)0x0" (assignment_expression "pcVar5 = strstr(__haystack_00,"gcc2_compiled")" identifier = (call_expression "strstr(__haystack_00,"gcc2_compiled")" identifier (argument_list "(__haystack_00,"gcc2_compiled")" ( identifier , (string_literal ""gcc2_compiled"" " string_content ") )))) , (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      local_2c = -1;\n      goto joined_r0x00016f76;\n    }" { (expression_statement "local_2c = -1;" (assignment_expression "local_2c = -1" identifier = number_literal) ;) (goto_statement "goto joined_r0x00016f76;" goto statement_identifier ;) })) (if_statement "if (pcVar4 != (char *)0x0) {\n      return 1;\n    }" if (parenthesized_expression "(pcVar4 != (char *)0x0)" ( (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }) (else_clause "else if (pcVar5 == (char *)0x0) {\n    pcVar4 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar4 == (char *)0x0) {\n      return local_2c;\n    }\n  }" else (if_statement "if (pcVar5 == (char *)0x0) {\n    pcVar4 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar4 == (char *)0x0) {\n      return local_2c;\n    }\n  }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar4 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar4 == (char *)0x0) {\n      return local_2c;\n    }\n  }" { (expression_statement "pcVar4 = strstr(__haystack_00,"gcc2_compiled");" (assignment_expression "pcVar4 = strstr(__haystack_00,"gcc2_compiled")" identifier = (call_expression "strstr(__haystack_00,"gcc2_compiled")" identifier (argument_list "(__haystack_00,"gcc2_compiled")" ( identifier , (string_literal ""gcc2_compiled"" " string_content ") )))) ;) (labeled_statement "joined_r0x00016f76:\n    if (pcVar4 == (char *)0x0) {\n      return local_2c;\n    }" statement_identifier : (if_statement "if (pcVar4 == (char *)0x0) {\n      return local_2c;\n    }" if (parenthesized_expression "(pcVar4 == (char *)0x0)" ( (binary_expression "pcVar4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return local_2c;\n    }" { (return_statement "return local_2c;" return identifier ;) }))) })))) (expression_statement "uVar12 = piVar1[4];" (assignment_expression "uVar12 = piVar1[4]" identifier = (subscript_expression "piVar1[4]" identifier [ number_literal ])) ;) (if_statement "if (((uVar12 & 0x4000) == 0) &&\n     ((sVar6 = strlen(__haystack), __haystack[sVar6 - 2] != '.' ||\n      ((__haystack[sVar6 - 1] != 'o' && (__haystack[sVar6 - 1] != 'a')))))) {\n    uVar9 = piVar2[4];\n    if ((uVar9 & 0x4000) != 0) {\n      return -1;\n    }\n    sVar6 = strlen(__haystack_00);\n    if (__haystack_00[sVar6 - 2] == '.') {\n      if (__haystack_00[sVar6 - 1] == 'o') {\n        return -1;\n      }\n      if (__haystack_00[sVar6 - 1] == 'a') {\n        return -1;\n      }\n    }\n  }\n  else {\n    uVar9 = piVar2[4];\n    if (((uVar9 & 0x4000) == 0) &&\n       ((sVar6 = strlen(__haystack_00), __haystack_00[sVar6 - 2] != '.' ||\n        ((__haystack_00[sVar6 - 1] != 'a' && (__haystack_00[sVar6 - 1] != 'o')))))) {\n      return 1;\n    }\n  }" if (parenthesized_expression "(((uVar12 & 0x4000) == 0) &&\n     ((sVar6 = strlen(__haystack), __haystack[sVar6 - 2] != '.' ||\n      ((__haystack[sVar6 - 1] != 'o' && (__haystack[sVar6 - 1] != 'a'))))))" ( (binary_expression "((uVar12 & 0x4000) == 0) &&\n     ((sVar6 = strlen(__haystack), __haystack[sVar6 - 2] != '.' ||\n      ((__haystack[sVar6 - 1] != 'o' && (__haystack[sVar6 - 1] != 'a')))))" (parenthesized_expression "((uVar12 & 0x4000) == 0)" ( (binary_expression "(uVar12 & 0x4000) == 0" (parenthesized_expression "(uVar12 & 0x4000)" ( (binary_expression "uVar12 & 0x4000" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((sVar6 = strlen(__haystack), __haystack[sVar6 - 2] != '.' ||\n      ((__haystack[sVar6 - 1] != 'o' && (__haystack[sVar6 - 1] != 'a')))))" ( (parenthesized_expression "(sVar6 = strlen(__haystack), __haystack[sVar6 - 2] != '.' ||\n      ((__haystack[sVar6 - 1] != 'o' && (__haystack[sVar6 - 1] != 'a'))))" ( (comma_expression "sVar6 = strlen(__haystack), __haystack[sVar6 - 2] != '.' ||\n      ((__haystack[sVar6 - 1] != 'o' && (__haystack[sVar6 - 1] != 'a')))" (assignment_expression "sVar6 = strlen(__haystack)" identifier = (call_expression "strlen(__haystack)" identifier (argument_list "(__haystack)" ( identifier )))) , (binary_expression "__haystack[sVar6 - 2] != '.' ||\n      ((__haystack[sVar6 - 1] != 'o' && (__haystack[sVar6 - 1] != 'a')))" (binary_expression "__haystack[sVar6 - 2] != '.'" (subscript_expression "__haystack[sVar6 - 2]" identifier [ (binary_expression "sVar6 - 2" identifier - number_literal) ]) != (char_literal "'.'" ' character ')) || (parenthesized_expression "((__haystack[sVar6 - 1] != 'o' && (__haystack[sVar6 - 1] != 'a')))" ( (parenthesized_expression "(__haystack[sVar6 - 1] != 'o' && (__haystack[sVar6 - 1] != 'a'))" ( (binary_expression "__haystack[sVar6 - 1] != 'o' && (__haystack[sVar6 - 1] != 'a')" (binary_expression "__haystack[sVar6 - 1] != 'o'" (subscript_expression "__haystack[sVar6 - 1]" identifier [ (binary_expression "sVar6 - 1" identifier - number_literal) ]) != (char_literal "'o'" ' character ')) && (parenthesized_expression "(__haystack[sVar6 - 1] != 'a')" ( (binary_expression "__haystack[sVar6 - 1] != 'a'" (subscript_expression "__haystack[sVar6 - 1]" identifier [ (binary_expression "sVar6 - 1" identifier - number_literal) ]) != (char_literal "'a'" ' character ')) ))) )) )))) )) ))) )) (compound_statement "{\n    uVar9 = piVar2[4];\n    if ((uVar9 & 0x4000) != 0) {\n      return -1;\n    }\n    sVar6 = strlen(__haystack_00);\n    if (__haystack_00[sVar6 - 2] == '.') {\n      if (__haystack_00[sVar6 - 1] == 'o') {\n        return -1;\n      }\n      if (__haystack_00[sVar6 - 1] == 'a') {\n        return -1;\n      }\n    }\n  }" { (expression_statement "uVar9 = piVar2[4];" (assignment_expression "uVar9 = piVar2[4]" identifier = (subscript_expression "piVar2[4]" identifier [ number_literal ])) ;) (if_statement "if ((uVar9 & 0x4000) != 0) {\n      return -1;\n    }" if (parenthesized_expression "((uVar9 & 0x4000) != 0)" ( (binary_expression "(uVar9 & 0x4000) != 0" (parenthesized_expression "(uVar9 & 0x4000)" ( (binary_expression "uVar9 & 0x4000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      return -1;\n    }" { (return_statement "return -1;" return number_literal ;) })) (expression_statement "sVar6 = strlen(__haystack_00);" (assignment_expression "sVar6 = strlen(__haystack_00)" identifier = (call_expression "strlen(__haystack_00)" identifier (argument_list "(__haystack_00)" ( identifier )))) ;) (if_statement "if (__haystack_00[sVar6 - 2] == '.') {\n      if (__haystack_00[sVar6 - 1] == 'o') {\n        return -1;\n      }\n      if (__haystack_00[sVar6 - 1] == 'a') {\n        return -1;\n      }\n    }" if (parenthesized_expression "(__haystack_00[sVar6 - 2] == '.')" ( (binary_expression "__haystack_00[sVar6 - 2] == '.'" (subscript_expression "__haystack_00[sVar6 - 2]" identifier [ (binary_expression "sVar6 - 2" identifier - number_literal) ]) == (char_literal "'.'" ' character ')) )) (compound_statement "{\n      if (__haystack_00[sVar6 - 1] == 'o') {\n        return -1;\n      }\n      if (__haystack_00[sVar6 - 1] == 'a') {\n        return -1;\n      }\n    }" { (if_statement "if (__haystack_00[sVar6 - 1] == 'o') {\n        return -1;\n      }" if (parenthesized_expression "(__haystack_00[sVar6 - 1] == 'o')" ( (binary_expression "__haystack_00[sVar6 - 1] == 'o'" (subscript_expression "__haystack_00[sVar6 - 1]" identifier [ (binary_expression "sVar6 - 1" identifier - number_literal) ]) == (char_literal "'o'" ' character ')) )) (compound_statement "{\n        return -1;\n      }" { (return_statement "return -1;" return number_literal ;) })) (if_statement "if (__haystack_00[sVar6 - 1] == 'a') {\n        return -1;\n      }" if (parenthesized_expression "(__haystack_00[sVar6 - 1] == 'a')" ( (binary_expression "__haystack_00[sVar6 - 1] == 'a'" (subscript_expression "__haystack_00[sVar6 - 1]" identifier [ (binary_expression "sVar6 - 1" identifier - number_literal) ]) == (char_literal "'a'" ' character ')) )) (compound_statement "{\n        return -1;\n      }" { (return_statement "return -1;" return number_literal ;) })) })) }) (else_clause "else {\n    uVar9 = piVar2[4];\n    if (((uVar9 & 0x4000) == 0) &&\n       ((sVar6 = strlen(__haystack_00), __haystack_00[sVar6 - 2] != '.' ||\n        ((__haystack_00[sVar6 - 1] != 'a' && (__haystack_00[sVar6 - 1] != 'o')))))) {\n      return 1;\n    }\n  }" else (compound_statement "{\n    uVar9 = piVar2[4];\n    if (((uVar9 & 0x4000) == 0) &&\n       ((sVar6 = strlen(__haystack_00), __haystack_00[sVar6 - 2] != '.' ||\n        ((__haystack_00[sVar6 - 1] != 'a' && (__haystack_00[sVar6 - 1] != 'o')))))) {\n      return 1;\n    }\n  }" { (expression_statement "uVar9 = piVar2[4];" (assignment_expression "uVar9 = piVar2[4]" identifier = (subscript_expression "piVar2[4]" identifier [ number_literal ])) ;) (if_statement "if (((uVar9 & 0x4000) == 0) &&\n       ((sVar6 = strlen(__haystack_00), __haystack_00[sVar6 - 2] != '.' ||\n        ((__haystack_00[sVar6 - 1] != 'a' && (__haystack_00[sVar6 - 1] != 'o')))))) {\n      return 1;\n    }" if (parenthesized_expression "(((uVar9 & 0x4000) == 0) &&\n       ((sVar6 = strlen(__haystack_00), __haystack_00[sVar6 - 2] != '.' ||\n        ((__haystack_00[sVar6 - 1] != 'a' && (__haystack_00[sVar6 - 1] != 'o'))))))" ( (binary_expression "((uVar9 & 0x4000) == 0) &&\n       ((sVar6 = strlen(__haystack_00), __haystack_00[sVar6 - 2] != '.' ||\n        ((__haystack_00[sVar6 - 1] != 'a' && (__haystack_00[sVar6 - 1] != 'o')))))" (parenthesized_expression "((uVar9 & 0x4000) == 0)" ( (binary_expression "(uVar9 & 0x4000) == 0" (parenthesized_expression "(uVar9 & 0x4000)" ( (binary_expression "uVar9 & 0x4000" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((sVar6 = strlen(__haystack_00), __haystack_00[sVar6 - 2] != '.' ||\n        ((__haystack_00[sVar6 - 1] != 'a' && (__haystack_00[sVar6 - 1] != 'o')))))" ( (parenthesized_expression "(sVar6 = strlen(__haystack_00), __haystack_00[sVar6 - 2] != '.' ||\n        ((__haystack_00[sVar6 - 1] != 'a' && (__haystack_00[sVar6 - 1] != 'o'))))" ( (comma_expression "sVar6 = strlen(__haystack_00), __haystack_00[sVar6 - 2] != '.' ||\n        ((__haystack_00[sVar6 - 1] != 'a' && (__haystack_00[sVar6 - 1] != 'o')))" (assignment_expression "sVar6 = strlen(__haystack_00)" identifier = (call_expression "strlen(__haystack_00)" identifier (argument_list "(__haystack_00)" ( identifier )))) , (binary_expression "__haystack_00[sVar6 - 2] != '.' ||\n        ((__haystack_00[sVar6 - 1] != 'a' && (__haystack_00[sVar6 - 1] != 'o')))" (binary_expression "__haystack_00[sVar6 - 2] != '.'" (subscript_expression "__haystack_00[sVar6 - 2]" identifier [ (binary_expression "sVar6 - 2" identifier - number_literal) ]) != (char_literal "'.'" ' character ')) || (parenthesized_expression "((__haystack_00[sVar6 - 1] != 'a' && (__haystack_00[sVar6 - 1] != 'o')))" ( (parenthesized_expression "(__haystack_00[sVar6 - 1] != 'a' && (__haystack_00[sVar6 - 1] != 'o'))" ( (binary_expression "__haystack_00[sVar6 - 1] != 'a' && (__haystack_00[sVar6 - 1] != 'o')" (binary_expression "__haystack_00[sVar6 - 1] != 'a'" (subscript_expression "__haystack_00[sVar6 - 1]" identifier [ (binary_expression "sVar6 - 1" identifier - number_literal) ]) != (char_literal "'a'" ' character ')) && (parenthesized_expression "(__haystack_00[sVar6 - 1] != 'o')" ( (binary_expression "__haystack_00[sVar6 - 1] != 'o'" (subscript_expression "__haystack_00[sVar6 - 1]" identifier [ (binary_expression "sVar6 - 1" identifier - number_literal) ]) != (char_literal "'o'" ' character ')) ))) )) )))) )) ))) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }))) (expression_statement "uVar3 = uVar12 ^ uVar9;" (assignment_expression "uVar3 = uVar12 ^ uVar9" identifier = (binary_expression "uVar12 ^ uVar9" identifier ^ identifier)) ;) (if_statement "if ((uVar3 & 4) != 0) {\n    return -(uint)((uVar12 & 4) == 0) | 1;\n  }" if (parenthesized_expression "((uVar3 & 4) != 0)" ( (binary_expression "(uVar3 & 4) != 0" (parenthesized_expression "(uVar3 & 4)" ( (binary_expression "uVar3 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    return -(uint)((uVar12 & 4) == 0) | 1;\n  }" { (return_statement "return -(uint)((uVar12 & 4) == 0) | 1;" return (binary_expression "-(uint)((uVar12 & 4) == 0) | 1" (unary_expression "-(uint)((uVar12 & 4) == 0)" - (call_expression "(uint)((uVar12 & 4) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar12 & 4) == 0)" ( (binary_expression "(uVar12 & 4) == 0" (parenthesized_expression "(uVar12 & 4)" ( (binary_expression "uVar12 & 4" identifier & number_literal) )) == number_literal) )))) | number_literal) ;) })) (if_statement "if ((uVar3 & 8) != 0) {\n    uVar12 = uVar12 & 8;\nLAB_00016f91:\n    return (-(uint)(uVar12 == 0) & 2) - 1;\n  }" if (parenthesized_expression "((uVar3 & 8) != 0)" ( (binary_expression "(uVar3 & 8) != 0" (parenthesized_expression "(uVar3 & 8)" ( (binary_expression "uVar3 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar12 = uVar12 & 8;\nLAB_00016f91:\n    return (-(uint)(uVar12 == 0) & 2) - 1;\n  }" { (expression_statement "uVar12 = uVar12 & 8;" (assignment_expression "uVar12 = uVar12 & 8" identifier = (binary_expression "uVar12 & 8" identifier & number_literal)) ;) (labeled_statement "LAB_00016f91:\n    return (-(uint)(uVar12 == 0) & 2) - 1;" statement_identifier : (return_statement "return (-(uint)(uVar12 == 0) & 2) - 1;" return (binary_expression "(-(uint)(uVar12 == 0) & 2) - 1" (parenthesized_expression "(-(uint)(uVar12 == 0) & 2)" ( (binary_expression "-(uint)(uVar12 == 0) & 2" (unary_expression "-(uint)(uVar12 == 0)" - (call_expression "(uint)(uVar12 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )))) & number_literal) )) - number_literal) ;)) })) (if_statement "if ((uVar3 & 1) != 0) {\n    return -(uint)((uVar12 & 1) == 0) | 1;\n  }" if (parenthesized_expression "((uVar3 & 1) != 0)" ( (binary_expression "(uVar3 & 1) != 0" (parenthesized_expression "(uVar3 & 1)" ( (binary_expression "uVar3 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    return -(uint)((uVar12 & 1) == 0) | 1;\n  }" { (return_statement "return -(uint)((uVar12 & 1) == 0) | 1;" return (binary_expression "-(uint)((uVar12 & 1) == 0) | 1" (unary_expression "-(uint)((uVar12 & 1) == 0)" - (call_expression "(uint)((uVar12 & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar12 & 1) == 0)" ( (binary_expression "(uVar12 & 1) == 0" (parenthesized_expression "(uVar12 & 1)" ( (binary_expression "uVar12 & 1" identifier & number_literal) )) == number_literal) )))) | number_literal) ;) })) (if_statement "if ((uVar3 & 2) != 0) {\n    uVar12 = uVar12 & 2;\n    goto LAB_00016f91;\n  }" if (parenthesized_expression "((uVar3 & 2) != 0)" ( (binary_expression "(uVar3 & 2) != 0" (parenthesized_expression "(uVar3 & 2)" ( (binary_expression "uVar3 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar12 = uVar12 & 2;\n    goto LAB_00016f91;\n  }" { (expression_statement "uVar12 = uVar12 & 2;" (assignment_expression "uVar12 = uVar12 & 2" identifier = (binary_expression "uVar12 & 2" identifier & number_literal)) ;) (goto_statement "goto LAB_00016f91;" goto statement_identifier ;) })) (if_statement "if ((*(int *)(*(int *)(*piVar1 + 4) + 4) != 5) || (*(int *)(*(int *)(*piVar2 + 4) + 4) != 5))\n  goto LAB_0001706b;" if (parenthesized_expression "((*(int *)(*(int *)(*piVar1 + 4) + 4) != 5) || (*(int *)(*(int *)(*piVar2 + 4) + 4) != 5))" ( (binary_expression "(*(int *)(*(int *)(*piVar1 + 4) + 4) != 5) || (*(int *)(*(int *)(*piVar2 + 4) + 4) != 5)" (parenthesized_expression "(*(int *)(*(int *)(*piVar1 + 4) + 4) != 5)" ( (binary_expression "*(int *)(*(int *)(*piVar1 + 4) + 4) != 5" (pointer_expression "*(int *)(*(int *)(*piVar1 + 4) + 4)" * (cast_expression "(int *)(*(int *)(*piVar1 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar1 + 4) + 4)" ( (binary_expression "*(int *)(*piVar1 + 4) + 4" (pointer_expression "*(int *)(*piVar1 + 4)" * (cast_expression "(int *)(*piVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar1 + 4)" ( (binary_expression "*piVar1 + 4" (pointer_expression "*piVar1" * identifier) + number_literal) )))) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(int *)(*(int *)(*piVar2 + 4) + 4) != 5)" ( (binary_expression "*(int *)(*(int *)(*piVar2 + 4) + 4) != 5" (pointer_expression "*(int *)(*(int *)(*piVar2 + 4) + 4)" * (cast_expression "(int *)(*(int *)(*piVar2 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar2 + 4) + 4)" ( (binary_expression "*(int *)(*piVar2 + 4) + 4" (pointer_expression "*(int *)(*piVar2 + 4)" * (cast_expression "(int *)(*piVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar2 + 4)" ( (binary_expression "*piVar2 + 4" (pointer_expression "*piVar2" * identifier) + number_literal) )))) + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_0001706b;" goto statement_identifier ;)) (if_statement "if ((uVar12 & 0x200100) == 0) {\n    uVar12 = piVar1[10];\n    uVar3 = piVar1[0xb];\n    if ((uVar9 & 0x200100) == 0) goto LAB_00017101;\n    uVar9 = 0;\n    uVar8 = 0;\n  }\n  else {\n    if ((uVar9 & 0x200100) != 0) goto LAB_0001706b;\n    uVar12 = 0;\n    uVar3 = 0;\nLAB_00017101:\n    uVar9 = piVar2[10];\n    uVar8 = piVar2[0xb];\n  }" if (parenthesized_expression "((uVar12 & 0x200100) == 0)" ( (binary_expression "(uVar12 & 0x200100) == 0" (parenthesized_expression "(uVar12 & 0x200100)" ( (binary_expression "uVar12 & 0x200100" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar12 = piVar1[10];\n    uVar3 = piVar1[0xb];\n    if ((uVar9 & 0x200100) == 0) goto LAB_00017101;\n    uVar9 = 0;\n    uVar8 = 0;\n  }" { (expression_statement "uVar12 = piVar1[10];" (assignment_expression "uVar12 = piVar1[10]" identifier = (subscript_expression "piVar1[10]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = piVar1[0xb];" (assignment_expression "uVar3 = piVar1[0xb]" identifier = (subscript_expression "piVar1[0xb]" identifier [ number_literal ])) ;) (if_statement "if ((uVar9 & 0x200100) == 0) goto LAB_00017101;" if (parenthesized_expression "((uVar9 & 0x200100) == 0)" ( (binary_expression "(uVar9 & 0x200100) == 0" (parenthesized_expression "(uVar9 & 0x200100)" ( (binary_expression "uVar9 & 0x200100" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00017101;" goto statement_identifier ;)) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    if ((uVar9 & 0x200100) != 0) goto LAB_0001706b;\n    uVar12 = 0;\n    uVar3 = 0;\nLAB_00017101:\n    uVar9 = piVar2[10];\n    uVar8 = piVar2[0xb];\n  }" else (compound_statement "{\n    if ((uVar9 & 0x200100) != 0) goto LAB_0001706b;\n    uVar12 = 0;\n    uVar3 = 0;\nLAB_00017101:\n    uVar9 = piVar2[10];\n    uVar8 = piVar2[0xb];\n  }" { (if_statement "if ((uVar9 & 0x200100) != 0) goto LAB_0001706b;" if (parenthesized_expression "((uVar9 & 0x200100) != 0)" ( (binary_expression "(uVar9 & 0x200100) != 0" (parenthesized_expression "(uVar9 & 0x200100)" ( (binary_expression "uVar9 & 0x200100" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001706b;" goto statement_identifier ;)) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00017101:\n    uVar9 = piVar2[10];" statement_identifier : (expression_statement "uVar9 = piVar2[10];" (assignment_expression "uVar9 = piVar2[10]" identifier = (subscript_expression "piVar2[10]" identifier [ number_literal ])) ;)) (expression_statement "uVar8 = piVar2[0xb];" (assignment_expression "uVar8 = piVar2[0xb]" identifier = (subscript_expression "piVar2[0xb]" identifier [ number_literal ])) ;) }))) (if_statement "if ((uVar8 != uVar3) || (uVar9 != uVar12)) {\n    return (uint)(uVar3 <= uVar8 && (uint)(uVar9 < uVar12) <= uVar8 - uVar3) * 2 + -1;\n  }" if (parenthesized_expression "((uVar8 != uVar3) || (uVar9 != uVar12))" ( (binary_expression "(uVar8 != uVar3) || (uVar9 != uVar12)" (parenthesized_expression "(uVar8 != uVar3)" ( (binary_expression "uVar8 != uVar3" identifier != identifier) )) || (parenthesized_expression "(uVar9 != uVar12)" ( (binary_expression "uVar9 != uVar12" identifier != identifier) ))) )) (compound_statement "{\n    return (uint)(uVar3 <= uVar8 && (uint)(uVar9 < uVar12) <= uVar8 - uVar3) * 2 + -1;\n  }" { (return_statement "return (uint)(uVar3 <= uVar8 && (uint)(uVar9 < uVar12) <= uVar8 - uVar3) * 2 + -1;" return (binary_expression "(uint)(uVar3 <= uVar8 && (uint)(uVar9 < uVar12) <= uVar8 - uVar3) * 2 + -1" (binary_expression "(uint)(uVar3 <= uVar8 && (uint)(uVar9 < uVar12) <= uVar8 - uVar3) * 2" (call_expression "(uint)(uVar3 <= uVar8 && (uint)(uVar9 < uVar12) <= uVar8 - uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 <= uVar8 && (uint)(uVar9 < uVar12) <= uVar8 - uVar3)" ( (binary_expression "uVar3 <= uVar8 && (uint)(uVar9 < uVar12) <= uVar8 - uVar3" (binary_expression "uVar3 <= uVar8" identifier <= identifier) && (binary_expression "(uint)(uVar9 < uVar12) <= uVar8 - uVar3" (call_expression "(uint)(uVar9 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 < uVar12)" ( (binary_expression "uVar9 < uVar12" identifier < identifier) ))) <= (binary_expression "uVar8 - uVar3" identifier - identifier))) ))) * number_literal) + number_literal) ;) })) (labeled_statement "LAB_0001706b:\n  if (*__haystack == '.') {\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }\n  else if (*__haystack_00 == '.') {\n    return -1;\n  }" statement_identifier : (if_statement "if (*__haystack == '.') {\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }\n  else if (*__haystack_00 == '.') {\n    return -1;\n  }" if (parenthesized_expression "(*__haystack == '.')" ( (binary_expression "*__haystack == '.'" (pointer_expression "*__haystack" * identifier) == (char_literal "'.'" ' character ')) )) (compound_statement "{\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }" { (if_statement "if (*__haystack_00 != '.') {\n      return 1;\n    }" if (parenthesized_expression "(*__haystack_00 != '.')" ( (binary_expression "*__haystack_00 != '.'" (pointer_expression "*__haystack_00" * identifier) != (char_literal "'.'" ' character ')) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }) (else_clause "else if (*__haystack_00 == '.') {\n    return -1;\n  }" else (if_statement "if (*__haystack_00 == '.') {\n    return -1;\n  }" if (parenthesized_expression "(*__haystack_00 == '.')" ( (binary_expression "*__haystack_00 == '.'" (pointer_expression "*__haystack_00" * identifier) == (char_literal "'.'" ' character ')) )) (compound_statement "{\n    return -1;\n  }" { (return_statement "return -1;" return number_literal ;) }))))) (expression_statement "iVar7 = strcmp(__haystack,__haystack_00);" (assignment_expression "iVar7 = strcmp(__haystack,__haystack_00)" identifier = (call_expression "strcmp(__haystack,__haystack_00)" identifier (argument_list "(__haystack,__haystack_00)" ( identifier , identifier )))) ;) (return_statement "return iVar7;" return identifier ;) })))
(translation_unit "uint FUN_00016da0(int *param_1,int *param_2)\n\n{\n  char *__haystack;\n  char *__haystack_00;\n  uint uVar1;\n  char *pcVar2;\n  char *pcVar3;\n  size_t sVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint local_2c;\n  \n  local_2c = 1;\n  param_1 = (int *)*param_1;\n  param_2 = (int *)*param_2;\n  uVar9 = param_1[5];\n  uVar6 = param_2[5];\n  uVar5 = param_1[2] + *(uint *)(uVar9 + 0x1c);\n  uVar8 = param_1[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c));\n  uVar1 = param_2[2] + *(uint *)(uVar6 + 0x1c);\n  uVar7 = param_2[3] + *(int *)(uVar6 + 0x20) + (uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c));\n  if (uVar7 < uVar8 || uVar7 - uVar8 < (uint)(uVar1 < uVar5)) {\n    return 1;\n  }\n  if (uVar8 < uVar7 || uVar8 - uVar7 < (uint)(uVar5 < uVar1)) {\n    return 0xffffffff;\n  }\n  if (uVar6 < uVar9) {\n    return 1;\n  }\n  if (uVar9 < uVar6) {\n    return 0xffffffff;\n  }\n  __haystack = (char *)param_1[1];\n  __haystack_00 = (char *)param_2[1];\n  pcVar2 = strstr(__haystack,"gnu_compiled");\n  pcVar3 = strstr(__haystack_00,"gnu_compiled");\n  if (pcVar2 == (char *)0x0) {\n    pcVar2 = strstr(__haystack,"gcc2_compiled");\n    if ((pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)) {\n      local_2c = 0xffffffff;\n      goto joined_r0x00016f76;\n    }\n    if (pcVar2 != (char *)0x0) {\n      return 1;\n    }\n  }\n  else if (pcVar3 == (char *)0x0) {\n    pcVar2 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }\n  }\n  uVar9 = param_1[4];\n  if (((uVar9 & 0x4000) == 0) &&\n     ((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))))) {\n    uVar6 = param_2[4];\n    if ((uVar6 & 0x4000) != 0) {\n      return 0xffffffff;\n    }\n    sVar4 = strlen(__haystack_00);\n    if (__haystack_00[sVar4 - 2] == '.') {\n      if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }\n      if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }\n    }\n  }\n  else {\n    uVar6 = param_2[4];\n    if (((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {\n      return 1;\n    }\n  }\n  uVar1 = uVar9 ^ uVar6;\n  if ((uVar1 & 4) != 0) {\n    return -(uint)((uVar9 & 4) == 0) | 1;\n  }\n  if ((uVar1 & 8) != 0) {\n    uVar9 = uVar9 & 8;\nLAB_00016f91:\n    return (-(uint)(uVar9 == 0) & 2) - 1;\n  }\n  if ((uVar1 & 1) != 0) {\n    return -(uint)((uVar9 & 1) == 0) | 1;\n  }\n  if ((uVar1 & 2) != 0) {\n    uVar9 = uVar9 & 2;\n    goto LAB_00016f91;\n  }\n  if ((*(int *)(*(int *)(*param_1 + 4) + 4) != 5) || (*(int *)(*(int *)(*param_2 + 4) + 4) != 5))\n  goto LAB_0001706b;\n  if ((uVar9 & 0x200100) == 0) {\n    uVar9 = param_1[10];\n    uVar1 = param_1[0xb];\n    if ((uVar6 & 0x200100) == 0) goto LAB_00017101;\n    uVar6 = 0;\n    uVar5 = 0;\n  }\n  else {\n    if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;\n    uVar9 = 0;\n    uVar1 = 0;\nLAB_00017101:\n    uVar6 = param_2[10];\n    uVar5 = param_2[0xb];\n  }\n  if ((uVar5 != uVar1) || (uVar6 != uVar9)) {\n    return (uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1;\n  }\nLAB_0001706b:\n  if (*__haystack == '.') {\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }\n  else if (*__haystack_00 == '.') {\n    return 0xffffffff;\n  }\n  uVar9 = strcmp(__haystack,__haystack_00);\n  return uVar9;\n}\n\n" (function_definition "uint FUN_00016da0(int *param_1,int *param_2)\n\n{\n  char *__haystack;\n  char *__haystack_00;\n  uint uVar1;\n  char *pcVar2;\n  char *pcVar3;\n  size_t sVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint local_2c;\n  \n  local_2c = 1;\n  param_1 = (int *)*param_1;\n  param_2 = (int *)*param_2;\n  uVar9 = param_1[5];\n  uVar6 = param_2[5];\n  uVar5 = param_1[2] + *(uint *)(uVar9 + 0x1c);\n  uVar8 = param_1[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c));\n  uVar1 = param_2[2] + *(uint *)(uVar6 + 0x1c);\n  uVar7 = param_2[3] + *(int *)(uVar6 + 0x20) + (uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c));\n  if (uVar7 < uVar8 || uVar7 - uVar8 < (uint)(uVar1 < uVar5)) {\n    return 1;\n  }\n  if (uVar8 < uVar7 || uVar8 - uVar7 < (uint)(uVar5 < uVar1)) {\n    return 0xffffffff;\n  }\n  if (uVar6 < uVar9) {\n    return 1;\n  }\n  if (uVar9 < uVar6) {\n    return 0xffffffff;\n  }\n  __haystack = (char *)param_1[1];\n  __haystack_00 = (char *)param_2[1];\n  pcVar2 = strstr(__haystack,"gnu_compiled");\n  pcVar3 = strstr(__haystack_00,"gnu_compiled");\n  if (pcVar2 == (char *)0x0) {\n    pcVar2 = strstr(__haystack,"gcc2_compiled");\n    if ((pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)) {\n      local_2c = 0xffffffff;\n      goto joined_r0x00016f76;\n    }\n    if (pcVar2 != (char *)0x0) {\n      return 1;\n    }\n  }\n  else if (pcVar3 == (char *)0x0) {\n    pcVar2 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }\n  }\n  uVar9 = param_1[4];\n  if (((uVar9 & 0x4000) == 0) &&\n     ((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))))) {\n    uVar6 = param_2[4];\n    if ((uVar6 & 0x4000) != 0) {\n      return 0xffffffff;\n    }\n    sVar4 = strlen(__haystack_00);\n    if (__haystack_00[sVar4 - 2] == '.') {\n      if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }\n      if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }\n    }\n  }\n  else {\n    uVar6 = param_2[4];\n    if (((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {\n      return 1;\n    }\n  }\n  uVar1 = uVar9 ^ uVar6;\n  if ((uVar1 & 4) != 0) {\n    return -(uint)((uVar9 & 4) == 0) | 1;\n  }\n  if ((uVar1 & 8) != 0) {\n    uVar9 = uVar9 & 8;\nLAB_00016f91:\n    return (-(uint)(uVar9 == 0) & 2) - 1;\n  }\n  if ((uVar1 & 1) != 0) {\n    return -(uint)((uVar9 & 1) == 0) | 1;\n  }\n  if ((uVar1 & 2) != 0) {\n    uVar9 = uVar9 & 2;\n    goto LAB_00016f91;\n  }\n  if ((*(int *)(*(int *)(*param_1 + 4) + 4) != 5) || (*(int *)(*(int *)(*param_2 + 4) + 4) != 5))\n  goto LAB_0001706b;\n  if ((uVar9 & 0x200100) == 0) {\n    uVar9 = param_1[10];\n    uVar1 = param_1[0xb];\n    if ((uVar6 & 0x200100) == 0) goto LAB_00017101;\n    uVar6 = 0;\n    uVar5 = 0;\n  }\n  else {\n    if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;\n    uVar9 = 0;\n    uVar1 = 0;\nLAB_00017101:\n    uVar6 = param_2[10];\n    uVar5 = param_2[0xb];\n  }\n  if ((uVar5 != uVar1) || (uVar6 != uVar9)) {\n    return (uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1;\n  }\nLAB_0001706b:\n  if (*__haystack == '.') {\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }\n  else if (*__haystack_00 == '.') {\n    return 0xffffffff;\n  }\n  uVar9 = strcmp(__haystack,__haystack_00);\n  return uVar9;\n}" type_identifier (function_declarator "FUN_00016da0(int *param_1,int *param_2)" identifier (parameter_list "(int *param_1,int *param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  char *__haystack;\n  char *__haystack_00;\n  uint uVar1;\n  char *pcVar2;\n  char *pcVar3;\n  size_t sVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint local_2c;\n  \n  local_2c = 1;\n  param_1 = (int *)*param_1;\n  param_2 = (int *)*param_2;\n  uVar9 = param_1[5];\n  uVar6 = param_2[5];\n  uVar5 = param_1[2] + *(uint *)(uVar9 + 0x1c);\n  uVar8 = param_1[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c));\n  uVar1 = param_2[2] + *(uint *)(uVar6 + 0x1c);\n  uVar7 = param_2[3] + *(int *)(uVar6 + 0x20) + (uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c));\n  if (uVar7 < uVar8 || uVar7 - uVar8 < (uint)(uVar1 < uVar5)) {\n    return 1;\n  }\n  if (uVar8 < uVar7 || uVar8 - uVar7 < (uint)(uVar5 < uVar1)) {\n    return 0xffffffff;\n  }\n  if (uVar6 < uVar9) {\n    return 1;\n  }\n  if (uVar9 < uVar6) {\n    return 0xffffffff;\n  }\n  __haystack = (char *)param_1[1];\n  __haystack_00 = (char *)param_2[1];\n  pcVar2 = strstr(__haystack,"gnu_compiled");\n  pcVar3 = strstr(__haystack_00,"gnu_compiled");\n  if (pcVar2 == (char *)0x0) {\n    pcVar2 = strstr(__haystack,"gcc2_compiled");\n    if ((pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)) {\n      local_2c = 0xffffffff;\n      goto joined_r0x00016f76;\n    }\n    if (pcVar2 != (char *)0x0) {\n      return 1;\n    }\n  }\n  else if (pcVar3 == (char *)0x0) {\n    pcVar2 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }\n  }\n  uVar9 = param_1[4];\n  if (((uVar9 & 0x4000) == 0) &&\n     ((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))))) {\n    uVar6 = param_2[4];\n    if ((uVar6 & 0x4000) != 0) {\n      return 0xffffffff;\n    }\n    sVar4 = strlen(__haystack_00);\n    if (__haystack_00[sVar4 - 2] == '.') {\n      if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }\n      if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }\n    }\n  }\n  else {\n    uVar6 = param_2[4];\n    if (((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {\n      return 1;\n    }\n  }\n  uVar1 = uVar9 ^ uVar6;\n  if ((uVar1 & 4) != 0) {\n    return -(uint)((uVar9 & 4) == 0) | 1;\n  }\n  if ((uVar1 & 8) != 0) {\n    uVar9 = uVar9 & 8;\nLAB_00016f91:\n    return (-(uint)(uVar9 == 0) & 2) - 1;\n  }\n  if ((uVar1 & 1) != 0) {\n    return -(uint)((uVar9 & 1) == 0) | 1;\n  }\n  if ((uVar1 & 2) != 0) {\n    uVar9 = uVar9 & 2;\n    goto LAB_00016f91;\n  }\n  if ((*(int *)(*(int *)(*param_1 + 4) + 4) != 5) || (*(int *)(*(int *)(*param_2 + 4) + 4) != 5))\n  goto LAB_0001706b;\n  if ((uVar9 & 0x200100) == 0) {\n    uVar9 = param_1[10];\n    uVar1 = param_1[0xb];\n    if ((uVar6 & 0x200100) == 0) goto LAB_00017101;\n    uVar6 = 0;\n    uVar5 = 0;\n  }\n  else {\n    if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;\n    uVar9 = 0;\n    uVar1 = 0;\nLAB_00017101:\n    uVar6 = param_2[10];\n    uVar5 = param_2[0xb];\n  }\n  if ((uVar5 != uVar1) || (uVar6 != uVar9)) {\n    return (uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1;\n  }\nLAB_0001706b:\n  if (*__haystack == '.') {\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }\n  else if (*__haystack_00 == '.') {\n    return 0xffffffff;\n  }\n  uVar9 = strcmp(__haystack,__haystack_00);\n  return uVar9;\n}" { (declaration "char *__haystack;" primitive_type (pointer_declarator "*__haystack" * identifier) ;) (declaration "char *__haystack_00;" primitive_type (pointer_declarator "*__haystack_00" * identifier) ;) (declaration "uint uVar1;" type_identifier identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (expression_statement "local_2c = 1;" (assignment_expression "local_2c = 1" identifier = number_literal) ;) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "param_2 = (int *)*param_2;" (assignment_expression "param_2 = (int *)*param_2" identifier = (cast_expression "(int *)*param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "uVar9 = param_1[5];" (assignment_expression "uVar9 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_2[5];" (assignment_expression "uVar6 = param_2[5]" identifier = (subscript_expression "param_2[5]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = param_1[2] + *(uint *)(uVar9 + 0x1c);" (assignment_expression "uVar5 = param_1[2] + *(uint *)(uVar9 + 0x1c)" identifier = (binary_expression "param_1[2] + *(uint *)(uVar9 + 0x1c)" (subscript_expression "param_1[2]" identifier [ number_literal ]) + (pointer_expression "*(uint *)(uVar9 + 0x1c)" * (cast_expression "(uint *)(uVar9 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x1c)" ( (binary_expression "uVar9 + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "uVar8 = param_1[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c));" (assignment_expression "uVar8 = param_1[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c))" identifier = (binary_expression "param_1[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c))" (binary_expression "param_1[3] + *(int *)(uVar9 + 0x20)" (subscript_expression "param_1[3]" identifier [ number_literal ]) + (pointer_expression "*(int *)(uVar9 + 0x20)" * (cast_expression "(int *)(uVar9 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x20)" ( (binary_expression "uVar9 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c))" identifier (argument_list "(param_1[2],*(uint *)(uVar9 + 0x1c))" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , (pointer_expression "*(uint *)(uVar9 + 0x1c)" * (cast_expression "(uint *)(uVar9 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x1c)" ( (binary_expression "uVar9 + 0x1c" identifier + number_literal) )))) )))))) ;) (expression_statement "uVar1 = param_2[2] + *(uint *)(uVar6 + 0x1c);" (assignment_expression "uVar1 = param_2[2] + *(uint *)(uVar6 + 0x1c)" identifier = (binary_expression "param_2[2] + *(uint *)(uVar6 + 0x1c)" (subscript_expression "param_2[2]" identifier [ number_literal ]) + (pointer_expression "*(uint *)(uVar6 + 0x1c)" * (cast_expression "(uint *)(uVar6 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 + 0x1c)" ( (binary_expression "uVar6 + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "uVar7 = param_2[3] + *(int *)(uVar6 + 0x20) + (uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c));" (assignment_expression "uVar7 = param_2[3] + *(int *)(uVar6 + 0x20) + (uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c))" identifier = (binary_expression "param_2[3] + *(int *)(uVar6 + 0x20) + (uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c))" (binary_expression "param_2[3] + *(int *)(uVar6 + 0x20)" (subscript_expression "param_2[3]" identifier [ number_literal ]) + (pointer_expression "*(int *)(uVar6 + 0x20)" * (cast_expression "(int *)(uVar6 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 + 0x20)" ( (binary_expression "uVar6 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c))" identifier (argument_list "(param_2[2],*(uint *)(uVar6 + 0x1c))" ( (subscript_expression "param_2[2]" identifier [ number_literal ]) , (pointer_expression "*(uint *)(uVar6 + 0x1c)" * (cast_expression "(uint *)(uVar6 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 + 0x1c)" ( (binary_expression "uVar6 + 0x1c" identifier + number_literal) )))) )))))) ;) (if_statement "if (uVar7 < uVar8 || uVar7 - uVar8 < (uint)(uVar1 < uVar5)) {\n    return 1;\n  }" if (parenthesized_expression "(uVar7 < uVar8 || uVar7 - uVar8 < (uint)(uVar1 < uVar5))" ( (binary_expression "uVar7 < uVar8 || uVar7 - uVar8 < (uint)(uVar1 < uVar5)" (binary_expression "uVar7 < uVar8" identifier < identifier) || (binary_expression "uVar7 - uVar8 < (uint)(uVar1 < uVar5)" (binary_expression "uVar7 - uVar8" identifier - identifier) < (call_expression "(uint)(uVar1 < uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 < uVar5)" ( (binary_expression "uVar1 < uVar5" identifier < identifier) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (uVar8 < uVar7 || uVar8 - uVar7 < (uint)(uVar5 < uVar1)) {\n    return 0xffffffff;\n  }" if (parenthesized_expression "(uVar8 < uVar7 || uVar8 - uVar7 < (uint)(uVar5 < uVar1))" ( (binary_expression "uVar8 < uVar7 || uVar8 - uVar7 < (uint)(uVar5 < uVar1)" (binary_expression "uVar8 < uVar7" identifier < identifier) || (binary_expression "uVar8 - uVar7 < (uint)(uVar5 < uVar1)" (binary_expression "uVar8 - uVar7" identifier - identifier) < (call_expression "(uint)(uVar5 < uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 < uVar1)" ( (binary_expression "uVar5 < uVar1" identifier < identifier) ))))) )) (compound_statement "{\n    return 0xffffffff;\n  }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (if_statement "if (uVar6 < uVar9) {\n    return 1;\n  }" if (parenthesized_expression "(uVar6 < uVar9)" ( (binary_expression "uVar6 < uVar9" identifier < identifier) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (uVar9 < uVar6) {\n    return 0xffffffff;\n  }" if (parenthesized_expression "(uVar9 < uVar6)" ( (binary_expression "uVar9 < uVar6" identifier < identifier) )) (compound_statement "{\n    return 0xffffffff;\n  }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "__haystack = (char *)param_1[1];" (assignment_expression "__haystack = (char *)param_1[1]" identifier = (cast_expression "(char *)param_1[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "__haystack_00 = (char *)param_2[1];" (assignment_expression "__haystack_00 = (char *)param_2[1]" identifier = (cast_expression "(char *)param_2[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) ;) (expression_statement "pcVar2 = strstr(__haystack,"gnu_compiled");" (assignment_expression "pcVar2 = strstr(__haystack,"gnu_compiled")" identifier = (call_expression "strstr(__haystack,"gnu_compiled")" identifier (argument_list "(__haystack,"gnu_compiled")" ( identifier , (string_literal ""gnu_compiled"" " string_content ") )))) ;) (expression_statement "pcVar3 = strstr(__haystack_00,"gnu_compiled");" (assignment_expression "pcVar3 = strstr(__haystack_00,"gnu_compiled")" identifier = (call_expression "strstr(__haystack_00,"gnu_compiled")" identifier (argument_list "(__haystack_00,"gnu_compiled")" ( identifier , (string_literal ""gnu_compiled"" " string_content ") )))) ;) (if_statement "if (pcVar2 == (char *)0x0) {\n    pcVar2 = strstr(__haystack,"gcc2_compiled");\n    if ((pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)) {\n      local_2c = 0xffffffff;\n      goto joined_r0x00016f76;\n    }\n    if (pcVar2 != (char *)0x0) {\n      return 1;\n    }\n  }\n  else if (pcVar3 == (char *)0x0) {\n    pcVar2 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }\n  }" if (parenthesized_expression "(pcVar2 == (char *)0x0)" ( (binary_expression "pcVar2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar2 = strstr(__haystack,"gcc2_compiled");\n    if ((pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)) {\n      local_2c = 0xffffffff;\n      goto joined_r0x00016f76;\n    }\n    if (pcVar2 != (char *)0x0) {\n      return 1;\n    }\n  }" { (expression_statement "pcVar2 = strstr(__haystack,"gcc2_compiled");" (assignment_expression "pcVar2 = strstr(__haystack,"gcc2_compiled")" identifier = (call_expression "strstr(__haystack,"gcc2_compiled")" identifier (argument_list "(__haystack,"gcc2_compiled")" ( identifier , (string_literal ""gcc2_compiled"" " string_content ") )))) ;) (if_statement "if ((pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)) {\n      local_2c = 0xffffffff;\n      goto joined_r0x00016f76;\n    }" if (parenthesized_expression "((pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0))" ( (binary_expression "(pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)" (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)" ( (comma_expression "pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0" (assignment_expression "pcVar3 = strstr(__haystack_00,"gcc2_compiled")" identifier = (call_expression "strstr(__haystack_00,"gcc2_compiled")" identifier (argument_list "(__haystack_00,"gcc2_compiled")" ( identifier , (string_literal ""gcc2_compiled"" " string_content ") )))) , (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      local_2c = 0xffffffff;\n      goto joined_r0x00016f76;\n    }" { (expression_statement "local_2c = 0xffffffff;" (assignment_expression "local_2c = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto joined_r0x00016f76;" goto statement_identifier ;) })) (if_statement "if (pcVar2 != (char *)0x0) {\n      return 1;\n    }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }) (else_clause "else if (pcVar3 == (char *)0x0) {\n    pcVar2 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }\n  }" else (if_statement "if (pcVar3 == (char *)0x0) {\n    pcVar2 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }\n  }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar2 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }\n  }" { (expression_statement "pcVar2 = strstr(__haystack_00,"gcc2_compiled");" (assignment_expression "pcVar2 = strstr(__haystack_00,"gcc2_compiled")" identifier = (call_expression "strstr(__haystack_00,"gcc2_compiled")" identifier (argument_list "(__haystack_00,"gcc2_compiled")" ( identifier , (string_literal ""gcc2_compiled"" " string_content ") )))) ;) (labeled_statement "joined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }" statement_identifier : (if_statement "if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }" if (parenthesized_expression "(pcVar2 == (char *)0x0)" ( (binary_expression "pcVar2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return local_2c;\n    }" { (return_statement "return local_2c;" return identifier ;) }))) })))) (expression_statement "uVar9 = param_1[4];" (assignment_expression "uVar9 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (if_statement "if (((uVar9 & 0x4000) == 0) &&\n     ((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))))) {\n    uVar6 = param_2[4];\n    if ((uVar6 & 0x4000) != 0) {\n      return 0xffffffff;\n    }\n    sVar4 = strlen(__haystack_00);\n    if (__haystack_00[sVar4 - 2] == '.') {\n      if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }\n      if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }\n    }\n  }\n  else {\n    uVar6 = param_2[4];\n    if (((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {\n      return 1;\n    }\n  }" if (parenthesized_expression "(((uVar9 & 0x4000) == 0) &&\n     ((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a'))))))" ( (binary_expression "((uVar9 & 0x4000) == 0) &&\n     ((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))))" (parenthesized_expression "((uVar9 & 0x4000) == 0)" ( (binary_expression "(uVar9 & 0x4000) == 0" (parenthesized_expression "(uVar9 & 0x4000)" ( (binary_expression "uVar9 & 0x4000" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))))" ( (parenthesized_expression "(sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a'))))" ( (comma_expression "sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))" (assignment_expression "sVar4 = strlen(__haystack)" identifier = (call_expression "strlen(__haystack)" identifier (argument_list "(__haystack)" ( identifier )))) , (binary_expression "__haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))" (binary_expression "__haystack[sVar4 - 2] != '.'" (subscript_expression "__haystack[sVar4 - 2]" identifier [ (binary_expression "sVar4 - 2" identifier - number_literal) ]) != (char_literal "'.'" ' character ')) || (parenthesized_expression "((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))" ( (parenthesized_expression "(__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a'))" ( (binary_expression "__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')" (binary_expression "__haystack[sVar4 - 1] != 'o'" (subscript_expression "__haystack[sVar4 - 1]" identifier [ (binary_expression "sVar4 - 1" identifier - number_literal) ]) != (char_literal "'o'" ' character ')) && (parenthesized_expression "(__haystack[sVar4 - 1] != 'a')" ( (binary_expression "__haystack[sVar4 - 1] != 'a'" (subscript_expression "__haystack[sVar4 - 1]" identifier [ (binary_expression "sVar4 - 1" identifier - number_literal) ]) != (char_literal "'a'" ' character ')) ))) )) )))) )) ))) )) (compound_statement "{\n    uVar6 = param_2[4];\n    if ((uVar6 & 0x4000) != 0) {\n      return 0xffffffff;\n    }\n    sVar4 = strlen(__haystack_00);\n    if (__haystack_00[sVar4 - 2] == '.') {\n      if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }\n      if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }\n    }\n  }" { (expression_statement "uVar6 = param_2[4];" (assignment_expression "uVar6 = param_2[4]" identifier = (subscript_expression "param_2[4]" identifier [ number_literal ])) ;) (if_statement "if ((uVar6 & 0x4000) != 0) {\n      return 0xffffffff;\n    }" if (parenthesized_expression "((uVar6 & 0x4000) != 0)" ( (binary_expression "(uVar6 & 0x4000) != 0" (parenthesized_expression "(uVar6 & 0x4000)" ( (binary_expression "uVar6 & 0x4000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      return 0xffffffff;\n    }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "sVar4 = strlen(__haystack_00);" (assignment_expression "sVar4 = strlen(__haystack_00)" identifier = (call_expression "strlen(__haystack_00)" identifier (argument_list "(__haystack_00)" ( identifier )))) ;) (if_statement "if (__haystack_00[sVar4 - 2] == '.') {\n      if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }\n      if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }\n    }" if (parenthesized_expression "(__haystack_00[sVar4 - 2] == '.')" ( (binary_expression "__haystack_00[sVar4 - 2] == '.'" (subscript_expression "__haystack_00[sVar4 - 2]" identifier [ (binary_expression "sVar4 - 2" identifier - number_literal) ]) == (char_literal "'.'" ' character ')) )) (compound_statement "{\n      if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }\n      if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }\n    }" { (if_statement "if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }" if (parenthesized_expression "(__haystack_00[sVar4 - 1] == 'o')" ( (binary_expression "__haystack_00[sVar4 - 1] == 'o'" (subscript_expression "__haystack_00[sVar4 - 1]" identifier [ (binary_expression "sVar4 - 1" identifier - number_literal) ]) == (char_literal "'o'" ' character ')) )) (compound_statement "{\n        return 0xffffffff;\n      }" { (return_statement "return 0xffffffff;" return number_literal ;) })) (if_statement "if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }" if (parenthesized_expression "(__haystack_00[sVar4 - 1] == 'a')" ( (binary_expression "__haystack_00[sVar4 - 1] == 'a'" (subscript_expression "__haystack_00[sVar4 - 1]" identifier [ (binary_expression "sVar4 - 1" identifier - number_literal) ]) == (char_literal "'a'" ' character ')) )) (compound_statement "{\n        return 0xffffffff;\n      }" { (return_statement "return 0xffffffff;" return number_literal ;) })) })) }) (else_clause "else {\n    uVar6 = param_2[4];\n    if (((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {\n      return 1;\n    }\n  }" else (compound_statement "{\n    uVar6 = param_2[4];\n    if (((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {\n      return 1;\n    }\n  }" { (expression_statement "uVar6 = param_2[4];" (assignment_expression "uVar6 = param_2[4]" identifier = (subscript_expression "param_2[4]" identifier [ number_literal ])) ;) (if_statement "if (((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {\n      return 1;\n    }" if (parenthesized_expression "(((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o'))))))" ( (binary_expression "((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))" (parenthesized_expression "((uVar6 & 0x4000) == 0)" ( (binary_expression "(uVar6 & 0x4000) == 0" (parenthesized_expression "(uVar6 & 0x4000)" ( (binary_expression "uVar6 & 0x4000" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))" ( (parenthesized_expression "(sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o'))))" ( (comma_expression "sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))" (assignment_expression "sVar4 = strlen(__haystack_00)" identifier = (call_expression "strlen(__haystack_00)" identifier (argument_list "(__haystack_00)" ( identifier )))) , (binary_expression "__haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))" (binary_expression "__haystack_00[sVar4 - 2] != '.'" (subscript_expression "__haystack_00[sVar4 - 2]" identifier [ (binary_expression "sVar4 - 2" identifier - number_literal) ]) != (char_literal "'.'" ' character ')) || (parenthesized_expression "((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))" ( (parenthesized_expression "(__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o'))" ( (binary_expression "__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')" (binary_expression "__haystack_00[sVar4 - 1] != 'a'" (subscript_expression "__haystack_00[sVar4 - 1]" identifier [ (binary_expression "sVar4 - 1" identifier - number_literal) ]) != (char_literal "'a'" ' character ')) && (parenthesized_expression "(__haystack_00[sVar4 - 1] != 'o')" ( (binary_expression "__haystack_00[sVar4 - 1] != 'o'" (subscript_expression "__haystack_00[sVar4 - 1]" identifier [ (binary_expression "sVar4 - 1" identifier - number_literal) ]) != (char_literal "'o'" ' character ')) ))) )) )))) )) ))) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }))) (expression_statement "uVar1 = uVar9 ^ uVar6;" (assignment_expression "uVar1 = uVar9 ^ uVar6" identifier = (binary_expression "uVar9 ^ uVar6" identifier ^ identifier)) ;) (if_statement "if ((uVar1 & 4) != 0) {\n    return -(uint)((uVar9 & 4) == 0) | 1;\n  }" if (parenthesized_expression "((uVar1 & 4) != 0)" ( (binary_expression "(uVar1 & 4) != 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    return -(uint)((uVar9 & 4) == 0) | 1;\n  }" { (return_statement "return -(uint)((uVar9 & 4) == 0) | 1;" return (binary_expression "-(uint)((uVar9 & 4) == 0) | 1" (unary_expression "-(uint)((uVar9 & 4) == 0)" - (call_expression "(uint)((uVar9 & 4) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar9 & 4) == 0)" ( (binary_expression "(uVar9 & 4) == 0" (parenthesized_expression "(uVar9 & 4)" ( (binary_expression "uVar9 & 4" identifier & number_literal) )) == number_literal) )))) | number_literal) ;) })) (if_statement "if ((uVar1 & 8) != 0) {\n    uVar9 = uVar9 & 8;\nLAB_00016f91:\n    return (-(uint)(uVar9 == 0) & 2) - 1;\n  }" if (parenthesized_expression "((uVar1 & 8) != 0)" ( (binary_expression "(uVar1 & 8) != 0" (parenthesized_expression "(uVar1 & 8)" ( (binary_expression "uVar1 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar9 = uVar9 & 8;\nLAB_00016f91:\n    return (-(uint)(uVar9 == 0) & 2) - 1;\n  }" { (expression_statement "uVar9 = uVar9 & 8;" (assignment_expression "uVar9 = uVar9 & 8" identifier = (binary_expression "uVar9 & 8" identifier & number_literal)) ;) (labeled_statement "LAB_00016f91:\n    return (-(uint)(uVar9 == 0) & 2) - 1;" statement_identifier : (return_statement "return (-(uint)(uVar9 == 0) & 2) - 1;" return (binary_expression "(-(uint)(uVar9 == 0) & 2) - 1" (parenthesized_expression "(-(uint)(uVar9 == 0) & 2)" ( (binary_expression "-(uint)(uVar9 == 0) & 2" (unary_expression "-(uint)(uVar9 == 0)" - (call_expression "(uint)(uVar9 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )))) & number_literal) )) - number_literal) ;)) })) (if_statement "if ((uVar1 & 1) != 0) {\n    return -(uint)((uVar9 & 1) == 0) | 1;\n  }" if (parenthesized_expression "((uVar1 & 1) != 0)" ( (binary_expression "(uVar1 & 1) != 0" (parenthesized_expression "(uVar1 & 1)" ( (binary_expression "uVar1 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    return -(uint)((uVar9 & 1) == 0) | 1;\n  }" { (return_statement "return -(uint)((uVar9 & 1) == 0) | 1;" return (binary_expression "-(uint)((uVar9 & 1) == 0) | 1" (unary_expression "-(uint)((uVar9 & 1) == 0)" - (call_expression "(uint)((uVar9 & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar9 & 1) == 0)" ( (binary_expression "(uVar9 & 1) == 0" (parenthesized_expression "(uVar9 & 1)" ( (binary_expression "uVar9 & 1" identifier & number_literal) )) == number_literal) )))) | number_literal) ;) })) (if_statement "if ((uVar1 & 2) != 0) {\n    uVar9 = uVar9 & 2;\n    goto LAB_00016f91;\n  }" if (parenthesized_expression "((uVar1 & 2) != 0)" ( (binary_expression "(uVar1 & 2) != 0" (parenthesized_expression "(uVar1 & 2)" ( (binary_expression "uVar1 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar9 = uVar9 & 2;\n    goto LAB_00016f91;\n  }" { (expression_statement "uVar9 = uVar9 & 2;" (assignment_expression "uVar9 = uVar9 & 2" identifier = (binary_expression "uVar9 & 2" identifier & number_literal)) ;) (goto_statement "goto LAB_00016f91;" goto statement_identifier ;) })) (if_statement "if ((*(int *)(*(int *)(*param_1 + 4) + 4) != 5) || (*(int *)(*(int *)(*param_2 + 4) + 4) != 5))\n  goto LAB_0001706b;" if (parenthesized_expression "((*(int *)(*(int *)(*param_1 + 4) + 4) != 5) || (*(int *)(*(int *)(*param_2 + 4) + 4) != 5))" ( (binary_expression "(*(int *)(*(int *)(*param_1 + 4) + 4) != 5) || (*(int *)(*(int *)(*param_2 + 4) + 4) != 5)" (parenthesized_expression "(*(int *)(*(int *)(*param_1 + 4) + 4) != 5)" ( (binary_expression "*(int *)(*(int *)(*param_1 + 4) + 4) != 5" (pointer_expression "*(int *)(*(int *)(*param_1 + 4) + 4)" * (cast_expression "(int *)(*(int *)(*param_1 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*param_1 + 4) + 4)" ( (binary_expression "*(int *)(*param_1 + 4) + 4" (pointer_expression "*(int *)(*param_1 + 4)" * (cast_expression "(int *)(*param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 4)" ( (binary_expression "*param_1 + 4" (pointer_expression "*param_1" * identifier) + number_literal) )))) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(int *)(*(int *)(*param_2 + 4) + 4) != 5)" ( (binary_expression "*(int *)(*(int *)(*param_2 + 4) + 4) != 5" (pointer_expression "*(int *)(*(int *)(*param_2 + 4) + 4)" * (cast_expression "(int *)(*(int *)(*param_2 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*param_2 + 4) + 4)" ( (binary_expression "*(int *)(*param_2 + 4) + 4" (pointer_expression "*(int *)(*param_2 + 4)" * (cast_expression "(int *)(*param_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + 4)" ( (binary_expression "*param_2 + 4" (pointer_expression "*param_2" * identifier) + number_literal) )))) + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_0001706b;" goto statement_identifier ;)) (if_statement "if ((uVar9 & 0x200100) == 0) {\n    uVar9 = param_1[10];\n    uVar1 = param_1[0xb];\n    if ((uVar6 & 0x200100) == 0) goto LAB_00017101;\n    uVar6 = 0;\n    uVar5 = 0;\n  }\n  else {\n    if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;\n    uVar9 = 0;\n    uVar1 = 0;\nLAB_00017101:\n    uVar6 = param_2[10];\n    uVar5 = param_2[0xb];\n  }" if (parenthesized_expression "((uVar9 & 0x200100) == 0)" ( (binary_expression "(uVar9 & 0x200100) == 0" (parenthesized_expression "(uVar9 & 0x200100)" ( (binary_expression "uVar9 & 0x200100" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar9 = param_1[10];\n    uVar1 = param_1[0xb];\n    if ((uVar6 & 0x200100) == 0) goto LAB_00017101;\n    uVar6 = 0;\n    uVar5 = 0;\n  }" { (expression_statement "uVar9 = param_1[10];" (assignment_expression "uVar9 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "uVar1 = param_1[0xb];" (assignment_expression "uVar1 = param_1[0xb]" identifier = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) (if_statement "if ((uVar6 & 0x200100) == 0) goto LAB_00017101;" if (parenthesized_expression "((uVar6 & 0x200100) == 0)" ( (binary_expression "(uVar6 & 0x200100) == 0" (parenthesized_expression "(uVar6 & 0x200100)" ( (binary_expression "uVar6 & 0x200100" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00017101;" goto statement_identifier ;)) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;\n    uVar9 = 0;\n    uVar1 = 0;\nLAB_00017101:\n    uVar6 = param_2[10];\n    uVar5 = param_2[0xb];\n  }" else (compound_statement "{\n    if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;\n    uVar9 = 0;\n    uVar1 = 0;\nLAB_00017101:\n    uVar6 = param_2[10];\n    uVar5 = param_2[0xb];\n  }" { (if_statement "if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;" if (parenthesized_expression "((uVar6 & 0x200100) != 0)" ( (binary_expression "(uVar6 & 0x200100) != 0" (parenthesized_expression "(uVar6 & 0x200100)" ( (binary_expression "uVar6 & 0x200100" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001706b;" goto statement_identifier ;)) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00017101:\n    uVar6 = param_2[10];" statement_identifier : (expression_statement "uVar6 = param_2[10];" (assignment_expression "uVar6 = param_2[10]" identifier = (subscript_expression "param_2[10]" identifier [ number_literal ])) ;)) (expression_statement "uVar5 = param_2[0xb];" (assignment_expression "uVar5 = param_2[0xb]" identifier = (subscript_expression "param_2[0xb]" identifier [ number_literal ])) ;) }))) (if_statement "if ((uVar5 != uVar1) || (uVar6 != uVar9)) {\n    return (uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1;\n  }" if (parenthesized_expression "((uVar5 != uVar1) || (uVar6 != uVar9))" ( (binary_expression "(uVar5 != uVar1) || (uVar6 != uVar9)" (parenthesized_expression "(uVar5 != uVar1)" ( (binary_expression "uVar5 != uVar1" identifier != identifier) )) || (parenthesized_expression "(uVar6 != uVar9)" ( (binary_expression "uVar6 != uVar9" identifier != identifier) ))) )) (compound_statement "{\n    return (uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1;\n  }" { (return_statement "return (uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1;" return (binary_expression "(uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1" (binary_expression "(uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2" (call_expression "(uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1)" ( (binary_expression "uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1" (binary_expression "uVar1 <= uVar5" identifier <= identifier) && (binary_expression "(uint)(uVar6 < uVar9) <= uVar5 - uVar1" (call_expression "(uint)(uVar6 < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 < uVar9)" ( (binary_expression "uVar6 < uVar9" identifier < identifier) ))) <= (binary_expression "uVar5 - uVar1" identifier - identifier))) ))) * number_literal) - number_literal) ;) })) (labeled_statement "LAB_0001706b:\n  if (*__haystack == '.') {\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }\n  else if (*__haystack_00 == '.') {\n    return 0xffffffff;\n  }" statement_identifier : (if_statement "if (*__haystack == '.') {\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }\n  else if (*__haystack_00 == '.') {\n    return 0xffffffff;\n  }" if (parenthesized_expression "(*__haystack == '.')" ( (binary_expression "*__haystack == '.'" (pointer_expression "*__haystack" * identifier) == (char_literal "'.'" ' character ')) )) (compound_statement "{\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }" { (if_statement "if (*__haystack_00 != '.') {\n      return 1;\n    }" if (parenthesized_expression "(*__haystack_00 != '.')" ( (binary_expression "*__haystack_00 != '.'" (pointer_expression "*__haystack_00" * identifier) != (char_literal "'.'" ' character ')) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }) (else_clause "else if (*__haystack_00 == '.') {\n    return 0xffffffff;\n  }" else (if_statement "if (*__haystack_00 == '.') {\n    return 0xffffffff;\n  }" if (parenthesized_expression "(*__haystack_00 == '.')" ( (binary_expression "*__haystack_00 == '.'" (pointer_expression "*__haystack_00" * identifier) == (char_literal "'.'" ' character ')) )) (compound_statement "{\n    return 0xffffffff;\n  }" { (return_statement "return 0xffffffff;" return number_literal ;) }))))) (expression_statement "uVar9 = strcmp(__haystack,__haystack_00);" (assignment_expression "uVar9 = strcmp(__haystack,__haystack_00)" identifier = (call_expression "strcmp(__haystack,__haystack_00)" identifier (argument_list "(__haystack,__haystack_00)" ( identifier , identifier )))) ;) (return_statement "return uVar9;" return identifier ;) })))
(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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_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 (binary_expression (subscript_expression IDENT [ LIT ]) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (subscript_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 (subscript_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 (binary_expression (subscript_expression IDENT [ LIT ]) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (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 , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (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 , (string_literal " string_content ") )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return IDENT ;) }))) })))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) != (char_literal ' character ')) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) != (char_literal ' character ')) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) != (char_literal ' character ')) ))) )) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) == (char_literal ' character ')) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) == (char_literal ' character ')) )) (compound_statement { (return_statement return LIT ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) != (char_literal ' character ')) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) != (char_literal ' character ')) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) != (char_literal ' character ')) ))) )) )))) )) ))) )) (compound_statement { (return_statement return LIT ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (return_statement return (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )))) | LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (labeled_statement statement_identifier : (return_statement return (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) & LIT) )) - LIT) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (return_statement return (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )))) | LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) + LIT) )))) != LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) + LIT) )))) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) || (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (compound_statement { (return_statement return (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) <= (binary_expression IDENT - IDENT))) ))) * LIT) - LIT) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (return_statement return LIT ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (return_statement return LIT ;) }))))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (return_statement return IDENT ;) })))
(function_definition "uint FUN_00016da0(int *param_1,int *param_2)\n\n{\n  char *__haystack;\n  char *__haystack_00;\n  uint uVar1;\n  char *pcVar2;\n  char *pcVar3;\n  size_t sVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint local_2c;\n  \n  local_2c = 1;\n  param_1 = (int *)*param_1;\n  param_2 = (int *)*param_2;\n  uVar9 = param_1[5];\n  uVar6 = param_2[5];\n  uVar5 = param_1[2] + *(uint *)(uVar9 + 0x1c);\n  uVar8 = param_1[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c));\n  uVar1 = param_2[2] + *(uint *)(uVar6 + 0x1c);\n  uVar7 = param_2[3] + *(int *)(uVar6 + 0x20) + (uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c));\n  if (uVar7 < uVar8 || uVar7 - uVar8 < (uint)(uVar1 < uVar5)) {\n    return 1;\n  }\n  if (uVar8 < uVar7 || uVar8 - uVar7 < (uint)(uVar5 < uVar1)) {\n    return 0xffffffff;\n  }\n  if (uVar6 < uVar9) {\n    return 1;\n  }\n  if (uVar9 < uVar6) {\n    return 0xffffffff;\n  }\n  __haystack = (char *)param_1[1];\n  __haystack_00 = (char *)param_2[1];\n  pcVar2 = strstr(__haystack,"gnu_compiled");\n  pcVar3 = strstr(__haystack_00,"gnu_compiled");\n  if (pcVar2 == (char *)0x0) {\n    pcVar2 = strstr(__haystack,"gcc2_compiled");\n    if ((pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)) {\n      local_2c = 0xffffffff;\n      goto joined_r0x00016f76;\n    }\n    if (pcVar2 != (char *)0x0) {\n      return 1;\n    }\n  }\n  else if (pcVar3 == (char *)0x0) {\n    pcVar2 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }\n  }\n  uVar9 = param_1[4];\n  if (((uVar9 & 0x4000) == 0) &&\n     ((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))))) {\n    uVar6 = param_2[4];\n    if ((uVar6 & 0x4000) != 0) {\n      return 0xffffffff;\n    }\n    sVar4 = strlen(__haystack_00);\n    if (__haystack_00[sVar4 - 2] == '.') {\n      if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }\n      if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }\n    }\n  }\n  else {\n    uVar6 = param_2[4];\n    if (((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {\n      return 1;\n    }\n  }\n  uVar1 = uVar9 ^ uVar6;\n  if ((uVar1 & 4) != 0) {\n    return -(uint)((uVar9 & 4) == 0) | 1;\n  }\n  if ((uVar1 & 8) != 0) {\n    uVar9 = uVar9 & 8;\nLAB_00016f91:\n    return (-(uint)(uVar9 == 0) & 2) - 1;\n  }\n  if ((uVar1 & 1) != 0) {\n    return -(uint)((uVar9 & 1) == 0) | 1;\n  }\n  if ((uVar1 & 2) != 0) {\n    uVar9 = uVar9 & 2;\n    goto LAB_00016f91;\n  }\n  if ((*(int *)(*(int *)(*param_1 + 4) + 4) != 5) || (*(int *)(*(int *)(*param_2 + 4) + 4) != 5))\n  goto LAB_0001706b;\n  if ((uVar9 & 0x200100) == 0) {\n    uVar9 = param_1[10];\n    uVar1 = param_1[0xb];\n    if ((uVar6 & 0x200100) == 0) goto LAB_00017101;\n    uVar6 = 0;\n    uVar5 = 0;\n  }\n  else {\n    if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;\n    uVar9 = 0;\n    uVar1 = 0;\nLAB_00017101:\n    uVar6 = param_2[10];\n    uVar5 = param_2[0xb];\n  }\n  if ((uVar5 != uVar1) || (uVar6 != uVar9)) {\n    return (uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1;\n  }\nLAB_0001706b:\n  if (*__haystack == '.') {\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }\n  else if (*__haystack_00 == '.') {\n    return 0xffffffff;\n  }\n  uVar9 = strcmp(__haystack,__haystack_00);\n  return uVar9;\n}" (type_identifier "uint") (function_declarator "FUN_00016da0(int *param_1,int *param_2)" (identifier "FUN_00016da0") (parameter_list "(int *param_1,int *param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  char *__haystack;\n  char *__haystack_00;\n  uint uVar1;\n  char *pcVar2;\n  char *pcVar3;\n  size_t sVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint local_2c;\n  \n  local_2c = 1;\n  param_1 = (int *)*param_1;\n  param_2 = (int *)*param_2;\n  uVar9 = param_1[5];\n  uVar6 = param_2[5];\n  uVar5 = param_1[2] + *(uint *)(uVar9 + 0x1c);\n  uVar8 = param_1[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c));\n  uVar1 = param_2[2] + *(uint *)(uVar6 + 0x1c);\n  uVar7 = param_2[3] + *(int *)(uVar6 + 0x20) + (uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c));\n  if (uVar7 < uVar8 || uVar7 - uVar8 < (uint)(uVar1 < uVar5)) {\n    return 1;\n  }\n  if (uVar8 < uVar7 || uVar8 - uVar7 < (uint)(uVar5 < uVar1)) {\n    return 0xffffffff;\n  }\n  if (uVar6 < uVar9) {\n    return 1;\n  }\n  if (uVar9 < uVar6) {\n    return 0xffffffff;\n  }\n  __haystack = (char *)param_1[1];\n  __haystack_00 = (char *)param_2[1];\n  pcVar2 = strstr(__haystack,"gnu_compiled");\n  pcVar3 = strstr(__haystack_00,"gnu_compiled");\n  if (pcVar2 == (char *)0x0) {\n    pcVar2 = strstr(__haystack,"gcc2_compiled");\n    if ((pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)) {\n      local_2c = 0xffffffff;\n      goto joined_r0x00016f76;\n    }\n    if (pcVar2 != (char *)0x0) {\n      return 1;\n    }\n  }\n  else if (pcVar3 == (char *)0x0) {\n    pcVar2 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }\n  }\n  uVar9 = param_1[4];\n  if (((uVar9 & 0x4000) == 0) &&\n     ((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))))) {\n    uVar6 = param_2[4];\n    if ((uVar6 & 0x4000) != 0) {\n      return 0xffffffff;\n    }\n    sVar4 = strlen(__haystack_00);\n    if (__haystack_00[sVar4 - 2] == '.') {\n      if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }\n      if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }\n    }\n  }\n  else {\n    uVar6 = param_2[4];\n    if (((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {\n      return 1;\n    }\n  }\n  uVar1 = uVar9 ^ uVar6;\n  if ((uVar1 & 4) != 0) {\n    return -(uint)((uVar9 & 4) == 0) | 1;\n  }\n  if ((uVar1 & 8) != 0) {\n    uVar9 = uVar9 & 8;\nLAB_00016f91:\n    return (-(uint)(uVar9 == 0) & 2) - 1;\n  }\n  if ((uVar1 & 1) != 0) {\n    return -(uint)((uVar9 & 1) == 0) | 1;\n  }\n  if ((uVar1 & 2) != 0) {\n    uVar9 = uVar9 & 2;\n    goto LAB_00016f91;\n  }\n  if ((*(int *)(*(int *)(*param_1 + 4) + 4) != 5) || (*(int *)(*(int *)(*param_2 + 4) + 4) != 5))\n  goto LAB_0001706b;\n  if ((uVar9 & 0x200100) == 0) {\n    uVar9 = param_1[10];\n    uVar1 = param_1[0xb];\n    if ((uVar6 & 0x200100) == 0) goto LAB_00017101;\n    uVar6 = 0;\n    uVar5 = 0;\n  }\n  else {\n    if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;\n    uVar9 = 0;\n    uVar1 = 0;\nLAB_00017101:\n    uVar6 = param_2[10];\n    uVar5 = param_2[0xb];\n  }\n  if ((uVar5 != uVar1) || (uVar6 != uVar9)) {\n    return (uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1;\n  }\nLAB_0001706b:\n  if (*__haystack == '.') {\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }\n  else if (*__haystack_00 == '.') {\n    return 0xffffffff;\n  }\n  uVar9 = strcmp(__haystack,__haystack_00);\n  return uVar9;\n}" ({ "{") (declaration "char *__haystack;" (primitive_type "char") (pointer_declarator "*__haystack" (* "*") (identifier "__haystack")) (; ";")) (declaration "char *__haystack_00;" (primitive_type "char") (pointer_declarator "*__haystack_00" (* "*") (identifier "__haystack_00")) (; ";")) (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "size_t sVar4;" (primitive_type "size_t") (identifier "sVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "uint local_2c;" (type_identifier "uint") (identifier "local_2c") (; ";")) (expression_statement "local_2c = 1;" (assignment_expression "local_2c = 1" (identifier "local_2c") (= "=") (number_literal "1")) (; ";")) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" (identifier "param_1") (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "param_2 = (int *)*param_2;" (assignment_expression "param_2 = (int *)*param_2" (identifier "param_2") (= "=") (cast_expression "(int *)*param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "uVar9 = param_1[5];" (assignment_expression "uVar9 = param_1[5]" (identifier "uVar9") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar6 = param_2[5];" (assignment_expression "uVar6 = param_2[5]" (identifier "uVar6") (= "=") (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar5 = param_1[2] + *(uint *)(uVar9 + 0x1c);" (assignment_expression "uVar5 = param_1[2] + *(uint *)(uVar9 + 0x1c)" (identifier "uVar5") (= "=") (binary_expression "param_1[2] + *(uint *)(uVar9 + 0x1c)" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (pointer_expression "*(uint *)(uVar9 + 0x1c)" (* "*") (cast_expression "(uint *)(uVar9 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 0x1c)" (( "(") (binary_expression "uVar9 + 0x1c" (identifier "uVar9") (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (expression_statement "uVar8 = param_1[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c));" (assignment_expression "uVar8 = param_1[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c))" (identifier "uVar8") (= "=") (binary_expression "param_1[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c))" (binary_expression "param_1[3] + *(int *)(uVar9 + 0x20)" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (+ "+") (pointer_expression "*(int *)(uVar9 + 0x20)" (* "*") (cast_expression "(int *)(uVar9 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 0x20)" (( "(") (binary_expression "uVar9 + 0x20" (identifier "uVar9") (+ "+") (number_literal "0x20")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c))" (identifier "CARRY4") (argument_list "(param_1[2],*(uint *)(uVar9 + 0x1c))" (( "(") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (, ",") (pointer_expression "*(uint *)(uVar9 + 0x1c)" (* "*") (cast_expression "(uint *)(uVar9 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 0x1c)" (( "(") (binary_expression "uVar9 + 0x1c" (identifier "uVar9") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))))) (; ";")) (expression_statement "uVar1 = param_2[2] + *(uint *)(uVar6 + 0x1c);" (assignment_expression "uVar1 = param_2[2] + *(uint *)(uVar6 + 0x1c)" (identifier "uVar1") (= "=") (binary_expression "param_2[2] + *(uint *)(uVar6 + 0x1c)" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (+ "+") (pointer_expression "*(uint *)(uVar6 + 0x1c)" (* "*") (cast_expression "(uint *)(uVar6 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar6 + 0x1c)" (( "(") (binary_expression "uVar6 + 0x1c" (identifier "uVar6") (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (expression_statement "uVar7 = param_2[3] + *(int *)(uVar6 + 0x20) + (uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c));" (assignment_expression "uVar7 = param_2[3] + *(int *)(uVar6 + 0x20) + (uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c))" (identifier "uVar7") (= "=") (binary_expression "param_2[3] + *(int *)(uVar6 + 0x20) + (uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c))" (binary_expression "param_2[3] + *(int *)(uVar6 + 0x20)" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (+ "+") (pointer_expression "*(int *)(uVar6 + 0x20)" (* "*") (cast_expression "(int *)(uVar6 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar6 + 0x20)" (( "(") (binary_expression "uVar6 + 0x20" (identifier "uVar6") (+ "+") (number_literal "0x20")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c))" (identifier "CARRY4") (argument_list "(param_2[2],*(uint *)(uVar6 + 0x1c))" (( "(") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (, ",") (pointer_expression "*(uint *)(uVar6 + 0x1c)" (* "*") (cast_expression "(uint *)(uVar6 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar6 + 0x1c)" (( "(") (binary_expression "uVar6 + 0x1c" (identifier "uVar6") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))))) (; ";")) (if_statement "if (uVar7 < uVar8 || uVar7 - uVar8 < (uint)(uVar1 < uVar5)) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(uVar7 < uVar8 || uVar7 - uVar8 < (uint)(uVar1 < uVar5))" (( "(") (binary_expression "uVar7 < uVar8 || uVar7 - uVar8 < (uint)(uVar1 < uVar5)" (binary_expression "uVar7 < uVar8" (identifier "uVar7") (< "<") (identifier "uVar8")) (|| "||") (binary_expression "uVar7 - uVar8 < (uint)(uVar1 < uVar5)" (binary_expression "uVar7 - uVar8" (identifier "uVar7") (- "-") (identifier "uVar8")) (< "<") (call_expression "(uint)(uVar1 < uVar5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar1 < uVar5)" (( "(") (binary_expression "uVar1 < uVar5" (identifier "uVar1") (< "<") (identifier "uVar5")) () ")"))))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (uVar8 < uVar7 || uVar8 - uVar7 < (uint)(uVar5 < uVar1)) {\n    return 0xffffffff;\n  }" (if "if") (parenthesized_expression "(uVar8 < uVar7 || uVar8 - uVar7 < (uint)(uVar5 < uVar1))" (( "(") (binary_expression "uVar8 < uVar7 || uVar8 - uVar7 < (uint)(uVar5 < uVar1)" (binary_expression "uVar8 < uVar7" (identifier "uVar8") (< "<") (identifier "uVar7")) (|| "||") (binary_expression "uVar8 - uVar7 < (uint)(uVar5 < uVar1)" (binary_expression "uVar8 - uVar7" (identifier "uVar8") (- "-") (identifier "uVar7")) (< "<") (call_expression "(uint)(uVar5 < uVar1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar5 < uVar1)" (( "(") (binary_expression "uVar5 < uVar1" (identifier "uVar5") (< "<") (identifier "uVar1")) () ")"))))) () ")")) (compound_statement "{\n    return 0xffffffff;\n  }" ({ "{") (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}"))) (if_statement "if (uVar6 < uVar9) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(uVar6 < uVar9)" (( "(") (binary_expression "uVar6 < uVar9" (identifier "uVar6") (< "<") (identifier "uVar9")) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (uVar9 < uVar6) {\n    return 0xffffffff;\n  }" (if "if") (parenthesized_expression "(uVar9 < uVar6)" (( "(") (binary_expression "uVar9 < uVar6" (identifier "uVar9") (< "<") (identifier "uVar6")) () ")")) (compound_statement "{\n    return 0xffffffff;\n  }" ({ "{") (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}"))) (expression_statement "__haystack = (char *)param_1[1];" (assignment_expression "__haystack = (char *)param_1[1]" (identifier "__haystack") (= "=") (cast_expression "(char *)param_1[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "__haystack_00 = (char *)param_2[1];" (assignment_expression "__haystack_00 = (char *)param_2[1]" (identifier "__haystack_00") (= "=") (cast_expression "(char *)param_2[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "pcVar2 = strstr(__haystack,"gnu_compiled");" (assignment_expression "pcVar2 = strstr(__haystack,"gnu_compiled")" (identifier "pcVar2") (= "=") (call_expression "strstr(__haystack,"gnu_compiled")" (identifier "strstr") (argument_list "(__haystack,"gnu_compiled")" (( "(") (identifier "__haystack") (, ",") (string_literal ""gnu_compiled"" (" """) (string_content "gnu_compiled") (" """)) () ")")))) (; ";")) (expression_statement "pcVar3 = strstr(__haystack_00,"gnu_compiled");" (assignment_expression "pcVar3 = strstr(__haystack_00,"gnu_compiled")" (identifier "pcVar3") (= "=") (call_expression "strstr(__haystack_00,"gnu_compiled")" (identifier "strstr") (argument_list "(__haystack_00,"gnu_compiled")" (( "(") (identifier "__haystack_00") (, ",") (string_literal ""gnu_compiled"" (" """) (string_content "gnu_compiled") (" """)) () ")")))) (; ";")) (if_statement "if (pcVar2 == (char *)0x0) {\n    pcVar2 = strstr(__haystack,"gcc2_compiled");\n    if ((pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)) {\n      local_2c = 0xffffffff;\n      goto joined_r0x00016f76;\n    }\n    if (pcVar2 != (char *)0x0) {\n      return 1;\n    }\n  }\n  else if (pcVar3 == (char *)0x0) {\n    pcVar2 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }\n  }" (if "if") (parenthesized_expression "(pcVar2 == (char *)0x0)" (( "(") (binary_expression "pcVar2 == (char *)0x0" (identifier "pcVar2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar2 = strstr(__haystack,"gcc2_compiled");\n    if ((pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)) {\n      local_2c = 0xffffffff;\n      goto joined_r0x00016f76;\n    }\n    if (pcVar2 != (char *)0x0) {\n      return 1;\n    }\n  }" ({ "{") (expression_statement "pcVar2 = strstr(__haystack,"gcc2_compiled");" (assignment_expression "pcVar2 = strstr(__haystack,"gcc2_compiled")" (identifier "pcVar2") (= "=") (call_expression "strstr(__haystack,"gcc2_compiled")" (identifier "strstr") (argument_list "(__haystack,"gcc2_compiled")" (( "(") (identifier "__haystack") (, ",") (string_literal ""gcc2_compiled"" (" """) (string_content "gcc2_compiled") (" """)) () ")")))) (; ";")) (if_statement "if ((pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)) {\n      local_2c = 0xffffffff;\n      goto joined_r0x00016f76;\n    }" (if "if") (parenthesized_expression "((pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0))" (( "(") (binary_expression "(pcVar3 != (char *)0x0) ||\n       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)" (parenthesized_expression "(pcVar3 != (char *)0x0)" (( "(") (binary_expression "pcVar3 != (char *)0x0" (identifier "pcVar3") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)" (( "(") (comma_expression "pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0" (assignment_expression "pcVar3 = strstr(__haystack_00,"gcc2_compiled")" (identifier "pcVar3") (= "=") (call_expression "strstr(__haystack_00,"gcc2_compiled")" (identifier "strstr") (argument_list "(__haystack_00,"gcc2_compiled")" (( "(") (identifier "__haystack_00") (, ",") (string_literal ""gcc2_compiled"" (" """) (string_content "gcc2_compiled") (" """)) () ")")))) (, ",") (binary_expression "pcVar3 != (char *)0x0" (identifier "pcVar3") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n      local_2c = 0xffffffff;\n      goto joined_r0x00016f76;\n    }" ({ "{") (expression_statement "local_2c = 0xffffffff;" (assignment_expression "local_2c = 0xffffffff" (identifier "local_2c") (= "=") (number_literal "0xffffffff")) (; ";")) (goto_statement "goto joined_r0x00016f76;" (goto "goto") (statement_identifier "joined_r0x00016f76") (; ";")) (} "}"))) (if_statement "if (pcVar2 != (char *)0x0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(pcVar2 != (char *)0x0)" (( "(") (binary_expression "pcVar2 != (char *)0x0" (identifier "pcVar2") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}")) (else_clause "else if (pcVar3 == (char *)0x0) {\n    pcVar2 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }\n  }" (else "else") (if_statement "if (pcVar3 == (char *)0x0) {\n    pcVar2 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }\n  }" (if "if") (parenthesized_expression "(pcVar3 == (char *)0x0)" (( "(") (binary_expression "pcVar3 == (char *)0x0" (identifier "pcVar3") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar2 = strstr(__haystack_00,"gcc2_compiled");\njoined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }\n  }" ({ "{") (expression_statement "pcVar2 = strstr(__haystack_00,"gcc2_compiled");" (assignment_expression "pcVar2 = strstr(__haystack_00,"gcc2_compiled")" (identifier "pcVar2") (= "=") (call_expression "strstr(__haystack_00,"gcc2_compiled")" (identifier "strstr") (argument_list "(__haystack_00,"gcc2_compiled")" (( "(") (identifier "__haystack_00") (, ",") (string_literal ""gcc2_compiled"" (" """) (string_content "gcc2_compiled") (" """)) () ")")))) (; ";")) (labeled_statement "joined_r0x00016f76:\n    if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }" (statement_identifier "joined_r0x00016f76") (: ":") (if_statement "if (pcVar2 == (char *)0x0) {\n      return local_2c;\n    }" (if "if") (parenthesized_expression "(pcVar2 == (char *)0x0)" (( "(") (binary_expression "pcVar2 == (char *)0x0" (identifier "pcVar2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return local_2c;\n    }" ({ "{") (return_statement "return local_2c;" (return "return") (identifier "local_2c") (; ";")) (} "}")))) (} "}"))))) (expression_statement "uVar9 = param_1[4];" (assignment_expression "uVar9 = param_1[4]" (identifier "uVar9") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (((uVar9 & 0x4000) == 0) &&\n     ((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))))) {\n    uVar6 = param_2[4];\n    if ((uVar6 & 0x4000) != 0) {\n      return 0xffffffff;\n    }\n    sVar4 = strlen(__haystack_00);\n    if (__haystack_00[sVar4 - 2] == '.') {\n      if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }\n      if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }\n    }\n  }\n  else {\n    uVar6 = param_2[4];\n    if (((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {\n      return 1;\n    }\n  }" (if "if") (parenthesized_expression "(((uVar9 & 0x4000) == 0) &&\n     ((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a'))))))" (( "(") (binary_expression "((uVar9 & 0x4000) == 0) &&\n     ((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))))" (parenthesized_expression "((uVar9 & 0x4000) == 0)" (( "(") (binary_expression "(uVar9 & 0x4000) == 0" (parenthesized_expression "(uVar9 & 0x4000)" (( "(") (binary_expression "uVar9 & 0x4000" (identifier "uVar9") (& "&") (number_literal "0x4000")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))))" (( "(") (parenthesized_expression "(sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a'))))" (( "(") (comma_expression "sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))" (assignment_expression "sVar4 = strlen(__haystack)" (identifier "sVar4") (= "=") (call_expression "strlen(__haystack)" (identifier "strlen") (argument_list "(__haystack)" (( "(") (identifier "__haystack") () ")")))) (, ",") (binary_expression "__haystack[sVar4 - 2] != '.' ||\n      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))" (binary_expression "__haystack[sVar4 - 2] != '.'" (subscript_expression "__haystack[sVar4 - 2]" (identifier "__haystack") ([ "[") (binary_expression "sVar4 - 2" (identifier "sVar4") (- "-") (number_literal "2")) (] "]")) (!= "!=") (char_literal "'.'" (' "'") (character ".") (' "'"))) (|| "||") (parenthesized_expression "((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))" (( "(") (parenthesized_expression "(__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a'))" (( "(") (binary_expression "__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')" (binary_expression "__haystack[sVar4 - 1] != 'o'" (subscript_expression "__haystack[sVar4 - 1]" (identifier "__haystack") ([ "[") (binary_expression "sVar4 - 1" (identifier "sVar4") (- "-") (number_literal "1")) (] "]")) (!= "!=") (char_literal "'o'" (' "'") (character "o") (' "'"))) (&& "&&") (parenthesized_expression "(__haystack[sVar4 - 1] != 'a')" (( "(") (binary_expression "__haystack[sVar4 - 1] != 'a'" (subscript_expression "__haystack[sVar4 - 1]" (identifier "__haystack") ([ "[") (binary_expression "sVar4 - 1" (identifier "sVar4") (- "-") (number_literal "1")) (] "]")) (!= "!=") (char_literal "'a'" (' "'") (character "a") (' "'"))) () ")"))) () ")")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n    uVar6 = param_2[4];\n    if ((uVar6 & 0x4000) != 0) {\n      return 0xffffffff;\n    }\n    sVar4 = strlen(__haystack_00);\n    if (__haystack_00[sVar4 - 2] == '.') {\n      if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }\n      if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }\n    }\n  }" ({ "{") (expression_statement "uVar6 = param_2[4];" (assignment_expression "uVar6 = param_2[4]" (identifier "uVar6") (= "=") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if ((uVar6 & 0x4000) != 0) {\n      return 0xffffffff;\n    }" (if "if") (parenthesized_expression "((uVar6 & 0x4000) != 0)" (( "(") (binary_expression "(uVar6 & 0x4000) != 0" (parenthesized_expression "(uVar6 & 0x4000)" (( "(") (binary_expression "uVar6 & 0x4000" (identifier "uVar6") (& "&") (number_literal "0x4000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 0xffffffff;\n    }" ({ "{") (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}"))) (expression_statement "sVar4 = strlen(__haystack_00);" (assignment_expression "sVar4 = strlen(__haystack_00)" (identifier "sVar4") (= "=") (call_expression "strlen(__haystack_00)" (identifier "strlen") (argument_list "(__haystack_00)" (( "(") (identifier "__haystack_00") () ")")))) (; ";")) (if_statement "if (__haystack_00[sVar4 - 2] == '.') {\n      if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }\n      if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }\n    }" (if "if") (parenthesized_expression "(__haystack_00[sVar4 - 2] == '.')" (( "(") (binary_expression "__haystack_00[sVar4 - 2] == '.'" (subscript_expression "__haystack_00[sVar4 - 2]" (identifier "__haystack_00") ([ "[") (binary_expression "sVar4 - 2" (identifier "sVar4") (- "-") (number_literal "2")) (] "]")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (compound_statement "{\n      if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }\n      if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }\n    }" ({ "{") (if_statement "if (__haystack_00[sVar4 - 1] == 'o') {\n        return 0xffffffff;\n      }" (if "if") (parenthesized_expression "(__haystack_00[sVar4 - 1] == 'o')" (( "(") (binary_expression "__haystack_00[sVar4 - 1] == 'o'" (subscript_expression "__haystack_00[sVar4 - 1]" (identifier "__haystack_00") ([ "[") (binary_expression "sVar4 - 1" (identifier "sVar4") (- "-") (number_literal "1")) (] "]")) (== "==") (char_literal "'o'" (' "'") (character "o") (' "'"))) () ")")) (compound_statement "{\n        return 0xffffffff;\n      }" ({ "{") (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}"))) (if_statement "if (__haystack_00[sVar4 - 1] == 'a') {\n        return 0xffffffff;\n      }" (if "if") (parenthesized_expression "(__haystack_00[sVar4 - 1] == 'a')" (( "(") (binary_expression "__haystack_00[sVar4 - 1] == 'a'" (subscript_expression "__haystack_00[sVar4 - 1]" (identifier "__haystack_00") ([ "[") (binary_expression "sVar4 - 1" (identifier "sVar4") (- "-") (number_literal "1")) (] "]")) (== "==") (char_literal "'a'" (' "'") (character "a") (' "'"))) () ")")) (compound_statement "{\n        return 0xffffffff;\n      }" ({ "{") (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n    uVar6 = param_2[4];\n    if (((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {\n      return 1;\n    }\n  }" (else "else") (compound_statement "{\n    uVar6 = param_2[4];\n    if (((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {\n      return 1;\n    }\n  }" ({ "{") (expression_statement "uVar6 = param_2[4];" (assignment_expression "uVar6 = param_2[4]" (identifier "uVar6") (= "=") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o'))))))" (( "(") (binary_expression "((uVar6 & 0x4000) == 0) &&\n       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))" (parenthesized_expression "((uVar6 & 0x4000) == 0)" (( "(") (binary_expression "(uVar6 & 0x4000) == 0" (parenthesized_expression "(uVar6 & 0x4000)" (( "(") (binary_expression "uVar6 & 0x4000" (identifier "uVar6") (& "&") (number_literal "0x4000")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))" (( "(") (parenthesized_expression "(sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o'))))" (( "(") (comma_expression "sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))" (assignment_expression "sVar4 = strlen(__haystack_00)" (identifier "sVar4") (= "=") (call_expression "strlen(__haystack_00)" (identifier "strlen") (argument_list "(__haystack_00)" (( "(") (identifier "__haystack_00") () ")")))) (, ",") (binary_expression "__haystack_00[sVar4 - 2] != '.' ||\n        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))" (binary_expression "__haystack_00[sVar4 - 2] != '.'" (subscript_expression "__haystack_00[sVar4 - 2]" (identifier "__haystack_00") ([ "[") (binary_expression "sVar4 - 2" (identifier "sVar4") (- "-") (number_literal "2")) (] "]")) (!= "!=") (char_literal "'.'" (' "'") (character ".") (' "'"))) (|| "||") (parenthesized_expression "((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))" (( "(") (parenthesized_expression "(__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o'))" (( "(") (binary_expression "__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')" (binary_expression "__haystack_00[sVar4 - 1] != 'a'" (subscript_expression "__haystack_00[sVar4 - 1]" (identifier "__haystack_00") ([ "[") (binary_expression "sVar4 - 1" (identifier "sVar4") (- "-") (number_literal "1")) (] "]")) (!= "!=") (char_literal "'a'" (' "'") (character "a") (' "'"))) (&& "&&") (parenthesized_expression "(__haystack_00[sVar4 - 1] != 'o')" (( "(") (binary_expression "__haystack_00[sVar4 - 1] != 'o'" (subscript_expression "__haystack_00[sVar4 - 1]" (identifier "__haystack_00") ([ "[") (binary_expression "sVar4 - 1" (identifier "sVar4") (- "-") (number_literal "1")) (] "]")) (!= "!=") (char_literal "'o'" (' "'") (character "o") (' "'"))) () ")"))) () ")")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar1 = uVar9 ^ uVar6;" (assignment_expression "uVar1 = uVar9 ^ uVar6" (identifier "uVar1") (= "=") (binary_expression "uVar9 ^ uVar6" (identifier "uVar9") (^ "^") (identifier "uVar6"))) (; ";")) (if_statement "if ((uVar1 & 4) != 0) {\n    return -(uint)((uVar9 & 4) == 0) | 1;\n  }" (if "if") (parenthesized_expression "((uVar1 & 4) != 0)" (( "(") (binary_expression "(uVar1 & 4) != 0" (parenthesized_expression "(uVar1 & 4)" (( "(") (binary_expression "uVar1 & 4" (identifier "uVar1") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return -(uint)((uVar9 & 4) == 0) | 1;\n  }" ({ "{") (return_statement "return -(uint)((uVar9 & 4) == 0) | 1;" (return "return") (binary_expression "-(uint)((uVar9 & 4) == 0) | 1" (unary_expression "-(uint)((uVar9 & 4) == 0)" (- "-") (call_expression "(uint)((uVar9 & 4) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uVar9 & 4) == 0)" (( "(") (binary_expression "(uVar9 & 4) == 0" (parenthesized_expression "(uVar9 & 4)" (( "(") (binary_expression "uVar9 & 4" (identifier "uVar9") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")))) (| "|") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if ((uVar1 & 8) != 0) {\n    uVar9 = uVar9 & 8;\nLAB_00016f91:\n    return (-(uint)(uVar9 == 0) & 2) - 1;\n  }" (if "if") (parenthesized_expression "((uVar1 & 8) != 0)" (( "(") (binary_expression "(uVar1 & 8) != 0" (parenthesized_expression "(uVar1 & 8)" (( "(") (binary_expression "uVar1 & 8" (identifier "uVar1") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar9 = uVar9 & 8;\nLAB_00016f91:\n    return (-(uint)(uVar9 == 0) & 2) - 1;\n  }" ({ "{") (expression_statement "uVar9 = uVar9 & 8;" (assignment_expression "uVar9 = uVar9 & 8" (identifier "uVar9") (= "=") (binary_expression "uVar9 & 8" (identifier "uVar9") (& "&") (number_literal "8"))) (; ";")) (labeled_statement "LAB_00016f91:\n    return (-(uint)(uVar9 == 0) & 2) - 1;" (statement_identifier "LAB_00016f91") (: ":") (return_statement "return (-(uint)(uVar9 == 0) & 2) - 1;" (return "return") (binary_expression "(-(uint)(uVar9 == 0) & 2) - 1" (parenthesized_expression "(-(uint)(uVar9 == 0) & 2)" (( "(") (binary_expression "-(uint)(uVar9 == 0) & 2" (unary_expression "-(uint)(uVar9 == 0)" (- "-") (call_expression "(uint)(uVar9 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "2")) () ")")) (- "-") (number_literal "1")) (; ";"))) (} "}"))) (if_statement "if ((uVar1 & 1) != 0) {\n    return -(uint)((uVar9 & 1) == 0) | 1;\n  }" (if "if") (parenthesized_expression "((uVar1 & 1) != 0)" (( "(") (binary_expression "(uVar1 & 1) != 0" (parenthesized_expression "(uVar1 & 1)" (( "(") (binary_expression "uVar1 & 1" (identifier "uVar1") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return -(uint)((uVar9 & 1) == 0) | 1;\n  }" ({ "{") (return_statement "return -(uint)((uVar9 & 1) == 0) | 1;" (return "return") (binary_expression "-(uint)((uVar9 & 1) == 0) | 1" (unary_expression "-(uint)((uVar9 & 1) == 0)" (- "-") (call_expression "(uint)((uVar9 & 1) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uVar9 & 1) == 0)" (( "(") (binary_expression "(uVar9 & 1) == 0" (parenthesized_expression "(uVar9 & 1)" (( "(") (binary_expression "uVar9 & 1" (identifier "uVar9") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")))) (| "|") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if ((uVar1 & 2) != 0) {\n    uVar9 = uVar9 & 2;\n    goto LAB_00016f91;\n  }" (if "if") (parenthesized_expression "((uVar1 & 2) != 0)" (( "(") (binary_expression "(uVar1 & 2) != 0" (parenthesized_expression "(uVar1 & 2)" (( "(") (binary_expression "uVar1 & 2" (identifier "uVar1") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar9 = uVar9 & 2;\n    goto LAB_00016f91;\n  }" ({ "{") (expression_statement "uVar9 = uVar9 & 2;" (assignment_expression "uVar9 = uVar9 & 2" (identifier "uVar9") (= "=") (binary_expression "uVar9 & 2" (identifier "uVar9") (& "&") (number_literal "2"))) (; ";")) (goto_statement "goto LAB_00016f91;" (goto "goto") (statement_identifier "LAB_00016f91") (; ";")) (} "}"))) (if_statement "if ((*(int *)(*(int *)(*param_1 + 4) + 4) != 5) || (*(int *)(*(int *)(*param_2 + 4) + 4) != 5))\n  goto LAB_0001706b;" (if "if") (parenthesized_expression "((*(int *)(*(int *)(*param_1 + 4) + 4) != 5) || (*(int *)(*(int *)(*param_2 + 4) + 4) != 5))" (( "(") (binary_expression "(*(int *)(*(int *)(*param_1 + 4) + 4) != 5) || (*(int *)(*(int *)(*param_2 + 4) + 4) != 5)" (parenthesized_expression "(*(int *)(*(int *)(*param_1 + 4) + 4) != 5)" (( "(") (binary_expression "*(int *)(*(int *)(*param_1 + 4) + 4) != 5" (pointer_expression "*(int *)(*(int *)(*param_1 + 4) + 4)" (* "*") (cast_expression "(int *)(*(int *)(*param_1 + 4) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*param_1 + 4) + 4)" (( "(") (binary_expression "*(int *)(*param_1 + 4) + 4" (pointer_expression "*(int *)(*param_1 + 4)" (* "*") (cast_expression "(int *)(*param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 4)" (( "(") (binary_expression "*param_1 + 4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "5")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(*(int *)(*param_2 + 4) + 4) != 5)" (( "(") (binary_expression "*(int *)(*(int *)(*param_2 + 4) + 4) != 5" (pointer_expression "*(int *)(*(int *)(*param_2 + 4) + 4)" (* "*") (cast_expression "(int *)(*(int *)(*param_2 + 4) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*param_2 + 4) + 4)" (( "(") (binary_expression "*(int *)(*param_2 + 4) + 4" (pointer_expression "*(int *)(*param_2 + 4)" (* "*") (cast_expression "(int *)(*param_2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_2 + 4)" (( "(") (binary_expression "*param_2 + 4" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "5")) () ")"))) () ")")) (goto_statement "goto LAB_0001706b;" (goto "goto") (statement_identifier "LAB_0001706b") (; ";"))) (if_statement "if ((uVar9 & 0x200100) == 0) {\n    uVar9 = param_1[10];\n    uVar1 = param_1[0xb];\n    if ((uVar6 & 0x200100) == 0) goto LAB_00017101;\n    uVar6 = 0;\n    uVar5 = 0;\n  }\n  else {\n    if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;\n    uVar9 = 0;\n    uVar1 = 0;\nLAB_00017101:\n    uVar6 = param_2[10];\n    uVar5 = param_2[0xb];\n  }" (if "if") (parenthesized_expression "((uVar9 & 0x200100) == 0)" (( "(") (binary_expression "(uVar9 & 0x200100) == 0" (parenthesized_expression "(uVar9 & 0x200100)" (( "(") (binary_expression "uVar9 & 0x200100" (identifier "uVar9") (& "&") (number_literal "0x200100")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar9 = param_1[10];\n    uVar1 = param_1[0xb];\n    if ((uVar6 & 0x200100) == 0) goto LAB_00017101;\n    uVar6 = 0;\n    uVar5 = 0;\n  }" ({ "{") (expression_statement "uVar9 = param_1[10];" (assignment_expression "uVar9 = param_1[10]" (identifier "uVar9") (= "=") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "uVar1 = param_1[0xb];" (assignment_expression "uVar1 = param_1[0xb]" (identifier "uVar1") (= "=") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (if_statement "if ((uVar6 & 0x200100) == 0) goto LAB_00017101;" (if "if") (parenthesized_expression "((uVar6 & 0x200100) == 0)" (( "(") (binary_expression "(uVar6 & 0x200100) == 0" (parenthesized_expression "(uVar6 & 0x200100)" (( "(") (binary_expression "uVar6 & 0x200100" (identifier "uVar6") (& "&") (number_literal "0x200100")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00017101;" (goto "goto") (statement_identifier "LAB_00017101") (; ";"))) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;\n    uVar9 = 0;\n    uVar1 = 0;\nLAB_00017101:\n    uVar6 = param_2[10];\n    uVar5 = param_2[0xb];\n  }" (else "else") (compound_statement "{\n    if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;\n    uVar9 = 0;\n    uVar1 = 0;\nLAB_00017101:\n    uVar6 = param_2[10];\n    uVar5 = param_2[0xb];\n  }" ({ "{") (if_statement "if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;" (if "if") (parenthesized_expression "((uVar6 & 0x200100) != 0)" (( "(") (binary_expression "(uVar6 & 0x200100) != 0" (parenthesized_expression "(uVar6 & 0x200100)" (( "(") (binary_expression "uVar6 & 0x200100" (identifier "uVar6") (& "&") (number_literal "0x200100")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001706b;" (goto "goto") (statement_identifier "LAB_0001706b") (; ";"))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" (identifier "uVar1") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00017101:\n    uVar6 = param_2[10];" (statement_identifier "LAB_00017101") (: ":") (expression_statement "uVar6 = param_2[10];" (assignment_expression "uVar6 = param_2[10]" (identifier "uVar6") (= "=") (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]"))) (; ";"))) (expression_statement "uVar5 = param_2[0xb];" (assignment_expression "uVar5 = param_2[0xb]" (identifier "uVar5") (= "=") (subscript_expression "param_2[0xb]" (identifier "param_2") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (} "}")))) (if_statement "if ((uVar5 != uVar1) || (uVar6 != uVar9)) {\n    return (uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1;\n  }" (if "if") (parenthesized_expression "((uVar5 != uVar1) || (uVar6 != uVar9))" (( "(") (binary_expression "(uVar5 != uVar1) || (uVar6 != uVar9)" (parenthesized_expression "(uVar5 != uVar1)" (( "(") (binary_expression "uVar5 != uVar1" (identifier "uVar5") (!= "!=") (identifier "uVar1")) () ")")) (|| "||") (parenthesized_expression "(uVar6 != uVar9)" (( "(") (binary_expression "uVar6 != uVar9" (identifier "uVar6") (!= "!=") (identifier "uVar9")) () ")"))) () ")")) (compound_statement "{\n    return (uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1;\n  }" ({ "{") (return_statement "return (uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1;" (return "return") (binary_expression "(uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1" (binary_expression "(uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2" (call_expression "(uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1)" (( "(") (binary_expression "uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1" (binary_expression "uVar1 <= uVar5" (identifier "uVar1") (<= "<=") (identifier "uVar5")) (&& "&&") (binary_expression "(uint)(uVar6 < uVar9) <= uVar5 - uVar1" (call_expression "(uint)(uVar6 < uVar9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar6 < uVar9)" (( "(") (binary_expression "uVar6 < uVar9" (identifier "uVar6") (< "<") (identifier "uVar9")) () ")"))) (<= "<=") (binary_expression "uVar5 - uVar1" (identifier "uVar5") (- "-") (identifier "uVar1")))) () ")"))) (* "*") (number_literal "2")) (- "-") (number_literal "1")) (; ";")) (} "}"))) (labeled_statement "LAB_0001706b:\n  if (*__haystack == '.') {\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }\n  else if (*__haystack_00 == '.') {\n    return 0xffffffff;\n  }" (statement_identifier "LAB_0001706b") (: ":") (if_statement "if (*__haystack == '.') {\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }\n  else if (*__haystack_00 == '.') {\n    return 0xffffffff;\n  }" (if "if") (parenthesized_expression "(*__haystack == '.')" (( "(") (binary_expression "*__haystack == '.'" (pointer_expression "*__haystack" (* "*") (identifier "__haystack")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (compound_statement "{\n    if (*__haystack_00 != '.') {\n      return 1;\n    }\n  }" ({ "{") (if_statement "if (*__haystack_00 != '.') {\n      return 1;\n    }" (if "if") (parenthesized_expression "(*__haystack_00 != '.')" (( "(") (binary_expression "*__haystack_00 != '.'" (pointer_expression "*__haystack_00" (* "*") (identifier "__haystack_00")) (!= "!=") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}")) (else_clause "else if (*__haystack_00 == '.') {\n    return 0xffffffff;\n  }" (else "else") (if_statement "if (*__haystack_00 == '.') {\n    return 0xffffffff;\n  }" (if "if") (parenthesized_expression "(*__haystack_00 == '.')" (( "(") (binary_expression "*__haystack_00 == '.'" (pointer_expression "*__haystack_00" (* "*") (identifier "__haystack_00")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (compound_statement "{\n    return 0xffffffff;\n  }" ({ "{") (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}")))))) (expression_statement "uVar9 = strcmp(__haystack,__haystack_00);" (assignment_expression "uVar9 = strcmp(__haystack,__haystack_00)" (identifier "uVar9") (= "=") (call_expression "strcmp(__haystack,__haystack_00)" (identifier "strcmp") (argument_list "(__haystack,__haystack_00)" (( "(") (identifier "__haystack") (, ",") (identifier "__haystack_00") () ")")))) (; ";")) (return_statement "return uVar9;" (return "return") (identifier "uVar9") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Unknown calling convention */

int function_1(void *ap,void *bp)

{
  int *piVar1;
  int *piVar2;
  char *__haystack;
  char *__haystack_00;
  type_1 var_6;
  char *var_9;
  char *var_10;
  size_t var_12;
  int iVar7;
  type_1 var_7;
  type_1 var_3;
  type_1 var_4;
  type_1 var_5;
  type_1 var_1;
  int local_2c;
  
  local_2c = 1;
                    /* WARNING: Load size is inaccurate */
  piVar1 = *ap;
                    /* WARNING: Load size is inaccurate */
  piVar2 = *bp;
  var_1 = piVar1[5];
  var_3 = piVar2[5];
  var_7 = piVar1[2] + *(type_1 *)(var_1 + 0x1c);
  var_5 = piVar1[3] + *(int *)(var_1 + 0x20) + (type_1)var_2(piVar1[2],*(type_1 *)(var_1 + 0x1c));
  var_6 = piVar2[2] + *(type_1 *)(var_3 + 0x1c);
  var_4 = piVar2[3] + *(int *)(var_3 + 0x20) + (type_1)var_2(piVar2[2],*(type_1 *)(var_3 + 0x1c));
  if (var_4 < var_5 || var_4 - var_5 < (type_1)(var_6 < var_7)) {
    return 1;
  }
  if (var_5 < var_4 || var_5 - var_4 < (type_1)(var_7 < var_6)) {
    return -1;
  }
  if (var_3 < var_1) {
    return 1;
  }
  if (var_1 < var_3) {
    return -1;
  }
  __haystack = (char *)piVar1[1];
  __haystack_00 = (char *)piVar2[1];
  var_9 = var_8(__haystack,"gnu_compiled");
  var_10 = var_8(__haystack_00,"gnu_compiled");
  if (var_9 == (char *)0x0) {
    var_9 = var_8(__haystack,"gcc2_compiled");
    if ((var_10 != (char *)0x0) ||
       (var_10 = var_8(__haystack_00,"gcc2_compiled"), var_10 != (char *)0x0)) {
      local_2c = -1;
      goto joined_r0x00016f76;
    }
    if (var_9 != (char *)0x0) {
      return 1;
    }
  }
  else if (var_10 == (char *)0x0) {
    var_9 = var_8(__haystack_00,"gcc2_compiled");
joined_r0x00016f76:
    if (var_9 == (char *)0x0) {
      return local_2c;
    }
  }
  var_1 = piVar1[4];
  if (((var_1 & 0x4000) == 0) &&
     ((var_12 = var_11(__haystack), __haystack[var_12 - 2] != '.' ||
      ((__haystack[var_12 - 1] != 'o' && (__haystack[var_12 - 1] != 'a')))))) {
    var_3 = piVar2[4];
    if ((var_3 & 0x4000) != 0) {
      return -1;
    }
    var_12 = var_11(__haystack_00);
    if (__haystack_00[var_12 - 2] == '.') {
      if (__haystack_00[var_12 - 1] == 'o') {
        return -1;
      }
      if (__haystack_00[var_12 - 1] == 'a') {
        return -1;
      }
    }
  }
  else {
    var_3 = piVar2[4];
    if (((var_3 & 0x4000) == 0) &&
       ((var_12 = var_11(__haystack_00), __haystack_00[var_12 - 2] != '.' ||
        ((__haystack_00[var_12 - 1] != 'a' && (__haystack_00[var_12 - 1] != 'o')))))) {
      return 1;
    }
  }
  var_6 = var_1 ^ var_3;
  if ((var_6 & 4) != 0) {
    return -(type_1)((var_1 & 4) == 0) | 1;
  }
  if ((var_6 & 8) != 0) {
    var_1 = var_1 & 8;
LAB_00016f91:
    return (-(type_1)(var_1 == 0) & 2) - 1;
  }
  if ((var_6 & 1) != 0) {
    return -(type_1)((var_1 & 1) == 0) | 1;
  }
  if ((var_6 & 2) != 0) {
    var_1 = var_1 & 2;
    goto LAB_00016f91;
  }
  if ((*(int *)(*(int *)(*piVar1 + 4) + 4) != 5) || (*(int *)(*(int *)(*piVar2 + 4) + 4) != 5))
  goto LAB_0001706b;
  if ((var_1 & 0x200100) == 0) {
    var_1 = piVar1[10];
    var_6 = piVar1[0xb];
    if ((var_3 & 0x200100) == 0) goto LAB_00017101;
    var_3 = 0;
    var_7 = 0;
  }
  else {
    if ((var_3 & 0x200100) != 0) goto LAB_0001706b;
    var_1 = 0;
    var_6 = 0;
LAB_00017101:
    var_3 = piVar2[10];
    var_7 = piVar2[0xb];
  }
  if ((var_7 != var_6) || (var_3 != var_1)) {
    return (type_1)(var_6 <= var_7 && (type_1)(var_3 < var_1) <= var_7 - var_6) * 2 + -1;
  }
LAB_0001706b:
  if (*__haystack == '.') {
    if (*__haystack_00 != '.') {
      return 1;
    }
  }
  else if (*__haystack_00 == '.') {
    return -1;
  }
  iVar7 = var_13(__haystack,__haystack_00);
  return iVar7;
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

uint MASKED(int *param_1,int *param_2)

{
  char *__haystack;
  char *__haystack_00;
  uint uVar1;
  char *pcVar2;
  char *pcVar3;
  size_t sVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint local_2c;
  
  local_2c = 1;
  param_1 = (int *)*param_1;
  param_2 = (int *)*param_2;
  uVar9 = param_1[5];
  uVar6 = param_2[5];
  uVar5 = param_1[2] + *(uint *)(uVar9 + 0x1c);
  uVar8 = param_1[3] + *(int *)(uVar9 + 0x20) + (uint)CARRY4(param_1[2],*(uint *)(uVar9 + 0x1c));
  uVar1 = param_2[2] + *(uint *)(uVar6 + 0x1c);
  uVar7 = param_2[3] + *(int *)(uVar6 + 0x20) + (uint)CARRY4(param_2[2],*(uint *)(uVar6 + 0x1c));
  if (uVar7 < uVar8 || uVar7 - uVar8 < (uint)(uVar1 < uVar5)) {
    return 1;
  }
  if (uVar8 < uVar7 || uVar8 - uVar7 < (uint)(uVar5 < uVar1)) {
    return 0xffffffff;
  }
  if (uVar6 < uVar9) {
    return 1;
  }
  if (uVar9 < uVar6) {
    return 0xffffffff;
  }
  __haystack = (char *)param_1[1];
  __haystack_00 = (char *)param_2[1];
  pcVar2 = strstr(__haystack,"gnu_compiled");
  pcVar3 = strstr(__haystack_00,"gnu_compiled");
  if (pcVar2 == (char *)0x0) {
    pcVar2 = strstr(__haystack,"gcc2_compiled");
    if ((pcVar3 != (char *)0x0) ||
       (pcVar3 = strstr(__haystack_00,"gcc2_compiled"), pcVar3 != (char *)0x0)) {
      local_2c = 0xffffffff;
      goto joined_r0x00016f76;
    }
    if (pcVar2 != (char *)0x0) {
      return 1;
    }
  }
  else if (pcVar3 == (char *)0x0) {
    pcVar2 = strstr(__haystack_00,"gcc2_compiled");
joined_r0x00016f76:
    if (pcVar2 == (char *)0x0) {
      return local_2c;
    }
  }
  uVar9 = param_1[4];
  if (((uVar9 & 0x4000) == 0) &&
     ((sVar4 = strlen(__haystack), __haystack[sVar4 - 2] != '.' ||
      ((__haystack[sVar4 - 1] != 'o' && (__haystack[sVar4 - 1] != 'a')))))) {
    uVar6 = param_2[4];
    if ((uVar6 & 0x4000) != 0) {
      return 0xffffffff;
    }
    sVar4 = strlen(__haystack_00);
    if (__haystack_00[sVar4 - 2] == '.') {
      if (__haystack_00[sVar4 - 1] == 'o') {
        return 0xffffffff;
      }
      if (__haystack_00[sVar4 - 1] == 'a') {
        return 0xffffffff;
      }
    }
  }
  else {
    uVar6 = param_2[4];
    if (((uVar6 & 0x4000) == 0) &&
       ((sVar4 = strlen(__haystack_00), __haystack_00[sVar4 - 2] != '.' ||
        ((__haystack_00[sVar4 - 1] != 'a' && (__haystack_00[sVar4 - 1] != 'o')))))) {
      return 1;
    }
  }
  uVar1 = uVar9 ^ uVar6;
  if ((uVar1 & 4) != 0) {
    return -(uint)((uVar9 & 4) == 0) | 1;
  }
  if ((uVar1 & 8) != 0) {
    uVar9 = uVar9 & 8;
LAB_00016f91:
    return (-(uint)(uVar9 == 0) & 2) - 1;
  }
  if ((uVar1 & 1) != 0) {
    return -(uint)((uVar9 & 1) == 0) | 1;
  }
  if ((uVar1 & 2) != 0) {
    uVar9 = uVar9 & 2;
    goto LAB_00016f91;
  }
  if ((*(int *)(*(int *)(*param_1 + 4) + 4) != 5) || (*(int *)(*(int *)(*param_2 + 4) + 4) != 5))
  goto LAB_0001706b;
  if ((uVar9 & 0x200100) == 0) {
    uVar9 = param_1[10];
    uVar1 = param_1[0xb];
    if ((uVar6 & 0x200100) == 0) goto LAB_00017101;
    uVar6 = 0;
    uVar5 = 0;
  }
  else {
    if ((uVar6 & 0x200100) != 0) goto LAB_0001706b;
    uVar9 = 0;
    uVar1 = 0;
LAB_00017101:
    uVar6 = param_2[10];
    uVar5 = param_2[0xb];
  }
  if ((uVar5 != uVar1) || (uVar6 != uVar9)) {
    return (uint)(uVar1 <= uVar5 && (uint)(uVar6 < uVar9) <= uVar5 - uVar1) * 2 - 1;
  }
LAB_0001706b:
  if (*__haystack == '.') {
    if (*__haystack_00 != '.') {
      return 1;
    }
  }
  else if (*__haystack_00 == '.') {
    return 0xffffffff;
  }
  uVar9 = strcmp(__haystack,__haystack_00);
  return uVar9;
}

