
int diralphasort(void *va,void *vb)

{
  undefined *puVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  int *piVar7;
  undefined4 uVar8;
  int *piVar9;
  char *s1;
  char *s2;
  undefined *puVar10;
  code *pcVar11;
  undefined1 auStack_1a0 [24];
  uint uStack_188;
  int iStack_fc;
  undefined *puStack_f4;
  stat *psStack_f0;
  char *pcStack_ec;
  char *pcStack_e8;
  code *pcStack_e4;
  stat fileinfo;
  
  puVar1 = PTR___stack_chk_guard_000780f8;
                    /* WARNING: Load size is inaccurate */
  s1 = *va;
  iVar2 = *(int *)PTR___stack_chk_guard_000780f8;
                    /* WARNING: Load size is inaccurate */
  s2 = *vb;
  iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s1,&fileinfo);
  if ((iVar3 == -1) || ((fileinfo.st_mode & 0xf000) != 0x4000)) {
    iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s2,&fileinfo);
    if ((iVar3 == -1) || (iVar3 = 1, (fileinfo.st_mode & 0xf000) != 0x4000)) goto LAB_0001e644;
  }
  else {
    iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s2,&fileinfo);
    if ((iVar3 != -1) && (iVar3 = -1, (fileinfo.st_mode & 0xf000) == 0x4000)) {
LAB_0001e644:
      iVar3 = mbstrcasecmp(s1,s2);
    }
  }
  if (iVar2 == *(int *)puVar1) {
    return iVar3;
  }
  pcVar11 = has_valid_path;
  puVar10 = PTR___stack_chk_fail_000780c0;
  (*(code *)PTR___stack_chk_fail_000780c0)();
  piVar9 = *(int **)(puVar10 + 0x59a34);
  puStack_f4 = puVar1;
  iStack_fc = *piVar9;
  psStack_f0 = &fileinfo;
  pcStack_ec = s1;
  pcStack_e8 = s2;
  pcStack_e4 = pcVar11;
  uVar4 = (**(code **)(puVar10 + 0x58ea4))(0,iVar2);
  uVar5 = (**(code **)(puVar10 + 0x59960))(uVar4);
  iVar2 = (**(code **)(puVar10 + 0x59808))(3,uVar5,auStack_1a0);
  if (iVar2 == -1) {
    piVar7 = (int *)(**(code **)(puVar10 + 0x598ec))();
    pcVar11 = *(code **)(puVar10 + 0x59a08);
    if (*piVar7 != 2) {
      uVar6 = (*pcVar11)(0,*(int *)(puVar10 + 0x58e98) + -0xf30,5);
      uVar8 = (**(code **)(puVar10 + 0x59964))(*piVar7);
      iVar2 = 0;
      (**(code **)(puVar10 + 0x58eb8))(3,uVar6,uVar5,uVar8);
      goto LAB_0001e794;
    }
    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf50;
  }
  else if ((uStack_188 & 0xf000) == 0x4000) {
    iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,1);
    if (iVar2 != -1) {
      if (((*(uint *)(*(int *)(puVar10 + 0x58ed8) + 4) & 8) == 0) ||
         (iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,2), iVar2 != -1)) {
        iVar2 = 1;
      }
      else {
        uVar6 = (**(code **)(puVar10 + 0x59a08))(0,*(int *)(puVar10 + 0x58e98) + -0xee4,5);
        iVar2 = 0;
        (**(code **)(puVar10 + 0x58eb8))(2,uVar6,uVar5);
      }
      goto LAB_0001e794;
    }
    pcVar11 = *(code **)(puVar10 + 0x59a08);
    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf00;
  }
  else {
    pcVar11 = *(code **)(puVar10 + 0x59a08);
    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf20;
  }
  uVar6 = (*pcVar11)(0,iVar2,5);
  iVar2 = 0;
  (**(code **)(puVar10 + 0x58eb8))(3,uVar6,uVar5);
LAB_0001e794:
  (**(code **)(puVar10 + 0x59a48))(uVar4);
  if (iStack_fc != *piVar9) {
    (**(code **)(puVar10 + 0x599fc))();
                    /* WARNING: Subroutine does not return */
    make_new_node((filestruct *)0x0);
  }
  return iVar2;
}



int diralphasort(undefined4 *param_1,undefined4 *param_2)

{
  undefined *puVar1;
  int iVar2;
  undefined4 uVar3;
  int *piVar4;
  undefined4 uVar5;
  int *piVar6;
  int iVar7;
  undefined4 *puVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined *puVar11;
  code *pcVar12;
  undefined1 auStack_1a0 [24];
  uint uStack_188;
  int iStack_fc;
  undefined *puStack_f4;
  undefined1 *puStack_f0;
  undefined4 uStack_ec;
  undefined4 uStack_e8;
  code *pcStack_e4;
  undefined1 auStack_c8 [24];
  uint local_b0;
  int local_24;
  
  puVar1 = PTR___stack_chk_guard_000780f8;
  uVar9 = *param_1;
  local_24 = *(int *)PTR___stack_chk_guard_000780f8;
  uVar10 = *param_2;
  iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar9,auStack_c8);
  if ((iVar2 == -1) || ((local_b0 & 0xf000) != 0x4000)) {
    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);
    if ((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)) goto LAB_0001e644;
  }
  else {
    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);
    if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {
LAB_0001e644:
      iVar2 = mbstrcasecmp(uVar9,uVar10);
    }
  }
  if (local_24 == *(int *)puVar1) {
    return iVar2;
  }
  pcVar12 = has_valid_path;
  iVar2 = local_24;
  puVar11 = PTR___stack_chk_fail_000780c0;
  (*(code *)PTR___stack_chk_fail_000780c0)();
  piVar6 = *(int **)(puVar11 + 0x59a34);
  puStack_f4 = puVar1;
  iStack_fc = *piVar6;
  puStack_f0 = auStack_c8;
  uStack_ec = uVar9;
  uStack_e8 = uVar10;
  pcStack_e4 = pcVar12;
  uVar9 = (**(code **)(puVar11 + 0x58ea4))(0,iVar2);
  uVar10 = (**(code **)(puVar11 + 0x59960))(uVar9);
  iVar2 = (**(code **)(puVar11 + 0x59808))(3,uVar10,auStack_1a0);
  if (iVar2 == -1) {
    piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))();
    pcVar12 = *(code **)(puVar11 + 0x59a08);
    if (*piVar4 != 2) {
      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);
      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);
      iVar2 = 0;
      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);
      goto LAB_0001e794;
    }
    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50;
  }
  else if ((uStack_188 & 0xf000) == 0x4000) {
    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);
    if (iVar2 != -1) {
      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||
         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {
        iVar2 = 1;
      }
      else {
        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);
        iVar2 = 0;
        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);
      }
      goto LAB_0001e794;
    }
    pcVar12 = *(code **)(puVar11 + 0x59a08);
    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;
  }
  else {
    pcVar12 = *(code **)(puVar11 + 0x59a08);
    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;
  }
  uVar3 = (*pcVar12)(0,iVar2,5);
  iVar2 = 0;
  (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10);
LAB_0001e794:
  (**(code **)(puVar11 + 0x59a48))(uVar9);
  if (iStack_fc != *piVar6) {
    pcVar12 = *(code **)(puVar11 + 0x599fc);
    (*pcVar12)();
    piVar6 = *(int **)(pcVar12 + 0x58c74);
    iVar7 = *piVar6;
    uVar9 = make_new_node(0);
    iVar2 = *piVar6;
    *(undefined4 *)(iVar7 + 4) = uVar9;
    puVar8 = *(undefined4 **)(iVar2 + 4);
    uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac);
    iVar7 = *piVar6;
    *puVar8 = uVar9;
    *(undefined4 *)(iVar7 + 0x18) = 0;
    *(undefined4 *)(iVar7 + 0x1c) = 0;
    *(undefined4 *)(iVar7 + 0x14) = 0;
    iVar2 = *(int *)(iVar7 + 4);
    *(int *)(iVar7 + 8) = iVar2;
    *(int *)(iVar7 + 0xc) = iVar2;
    *(int *)(iVar7 + 0x10) = iVar2;
    return iVar2;
  }
  return iVar2;
}


lui gp,0x6
addiu gp,gp,0xf90
addu gp,gp,t9
addiu sp,sp,-0xe0
lw t9,-0x7654(gp)
sw s0,0xc4(sp)
sw s2,0xcc(sp)
lw s0,-0x7428(gp)
lw s2,0x0(a0)
li a0,0x3
sw s1,0xc8(sp)
addiu s1,sp,0x18
sw gp,0x10(sp)
sw s5,0xd8(sp)
or a2,s1,zero
sw s3,0xd0(sp)
li s5,-0x1
sw ra,0xdc(sp)
sw s4,0xd4(sp)
lw v0,0x0(s0)
lw s3,0x0(a1)
or a1,s2,zero
sw v0,0xbc(sp)
jalr t9
_nop
beq v0,s5,0x0001e610
_lw gp,0x10(sp)
lw s4,0x30(sp)
li v0,0x4000
andi s4,s4,0xf000
beq s4,v0,0x0001e688
_lw t9,-0x7654(gp)
lw t9,-0x7654(gp)
li a0,0x3
or a2,s1,zero
jalr t9
_or a1,s3,zero
li v1,-0x1
beq v0,v1,0x0001e644
_lw gp,0x10(sp)
lw v0,0x30(sp)
li v1,0x4000
andi v0,v0,0xf000
beq v0,v1,0x0001e658
_li v0,0x1
lw t9,-0x7b24(gp)
or a1,s3,zero
bal 0x0001c218
_or a0,s2,zero
lw gp,0x10(sp)
lw a0,0xbc(sp)
lw v1,0x0(s0)
bne a0,v1,0x0001e6b8
_lw ra,0xdc(sp)
lw s5,0xd8(sp)
lw s4,0xd4(sp)
lw s3,0xd0(sp)
lw s2,0xcc(sp)
lw s1,0xc8(sp)
lw s0,0xc4(sp)
jr ra
_addiu sp,sp,0xe0
li a0,0x3
or a2,s1,zero
jalr t9
_or a1,s3,zero
beq v0,s5,0x0001e658
_lw gp,0x10(sp)
lw v0,0x30(sp)
andi v0,v0,0xf000
beq v0,s4,0x0001e644
_li v0,-0x1
b 0x0001e658
_nop
lw t9,-0x7460(gp)
jalr t9
_nop
(translation_unit "int diralphasort(undefined4 *param_1,undefined4 *param_2)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined1 auStack_1a0 [24];\n  uint uStack_188;\n  int iStack_fc;\n  undefined *puStack_f4;\n  undefined1 *puStack_f0;\n  undefined4 uStack_ec;\n  undefined4 uStack_e8;\n  code *pcStack_e4;\n  undefined1 auStack_c8 [24];\n  uint local_b0;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_000780f8;\n  uVar9 = *param_1;\n  local_24 = *(int *)PTR___stack_chk_guard_000780f8;\n  uVar10 = *param_2;\n  iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar9,auStack_c8);\n  if ((iVar2 == -1) || ((local_b0 & 0xf000) != 0x4000)) {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)) goto LAB_0001e644;\n  }\n  else {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }\n  }\n  if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }\n  pcVar12 = has_valid_path;\n  iVar2 = local_24;\n  puVar11 = PTR___stack_chk_fail_000780c0;\n  (*(code *)PTR___stack_chk_fail_000780c0)();\n  piVar6 = *(int **)(puVar11 + 0x59a34);\n  puStack_f4 = puVar1;\n  iStack_fc = *piVar6;\n  puStack_f0 = auStack_c8;\n  uStack_ec = uVar9;\n  uStack_e8 = uVar10;\n  pcStack_e4 = pcVar12;\n  uVar9 = (**(code **)(puVar11 + 0x58ea4))(0,iVar2);\n  uVar10 = (**(code **)(puVar11 + 0x59960))(uVar9);\n  iVar2 = (**(code **)(puVar11 + 0x59808))(3,uVar10,auStack_1a0);\n  if (iVar2 == -1) {\n    piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))();\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    if (*piVar4 != 2) {\n      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);\n      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);\n      iVar2 = 0;\n      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);\n      goto LAB_0001e794;\n    }\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50;\n  }\n  else if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }\n  uVar3 = (*pcVar12)(0,iVar2,5);\n  iVar2 = 0;\n  (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10);\nLAB_0001e794:\n  (**(code **)(puVar11 + 0x59a48))(uVar9);\n  if (iStack_fc != *piVar6) {\n    pcVar12 = *(code **)(puVar11 + 0x599fc);\n    (*pcVar12)();\n    piVar6 = *(int **)(pcVar12 + 0x58c74);\n    iVar7 = *piVar6;\n    uVar9 = make_new_node(0);\n    iVar2 = *piVar6;\n    *(undefined4 *)(iVar7 + 4) = uVar9;\n    puVar8 = *(undefined4 **)(iVar2 + 4);\n    uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac);\n    iVar7 = *piVar6;\n    *puVar8 = uVar9;\n    *(undefined4 *)(iVar7 + 0x18) = 0;\n    *(undefined4 *)(iVar7 + 0x1c) = 0;\n    *(undefined4 *)(iVar7 + 0x14) = 0;\n    iVar2 = *(int *)(iVar7 + 4);\n    *(int *)(iVar7 + 8) = iVar2;\n    *(int *)(iVar7 + 0xc) = iVar2;\n    *(int *)(iVar7 + 0x10) = iVar2;\n    return iVar2;\n  }\n  return iVar2;\n}\n\n" (function_definition "int diralphasort(undefined4 *param_1,undefined4 *param_2)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined1 auStack_1a0 [24];\n  uint uStack_188;\n  int iStack_fc;\n  undefined *puStack_f4;\n  undefined1 *puStack_f0;\n  undefined4 uStack_ec;\n  undefined4 uStack_e8;\n  code *pcStack_e4;\n  undefined1 auStack_c8 [24];\n  uint local_b0;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_000780f8;\n  uVar9 = *param_1;\n  local_24 = *(int *)PTR___stack_chk_guard_000780f8;\n  uVar10 = *param_2;\n  iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar9,auStack_c8);\n  if ((iVar2 == -1) || ((local_b0 & 0xf000) != 0x4000)) {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)) goto LAB_0001e644;\n  }\n  else {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }\n  }\n  if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }\n  pcVar12 = has_valid_path;\n  iVar2 = local_24;\n  puVar11 = PTR___stack_chk_fail_000780c0;\n  (*(code *)PTR___stack_chk_fail_000780c0)();\n  piVar6 = *(int **)(puVar11 + 0x59a34);\n  puStack_f4 = puVar1;\n  iStack_fc = *piVar6;\n  puStack_f0 = auStack_c8;\n  uStack_ec = uVar9;\n  uStack_e8 = uVar10;\n  pcStack_e4 = pcVar12;\n  uVar9 = (**(code **)(puVar11 + 0x58ea4))(0,iVar2);\n  uVar10 = (**(code **)(puVar11 + 0x59960))(uVar9);\n  iVar2 = (**(code **)(puVar11 + 0x59808))(3,uVar10,auStack_1a0);\n  if (iVar2 == -1) {\n    piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))();\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    if (*piVar4 != 2) {\n      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);\n      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);\n      iVar2 = 0;\n      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);\n      goto LAB_0001e794;\n    }\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50;\n  }\n  else if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }\n  uVar3 = (*pcVar12)(0,iVar2,5);\n  iVar2 = 0;\n  (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10);\nLAB_0001e794:\n  (**(code **)(puVar11 + 0x59a48))(uVar9);\n  if (iStack_fc != *piVar6) {\n    pcVar12 = *(code **)(puVar11 + 0x599fc);\n    (*pcVar12)();\n    piVar6 = *(int **)(pcVar12 + 0x58c74);\n    iVar7 = *piVar6;\n    uVar9 = make_new_node(0);\n    iVar2 = *piVar6;\n    *(undefined4 *)(iVar7 + 4) = uVar9;\n    puVar8 = *(undefined4 **)(iVar2 + 4);\n    uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac);\n    iVar7 = *piVar6;\n    *puVar8 = uVar9;\n    *(undefined4 *)(iVar7 + 0x18) = 0;\n    *(undefined4 *)(iVar7 + 0x1c) = 0;\n    *(undefined4 *)(iVar7 + 0x14) = 0;\n    iVar2 = *(int *)(iVar7 + 4);\n    *(int *)(iVar7 + 8) = iVar2;\n    *(int *)(iVar7 + 0xc) = iVar2;\n    *(int *)(iVar7 + 0x10) = iVar2;\n    return iVar2;\n  }\n  return iVar2;\n}" primitive_type (function_declarator "diralphasort(undefined4 *param_1,undefined4 *param_2)" identifier (parameter_list "(undefined4 *param_1,undefined4 *param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined1 auStack_1a0 [24];\n  uint uStack_188;\n  int iStack_fc;\n  undefined *puStack_f4;\n  undefined1 *puStack_f0;\n  undefined4 uStack_ec;\n  undefined4 uStack_e8;\n  code *pcStack_e4;\n  undefined1 auStack_c8 [24];\n  uint local_b0;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_000780f8;\n  uVar9 = *param_1;\n  local_24 = *(int *)PTR___stack_chk_guard_000780f8;\n  uVar10 = *param_2;\n  iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar9,auStack_c8);\n  if ((iVar2 == -1) || ((local_b0 & 0xf000) != 0x4000)) {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)) goto LAB_0001e644;\n  }\n  else {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }\n  }\n  if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }\n  pcVar12 = has_valid_path;\n  iVar2 = local_24;\n  puVar11 = PTR___stack_chk_fail_000780c0;\n  (*(code *)PTR___stack_chk_fail_000780c0)();\n  piVar6 = *(int **)(puVar11 + 0x59a34);\n  puStack_f4 = puVar1;\n  iStack_fc = *piVar6;\n  puStack_f0 = auStack_c8;\n  uStack_ec = uVar9;\n  uStack_e8 = uVar10;\n  pcStack_e4 = pcVar12;\n  uVar9 = (**(code **)(puVar11 + 0x58ea4))(0,iVar2);\n  uVar10 = (**(code **)(puVar11 + 0x59960))(uVar9);\n  iVar2 = (**(code **)(puVar11 + 0x59808))(3,uVar10,auStack_1a0);\n  if (iVar2 == -1) {\n    piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))();\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    if (*piVar4 != 2) {\n      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);\n      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);\n      iVar2 = 0;\n      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);\n      goto LAB_0001e794;\n    }\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50;\n  }\n  else if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }\n  uVar3 = (*pcVar12)(0,iVar2,5);\n  iVar2 = 0;\n  (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10);\nLAB_0001e794:\n  (**(code **)(puVar11 + 0x59a48))(uVar9);\n  if (iStack_fc != *piVar6) {\n    pcVar12 = *(code **)(puVar11 + 0x599fc);\n    (*pcVar12)();\n    piVar6 = *(int **)(pcVar12 + 0x58c74);\n    iVar7 = *piVar6;\n    uVar9 = make_new_node(0);\n    iVar2 = *piVar6;\n    *(undefined4 *)(iVar7 + 4) = uVar9;\n    puVar8 = *(undefined4 **)(iVar2 + 4);\n    uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac);\n    iVar7 = *piVar6;\n    *puVar8 = uVar9;\n    *(undefined4 *)(iVar7 + 0x18) = 0;\n    *(undefined4 *)(iVar7 + 0x1c) = 0;\n    *(undefined4 *)(iVar7 + 0x14) = 0;\n    iVar2 = *(int *)(iVar7 + 4);\n    *(int *)(iVar7 + 8) = iVar2;\n    *(int *)(iVar7 + 0xc) = iVar2;\n    *(int *)(iVar7 + 0x10) = iVar2;\n    return iVar2;\n  }\n  return iVar2;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "undefined1 auStack_1a0 [24];" type_identifier (array_declarator "auStack_1a0 [24]" identifier [ number_literal ]) ;) (declaration "uint uStack_188;" type_identifier identifier ;) (declaration "int iStack_fc;" primitive_type identifier ;) (declaration "undefined *puStack_f4;" type_identifier (pointer_declarator "*puStack_f4" * identifier) ;) (declaration "undefined1 *puStack_f0;" type_identifier (pointer_declarator "*puStack_f0" * identifier) ;) (declaration "undefined4 uStack_ec;" type_identifier identifier ;) (declaration "undefined4 uStack_e8;" type_identifier identifier ;) (declaration "code *pcStack_e4;" type_identifier (pointer_declarator "*pcStack_e4" * identifier) ;) (declaration "undefined1 auStack_c8 [24];" type_identifier (array_declarator "auStack_c8 [24]" identifier [ number_literal ]) ;) (declaration "uint local_b0;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000780f8;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000780f8" identifier = identifier) ;) (expression_statement "uVar9 = *param_1;" (assignment_expression "uVar9 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_000780f8;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_000780f8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000780f8" * (cast_expression "(int *)PTR___stack_chk_guard_000780f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar10 = *param_2;" (assignment_expression "uVar10 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar9,auStack_c8);" (assignment_expression "iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar9,auStack_c8)" identifier = (call_expression "(*(code *)PTR___xstat64_00077ecc)(3,uVar9,auStack_c8)" (parenthesized_expression "(*(code *)PTR___xstat64_00077ecc)" ( (pointer_expression "*(code *)PTR___xstat64_00077ecc" * (cast_expression "(code *)PTR___xstat64_00077ecc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,uVar9,auStack_c8)" ( number_literal , identifier , identifier )))) ;) (if_statement "if ((iVar2 == -1) || ((local_b0 & 0xf000) != 0x4000)) {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)) goto LAB_0001e644;\n  }\n  else {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }\n  }" if (parenthesized_expression "((iVar2 == -1) || ((local_b0 & 0xf000) != 0x4000))" ( (binary_expression "(iVar2 == -1) || ((local_b0 & 0xf000) != 0x4000)" (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) || (parenthesized_expression "((local_b0 & 0xf000) != 0x4000)" ( (binary_expression "(local_b0 & 0xf000) != 0x4000" (parenthesized_expression "(local_b0 & 0xf000)" ( (binary_expression "local_b0 & 0xf000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)) goto LAB_0001e644;\n  }" { (expression_statement "iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);" (assignment_expression "iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8)" identifier = (call_expression "(*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8)" (parenthesized_expression "(*(code *)PTR___xstat64_00077ecc)" ( (pointer_expression "*(code *)PTR___xstat64_00077ecc" * (cast_expression "(code *)PTR___xstat64_00077ecc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,uVar10,auStack_c8)" ( number_literal , identifier , identifier )))) ;) (if_statement "if ((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)) goto LAB_0001e644;" if (parenthesized_expression "((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000))" ( (binary_expression "(iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)" (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) || (parenthesized_expression "(iVar2 = 1, (local_b0 & 0xf000) != 0x4000)" ( (comma_expression "iVar2 = 1, (local_b0 & 0xf000) != 0x4000" (assignment_expression "iVar2 = 1" identifier = number_literal) , (binary_expression "(local_b0 & 0xf000) != 0x4000" (parenthesized_expression "(local_b0 & 0xf000)" ( (binary_expression "local_b0 & 0xf000" identifier & number_literal) )) != number_literal)) ))) )) (goto_statement "goto LAB_0001e644;" goto statement_identifier ;)) }) (else_clause "else {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }\n  }" else (compound_statement "{\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }\n  }" { (expression_statement "iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);" (assignment_expression "iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8)" identifier = (call_expression "(*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8)" (parenthesized_expression "(*(code *)PTR___xstat64_00077ecc)" ( (pointer_expression "*(code *)PTR___xstat64_00077ecc" * (cast_expression "(code *)PTR___xstat64_00077ecc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,uVar10,auStack_c8)" ( number_literal , identifier , identifier )))) ;) (if_statement "if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }" if (parenthesized_expression "((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000))" ( (binary_expression "(iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)" (parenthesized_expression "(iVar2 != -1)" ( (binary_expression "iVar2 != -1" identifier != number_literal) )) && (parenthesized_expression "(iVar2 = -1, (local_b0 & 0xf000) == 0x4000)" ( (comma_expression "iVar2 = -1, (local_b0 & 0xf000) == 0x4000" (assignment_expression "iVar2 = -1" identifier = number_literal) , (binary_expression "(local_b0 & 0xf000) == 0x4000" (parenthesized_expression "(local_b0 & 0xf000)" ( (binary_expression "local_b0 & 0xf000" identifier & number_literal) )) == number_literal)) ))) )) (compound_statement "{\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }" { (labeled_statement "LAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);" statement_identifier : (expression_statement "iVar2 = mbstrcasecmp(uVar9,uVar10);" (assignment_expression "iVar2 = mbstrcasecmp(uVar9,uVar10)" identifier = (call_expression "mbstrcasecmp(uVar9,uVar10)" identifier (argument_list "(uVar9,uVar10)" ( identifier , identifier )))) ;)) })) }))) (if_statement "if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }" if (parenthesized_expression "(local_24 == *(int *)puVar1)" ( (binary_expression "local_24 == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "pcVar12 = has_valid_path;" (assignment_expression "pcVar12 = has_valid_path" identifier = identifier) ;) (expression_statement "iVar2 = local_24;" (assignment_expression "iVar2 = local_24" identifier = identifier) ;) (expression_statement "puVar11 = PTR___stack_chk_fail_000780c0;" (assignment_expression "puVar11 = PTR___stack_chk_fail_000780c0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000780c0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000780c0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000780c0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000780c0" * (cast_expression "(code *)PTR___stack_chk_fail_000780c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar6 = *(int **)(puVar11 + 0x59a34);" (assignment_expression "piVar6 = *(int **)(puVar11 + 0x59a34)" identifier = (pointer_expression "*(int **)(puVar11 + 0x59a34)" * (cast_expression "(int **)(puVar11 + 0x59a34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x59a34)" ( (binary_expression "puVar11 + 0x59a34" identifier + number_literal) ))))) ;) (expression_statement "puStack_f4 = puVar1;" (assignment_expression "puStack_f4 = puVar1" identifier = identifier) ;) (expression_statement "iStack_fc = *piVar6;" (assignment_expression "iStack_fc = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "puStack_f0 = auStack_c8;" (assignment_expression "puStack_f0 = auStack_c8" identifier = identifier) ;) (expression_statement "uStack_ec = uVar9;" (assignment_expression "uStack_ec = uVar9" identifier = identifier) ;) (expression_statement "uStack_e8 = uVar10;" (assignment_expression "uStack_e8 = uVar10" identifier = identifier) ;) (expression_statement "pcStack_e4 = pcVar12;" (assignment_expression "pcStack_e4 = pcVar12" identifier = identifier) ;) (expression_statement "uVar9 = (**(code **)(puVar11 + 0x58ea4))(0,iVar2);" (assignment_expression "uVar9 = (**(code **)(puVar11 + 0x58ea4))(0,iVar2)" identifier = (call_expression "(**(code **)(puVar11 + 0x58ea4))(0,iVar2)" (parenthesized_expression "(**(code **)(puVar11 + 0x58ea4))" ( (pointer_expression "**(code **)(puVar11 + 0x58ea4)" * (pointer_expression "*(code **)(puVar11 + 0x58ea4)" * (cast_expression "(code **)(puVar11 + 0x58ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x58ea4)" ( (binary_expression "puVar11 + 0x58ea4" identifier + number_literal) ))))) )) (argument_list "(0,iVar2)" ( number_literal , identifier )))) ;) (expression_statement "uVar10 = (**(code **)(puVar11 + 0x59960))(uVar9);" (assignment_expression "uVar10 = (**(code **)(puVar11 + 0x59960))(uVar9)" identifier = (call_expression "(**(code **)(puVar11 + 0x59960))(uVar9)" (parenthesized_expression "(**(code **)(puVar11 + 0x59960))" ( (pointer_expression "**(code **)(puVar11 + 0x59960)" * (pointer_expression "*(code **)(puVar11 + 0x59960)" * (cast_expression "(code **)(puVar11 + 0x59960)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x59960)" ( (binary_expression "puVar11 + 0x59960" identifier + number_literal) ))))) )) (argument_list "(uVar9)" ( identifier )))) ;) (expression_statement "iVar2 = (**(code **)(puVar11 + 0x59808))(3,uVar10,auStack_1a0);" (assignment_expression "iVar2 = (**(code **)(puVar11 + 0x59808))(3,uVar10,auStack_1a0)" identifier = (call_expression "(**(code **)(puVar11 + 0x59808))(3,uVar10,auStack_1a0)" (parenthesized_expression "(**(code **)(puVar11 + 0x59808))" ( (pointer_expression "**(code **)(puVar11 + 0x59808)" * (pointer_expression "*(code **)(puVar11 + 0x59808)" * (cast_expression "(code **)(puVar11 + 0x59808)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x59808)" ( (binary_expression "puVar11 + 0x59808" identifier + number_literal) ))))) )) (argument_list "(3,uVar10,auStack_1a0)" ( number_literal , identifier , identifier )))) ;) (if_statement "if (iVar2 == -1) {\n    piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))();\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    if (*piVar4 != 2) {\n      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);\n      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);\n      iVar2 = 0;\n      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);\n      goto LAB_0001e794;\n    }\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50;\n  }\n  else if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (compound_statement "{\n    piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))();\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    if (*piVar4 != 2) {\n      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);\n      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);\n      iVar2 = 0;\n      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);\n      goto LAB_0001e794;\n    }\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50;\n  }" { (expression_statement "piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))();" (assignment_expression "piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))()" identifier = (cast_expression "(int *)(**(code **)(puVar11 + 0x598ec))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar11 + 0x598ec))()" (parenthesized_expression "(**(code **)(puVar11 + 0x598ec))" ( (pointer_expression "**(code **)(puVar11 + 0x598ec)" * (pointer_expression "*(code **)(puVar11 + 0x598ec)" * (cast_expression "(code **)(puVar11 + 0x598ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x598ec)" ( (binary_expression "puVar11 + 0x598ec" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar12 = *(code **)(puVar11 + 0x59a08);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x59a08)" identifier = (pointer_expression "*(code **)(puVar11 + 0x59a08)" * (cast_expression "(code **)(puVar11 + 0x59a08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x59a08)" ( (binary_expression "puVar11 + 0x59a08" identifier + number_literal) ))))) ;) (if_statement "if (*piVar4 != 2) {\n      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);\n      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);\n      iVar2 = 0;\n      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);\n      goto LAB_0001e794;\n    }" if (parenthesized_expression "(*piVar4 != 2)" ( (binary_expression "*piVar4 != 2" (pointer_expression "*piVar4" * identifier) != number_literal) )) (compound_statement "{\n      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);\n      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);\n      iVar2 = 0;\n      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);\n      goto LAB_0001e794;\n    }" { (expression_statement "uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);" (assignment_expression "uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5)" identifier = (call_expression "(*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5)" ( number_literal , (binary_expression "*(int *)(puVar11 + 0x58e98) + -0xf30" (pointer_expression "*(int *)(puVar11 + 0x58e98)" * (cast_expression "(int *)(puVar11 + 0x58e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x58e98)" ( (binary_expression "puVar11 + 0x58e98" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);" (assignment_expression "uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4)" identifier = (call_expression "(**(code **)(puVar11 + 0x59964))(*piVar4)" (parenthesized_expression "(**(code **)(puVar11 + 0x59964))" ( (pointer_expression "**(code **)(puVar11 + 0x59964)" * (pointer_expression "*(code **)(puVar11 + 0x59964)" * (cast_expression "(code **)(puVar11 + 0x59964)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x59964)" ( (binary_expression "puVar11 + 0x59964" identifier + number_literal) ))))) )) (argument_list "(*piVar4)" ( (pointer_expression "*piVar4" * identifier) )))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);" (call_expression "(**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5)" (parenthesized_expression "(**(code **)(puVar11 + 0x58eb8))" ( (pointer_expression "**(code **)(puVar11 + 0x58eb8)" * (pointer_expression "*(code **)(puVar11 + 0x58eb8)" * (cast_expression "(code **)(puVar11 + 0x58eb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x58eb8)" ( (binary_expression "puVar11 + 0x58eb8" identifier + number_literal) ))))) )) (argument_list "(3,uVar3,uVar10,uVar5)" ( number_literal , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_0001e794;" goto statement_identifier ;) })) (expression_statement "iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50;" (assignment_expression "iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50" identifier = (binary_expression "*(int *)(puVar11 + 0x58e98) + -0xf50" (pointer_expression "*(int *)(puVar11 + 0x58e98)" * (cast_expression "(int *)(puVar11 + 0x58e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x58e98)" ( (binary_expression "puVar11 + 0x58e98" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }" else (if_statement "if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }" if (parenthesized_expression "((uStack_188 & 0xf000) == 0x4000)" ( (binary_expression "(uStack_188 & 0xf000) == 0x4000" (parenthesized_expression "(uStack_188 & 0xf000)" ( (binary_expression "uStack_188 & 0xf000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;\n  }" { (expression_statement "iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);" (assignment_expression "iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1)" identifier = (call_expression "(**(code **)(puVar11 + 0x598b8))(uVar10,1)" (parenthesized_expression "(**(code **)(puVar11 + 0x598b8))" ( (pointer_expression "**(code **)(puVar11 + 0x598b8)" * (pointer_expression "*(code **)(puVar11 + 0x598b8)" * (cast_expression "(code **)(puVar11 + 0x598b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x598b8)" ( (binary_expression "puVar11 + 0x598b8" identifier + number_literal) ))))) )) (argument_list "(uVar10,1)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }" if (parenthesized_expression "(iVar2 != -1)" ( (binary_expression "iVar2 != -1" identifier != number_literal) )) (compound_statement "{\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }" { (if_statement "if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }" if (parenthesized_expression "(((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1))" ( (binary_expression "((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)" (parenthesized_expression "((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0)" ( (binary_expression "(*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0" (parenthesized_expression "(*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8)" ( (binary_expression "*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8" (pointer_expression "*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4)" * (cast_expression "(uint *)(*(int *)(puVar11 + 0x58ed8) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x58ed8) + 4)" ( (binary_expression "*(int *)(puVar11 + 0x58ed8) + 4" (pointer_expression "*(int *)(puVar11 + 0x58ed8)" * (cast_expression "(int *)(puVar11 + 0x58ed8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x58ed8)" ( (binary_expression "puVar11 + 0x58ed8" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)" ( (comma_expression "iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1" (assignment_expression "iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2)" identifier = (call_expression "(**(code **)(puVar11 + 0x598b8))(uVar10,2)" (parenthesized_expression "(**(code **)(puVar11 + 0x598b8))" ( (pointer_expression "**(code **)(puVar11 + 0x598b8)" * (pointer_expression "*(code **)(puVar11 + 0x598b8)" * (cast_expression "(code **)(puVar11 + 0x598b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x598b8)" ( (binary_expression "puVar11 + 0x598b8" identifier + number_literal) ))))) )) (argument_list "(uVar10,2)" ( identifier , number_literal )))) , (binary_expression "iVar2 != -1" identifier != number_literal)) ))) )) (compound_statement "{\n        iVar2 = 1;\n      }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }" else (compound_statement "{\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }" { (expression_statement "uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);" (assignment_expression "uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5)" identifier = (call_expression "(**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5)" (parenthesized_expression "(**(code **)(puVar11 + 0x59a08))" ( (pointer_expression "**(code **)(puVar11 + 0x59a08)" * (pointer_expression "*(code **)(puVar11 + 0x59a08)" * (cast_expression "(code **)(puVar11 + 0x59a08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x59a08)" ( (binary_expression "puVar11 + 0x59a08" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5)" ( number_literal , (binary_expression "*(int *)(puVar11 + 0x58e98) + -0xee4" (pointer_expression "*(int *)(puVar11 + 0x58e98)" * (cast_expression "(int *)(puVar11 + 0x58e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x58e98)" ( (binary_expression "puVar11 + 0x58e98" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);" (call_expression "(**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10)" (parenthesized_expression "(**(code **)(puVar11 + 0x58eb8))" ( (pointer_expression "**(code **)(puVar11 + 0x58eb8)" * (pointer_expression "*(code **)(puVar11 + 0x58eb8)" * (cast_expression "(code **)(puVar11 + 0x58eb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x58eb8)" ( (binary_expression "puVar11 + 0x58eb8" identifier + number_literal) ))))) )) (argument_list "(2,uVar3,uVar10)" ( number_literal , identifier , identifier ))) ;) }))) (goto_statement "goto LAB_0001e794;" goto statement_identifier ;) })) (expression_statement "pcVar12 = *(code **)(puVar11 + 0x59a08);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x59a08)" identifier = (pointer_expression "*(code **)(puVar11 + 0x59a08)" * (cast_expression "(code **)(puVar11 + 0x59a08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x59a08)" ( (binary_expression "puVar11 + 0x59a08" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;" (assignment_expression "iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00" identifier = (binary_expression "*(int *)(puVar11 + 0x58e98) + -0xf00" (pointer_expression "*(int *)(puVar11 + 0x58e98)" * (cast_expression "(int *)(puVar11 + 0x58e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x58e98)" ( (binary_expression "puVar11 + 0x58e98" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }" else (compound_statement "{\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }" { (expression_statement "pcVar12 = *(code **)(puVar11 + 0x59a08);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x59a08)" identifier = (pointer_expression "*(code **)(puVar11 + 0x59a08)" * (cast_expression "(code **)(puVar11 + 0x59a08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x59a08)" ( (binary_expression "puVar11 + 0x59a08" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;" (assignment_expression "iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20" identifier = (binary_expression "*(int *)(puVar11 + 0x58e98) + -0xf20" (pointer_expression "*(int *)(puVar11 + 0x58e98)" * (cast_expression "(int *)(puVar11 + 0x58e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x58e98)" ( (binary_expression "puVar11 + 0x58e98" identifier + number_literal) )))) + number_literal)) ;) }))))) (expression_statement "uVar3 = (*pcVar12)(0,iVar2,5);" (assignment_expression "uVar3 = (*pcVar12)(0,iVar2,5)" identifier = (call_expression "(*pcVar12)(0,iVar2,5)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(0,iVar2,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10);" (call_expression "(**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10)" (parenthesized_expression "(**(code **)(puVar11 + 0x58eb8))" ( (pointer_expression "**(code **)(puVar11 + 0x58eb8)" * (pointer_expression "*(code **)(puVar11 + 0x58eb8)" * (cast_expression "(code **)(puVar11 + 0x58eb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x58eb8)" ( (binary_expression "puVar11 + 0x58eb8" identifier + number_literal) ))))) )) (argument_list "(3,uVar3,uVar10)" ( number_literal , identifier , identifier ))) ;) (labeled_statement "LAB_0001e794:\n  (**(code **)(puVar11 + 0x59a48))(uVar9);" statement_identifier : (expression_statement "(**(code **)(puVar11 + 0x59a48))(uVar9);" (call_expression "(**(code **)(puVar11 + 0x59a48))(uVar9)" (parenthesized_expression "(**(code **)(puVar11 + 0x59a48))" ( (pointer_expression "**(code **)(puVar11 + 0x59a48)" * (pointer_expression "*(code **)(puVar11 + 0x59a48)" * (cast_expression "(code **)(puVar11 + 0x59a48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x59a48)" ( (binary_expression "puVar11 + 0x59a48" identifier + number_literal) ))))) )) (argument_list "(uVar9)" ( identifier ))) ;)) (if_statement "if (iStack_fc != *piVar6) {\n    pcVar12 = *(code **)(puVar11 + 0x599fc);\n    (*pcVar12)();\n    piVar6 = *(int **)(pcVar12 + 0x58c74);\n    iVar7 = *piVar6;\n    uVar9 = make_new_node(0);\n    iVar2 = *piVar6;\n    *(undefined4 *)(iVar7 + 4) = uVar9;\n    puVar8 = *(undefined4 **)(iVar2 + 4);\n    uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac);\n    iVar7 = *piVar6;\n    *puVar8 = uVar9;\n    *(undefined4 *)(iVar7 + 0x18) = 0;\n    *(undefined4 *)(iVar7 + 0x1c) = 0;\n    *(undefined4 *)(iVar7 + 0x14) = 0;\n    iVar2 = *(int *)(iVar7 + 4);\n    *(int *)(iVar7 + 8) = iVar2;\n    *(int *)(iVar7 + 0xc) = iVar2;\n    *(int *)(iVar7 + 0x10) = iVar2;\n    return iVar2;\n  }" if (parenthesized_expression "(iStack_fc != *piVar6)" ( (binary_expression "iStack_fc != *piVar6" identifier != (pointer_expression "*piVar6" * identifier)) )) (compound_statement "{\n    pcVar12 = *(code **)(puVar11 + 0x599fc);\n    (*pcVar12)();\n    piVar6 = *(int **)(pcVar12 + 0x58c74);\n    iVar7 = *piVar6;\n    uVar9 = make_new_node(0);\n    iVar2 = *piVar6;\n    *(undefined4 *)(iVar7 + 4) = uVar9;\n    puVar8 = *(undefined4 **)(iVar2 + 4);\n    uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac);\n    iVar7 = *piVar6;\n    *puVar8 = uVar9;\n    *(undefined4 *)(iVar7 + 0x18) = 0;\n    *(undefined4 *)(iVar7 + 0x1c) = 0;\n    *(undefined4 *)(iVar7 + 0x14) = 0;\n    iVar2 = *(int *)(iVar7 + 4);\n    *(int *)(iVar7 + 8) = iVar2;\n    *(int *)(iVar7 + 0xc) = iVar2;\n    *(int *)(iVar7 + 0x10) = iVar2;\n    return iVar2;\n  }" { (expression_statement "pcVar12 = *(code **)(puVar11 + 0x599fc);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x599fc)" identifier = (pointer_expression "*(code **)(puVar11 + 0x599fc)" * (cast_expression "(code **)(puVar11 + 0x599fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x599fc)" ( (binary_expression "puVar11 + 0x599fc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar6 = *(int **)(pcVar12 + 0x58c74);" (assignment_expression "piVar6 = *(int **)(pcVar12 + 0x58c74)" identifier = (pointer_expression "*(int **)(pcVar12 + 0x58c74)" * (cast_expression "(int **)(pcVar12 + 0x58c74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x58c74)" ( (binary_expression "pcVar12 + 0x58c74" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *piVar6;" (assignment_expression "iVar7 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "uVar9 = make_new_node(0);" (assignment_expression "uVar9 = make_new_node(0)" identifier = (call_expression "make_new_node(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "iVar2 = *piVar6;" (assignment_expression "iVar2 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "*(undefined4 *)(iVar7 + 4) = uVar9;" (assignment_expression "*(undefined4 *)(iVar7 + 4) = uVar9" (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar8 = *(undefined4 **)(iVar2 + 4);" (assignment_expression "puVar8 = *(undefined4 **)(iVar2 + 4)" identifier = (pointer_expression "*(undefined4 **)(iVar2 + 4)" * (cast_expression "(undefined4 **)(iVar2 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac);" (assignment_expression "uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac)" identifier = (call_expression "(**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac)" (parenthesized_expression "(**(code **)(pcVar12 + 0x58c70))" ( (pointer_expression "**(code **)(pcVar12 + 0x58c70)" * (pointer_expression "*(code **)(pcVar12 + 0x58c70)" * (cast_expression "(code **)(pcVar12 + 0x58c70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x58c70)" ( (binary_expression "pcVar12 + 0x58c70" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac)" ( number_literal , (binary_expression "*(int *)(pcVar12 + 0x58c64) + 0x2cac" (pointer_expression "*(int *)(pcVar12 + 0x58c64)" * (cast_expression "(int *)(pcVar12 + 0x58c64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x58c64)" ( (binary_expression "pcVar12 + 0x58c64" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar7 = *piVar6;" (assignment_expression "iVar7 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "*puVar8 = uVar9;" (assignment_expression "*puVar8 = uVar9" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x18) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x18)" * (cast_expression "(undefined4 *)(iVar7 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x1c)" * (cast_expression "(undefined4 *)(iVar7 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x14)" * (cast_expression "(undefined4 *)(iVar7 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar2 = *(int *)(iVar7 + 4);" (assignment_expression "iVar2 = *(int *)(iVar7 + 4)" identifier = (pointer_expression "*(int *)(iVar7 + 4)" * (cast_expression "(int *)(iVar7 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar7 + 8) = iVar2;" (assignment_expression "*(int *)(iVar7 + 8) = iVar2" (pointer_expression "*(int *)(iVar7 + 8)" * (cast_expression "(int *)(iVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar7 + 0xc) = iVar2;" (assignment_expression "*(int *)(iVar7 + 0xc) = iVar2" (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar7 + 0x10) = iVar2;" (assignment_expression "*(int *)(iVar7 + 0x10) = iVar2" (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) = identifier) ;) (return_statement "return iVar2;" return identifier ;) })) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit "int diralphasort(void *va,void *vb)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  int *piVar9;\n  char *s1;\n  char *s2;\n  undefined *puVar10;\n  code *pcVar11;\n  undefined1 auStack_1a0 [24];\n  uint uStack_188;\n  int iStack_fc;\n  undefined *puStack_f4;\n  stat *psStack_f0;\n  char *pcStack_ec;\n  char *pcStack_e8;\n  code *pcStack_e4;\n  stat fileinfo;\n  \n  puVar1 = PTR___stack_chk_guard_000780f8;\n                    /* WARNING: Load size is inaccurate */\n  s1 = *va;\n  iVar2 = *(int *)PTR___stack_chk_guard_000780f8;\n                    /* WARNING: Load size is inaccurate */\n  s2 = *vb;\n  iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s1,&fileinfo);\n  if ((iVar3 == -1) || ((fileinfo.st_mode & 0xf000) != 0x4000)) {\n    iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s2,&fileinfo);\n    if ((iVar3 == -1) || (iVar3 = 1, (fileinfo.st_mode & 0xf000) != 0x4000)) goto LAB_0001e644;\n  }\n  else {\n    iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s2,&fileinfo);\n    if ((iVar3 != -1) && (iVar3 = -1, (fileinfo.st_mode & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar3 = mbstrcasecmp(s1,s2);\n    }\n  }\n  if (iVar2 == *(int *)puVar1) {\n    return iVar3;\n  }\n  pcVar11 = has_valid_path;\n  puVar10 = PTR___stack_chk_fail_000780c0;\n  (*(code *)PTR___stack_chk_fail_000780c0)();\n  piVar9 = *(int **)(puVar10 + 0x59a34);\n  puStack_f4 = puVar1;\n  iStack_fc = *piVar9;\n  psStack_f0 = &fileinfo;\n  pcStack_ec = s1;\n  pcStack_e8 = s2;\n  pcStack_e4 = pcVar11;\n  uVar4 = (**(code **)(puVar10 + 0x58ea4))(0,iVar2);\n  uVar5 = (**(code **)(puVar10 + 0x59960))(uVar4);\n  iVar2 = (**(code **)(puVar10 + 0x59808))(3,uVar5,auStack_1a0);\n  if (iVar2 == -1) {\n    piVar7 = (int *)(**(code **)(puVar10 + 0x598ec))();\n    pcVar11 = *(code **)(puVar10 + 0x59a08);\n    if (*piVar7 != 2) {\n      uVar6 = (*pcVar11)(0,*(int *)(puVar10 + 0x58e98) + -0xf30,5);\n      uVar8 = (**(code **)(puVar10 + 0x59964))(*piVar7);\n      iVar2 = 0;\n      (**(code **)(puVar10 + 0x58eb8))(3,uVar6,uVar5,uVar8);\n      goto LAB_0001e794;\n    }\n    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf50;\n  }\n  else if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar10 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar6 = (**(code **)(puVar10 + 0x59a08))(0,*(int *)(puVar10 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar10 + 0x58eb8))(2,uVar6,uVar5);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x59a08);\n    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar11 = *(code **)(puVar10 + 0x59a08);\n    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf20;\n  }\n  uVar6 = (*pcVar11)(0,iVar2,5);\n  iVar2 = 0;\n  (**(code **)(puVar10 + 0x58eb8))(3,uVar6,uVar5);\nLAB_0001e794:\n  (**(code **)(puVar10 + 0x59a48))(uVar4);\n  if (iStack_fc != *piVar9) {\n    (**(code **)(puVar10 + 0x599fc))();\n                    /* WARNING: Subroutine does not return */\n    make_new_node((filestruct *)0x0);\n  }\n  return iVar2;\n}\n\n" (function_definition "int diralphasort(void *va,void *vb)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  int *piVar9;\n  char *s1;\n  char *s2;\n  undefined *puVar10;\n  code *pcVar11;\n  undefined1 auStack_1a0 [24];\n  uint uStack_188;\n  int iStack_fc;\n  undefined *puStack_f4;\n  stat *psStack_f0;\n  char *pcStack_ec;\n  char *pcStack_e8;\n  code *pcStack_e4;\n  stat fileinfo;\n  \n  puVar1 = PTR___stack_chk_guard_000780f8;\n                    /* WARNING: Load size is inaccurate */\n  s1 = *va;\n  iVar2 = *(int *)PTR___stack_chk_guard_000780f8;\n                    /* WARNING: Load size is inaccurate */\n  s2 = *vb;\n  iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s1,&fileinfo);\n  if ((iVar3 == -1) || ((fileinfo.st_mode & 0xf000) != 0x4000)) {\n    iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s2,&fileinfo);\n    if ((iVar3 == -1) || (iVar3 = 1, (fileinfo.st_mode & 0xf000) != 0x4000)) goto LAB_0001e644;\n  }\n  else {\n    iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s2,&fileinfo);\n    if ((iVar3 != -1) && (iVar3 = -1, (fileinfo.st_mode & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar3 = mbstrcasecmp(s1,s2);\n    }\n  }\n  if (iVar2 == *(int *)puVar1) {\n    return iVar3;\n  }\n  pcVar11 = has_valid_path;\n  puVar10 = PTR___stack_chk_fail_000780c0;\n  (*(code *)PTR___stack_chk_fail_000780c0)();\n  piVar9 = *(int **)(puVar10 + 0x59a34);\n  puStack_f4 = puVar1;\n  iStack_fc = *piVar9;\n  psStack_f0 = &fileinfo;\n  pcStack_ec = s1;\n  pcStack_e8 = s2;\n  pcStack_e4 = pcVar11;\n  uVar4 = (**(code **)(puVar10 + 0x58ea4))(0,iVar2);\n  uVar5 = (**(code **)(puVar10 + 0x59960))(uVar4);\n  iVar2 = (**(code **)(puVar10 + 0x59808))(3,uVar5,auStack_1a0);\n  if (iVar2 == -1) {\n    piVar7 = (int *)(**(code **)(puVar10 + 0x598ec))();\n    pcVar11 = *(code **)(puVar10 + 0x59a08);\n    if (*piVar7 != 2) {\n      uVar6 = (*pcVar11)(0,*(int *)(puVar10 + 0x58e98) + -0xf30,5);\n      uVar8 = (**(code **)(puVar10 + 0x59964))(*piVar7);\n      iVar2 = 0;\n      (**(code **)(puVar10 + 0x58eb8))(3,uVar6,uVar5,uVar8);\n      goto LAB_0001e794;\n    }\n    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf50;\n  }\n  else if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar10 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar6 = (**(code **)(puVar10 + 0x59a08))(0,*(int *)(puVar10 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar10 + 0x58eb8))(2,uVar6,uVar5);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x59a08);\n    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar11 = *(code **)(puVar10 + 0x59a08);\n    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf20;\n  }\n  uVar6 = (*pcVar11)(0,iVar2,5);\n  iVar2 = 0;\n  (**(code **)(puVar10 + 0x58eb8))(3,uVar6,uVar5);\nLAB_0001e794:\n  (**(code **)(puVar10 + 0x59a48))(uVar4);\n  if (iStack_fc != *piVar9) {\n    (**(code **)(puVar10 + 0x599fc))();\n                    /* WARNING: Subroutine does not return */\n    make_new_node((filestruct *)0x0);\n  }\n  return iVar2;\n}" primitive_type (function_declarator "diralphasort(void *va,void *vb)" identifier (parameter_list "(void *va,void *vb)" ( (parameter_declaration "void *va" primitive_type (pointer_declarator "*va" * identifier)) , (parameter_declaration "void *vb" primitive_type (pointer_declarator "*vb" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  int *piVar9;\n  char *s1;\n  char *s2;\n  undefined *puVar10;\n  code *pcVar11;\n  undefined1 auStack_1a0 [24];\n  uint uStack_188;\n  int iStack_fc;\n  undefined *puStack_f4;\n  stat *psStack_f0;\n  char *pcStack_ec;\n  char *pcStack_e8;\n  code *pcStack_e4;\n  stat fileinfo;\n  \n  puVar1 = PTR___stack_chk_guard_000780f8;\n                    /* WARNING: Load size is inaccurate */\n  s1 = *va;\n  iVar2 = *(int *)PTR___stack_chk_guard_000780f8;\n                    /* WARNING: Load size is inaccurate */\n  s2 = *vb;\n  iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s1,&fileinfo);\n  if ((iVar3 == -1) || ((fileinfo.st_mode & 0xf000) != 0x4000)) {\n    iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s2,&fileinfo);\n    if ((iVar3 == -1) || (iVar3 = 1, (fileinfo.st_mode & 0xf000) != 0x4000)) goto LAB_0001e644;\n  }\n  else {\n    iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s2,&fileinfo);\n    if ((iVar3 != -1) && (iVar3 = -1, (fileinfo.st_mode & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar3 = mbstrcasecmp(s1,s2);\n    }\n  }\n  if (iVar2 == *(int *)puVar1) {\n    return iVar3;\n  }\n  pcVar11 = has_valid_path;\n  puVar10 = PTR___stack_chk_fail_000780c0;\n  (*(code *)PTR___stack_chk_fail_000780c0)();\n  piVar9 = *(int **)(puVar10 + 0x59a34);\n  puStack_f4 = puVar1;\n  iStack_fc = *piVar9;\n  psStack_f0 = &fileinfo;\n  pcStack_ec = s1;\n  pcStack_e8 = s2;\n  pcStack_e4 = pcVar11;\n  uVar4 = (**(code **)(puVar10 + 0x58ea4))(0,iVar2);\n  uVar5 = (**(code **)(puVar10 + 0x59960))(uVar4);\n  iVar2 = (**(code **)(puVar10 + 0x59808))(3,uVar5,auStack_1a0);\n  if (iVar2 == -1) {\n    piVar7 = (int *)(**(code **)(puVar10 + 0x598ec))();\n    pcVar11 = *(code **)(puVar10 + 0x59a08);\n    if (*piVar7 != 2) {\n      uVar6 = (*pcVar11)(0,*(int *)(puVar10 + 0x58e98) + -0xf30,5);\n      uVar8 = (**(code **)(puVar10 + 0x59964))(*piVar7);\n      iVar2 = 0;\n      (**(code **)(puVar10 + 0x58eb8))(3,uVar6,uVar5,uVar8);\n      goto LAB_0001e794;\n    }\n    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf50;\n  }\n  else if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar10 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar6 = (**(code **)(puVar10 + 0x59a08))(0,*(int *)(puVar10 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar10 + 0x58eb8))(2,uVar6,uVar5);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x59a08);\n    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar11 = *(code **)(puVar10 + 0x59a08);\n    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf20;\n  }\n  uVar6 = (*pcVar11)(0,iVar2,5);\n  iVar2 = 0;\n  (**(code **)(puVar10 + 0x58eb8))(3,uVar6,uVar5);\nLAB_0001e794:\n  (**(code **)(puVar10 + 0x59a48))(uVar4);\n  if (iStack_fc != *piVar9) {\n    (**(code **)(puVar10 + 0x599fc))();\n                    /* WARNING: Subroutine does not return */\n    make_new_node((filestruct *)0x0);\n  }\n  return iVar2;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "char *s1;" primitive_type (pointer_declarator "*s1" * identifier) ;) (declaration "char *s2;" primitive_type (pointer_declarator "*s2" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined1 auStack_1a0 [24];" type_identifier (array_declarator "auStack_1a0 [24]" identifier [ number_literal ]) ;) (declaration "uint uStack_188;" type_identifier identifier ;) (declaration "int iStack_fc;" primitive_type identifier ;) (declaration "undefined *puStack_f4;" type_identifier (pointer_declarator "*puStack_f4" * identifier) ;) (declaration "stat *psStack_f0;" type_identifier (pointer_declarator "*psStack_f0" * identifier) ;) (declaration "char *pcStack_ec;" primitive_type (pointer_declarator "*pcStack_ec" * identifier) ;) (declaration "char *pcStack_e8;" primitive_type (pointer_declarator "*pcStack_e8" * identifier) ;) (declaration "code *pcStack_e4;" type_identifier (pointer_declarator "*pcStack_e4" * identifier) ;) (declaration "stat fileinfo;" type_identifier identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000780f8;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000780f8" identifier = identifier) ;) comment (expression_statement "s1 = *va;" (assignment_expression "s1 = *va" identifier = (pointer_expression "*va" * identifier)) ;) (expression_statement "iVar2 = *(int *)PTR___stack_chk_guard_000780f8;" (assignment_expression "iVar2 = *(int *)PTR___stack_chk_guard_000780f8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000780f8" * (cast_expression "(int *)PTR___stack_chk_guard_000780f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) comment (expression_statement "s2 = *vb;" (assignment_expression "s2 = *vb" identifier = (pointer_expression "*vb" * identifier)) ;) (expression_statement "iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s1,&fileinfo);" (assignment_expression "iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s1,&fileinfo)" identifier = (call_expression "(*(code *)PTR___xstat64_00077ecc)(3,s1,&fileinfo)" (parenthesized_expression "(*(code *)PTR___xstat64_00077ecc)" ( (pointer_expression "*(code *)PTR___xstat64_00077ecc" * (cast_expression "(code *)PTR___xstat64_00077ecc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,s1,&fileinfo)" ( number_literal , identifier , (pointer_expression "&fileinfo" & identifier) )))) ;) (if_statement "if ((iVar3 == -1) || ((fileinfo.st_mode & 0xf000) != 0x4000)) {\n    iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s2,&fileinfo);\n    if ((iVar3 == -1) || (iVar3 = 1, (fileinfo.st_mode & 0xf000) != 0x4000)) goto LAB_0001e644;\n  }\n  else {\n    iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s2,&fileinfo);\n    if ((iVar3 != -1) && (iVar3 = -1, (fileinfo.st_mode & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar3 = mbstrcasecmp(s1,s2);\n    }\n  }" if (parenthesized_expression "((iVar3 == -1) || ((fileinfo.st_mode & 0xf000) != 0x4000))" ( (binary_expression "(iVar3 == -1) || ((fileinfo.st_mode & 0xf000) != 0x4000)" (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) || (parenthesized_expression "((fileinfo.st_mode & 0xf000) != 0x4000)" ( (binary_expression "(fileinfo.st_mode & 0xf000) != 0x4000" (parenthesized_expression "(fileinfo.st_mode & 0xf000)" ( (binary_expression "fileinfo.st_mode & 0xf000" (field_expression "fileinfo.st_mode" identifier . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s2,&fileinfo);\n    if ((iVar3 == -1) || (iVar3 = 1, (fileinfo.st_mode & 0xf000) != 0x4000)) goto LAB_0001e644;\n  }" { (expression_statement "iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s2,&fileinfo);" (assignment_expression "iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s2,&fileinfo)" identifier = (call_expression "(*(code *)PTR___xstat64_00077ecc)(3,s2,&fileinfo)" (parenthesized_expression "(*(code *)PTR___xstat64_00077ecc)" ( (pointer_expression "*(code *)PTR___xstat64_00077ecc" * (cast_expression "(code *)PTR___xstat64_00077ecc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,s2,&fileinfo)" ( number_literal , identifier , (pointer_expression "&fileinfo" & identifier) )))) ;) (if_statement "if ((iVar3 == -1) || (iVar3 = 1, (fileinfo.st_mode & 0xf000) != 0x4000)) goto LAB_0001e644;" if (parenthesized_expression "((iVar3 == -1) || (iVar3 = 1, (fileinfo.st_mode & 0xf000) != 0x4000))" ( (binary_expression "(iVar3 == -1) || (iVar3 = 1, (fileinfo.st_mode & 0xf000) != 0x4000)" (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = 1, (fileinfo.st_mode & 0xf000) != 0x4000)" ( (comma_expression "iVar3 = 1, (fileinfo.st_mode & 0xf000) != 0x4000" (assignment_expression "iVar3 = 1" identifier = number_literal) , (binary_expression "(fileinfo.st_mode & 0xf000) != 0x4000" (parenthesized_expression "(fileinfo.st_mode & 0xf000)" ( (binary_expression "fileinfo.st_mode & 0xf000" (field_expression "fileinfo.st_mode" identifier . field_identifier) & number_literal) )) != number_literal)) ))) )) (goto_statement "goto LAB_0001e644;" goto statement_identifier ;)) }) (else_clause "else {\n    iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s2,&fileinfo);\n    if ((iVar3 != -1) && (iVar3 = -1, (fileinfo.st_mode & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar3 = mbstrcasecmp(s1,s2);\n    }\n  }" else (compound_statement "{\n    iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s2,&fileinfo);\n    if ((iVar3 != -1) && (iVar3 = -1, (fileinfo.st_mode & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar3 = mbstrcasecmp(s1,s2);\n    }\n  }" { (expression_statement "iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s2,&fileinfo);" (assignment_expression "iVar3 = (*(code *)PTR___xstat64_00077ecc)(3,s2,&fileinfo)" identifier = (call_expression "(*(code *)PTR___xstat64_00077ecc)(3,s2,&fileinfo)" (parenthesized_expression "(*(code *)PTR___xstat64_00077ecc)" ( (pointer_expression "*(code *)PTR___xstat64_00077ecc" * (cast_expression "(code *)PTR___xstat64_00077ecc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,s2,&fileinfo)" ( number_literal , identifier , (pointer_expression "&fileinfo" & identifier) )))) ;) (if_statement "if ((iVar3 != -1) && (iVar3 = -1, (fileinfo.st_mode & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar3 = mbstrcasecmp(s1,s2);\n    }" if (parenthesized_expression "((iVar3 != -1) && (iVar3 = -1, (fileinfo.st_mode & 0xf000) == 0x4000))" ( (binary_expression "(iVar3 != -1) && (iVar3 = -1, (fileinfo.st_mode & 0xf000) == 0x4000)" (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = -1, (fileinfo.st_mode & 0xf000) == 0x4000)" ( (comma_expression "iVar3 = -1, (fileinfo.st_mode & 0xf000) == 0x4000" (assignment_expression "iVar3 = -1" identifier = number_literal) , (binary_expression "(fileinfo.st_mode & 0xf000) == 0x4000" (parenthesized_expression "(fileinfo.st_mode & 0xf000)" ( (binary_expression "fileinfo.st_mode & 0xf000" (field_expression "fileinfo.st_mode" identifier . field_identifier) & number_literal) )) == number_literal)) ))) )) (compound_statement "{\nLAB_0001e644:\n      iVar3 = mbstrcasecmp(s1,s2);\n    }" { (labeled_statement "LAB_0001e644:\n      iVar3 = mbstrcasecmp(s1,s2);" statement_identifier : (expression_statement "iVar3 = mbstrcasecmp(s1,s2);" (assignment_expression "iVar3 = mbstrcasecmp(s1,s2)" identifier = (call_expression "mbstrcasecmp(s1,s2)" identifier (argument_list "(s1,s2)" ( identifier , identifier )))) ;)) })) }))) (if_statement "if (iVar2 == *(int *)puVar1) {\n    return iVar3;\n  }" if (parenthesized_expression "(iVar2 == *(int *)puVar1)" ( (binary_expression "iVar2 == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) })) (expression_statement "pcVar11 = has_valid_path;" (assignment_expression "pcVar11 = has_valid_path" identifier = identifier) ;) (expression_statement "puVar10 = PTR___stack_chk_fail_000780c0;" (assignment_expression "puVar10 = PTR___stack_chk_fail_000780c0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000780c0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000780c0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000780c0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000780c0" * (cast_expression "(code *)PTR___stack_chk_fail_000780c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar9 = *(int **)(puVar10 + 0x59a34);" (assignment_expression "piVar9 = *(int **)(puVar10 + 0x59a34)" identifier = (pointer_expression "*(int **)(puVar10 + 0x59a34)" * (cast_expression "(int **)(puVar10 + 0x59a34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x59a34)" ( (binary_expression "puVar10 + 0x59a34" identifier + number_literal) ))))) ;) (expression_statement "puStack_f4 = puVar1;" (assignment_expression "puStack_f4 = puVar1" identifier = identifier) ;) (expression_statement "iStack_fc = *piVar9;" (assignment_expression "iStack_fc = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "psStack_f0 = &fileinfo;" (assignment_expression "psStack_f0 = &fileinfo" identifier = (pointer_expression "&fileinfo" & identifier)) ;) (expression_statement "pcStack_ec = s1;" (assignment_expression "pcStack_ec = s1" identifier = identifier) ;) (expression_statement "pcStack_e8 = s2;" (assignment_expression "pcStack_e8 = s2" identifier = identifier) ;) (expression_statement "pcStack_e4 = pcVar11;" (assignment_expression "pcStack_e4 = pcVar11" identifier = identifier) ;) (expression_statement "uVar4 = (**(code **)(puVar10 + 0x58ea4))(0,iVar2);" (assignment_expression "uVar4 = (**(code **)(puVar10 + 0x58ea4))(0,iVar2)" identifier = (call_expression "(**(code **)(puVar10 + 0x58ea4))(0,iVar2)" (parenthesized_expression "(**(code **)(puVar10 + 0x58ea4))" ( (pointer_expression "**(code **)(puVar10 + 0x58ea4)" * (pointer_expression "*(code **)(puVar10 + 0x58ea4)" * (cast_expression "(code **)(puVar10 + 0x58ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x58ea4)" ( (binary_expression "puVar10 + 0x58ea4" identifier + number_literal) ))))) )) (argument_list "(0,iVar2)" ( number_literal , identifier )))) ;) (expression_statement "uVar5 = (**(code **)(puVar10 + 0x59960))(uVar4);" (assignment_expression "uVar5 = (**(code **)(puVar10 + 0x59960))(uVar4)" identifier = (call_expression "(**(code **)(puVar10 + 0x59960))(uVar4)" (parenthesized_expression "(**(code **)(puVar10 + 0x59960))" ( (pointer_expression "**(code **)(puVar10 + 0x59960)" * (pointer_expression "*(code **)(puVar10 + 0x59960)" * (cast_expression "(code **)(puVar10 + 0x59960)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x59960)" ( (binary_expression "puVar10 + 0x59960" identifier + number_literal) ))))) )) (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "iVar2 = (**(code **)(puVar10 + 0x59808))(3,uVar5,auStack_1a0);" (assignment_expression "iVar2 = (**(code **)(puVar10 + 0x59808))(3,uVar5,auStack_1a0)" identifier = (call_expression "(**(code **)(puVar10 + 0x59808))(3,uVar5,auStack_1a0)" (parenthesized_expression "(**(code **)(puVar10 + 0x59808))" ( (pointer_expression "**(code **)(puVar10 + 0x59808)" * (pointer_expression "*(code **)(puVar10 + 0x59808)" * (cast_expression "(code **)(puVar10 + 0x59808)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x59808)" ( (binary_expression "puVar10 + 0x59808" identifier + number_literal) ))))) )) (argument_list "(3,uVar5,auStack_1a0)" ( number_literal , identifier , identifier )))) ;) (if_statement "if (iVar2 == -1) {\n    piVar7 = (int *)(**(code **)(puVar10 + 0x598ec))();\n    pcVar11 = *(code **)(puVar10 + 0x59a08);\n    if (*piVar7 != 2) {\n      uVar6 = (*pcVar11)(0,*(int *)(puVar10 + 0x58e98) + -0xf30,5);\n      uVar8 = (**(code **)(puVar10 + 0x59964))(*piVar7);\n      iVar2 = 0;\n      (**(code **)(puVar10 + 0x58eb8))(3,uVar6,uVar5,uVar8);\n      goto LAB_0001e794;\n    }\n    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf50;\n  }\n  else if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar10 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar6 = (**(code **)(puVar10 + 0x59a08))(0,*(int *)(puVar10 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar10 + 0x58eb8))(2,uVar6,uVar5);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x59a08);\n    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar11 = *(code **)(puVar10 + 0x59a08);\n    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf20;\n  }" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (compound_statement "{\n    piVar7 = (int *)(**(code **)(puVar10 + 0x598ec))();\n    pcVar11 = *(code **)(puVar10 + 0x59a08);\n    if (*piVar7 != 2) {\n      uVar6 = (*pcVar11)(0,*(int *)(puVar10 + 0x58e98) + -0xf30,5);\n      uVar8 = (**(code **)(puVar10 + 0x59964))(*piVar7);\n      iVar2 = 0;\n      (**(code **)(puVar10 + 0x58eb8))(3,uVar6,uVar5,uVar8);\n      goto LAB_0001e794;\n    }\n    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf50;\n  }" { (expression_statement "piVar7 = (int *)(**(code **)(puVar10 + 0x598ec))();" (assignment_expression "piVar7 = (int *)(**(code **)(puVar10 + 0x598ec))()" identifier = (cast_expression "(int *)(**(code **)(puVar10 + 0x598ec))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar10 + 0x598ec))()" (parenthesized_expression "(**(code **)(puVar10 + 0x598ec))" ( (pointer_expression "**(code **)(puVar10 + 0x598ec)" * (pointer_expression "*(code **)(puVar10 + 0x598ec)" * (cast_expression "(code **)(puVar10 + 0x598ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x598ec)" ( (binary_expression "puVar10 + 0x598ec" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar11 = *(code **)(puVar10 + 0x59a08);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x59a08)" identifier = (pointer_expression "*(code **)(puVar10 + 0x59a08)" * (cast_expression "(code **)(puVar10 + 0x59a08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x59a08)" ( (binary_expression "puVar10 + 0x59a08" identifier + number_literal) ))))) ;) (if_statement "if (*piVar7 != 2) {\n      uVar6 = (*pcVar11)(0,*(int *)(puVar10 + 0x58e98) + -0xf30,5);\n      uVar8 = (**(code **)(puVar10 + 0x59964))(*piVar7);\n      iVar2 = 0;\n      (**(code **)(puVar10 + 0x58eb8))(3,uVar6,uVar5,uVar8);\n      goto LAB_0001e794;\n    }" if (parenthesized_expression "(*piVar7 != 2)" ( (binary_expression "*piVar7 != 2" (pointer_expression "*piVar7" * identifier) != number_literal) )) (compound_statement "{\n      uVar6 = (*pcVar11)(0,*(int *)(puVar10 + 0x58e98) + -0xf30,5);\n      uVar8 = (**(code **)(puVar10 + 0x59964))(*piVar7);\n      iVar2 = 0;\n      (**(code **)(puVar10 + 0x58eb8))(3,uVar6,uVar5,uVar8);\n      goto LAB_0001e794;\n    }" { (expression_statement "uVar6 = (*pcVar11)(0,*(int *)(puVar10 + 0x58e98) + -0xf30,5);" (assignment_expression "uVar6 = (*pcVar11)(0,*(int *)(puVar10 + 0x58e98) + -0xf30,5)" identifier = (call_expression "(*pcVar11)(0,*(int *)(puVar10 + 0x58e98) + -0xf30,5)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(0,*(int *)(puVar10 + 0x58e98) + -0xf30,5)" ( number_literal , (binary_expression "*(int *)(puVar10 + 0x58e98) + -0xf30" (pointer_expression "*(int *)(puVar10 + 0x58e98)" * (cast_expression "(int *)(puVar10 + 0x58e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x58e98)" ( (binary_expression "puVar10 + 0x58e98" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "uVar8 = (**(code **)(puVar10 + 0x59964))(*piVar7);" (assignment_expression "uVar8 = (**(code **)(puVar10 + 0x59964))(*piVar7)" identifier = (call_expression "(**(code **)(puVar10 + 0x59964))(*piVar7)" (parenthesized_expression "(**(code **)(puVar10 + 0x59964))" ( (pointer_expression "**(code **)(puVar10 + 0x59964)" * (pointer_expression "*(code **)(puVar10 + 0x59964)" * (cast_expression "(code **)(puVar10 + 0x59964)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x59964)" ( (binary_expression "puVar10 + 0x59964" identifier + number_literal) ))))) )) (argument_list "(*piVar7)" ( (pointer_expression "*piVar7" * identifier) )))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar10 + 0x58eb8))(3,uVar6,uVar5,uVar8);" (call_expression "(**(code **)(puVar10 + 0x58eb8))(3,uVar6,uVar5,uVar8)" (parenthesized_expression "(**(code **)(puVar10 + 0x58eb8))" ( (pointer_expression "**(code **)(puVar10 + 0x58eb8)" * (pointer_expression "*(code **)(puVar10 + 0x58eb8)" * (cast_expression "(code **)(puVar10 + 0x58eb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x58eb8)" ( (binary_expression "puVar10 + 0x58eb8" identifier + number_literal) ))))) )) (argument_list "(3,uVar6,uVar5,uVar8)" ( number_literal , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_0001e794;" goto statement_identifier ;) })) (expression_statement "iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf50;" (assignment_expression "iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf50" identifier = (binary_expression "*(int *)(puVar10 + 0x58e98) + -0xf50" (pointer_expression "*(int *)(puVar10 + 0x58e98)" * (cast_expression "(int *)(puVar10 + 0x58e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x58e98)" ( (binary_expression "puVar10 + 0x58e98" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar10 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar6 = (**(code **)(puVar10 + 0x59a08))(0,*(int *)(puVar10 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar10 + 0x58eb8))(2,uVar6,uVar5);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x59a08);\n    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar11 = *(code **)(puVar10 + 0x59a08);\n    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf20;\n  }" else (if_statement "if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar10 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar6 = (**(code **)(puVar10 + 0x59a08))(0,*(int *)(puVar10 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar10 + 0x58eb8))(2,uVar6,uVar5);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x59a08);\n    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar11 = *(code **)(puVar10 + 0x59a08);\n    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf20;\n  }" if (parenthesized_expression "((uStack_188 & 0xf000) == 0x4000)" ( (binary_expression "(uStack_188 & 0xf000) == 0x4000" (parenthesized_expression "(uStack_188 & 0xf000)" ( (binary_expression "uStack_188 & 0xf000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar10 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar6 = (**(code **)(puVar10 + 0x59a08))(0,*(int *)(puVar10 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar10 + 0x58eb8))(2,uVar6,uVar5);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x59a08);\n    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf00;\n  }" { (expression_statement "iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,1);" (assignment_expression "iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,1)" identifier = (call_expression "(**(code **)(puVar10 + 0x598b8))(uVar5,1)" (parenthesized_expression "(**(code **)(puVar10 + 0x598b8))" ( (pointer_expression "**(code **)(puVar10 + 0x598b8)" * (pointer_expression "*(code **)(puVar10 + 0x598b8)" * (cast_expression "(code **)(puVar10 + 0x598b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x598b8)" ( (binary_expression "puVar10 + 0x598b8" identifier + number_literal) ))))) )) (argument_list "(uVar5,1)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar10 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar6 = (**(code **)(puVar10 + 0x59a08))(0,*(int *)(puVar10 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar10 + 0x58eb8))(2,uVar6,uVar5);\n      }\n      goto LAB_0001e794;\n    }" if (parenthesized_expression "(iVar2 != -1)" ( (binary_expression "iVar2 != -1" identifier != number_literal) )) (compound_statement "{\n      if (((*(uint *)(*(int *)(puVar10 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar6 = (**(code **)(puVar10 + 0x59a08))(0,*(int *)(puVar10 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar10 + 0x58eb8))(2,uVar6,uVar5);\n      }\n      goto LAB_0001e794;\n    }" { (if_statement "if (((*(uint *)(*(int *)(puVar10 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar6 = (**(code **)(puVar10 + 0x59a08))(0,*(int *)(puVar10 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar10 + 0x58eb8))(2,uVar6,uVar5);\n      }" if (parenthesized_expression "(((*(uint *)(*(int *)(puVar10 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,2), iVar2 != -1))" ( (binary_expression "((*(uint *)(*(int *)(puVar10 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,2), iVar2 != -1)" (parenthesized_expression "((*(uint *)(*(int *)(puVar10 + 0x58ed8) + 4) & 8) == 0)" ( (binary_expression "(*(uint *)(*(int *)(puVar10 + 0x58ed8) + 4) & 8) == 0" (parenthesized_expression "(*(uint *)(*(int *)(puVar10 + 0x58ed8) + 4) & 8)" ( (binary_expression "*(uint *)(*(int *)(puVar10 + 0x58ed8) + 4) & 8" (pointer_expression "*(uint *)(*(int *)(puVar10 + 0x58ed8) + 4)" * (cast_expression "(uint *)(*(int *)(puVar10 + 0x58ed8) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x58ed8) + 4)" ( (binary_expression "*(int *)(puVar10 + 0x58ed8) + 4" (pointer_expression "*(int *)(puVar10 + 0x58ed8)" * (cast_expression "(int *)(puVar10 + 0x58ed8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x58ed8)" ( (binary_expression "puVar10 + 0x58ed8" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,2), iVar2 != -1)" ( (comma_expression "iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,2), iVar2 != -1" (assignment_expression "iVar2 = (**(code **)(puVar10 + 0x598b8))(uVar5,2)" identifier = (call_expression "(**(code **)(puVar10 + 0x598b8))(uVar5,2)" (parenthesized_expression "(**(code **)(puVar10 + 0x598b8))" ( (pointer_expression "**(code **)(puVar10 + 0x598b8)" * (pointer_expression "*(code **)(puVar10 + 0x598b8)" * (cast_expression "(code **)(puVar10 + 0x598b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x598b8)" ( (binary_expression "puVar10 + 0x598b8" identifier + number_literal) ))))) )) (argument_list "(uVar5,2)" ( identifier , number_literal )))) , (binary_expression "iVar2 != -1" identifier != number_literal)) ))) )) (compound_statement "{\n        iVar2 = 1;\n      }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        uVar6 = (**(code **)(puVar10 + 0x59a08))(0,*(int *)(puVar10 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar10 + 0x58eb8))(2,uVar6,uVar5);\n      }" else (compound_statement "{\n        uVar6 = (**(code **)(puVar10 + 0x59a08))(0,*(int *)(puVar10 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar10 + 0x58eb8))(2,uVar6,uVar5);\n      }" { (expression_statement "uVar6 = (**(code **)(puVar10 + 0x59a08))(0,*(int *)(puVar10 + 0x58e98) + -0xee4,5);" (assignment_expression "uVar6 = (**(code **)(puVar10 + 0x59a08))(0,*(int *)(puVar10 + 0x58e98) + -0xee4,5)" identifier = (call_expression "(**(code **)(puVar10 + 0x59a08))(0,*(int *)(puVar10 + 0x58e98) + -0xee4,5)" (parenthesized_expression "(**(code **)(puVar10 + 0x59a08))" ( (pointer_expression "**(code **)(puVar10 + 0x59a08)" * (pointer_expression "*(code **)(puVar10 + 0x59a08)" * (cast_expression "(code **)(puVar10 + 0x59a08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x59a08)" ( (binary_expression "puVar10 + 0x59a08" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar10 + 0x58e98) + -0xee4,5)" ( number_literal , (binary_expression "*(int *)(puVar10 + 0x58e98) + -0xee4" (pointer_expression "*(int *)(puVar10 + 0x58e98)" * (cast_expression "(int *)(puVar10 + 0x58e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x58e98)" ( (binary_expression "puVar10 + 0x58e98" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar10 + 0x58eb8))(2,uVar6,uVar5);" (call_expression "(**(code **)(puVar10 + 0x58eb8))(2,uVar6,uVar5)" (parenthesized_expression "(**(code **)(puVar10 + 0x58eb8))" ( (pointer_expression "**(code **)(puVar10 + 0x58eb8)" * (pointer_expression "*(code **)(puVar10 + 0x58eb8)" * (cast_expression "(code **)(puVar10 + 0x58eb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x58eb8)" ( (binary_expression "puVar10 + 0x58eb8" identifier + number_literal) ))))) )) (argument_list "(2,uVar6,uVar5)" ( number_literal , identifier , identifier ))) ;) }))) (goto_statement "goto LAB_0001e794;" goto statement_identifier ;) })) (expression_statement "pcVar11 = *(code **)(puVar10 + 0x59a08);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x59a08)" identifier = (pointer_expression "*(code **)(puVar10 + 0x59a08)" * (cast_expression "(code **)(puVar10 + 0x59a08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x59a08)" ( (binary_expression "puVar10 + 0x59a08" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf00;" (assignment_expression "iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf00" identifier = (binary_expression "*(int *)(puVar10 + 0x58e98) + -0xf00" (pointer_expression "*(int *)(puVar10 + 0x58e98)" * (cast_expression "(int *)(puVar10 + 0x58e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x58e98)" ( (binary_expression "puVar10 + 0x58e98" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n    pcVar11 = *(code **)(puVar10 + 0x59a08);\n    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf20;\n  }" else (compound_statement "{\n    pcVar11 = *(code **)(puVar10 + 0x59a08);\n    iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf20;\n  }" { (expression_statement "pcVar11 = *(code **)(puVar10 + 0x59a08);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x59a08)" identifier = (pointer_expression "*(code **)(puVar10 + 0x59a08)" * (cast_expression "(code **)(puVar10 + 0x59a08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x59a08)" ( (binary_expression "puVar10 + 0x59a08" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf20;" (assignment_expression "iVar2 = *(int *)(puVar10 + 0x58e98) + -0xf20" identifier = (binary_expression "*(int *)(puVar10 + 0x58e98) + -0xf20" (pointer_expression "*(int *)(puVar10 + 0x58e98)" * (cast_expression "(int *)(puVar10 + 0x58e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x58e98)" ( (binary_expression "puVar10 + 0x58e98" identifier + number_literal) )))) + number_literal)) ;) }))))) (expression_statement "uVar6 = (*pcVar11)(0,iVar2,5);" (assignment_expression "uVar6 = (*pcVar11)(0,iVar2,5)" identifier = (call_expression "(*pcVar11)(0,iVar2,5)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(0,iVar2,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar10 + 0x58eb8))(3,uVar6,uVar5);" (call_expression "(**(code **)(puVar10 + 0x58eb8))(3,uVar6,uVar5)" (parenthesized_expression "(**(code **)(puVar10 + 0x58eb8))" ( (pointer_expression "**(code **)(puVar10 + 0x58eb8)" * (pointer_expression "*(code **)(puVar10 + 0x58eb8)" * (cast_expression "(code **)(puVar10 + 0x58eb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x58eb8)" ( (binary_expression "puVar10 + 0x58eb8" identifier + number_literal) ))))) )) (argument_list "(3,uVar6,uVar5)" ( number_literal , identifier , identifier ))) ;) (labeled_statement "LAB_0001e794:\n  (**(code **)(puVar10 + 0x59a48))(uVar4);" statement_identifier : (expression_statement "(**(code **)(puVar10 + 0x59a48))(uVar4);" (call_expression "(**(code **)(puVar10 + 0x59a48))(uVar4)" (parenthesized_expression "(**(code **)(puVar10 + 0x59a48))" ( (pointer_expression "**(code **)(puVar10 + 0x59a48)" * (pointer_expression "*(code **)(puVar10 + 0x59a48)" * (cast_expression "(code **)(puVar10 + 0x59a48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x59a48)" ( (binary_expression "puVar10 + 0x59a48" identifier + number_literal) ))))) )) (argument_list "(uVar4)" ( identifier ))) ;)) (if_statement "if (iStack_fc != *piVar9) {\n    (**(code **)(puVar10 + 0x599fc))();\n                    /* WARNING: Subroutine does not return */\n    make_new_node((filestruct *)0x0);\n  }" if (parenthesized_expression "(iStack_fc != *piVar9)" ( (binary_expression "iStack_fc != *piVar9" identifier != (pointer_expression "*piVar9" * identifier)) )) (compound_statement "{\n    (**(code **)(puVar10 + 0x599fc))();\n                    /* WARNING: Subroutine does not return */\n    make_new_node((filestruct *)0x0);\n  }" { (expression_statement "(**(code **)(puVar10 + 0x599fc))();" (call_expression "(**(code **)(puVar10 + 0x599fc))()" (parenthesized_expression "(**(code **)(puVar10 + 0x599fc))" ( (pointer_expression "**(code **)(puVar10 + 0x599fc)" * (pointer_expression "*(code **)(puVar10 + 0x599fc)" * (cast_expression "(code **)(puVar10 + 0x599fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x599fc)" ( (binary_expression "puVar10 + 0x599fc" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) comment (expression_statement "make_new_node((filestruct *)0x0);" (call_expression "make_new_node((filestruct *)0x0)" identifier (argument_list "((filestruct *)0x0)" ( (cast_expression "(filestruct *)0x0" ( (type_descriptor "filestruct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit "int diralphasort(undefined4 *param_1,undefined4 *param_2)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined1 auStack_1a0 [24];\n  uint uStack_188;\n  int iStack_fc;\n  undefined *puStack_f4;\n  undefined1 *puStack_f0;\n  undefined4 uStack_ec;\n  undefined4 uStack_e8;\n  code *pcStack_e4;\n  undefined1 auStack_c8 [24];\n  uint local_b0;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_000780f8;\n  uVar9 = *param_1;\n  local_24 = *(int *)PTR___stack_chk_guard_000780f8;\n  uVar10 = *param_2;\n  iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar9,auStack_c8);\n  if ((iVar2 == -1) || ((local_b0 & 0xf000) != 0x4000)) {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)) goto LAB_0001e644;\n  }\n  else {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }\n  }\n  if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }\n  pcVar12 = has_valid_path;\n  iVar2 = local_24;\n  puVar11 = PTR___stack_chk_fail_000780c0;\n  (*(code *)PTR___stack_chk_fail_000780c0)();\n  piVar6 = *(int **)(puVar11 + 0x59a34);\n  puStack_f4 = puVar1;\n  iStack_fc = *piVar6;\n  puStack_f0 = auStack_c8;\n  uStack_ec = uVar9;\n  uStack_e8 = uVar10;\n  pcStack_e4 = pcVar12;\n  uVar9 = (**(code **)(puVar11 + 0x58ea4))(0,iVar2);\n  uVar10 = (**(code **)(puVar11 + 0x59960))(uVar9);\n  iVar2 = (**(code **)(puVar11 + 0x59808))(3,uVar10,auStack_1a0);\n  if (iVar2 == -1) {\n    piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))();\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    if (*piVar4 != 2) {\n      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);\n      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);\n      iVar2 = 0;\n      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);\n      goto LAB_0001e794;\n    }\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50;\n  }\n  else if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }\n  uVar3 = (*pcVar12)(0,iVar2,5);\n  iVar2 = 0;\n  (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10);\nLAB_0001e794:\n  (**(code **)(puVar11 + 0x59a48))(uVar9);\n  if (iStack_fc != *piVar6) {\n    pcVar12 = *(code **)(puVar11 + 0x599fc);\n    (*pcVar12)();\n    piVar6 = *(int **)(pcVar12 + 0x58c74);\n    iVar7 = *piVar6;\n    uVar9 = make_new_node(0);\n    iVar2 = *piVar6;\n    *(undefined4 *)(iVar7 + 4) = uVar9;\n    puVar8 = *(undefined4 **)(iVar2 + 4);\n    uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac);\n    iVar7 = *piVar6;\n    *puVar8 = uVar9;\n    *(undefined4 *)(iVar7 + 0x18) = 0;\n    *(undefined4 *)(iVar7 + 0x1c) = 0;\n    *(undefined4 *)(iVar7 + 0x14) = 0;\n    iVar2 = *(int *)(iVar7 + 4);\n    *(int *)(iVar7 + 8) = iVar2;\n    *(int *)(iVar7 + 0xc) = iVar2;\n    *(int *)(iVar7 + 0x10) = iVar2;\n    return iVar2;\n  }\n  return iVar2;\n}\n\n" (function_definition "int diralphasort(undefined4 *param_1,undefined4 *param_2)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined1 auStack_1a0 [24];\n  uint uStack_188;\n  int iStack_fc;\n  undefined *puStack_f4;\n  undefined1 *puStack_f0;\n  undefined4 uStack_ec;\n  undefined4 uStack_e8;\n  code *pcStack_e4;\n  undefined1 auStack_c8 [24];\n  uint local_b0;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_000780f8;\n  uVar9 = *param_1;\n  local_24 = *(int *)PTR___stack_chk_guard_000780f8;\n  uVar10 = *param_2;\n  iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar9,auStack_c8);\n  if ((iVar2 == -1) || ((local_b0 & 0xf000) != 0x4000)) {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)) goto LAB_0001e644;\n  }\n  else {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }\n  }\n  if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }\n  pcVar12 = has_valid_path;\n  iVar2 = local_24;\n  puVar11 = PTR___stack_chk_fail_000780c0;\n  (*(code *)PTR___stack_chk_fail_000780c0)();\n  piVar6 = *(int **)(puVar11 + 0x59a34);\n  puStack_f4 = puVar1;\n  iStack_fc = *piVar6;\n  puStack_f0 = auStack_c8;\n  uStack_ec = uVar9;\n  uStack_e8 = uVar10;\n  pcStack_e4 = pcVar12;\n  uVar9 = (**(code **)(puVar11 + 0x58ea4))(0,iVar2);\n  uVar10 = (**(code **)(puVar11 + 0x59960))(uVar9);\n  iVar2 = (**(code **)(puVar11 + 0x59808))(3,uVar10,auStack_1a0);\n  if (iVar2 == -1) {\n    piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))();\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    if (*piVar4 != 2) {\n      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);\n      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);\n      iVar2 = 0;\n      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);\n      goto LAB_0001e794;\n    }\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50;\n  }\n  else if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }\n  uVar3 = (*pcVar12)(0,iVar2,5);\n  iVar2 = 0;\n  (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10);\nLAB_0001e794:\n  (**(code **)(puVar11 + 0x59a48))(uVar9);\n  if (iStack_fc != *piVar6) {\n    pcVar12 = *(code **)(puVar11 + 0x599fc);\n    (*pcVar12)();\n    piVar6 = *(int **)(pcVar12 + 0x58c74);\n    iVar7 = *piVar6;\n    uVar9 = make_new_node(0);\n    iVar2 = *piVar6;\n    *(undefined4 *)(iVar7 + 4) = uVar9;\n    puVar8 = *(undefined4 **)(iVar2 + 4);\n    uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac);\n    iVar7 = *piVar6;\n    *puVar8 = uVar9;\n    *(undefined4 *)(iVar7 + 0x18) = 0;\n    *(undefined4 *)(iVar7 + 0x1c) = 0;\n    *(undefined4 *)(iVar7 + 0x14) = 0;\n    iVar2 = *(int *)(iVar7 + 4);\n    *(int *)(iVar7 + 8) = iVar2;\n    *(int *)(iVar7 + 0xc) = iVar2;\n    *(int *)(iVar7 + 0x10) = iVar2;\n    return iVar2;\n  }\n  return iVar2;\n}" primitive_type (function_declarator "diralphasort(undefined4 *param_1,undefined4 *param_2)" identifier (parameter_list "(undefined4 *param_1,undefined4 *param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined1 auStack_1a0 [24];\n  uint uStack_188;\n  int iStack_fc;\n  undefined *puStack_f4;\n  undefined1 *puStack_f0;\n  undefined4 uStack_ec;\n  undefined4 uStack_e8;\n  code *pcStack_e4;\n  undefined1 auStack_c8 [24];\n  uint local_b0;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_000780f8;\n  uVar9 = *param_1;\n  local_24 = *(int *)PTR___stack_chk_guard_000780f8;\n  uVar10 = *param_2;\n  iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar9,auStack_c8);\n  if ((iVar2 == -1) || ((local_b0 & 0xf000) != 0x4000)) {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)) goto LAB_0001e644;\n  }\n  else {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }\n  }\n  if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }\n  pcVar12 = has_valid_path;\n  iVar2 = local_24;\n  puVar11 = PTR___stack_chk_fail_000780c0;\n  (*(code *)PTR___stack_chk_fail_000780c0)();\n  piVar6 = *(int **)(puVar11 + 0x59a34);\n  puStack_f4 = puVar1;\n  iStack_fc = *piVar6;\n  puStack_f0 = auStack_c8;\n  uStack_ec = uVar9;\n  uStack_e8 = uVar10;\n  pcStack_e4 = pcVar12;\n  uVar9 = (**(code **)(puVar11 + 0x58ea4))(0,iVar2);\n  uVar10 = (**(code **)(puVar11 + 0x59960))(uVar9);\n  iVar2 = (**(code **)(puVar11 + 0x59808))(3,uVar10,auStack_1a0);\n  if (iVar2 == -1) {\n    piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))();\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    if (*piVar4 != 2) {\n      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);\n      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);\n      iVar2 = 0;\n      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);\n      goto LAB_0001e794;\n    }\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50;\n  }\n  else if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }\n  uVar3 = (*pcVar12)(0,iVar2,5);\n  iVar2 = 0;\n  (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10);\nLAB_0001e794:\n  (**(code **)(puVar11 + 0x59a48))(uVar9);\n  if (iStack_fc != *piVar6) {\n    pcVar12 = *(code **)(puVar11 + 0x599fc);\n    (*pcVar12)();\n    piVar6 = *(int **)(pcVar12 + 0x58c74);\n    iVar7 = *piVar6;\n    uVar9 = make_new_node(0);\n    iVar2 = *piVar6;\n    *(undefined4 *)(iVar7 + 4) = uVar9;\n    puVar8 = *(undefined4 **)(iVar2 + 4);\n    uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac);\n    iVar7 = *piVar6;\n    *puVar8 = uVar9;\n    *(undefined4 *)(iVar7 + 0x18) = 0;\n    *(undefined4 *)(iVar7 + 0x1c) = 0;\n    *(undefined4 *)(iVar7 + 0x14) = 0;\n    iVar2 = *(int *)(iVar7 + 4);\n    *(int *)(iVar7 + 8) = iVar2;\n    *(int *)(iVar7 + 0xc) = iVar2;\n    *(int *)(iVar7 + 0x10) = iVar2;\n    return iVar2;\n  }\n  return iVar2;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "undefined1 auStack_1a0 [24];" type_identifier (array_declarator "auStack_1a0 [24]" identifier [ number_literal ]) ;) (declaration "uint uStack_188;" type_identifier identifier ;) (declaration "int iStack_fc;" primitive_type identifier ;) (declaration "undefined *puStack_f4;" type_identifier (pointer_declarator "*puStack_f4" * identifier) ;) (declaration "undefined1 *puStack_f0;" type_identifier (pointer_declarator "*puStack_f0" * identifier) ;) (declaration "undefined4 uStack_ec;" type_identifier identifier ;) (declaration "undefined4 uStack_e8;" type_identifier identifier ;) (declaration "code *pcStack_e4;" type_identifier (pointer_declarator "*pcStack_e4" * identifier) ;) (declaration "undefined1 auStack_c8 [24];" type_identifier (array_declarator "auStack_c8 [24]" identifier [ number_literal ]) ;) (declaration "uint local_b0;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000780f8;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000780f8" identifier = identifier) ;) (expression_statement "uVar9 = *param_1;" (assignment_expression "uVar9 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_000780f8;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_000780f8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000780f8" * (cast_expression "(int *)PTR___stack_chk_guard_000780f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar10 = *param_2;" (assignment_expression "uVar10 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar9,auStack_c8);" (assignment_expression "iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar9,auStack_c8)" identifier = (call_expression "(*(code *)PTR___xstat64_00077ecc)(3,uVar9,auStack_c8)" (parenthesized_expression "(*(code *)PTR___xstat64_00077ecc)" ( (pointer_expression "*(code *)PTR___xstat64_00077ecc" * (cast_expression "(code *)PTR___xstat64_00077ecc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,uVar9,auStack_c8)" ( number_literal , identifier , identifier )))) ;) (if_statement "if ((iVar2 == -1) || ((local_b0 & 0xf000) != 0x4000)) {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)) goto LAB_0001e644;\n  }\n  else {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }\n  }" if (parenthesized_expression "((iVar2 == -1) || ((local_b0 & 0xf000) != 0x4000))" ( (binary_expression "(iVar2 == -1) || ((local_b0 & 0xf000) != 0x4000)" (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) || (parenthesized_expression "((local_b0 & 0xf000) != 0x4000)" ( (binary_expression "(local_b0 & 0xf000) != 0x4000" (parenthesized_expression "(local_b0 & 0xf000)" ( (binary_expression "local_b0 & 0xf000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)) goto LAB_0001e644;\n  }" { (expression_statement "iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);" (assignment_expression "iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8)" identifier = (call_expression "(*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8)" (parenthesized_expression "(*(code *)PTR___xstat64_00077ecc)" ( (pointer_expression "*(code *)PTR___xstat64_00077ecc" * (cast_expression "(code *)PTR___xstat64_00077ecc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,uVar10,auStack_c8)" ( number_literal , identifier , identifier )))) ;) (if_statement "if ((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)) goto LAB_0001e644;" if (parenthesized_expression "((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000))" ( (binary_expression "(iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)" (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) || (parenthesized_expression "(iVar2 = 1, (local_b0 & 0xf000) != 0x4000)" ( (comma_expression "iVar2 = 1, (local_b0 & 0xf000) != 0x4000" (assignment_expression "iVar2 = 1" identifier = number_literal) , (binary_expression "(local_b0 & 0xf000) != 0x4000" (parenthesized_expression "(local_b0 & 0xf000)" ( (binary_expression "local_b0 & 0xf000" identifier & number_literal) )) != number_literal)) ))) )) (goto_statement "goto LAB_0001e644;" goto statement_identifier ;)) }) (else_clause "else {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }\n  }" else (compound_statement "{\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }\n  }" { (expression_statement "iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);" (assignment_expression "iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8)" identifier = (call_expression "(*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8)" (parenthesized_expression "(*(code *)PTR___xstat64_00077ecc)" ( (pointer_expression "*(code *)PTR___xstat64_00077ecc" * (cast_expression "(code *)PTR___xstat64_00077ecc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,uVar10,auStack_c8)" ( number_literal , identifier , identifier )))) ;) (if_statement "if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }" if (parenthesized_expression "((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000))" ( (binary_expression "(iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)" (parenthesized_expression "(iVar2 != -1)" ( (binary_expression "iVar2 != -1" identifier != number_literal) )) && (parenthesized_expression "(iVar2 = -1, (local_b0 & 0xf000) == 0x4000)" ( (comma_expression "iVar2 = -1, (local_b0 & 0xf000) == 0x4000" (assignment_expression "iVar2 = -1" identifier = number_literal) , (binary_expression "(local_b0 & 0xf000) == 0x4000" (parenthesized_expression "(local_b0 & 0xf000)" ( (binary_expression "local_b0 & 0xf000" identifier & number_literal) )) == number_literal)) ))) )) (compound_statement "{\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }" { (labeled_statement "LAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);" statement_identifier : (expression_statement "iVar2 = mbstrcasecmp(uVar9,uVar10);" (assignment_expression "iVar2 = mbstrcasecmp(uVar9,uVar10)" identifier = (call_expression "mbstrcasecmp(uVar9,uVar10)" identifier (argument_list "(uVar9,uVar10)" ( identifier , identifier )))) ;)) })) }))) (if_statement "if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }" if (parenthesized_expression "(local_24 == *(int *)puVar1)" ( (binary_expression "local_24 == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "pcVar12 = has_valid_path;" (assignment_expression "pcVar12 = has_valid_path" identifier = identifier) ;) (expression_statement "iVar2 = local_24;" (assignment_expression "iVar2 = local_24" identifier = identifier) ;) (expression_statement "puVar11 = PTR___stack_chk_fail_000780c0;" (assignment_expression "puVar11 = PTR___stack_chk_fail_000780c0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000780c0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000780c0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000780c0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000780c0" * (cast_expression "(code *)PTR___stack_chk_fail_000780c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar6 = *(int **)(puVar11 + 0x59a34);" (assignment_expression "piVar6 = *(int **)(puVar11 + 0x59a34)" identifier = (pointer_expression "*(int **)(puVar11 + 0x59a34)" * (cast_expression "(int **)(puVar11 + 0x59a34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x59a34)" ( (binary_expression "puVar11 + 0x59a34" identifier + number_literal) ))))) ;) (expression_statement "puStack_f4 = puVar1;" (assignment_expression "puStack_f4 = puVar1" identifier = identifier) ;) (expression_statement "iStack_fc = *piVar6;" (assignment_expression "iStack_fc = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "puStack_f0 = auStack_c8;" (assignment_expression "puStack_f0 = auStack_c8" identifier = identifier) ;) (expression_statement "uStack_ec = uVar9;" (assignment_expression "uStack_ec = uVar9" identifier = identifier) ;) (expression_statement "uStack_e8 = uVar10;" (assignment_expression "uStack_e8 = uVar10" identifier = identifier) ;) (expression_statement "pcStack_e4 = pcVar12;" (assignment_expression "pcStack_e4 = pcVar12" identifier = identifier) ;) (expression_statement "uVar9 = (**(code **)(puVar11 + 0x58ea4))(0,iVar2);" (assignment_expression "uVar9 = (**(code **)(puVar11 + 0x58ea4))(0,iVar2)" identifier = (call_expression "(**(code **)(puVar11 + 0x58ea4))(0,iVar2)" (parenthesized_expression "(**(code **)(puVar11 + 0x58ea4))" ( (pointer_expression "**(code **)(puVar11 + 0x58ea4)" * (pointer_expression "*(code **)(puVar11 + 0x58ea4)" * (cast_expression "(code **)(puVar11 + 0x58ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x58ea4)" ( (binary_expression "puVar11 + 0x58ea4" identifier + number_literal) ))))) )) (argument_list "(0,iVar2)" ( number_literal , identifier )))) ;) (expression_statement "uVar10 = (**(code **)(puVar11 + 0x59960))(uVar9);" (assignment_expression "uVar10 = (**(code **)(puVar11 + 0x59960))(uVar9)" identifier = (call_expression "(**(code **)(puVar11 + 0x59960))(uVar9)" (parenthesized_expression "(**(code **)(puVar11 + 0x59960))" ( (pointer_expression "**(code **)(puVar11 + 0x59960)" * (pointer_expression "*(code **)(puVar11 + 0x59960)" * (cast_expression "(code **)(puVar11 + 0x59960)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x59960)" ( (binary_expression "puVar11 + 0x59960" identifier + number_literal) ))))) )) (argument_list "(uVar9)" ( identifier )))) ;) (expression_statement "iVar2 = (**(code **)(puVar11 + 0x59808))(3,uVar10,auStack_1a0);" (assignment_expression "iVar2 = (**(code **)(puVar11 + 0x59808))(3,uVar10,auStack_1a0)" identifier = (call_expression "(**(code **)(puVar11 + 0x59808))(3,uVar10,auStack_1a0)" (parenthesized_expression "(**(code **)(puVar11 + 0x59808))" ( (pointer_expression "**(code **)(puVar11 + 0x59808)" * (pointer_expression "*(code **)(puVar11 + 0x59808)" * (cast_expression "(code **)(puVar11 + 0x59808)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x59808)" ( (binary_expression "puVar11 + 0x59808" identifier + number_literal) ))))) )) (argument_list "(3,uVar10,auStack_1a0)" ( number_literal , identifier , identifier )))) ;) (if_statement "if (iVar2 == -1) {\n    piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))();\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    if (*piVar4 != 2) {\n      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);\n      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);\n      iVar2 = 0;\n      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);\n      goto LAB_0001e794;\n    }\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50;\n  }\n  else if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (compound_statement "{\n    piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))();\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    if (*piVar4 != 2) {\n      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);\n      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);\n      iVar2 = 0;\n      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);\n      goto LAB_0001e794;\n    }\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50;\n  }" { (expression_statement "piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))();" (assignment_expression "piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))()" identifier = (cast_expression "(int *)(**(code **)(puVar11 + 0x598ec))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar11 + 0x598ec))()" (parenthesized_expression "(**(code **)(puVar11 + 0x598ec))" ( (pointer_expression "**(code **)(puVar11 + 0x598ec)" * (pointer_expression "*(code **)(puVar11 + 0x598ec)" * (cast_expression "(code **)(puVar11 + 0x598ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x598ec)" ( (binary_expression "puVar11 + 0x598ec" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar12 = *(code **)(puVar11 + 0x59a08);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x59a08)" identifier = (pointer_expression "*(code **)(puVar11 + 0x59a08)" * (cast_expression "(code **)(puVar11 + 0x59a08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x59a08)" ( (binary_expression "puVar11 + 0x59a08" identifier + number_literal) ))))) ;) (if_statement "if (*piVar4 != 2) {\n      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);\n      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);\n      iVar2 = 0;\n      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);\n      goto LAB_0001e794;\n    }" if (parenthesized_expression "(*piVar4 != 2)" ( (binary_expression "*piVar4 != 2" (pointer_expression "*piVar4" * identifier) != number_literal) )) (compound_statement "{\n      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);\n      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);\n      iVar2 = 0;\n      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);\n      goto LAB_0001e794;\n    }" { (expression_statement "uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);" (assignment_expression "uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5)" identifier = (call_expression "(*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5)" ( number_literal , (binary_expression "*(int *)(puVar11 + 0x58e98) + -0xf30" (pointer_expression "*(int *)(puVar11 + 0x58e98)" * (cast_expression "(int *)(puVar11 + 0x58e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x58e98)" ( (binary_expression "puVar11 + 0x58e98" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);" (assignment_expression "uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4)" identifier = (call_expression "(**(code **)(puVar11 + 0x59964))(*piVar4)" (parenthesized_expression "(**(code **)(puVar11 + 0x59964))" ( (pointer_expression "**(code **)(puVar11 + 0x59964)" * (pointer_expression "*(code **)(puVar11 + 0x59964)" * (cast_expression "(code **)(puVar11 + 0x59964)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x59964)" ( (binary_expression "puVar11 + 0x59964" identifier + number_literal) ))))) )) (argument_list "(*piVar4)" ( (pointer_expression "*piVar4" * identifier) )))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);" (call_expression "(**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5)" (parenthesized_expression "(**(code **)(puVar11 + 0x58eb8))" ( (pointer_expression "**(code **)(puVar11 + 0x58eb8)" * (pointer_expression "*(code **)(puVar11 + 0x58eb8)" * (cast_expression "(code **)(puVar11 + 0x58eb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x58eb8)" ( (binary_expression "puVar11 + 0x58eb8" identifier + number_literal) ))))) )) (argument_list "(3,uVar3,uVar10,uVar5)" ( number_literal , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_0001e794;" goto statement_identifier ;) })) (expression_statement "iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50;" (assignment_expression "iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50" identifier = (binary_expression "*(int *)(puVar11 + 0x58e98) + -0xf50" (pointer_expression "*(int *)(puVar11 + 0x58e98)" * (cast_expression "(int *)(puVar11 + 0x58e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x58e98)" ( (binary_expression "puVar11 + 0x58e98" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }" else (if_statement "if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }" if (parenthesized_expression "((uStack_188 & 0xf000) == 0x4000)" ( (binary_expression "(uStack_188 & 0xf000) == 0x4000" (parenthesized_expression "(uStack_188 & 0xf000)" ( (binary_expression "uStack_188 & 0xf000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;\n  }" { (expression_statement "iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);" (assignment_expression "iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1)" identifier = (call_expression "(**(code **)(puVar11 + 0x598b8))(uVar10,1)" (parenthesized_expression "(**(code **)(puVar11 + 0x598b8))" ( (pointer_expression "**(code **)(puVar11 + 0x598b8)" * (pointer_expression "*(code **)(puVar11 + 0x598b8)" * (cast_expression "(code **)(puVar11 + 0x598b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x598b8)" ( (binary_expression "puVar11 + 0x598b8" identifier + number_literal) ))))) )) (argument_list "(uVar10,1)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }" if (parenthesized_expression "(iVar2 != -1)" ( (binary_expression "iVar2 != -1" identifier != number_literal) )) (compound_statement "{\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }" { (if_statement "if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }" if (parenthesized_expression "(((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1))" ( (binary_expression "((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)" (parenthesized_expression "((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0)" ( (binary_expression "(*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0" (parenthesized_expression "(*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8)" ( (binary_expression "*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8" (pointer_expression "*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4)" * (cast_expression "(uint *)(*(int *)(puVar11 + 0x58ed8) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x58ed8) + 4)" ( (binary_expression "*(int *)(puVar11 + 0x58ed8) + 4" (pointer_expression "*(int *)(puVar11 + 0x58ed8)" * (cast_expression "(int *)(puVar11 + 0x58ed8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x58ed8)" ( (binary_expression "puVar11 + 0x58ed8" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)" ( (comma_expression "iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1" (assignment_expression "iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2)" identifier = (call_expression "(**(code **)(puVar11 + 0x598b8))(uVar10,2)" (parenthesized_expression "(**(code **)(puVar11 + 0x598b8))" ( (pointer_expression "**(code **)(puVar11 + 0x598b8)" * (pointer_expression "*(code **)(puVar11 + 0x598b8)" * (cast_expression "(code **)(puVar11 + 0x598b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x598b8)" ( (binary_expression "puVar11 + 0x598b8" identifier + number_literal) ))))) )) (argument_list "(uVar10,2)" ( identifier , number_literal )))) , (binary_expression "iVar2 != -1" identifier != number_literal)) ))) )) (compound_statement "{\n        iVar2 = 1;\n      }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }" else (compound_statement "{\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }" { (expression_statement "uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);" (assignment_expression "uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5)" identifier = (call_expression "(**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5)" (parenthesized_expression "(**(code **)(puVar11 + 0x59a08))" ( (pointer_expression "**(code **)(puVar11 + 0x59a08)" * (pointer_expression "*(code **)(puVar11 + 0x59a08)" * (cast_expression "(code **)(puVar11 + 0x59a08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x59a08)" ( (binary_expression "puVar11 + 0x59a08" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5)" ( number_literal , (binary_expression "*(int *)(puVar11 + 0x58e98) + -0xee4" (pointer_expression "*(int *)(puVar11 + 0x58e98)" * (cast_expression "(int *)(puVar11 + 0x58e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x58e98)" ( (binary_expression "puVar11 + 0x58e98" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);" (call_expression "(**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10)" (parenthesized_expression "(**(code **)(puVar11 + 0x58eb8))" ( (pointer_expression "**(code **)(puVar11 + 0x58eb8)" * (pointer_expression "*(code **)(puVar11 + 0x58eb8)" * (cast_expression "(code **)(puVar11 + 0x58eb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x58eb8)" ( (binary_expression "puVar11 + 0x58eb8" identifier + number_literal) ))))) )) (argument_list "(2,uVar3,uVar10)" ( number_literal , identifier , identifier ))) ;) }))) (goto_statement "goto LAB_0001e794;" goto statement_identifier ;) })) (expression_statement "pcVar12 = *(code **)(puVar11 + 0x59a08);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x59a08)" identifier = (pointer_expression "*(code **)(puVar11 + 0x59a08)" * (cast_expression "(code **)(puVar11 + 0x59a08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x59a08)" ( (binary_expression "puVar11 + 0x59a08" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;" (assignment_expression "iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00" identifier = (binary_expression "*(int *)(puVar11 + 0x58e98) + -0xf00" (pointer_expression "*(int *)(puVar11 + 0x58e98)" * (cast_expression "(int *)(puVar11 + 0x58e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x58e98)" ( (binary_expression "puVar11 + 0x58e98" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }" else (compound_statement "{\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }" { (expression_statement "pcVar12 = *(code **)(puVar11 + 0x59a08);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x59a08)" identifier = (pointer_expression "*(code **)(puVar11 + 0x59a08)" * (cast_expression "(code **)(puVar11 + 0x59a08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x59a08)" ( (binary_expression "puVar11 + 0x59a08" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;" (assignment_expression "iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20" identifier = (binary_expression "*(int *)(puVar11 + 0x58e98) + -0xf20" (pointer_expression "*(int *)(puVar11 + 0x58e98)" * (cast_expression "(int *)(puVar11 + 0x58e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x58e98)" ( (binary_expression "puVar11 + 0x58e98" identifier + number_literal) )))) + number_literal)) ;) }))))) (expression_statement "uVar3 = (*pcVar12)(0,iVar2,5);" (assignment_expression "uVar3 = (*pcVar12)(0,iVar2,5)" identifier = (call_expression "(*pcVar12)(0,iVar2,5)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(0,iVar2,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10);" (call_expression "(**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10)" (parenthesized_expression "(**(code **)(puVar11 + 0x58eb8))" ( (pointer_expression "**(code **)(puVar11 + 0x58eb8)" * (pointer_expression "*(code **)(puVar11 + 0x58eb8)" * (cast_expression "(code **)(puVar11 + 0x58eb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x58eb8)" ( (binary_expression "puVar11 + 0x58eb8" identifier + number_literal) ))))) )) (argument_list "(3,uVar3,uVar10)" ( number_literal , identifier , identifier ))) ;) (labeled_statement "LAB_0001e794:\n  (**(code **)(puVar11 + 0x59a48))(uVar9);" statement_identifier : (expression_statement "(**(code **)(puVar11 + 0x59a48))(uVar9);" (call_expression "(**(code **)(puVar11 + 0x59a48))(uVar9)" (parenthesized_expression "(**(code **)(puVar11 + 0x59a48))" ( (pointer_expression "**(code **)(puVar11 + 0x59a48)" * (pointer_expression "*(code **)(puVar11 + 0x59a48)" * (cast_expression "(code **)(puVar11 + 0x59a48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x59a48)" ( (binary_expression "puVar11 + 0x59a48" identifier + number_literal) ))))) )) (argument_list "(uVar9)" ( identifier ))) ;)) (if_statement "if (iStack_fc != *piVar6) {\n    pcVar12 = *(code **)(puVar11 + 0x599fc);\n    (*pcVar12)();\n    piVar6 = *(int **)(pcVar12 + 0x58c74);\n    iVar7 = *piVar6;\n    uVar9 = make_new_node(0);\n    iVar2 = *piVar6;\n    *(undefined4 *)(iVar7 + 4) = uVar9;\n    puVar8 = *(undefined4 **)(iVar2 + 4);\n    uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac);\n    iVar7 = *piVar6;\n    *puVar8 = uVar9;\n    *(undefined4 *)(iVar7 + 0x18) = 0;\n    *(undefined4 *)(iVar7 + 0x1c) = 0;\n    *(undefined4 *)(iVar7 + 0x14) = 0;\n    iVar2 = *(int *)(iVar7 + 4);\n    *(int *)(iVar7 + 8) = iVar2;\n    *(int *)(iVar7 + 0xc) = iVar2;\n    *(int *)(iVar7 + 0x10) = iVar2;\n    return iVar2;\n  }" if (parenthesized_expression "(iStack_fc != *piVar6)" ( (binary_expression "iStack_fc != *piVar6" identifier != (pointer_expression "*piVar6" * identifier)) )) (compound_statement "{\n    pcVar12 = *(code **)(puVar11 + 0x599fc);\n    (*pcVar12)();\n    piVar6 = *(int **)(pcVar12 + 0x58c74);\n    iVar7 = *piVar6;\n    uVar9 = make_new_node(0);\n    iVar2 = *piVar6;\n    *(undefined4 *)(iVar7 + 4) = uVar9;\n    puVar8 = *(undefined4 **)(iVar2 + 4);\n    uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac);\n    iVar7 = *piVar6;\n    *puVar8 = uVar9;\n    *(undefined4 *)(iVar7 + 0x18) = 0;\n    *(undefined4 *)(iVar7 + 0x1c) = 0;\n    *(undefined4 *)(iVar7 + 0x14) = 0;\n    iVar2 = *(int *)(iVar7 + 4);\n    *(int *)(iVar7 + 8) = iVar2;\n    *(int *)(iVar7 + 0xc) = iVar2;\n    *(int *)(iVar7 + 0x10) = iVar2;\n    return iVar2;\n  }" { (expression_statement "pcVar12 = *(code **)(puVar11 + 0x599fc);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x599fc)" identifier = (pointer_expression "*(code **)(puVar11 + 0x599fc)" * (cast_expression "(code **)(puVar11 + 0x599fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x599fc)" ( (binary_expression "puVar11 + 0x599fc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar6 = *(int **)(pcVar12 + 0x58c74);" (assignment_expression "piVar6 = *(int **)(pcVar12 + 0x58c74)" identifier = (pointer_expression "*(int **)(pcVar12 + 0x58c74)" * (cast_expression "(int **)(pcVar12 + 0x58c74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x58c74)" ( (binary_expression "pcVar12 + 0x58c74" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *piVar6;" (assignment_expression "iVar7 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "uVar9 = make_new_node(0);" (assignment_expression "uVar9 = make_new_node(0)" identifier = (call_expression "make_new_node(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "iVar2 = *piVar6;" (assignment_expression "iVar2 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "*(undefined4 *)(iVar7 + 4) = uVar9;" (assignment_expression "*(undefined4 *)(iVar7 + 4) = uVar9" (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar8 = *(undefined4 **)(iVar2 + 4);" (assignment_expression "puVar8 = *(undefined4 **)(iVar2 + 4)" identifier = (pointer_expression "*(undefined4 **)(iVar2 + 4)" * (cast_expression "(undefined4 **)(iVar2 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac);" (assignment_expression "uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac)" identifier = (call_expression "(**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac)" (parenthesized_expression "(**(code **)(pcVar12 + 0x58c70))" ( (pointer_expression "**(code **)(pcVar12 + 0x58c70)" * (pointer_expression "*(code **)(pcVar12 + 0x58c70)" * (cast_expression "(code **)(pcVar12 + 0x58c70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x58c70)" ( (binary_expression "pcVar12 + 0x58c70" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac)" ( number_literal , (binary_expression "*(int *)(pcVar12 + 0x58c64) + 0x2cac" (pointer_expression "*(int *)(pcVar12 + 0x58c64)" * (cast_expression "(int *)(pcVar12 + 0x58c64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x58c64)" ( (binary_expression "pcVar12 + 0x58c64" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar7 = *piVar6;" (assignment_expression "iVar7 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "*puVar8 = uVar9;" (assignment_expression "*puVar8 = uVar9" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x18) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x18)" * (cast_expression "(undefined4 *)(iVar7 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x1c)" * (cast_expression "(undefined4 *)(iVar7 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x14)" * (cast_expression "(undefined4 *)(iVar7 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar2 = *(int *)(iVar7 + 4);" (assignment_expression "iVar2 = *(int *)(iVar7 + 4)" identifier = (pointer_expression "*(int *)(iVar7 + 4)" * (cast_expression "(int *)(iVar7 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar7 + 8) = iVar2;" (assignment_expression "*(int *)(iVar7 + 8) = iVar2" (pointer_expression "*(int *)(iVar7 + 8)" * (cast_expression "(int *)(iVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar7 + 0xc) = iVar2;" (assignment_expression "*(int *)(iVar7 + 0xc) = iVar2" (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar7 + 0x10) = iVar2;" (assignment_expression "*(int *)(iVar7 + 0x10) = iVar2" (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) = identifier) ;) (return_statement "return iVar2;" return identifier ;) })) (return_statement "return iVar2;" 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT)) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;)) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , IDENT , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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 IDENT + LIT) )))) + LIT) )))) & LIT) )) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , IDENT , IDENT ))) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }))))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return IDENT ;) })) (return_statement return IDENT ;) })))
(function_definition "int diralphasort(undefined4 *param_1,undefined4 *param_2)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined1 auStack_1a0 [24];\n  uint uStack_188;\n  int iStack_fc;\n  undefined *puStack_f4;\n  undefined1 *puStack_f0;\n  undefined4 uStack_ec;\n  undefined4 uStack_e8;\n  code *pcStack_e4;\n  undefined1 auStack_c8 [24];\n  uint local_b0;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_000780f8;\n  uVar9 = *param_1;\n  local_24 = *(int *)PTR___stack_chk_guard_000780f8;\n  uVar10 = *param_2;\n  iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar9,auStack_c8);\n  if ((iVar2 == -1) || ((local_b0 & 0xf000) != 0x4000)) {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)) goto LAB_0001e644;\n  }\n  else {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }\n  }\n  if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }\n  pcVar12 = has_valid_path;\n  iVar2 = local_24;\n  puVar11 = PTR___stack_chk_fail_000780c0;\n  (*(code *)PTR___stack_chk_fail_000780c0)();\n  piVar6 = *(int **)(puVar11 + 0x59a34);\n  puStack_f4 = puVar1;\n  iStack_fc = *piVar6;\n  puStack_f0 = auStack_c8;\n  uStack_ec = uVar9;\n  uStack_e8 = uVar10;\n  pcStack_e4 = pcVar12;\n  uVar9 = (**(code **)(puVar11 + 0x58ea4))(0,iVar2);\n  uVar10 = (**(code **)(puVar11 + 0x59960))(uVar9);\n  iVar2 = (**(code **)(puVar11 + 0x59808))(3,uVar10,auStack_1a0);\n  if (iVar2 == -1) {\n    piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))();\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    if (*piVar4 != 2) {\n      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);\n      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);\n      iVar2 = 0;\n      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);\n      goto LAB_0001e794;\n    }\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50;\n  }\n  else if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }\n  uVar3 = (*pcVar12)(0,iVar2,5);\n  iVar2 = 0;\n  (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10);\nLAB_0001e794:\n  (**(code **)(puVar11 + 0x59a48))(uVar9);\n  if (iStack_fc != *piVar6) {\n    pcVar12 = *(code **)(puVar11 + 0x599fc);\n    (*pcVar12)();\n    piVar6 = *(int **)(pcVar12 + 0x58c74);\n    iVar7 = *piVar6;\n    uVar9 = make_new_node(0);\n    iVar2 = *piVar6;\n    *(undefined4 *)(iVar7 + 4) = uVar9;\n    puVar8 = *(undefined4 **)(iVar2 + 4);\n    uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac);\n    iVar7 = *piVar6;\n    *puVar8 = uVar9;\n    *(undefined4 *)(iVar7 + 0x18) = 0;\n    *(undefined4 *)(iVar7 + 0x1c) = 0;\n    *(undefined4 *)(iVar7 + 0x14) = 0;\n    iVar2 = *(int *)(iVar7 + 4);\n    *(int *)(iVar7 + 8) = iVar2;\n    *(int *)(iVar7 + 0xc) = iVar2;\n    *(int *)(iVar7 + 0x10) = iVar2;\n    return iVar2;\n  }\n  return iVar2;\n}" (primitive_type "int") (function_declarator "diralphasort(undefined4 *param_1,undefined4 *param_2)" (identifier "diralphasort") (parameter_list "(undefined4 *param_1,undefined4 *param_2)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined1 auStack_1a0 [24];\n  uint uStack_188;\n  int iStack_fc;\n  undefined *puStack_f4;\n  undefined1 *puStack_f0;\n  undefined4 uStack_ec;\n  undefined4 uStack_e8;\n  code *pcStack_e4;\n  undefined1 auStack_c8 [24];\n  uint local_b0;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_000780f8;\n  uVar9 = *param_1;\n  local_24 = *(int *)PTR___stack_chk_guard_000780f8;\n  uVar10 = *param_2;\n  iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar9,auStack_c8);\n  if ((iVar2 == -1) || ((local_b0 & 0xf000) != 0x4000)) {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)) goto LAB_0001e644;\n  }\n  else {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }\n  }\n  if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }\n  pcVar12 = has_valid_path;\n  iVar2 = local_24;\n  puVar11 = PTR___stack_chk_fail_000780c0;\n  (*(code *)PTR___stack_chk_fail_000780c0)();\n  piVar6 = *(int **)(puVar11 + 0x59a34);\n  puStack_f4 = puVar1;\n  iStack_fc = *piVar6;\n  puStack_f0 = auStack_c8;\n  uStack_ec = uVar9;\n  uStack_e8 = uVar10;\n  pcStack_e4 = pcVar12;\n  uVar9 = (**(code **)(puVar11 + 0x58ea4))(0,iVar2);\n  uVar10 = (**(code **)(puVar11 + 0x59960))(uVar9);\n  iVar2 = (**(code **)(puVar11 + 0x59808))(3,uVar10,auStack_1a0);\n  if (iVar2 == -1) {\n    piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))();\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    if (*piVar4 != 2) {\n      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);\n      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);\n      iVar2 = 0;\n      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);\n      goto LAB_0001e794;\n    }\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50;\n  }\n  else if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }\n  uVar3 = (*pcVar12)(0,iVar2,5);\n  iVar2 = 0;\n  (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10);\nLAB_0001e794:\n  (**(code **)(puVar11 + 0x59a48))(uVar9);\n  if (iStack_fc != *piVar6) {\n    pcVar12 = *(code **)(puVar11 + 0x599fc);\n    (*pcVar12)();\n    piVar6 = *(int **)(pcVar12 + 0x58c74);\n    iVar7 = *piVar6;\n    uVar9 = make_new_node(0);\n    iVar2 = *piVar6;\n    *(undefined4 *)(iVar7 + 4) = uVar9;\n    puVar8 = *(undefined4 **)(iVar2 + 4);\n    uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac);\n    iVar7 = *piVar6;\n    *puVar8 = uVar9;\n    *(undefined4 *)(iVar7 + 0x18) = 0;\n    *(undefined4 *)(iVar7 + 0x1c) = 0;\n    *(undefined4 *)(iVar7 + 0x14) = 0;\n    iVar2 = *(int *)(iVar7 + 4);\n    *(int *)(iVar7 + 8) = iVar2;\n    *(int *)(iVar7 + 0xc) = iVar2;\n    *(int *)(iVar7 + 0x10) = iVar2;\n    return iVar2;\n  }\n  return iVar2;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "undefined *puVar11;" (type_identifier "undefined") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "code *pcVar12;" (type_identifier "code") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "undefined1 auStack_1a0 [24];" (type_identifier "undefined1") (array_declarator "auStack_1a0 [24]" (identifier "auStack_1a0") ([ "[") (number_literal "24") (] "]")) (; ";")) (declaration "uint uStack_188;" (type_identifier "uint") (identifier "uStack_188") (; ";")) (declaration "int iStack_fc;" (primitive_type "int") (identifier "iStack_fc") (; ";")) (declaration "undefined *puStack_f4;" (type_identifier "undefined") (pointer_declarator "*puStack_f4" (* "*") (identifier "puStack_f4")) (; ";")) (declaration "undefined1 *puStack_f0;" (type_identifier "undefined1") (pointer_declarator "*puStack_f0" (* "*") (identifier "puStack_f0")) (; ";")) (declaration "undefined4 uStack_ec;" (type_identifier "undefined4") (identifier "uStack_ec") (; ";")) (declaration "undefined4 uStack_e8;" (type_identifier "undefined4") (identifier "uStack_e8") (; ";")) (declaration "code *pcStack_e4;" (type_identifier "code") (pointer_declarator "*pcStack_e4" (* "*") (identifier "pcStack_e4")) (; ";")) (declaration "undefined1 auStack_c8 [24];" (type_identifier "undefined1") (array_declarator "auStack_c8 [24]" (identifier "auStack_c8") ([ "[") (number_literal "24") (] "]")) (; ";")) (declaration "uint local_b0;" (type_identifier "uint") (identifier "local_b0") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_000780f8;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000780f8" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_000780f8")) (; ";")) (expression_statement "uVar9 = *param_1;" (assignment_expression "uVar9 = *param_1" (identifier "uVar9") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_000780f8;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_000780f8" (identifier "local_24") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000780f8" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000780f8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000780f8")))) (; ";")) (expression_statement "uVar10 = *param_2;" (assignment_expression "uVar10 = *param_2" (identifier "uVar10") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar9,auStack_c8);" (assignment_expression "iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar9,auStack_c8)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR___xstat64_00077ecc)(3,uVar9,auStack_c8)" (parenthesized_expression "(*(code *)PTR___xstat64_00077ecc)" (( "(") (pointer_expression "*(code *)PTR___xstat64_00077ecc" (* "*") (cast_expression "(code *)PTR___xstat64_00077ecc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___xstat64_00077ecc"))) () ")")) (argument_list "(3,uVar9,auStack_c8)" (( "(") (number_literal "3") (, ",") (identifier "uVar9") (, ",") (identifier "auStack_c8") () ")")))) (; ";")) (if_statement "if ((iVar2 == -1) || ((local_b0 & 0xf000) != 0x4000)) {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)) goto LAB_0001e644;\n  }\n  else {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }\n  }" (if "if") (parenthesized_expression "((iVar2 == -1) || ((local_b0 & 0xf000) != 0x4000))" (( "(") (binary_expression "(iVar2 == -1) || ((local_b0 & 0xf000) != 0x4000)" (parenthesized_expression "(iVar2 == -1)" (( "(") (binary_expression "iVar2 == -1" (identifier "iVar2") (== "==") (number_literal "-1")) () ")")) (|| "||") (parenthesized_expression "((local_b0 & 0xf000) != 0x4000)" (( "(") (binary_expression "(local_b0 & 0xf000) != 0x4000" (parenthesized_expression "(local_b0 & 0xf000)" (( "(") (binary_expression "local_b0 & 0xf000" (identifier "local_b0") (& "&") (number_literal "0xf000")) () ")")) (!= "!=") (number_literal "0x4000")) () ")"))) () ")")) (compound_statement "{\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)) goto LAB_0001e644;\n  }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);" (assignment_expression "iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8)" (parenthesized_expression "(*(code *)PTR___xstat64_00077ecc)" (( "(") (pointer_expression "*(code *)PTR___xstat64_00077ecc" (* "*") (cast_expression "(code *)PTR___xstat64_00077ecc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___xstat64_00077ecc"))) () ")")) (argument_list "(3,uVar10,auStack_c8)" (( "(") (number_literal "3") (, ",") (identifier "uVar10") (, ",") (identifier "auStack_c8") () ")")))) (; ";")) (if_statement "if ((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)) goto LAB_0001e644;" (if "if") (parenthesized_expression "((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000))" (( "(") (binary_expression "(iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)" (parenthesized_expression "(iVar2 == -1)" (( "(") (binary_expression "iVar2 == -1" (identifier "iVar2") (== "==") (number_literal "-1")) () ")")) (|| "||") (parenthesized_expression "(iVar2 = 1, (local_b0 & 0xf000) != 0x4000)" (( "(") (comma_expression "iVar2 = 1, (local_b0 & 0xf000) != 0x4000" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (, ",") (binary_expression "(local_b0 & 0xf000) != 0x4000" (parenthesized_expression "(local_b0 & 0xf000)" (( "(") (binary_expression "local_b0 & 0xf000" (identifier "local_b0") (& "&") (number_literal "0xf000")) () ")")) (!= "!=") (number_literal "0x4000"))) () ")"))) () ")")) (goto_statement "goto LAB_0001e644;" (goto "goto") (statement_identifier "LAB_0001e644") (; ";"))) (} "}")) (else_clause "else {\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }\n  }" (else "else") (compound_statement "{\n    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);\n    if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }\n  }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);" (assignment_expression "iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8)" (parenthesized_expression "(*(code *)PTR___xstat64_00077ecc)" (( "(") (pointer_expression "*(code *)PTR___xstat64_00077ecc" (* "*") (cast_expression "(code *)PTR___xstat64_00077ecc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___xstat64_00077ecc"))) () ")")) (argument_list "(3,uVar10,auStack_c8)" (( "(") (number_literal "3") (, ",") (identifier "uVar10") (, ",") (identifier "auStack_c8") () ")")))) (; ";")) (if_statement "if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }" (if "if") (parenthesized_expression "((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000))" (( "(") (binary_expression "(iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)" (parenthesized_expression "(iVar2 != -1)" (( "(") (binary_expression "iVar2 != -1" (identifier "iVar2") (!= "!=") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = -1, (local_b0 & 0xf000) == 0x4000)" (( "(") (comma_expression "iVar2 = -1, (local_b0 & 0xf000) == 0x4000" (assignment_expression "iVar2 = -1" (identifier "iVar2") (= "=") (number_literal "-1")) (, ",") (binary_expression "(local_b0 & 0xf000) == 0x4000" (parenthesized_expression "(local_b0 & 0xf000)" (( "(") (binary_expression "local_b0 & 0xf000" (identifier "local_b0") (& "&") (number_literal "0xf000")) () ")")) (== "==") (number_literal "0x4000"))) () ")"))) () ")")) (compound_statement "{\nLAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);\n    }" ({ "{") (labeled_statement "LAB_0001e644:\n      iVar2 = mbstrcasecmp(uVar9,uVar10);" (statement_identifier "LAB_0001e644") (: ":") (expression_statement "iVar2 = mbstrcasecmp(uVar9,uVar10);" (assignment_expression "iVar2 = mbstrcasecmp(uVar9,uVar10)" (identifier "iVar2") (= "=") (call_expression "mbstrcasecmp(uVar9,uVar10)" (identifier "mbstrcasecmp") (argument_list "(uVar9,uVar10)" (( "(") (identifier "uVar9") (, ",") (identifier "uVar10") () ")")))) (; ";"))) (} "}"))) (} "}")))) (if_statement "if (local_24 == *(int *)puVar1) {\n    return iVar2;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)puVar1)" (( "(") (binary_expression "local_24 == *(int *)puVar1" (identifier "local_24") (== "==") (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n    return iVar2;\n  }" ({ "{") (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (expression_statement "pcVar12 = has_valid_path;" (assignment_expression "pcVar12 = has_valid_path" (identifier "pcVar12") (= "=") (identifier "has_valid_path")) (; ";")) (expression_statement "iVar2 = local_24;" (assignment_expression "iVar2 = local_24" (identifier "iVar2") (= "=") (identifier "local_24")) (; ";")) (expression_statement "puVar11 = PTR___stack_chk_fail_000780c0;" (assignment_expression "puVar11 = PTR___stack_chk_fail_000780c0" (identifier "puVar11") (= "=") (identifier "PTR___stack_chk_fail_000780c0")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000780c0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000780c0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000780c0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000780c0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000780c0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000780c0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar6 = *(int **)(puVar11 + 0x59a34);" (assignment_expression "piVar6 = *(int **)(puVar11 + 0x59a34)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(puVar11 + 0x59a34)" (* "*") (cast_expression "(int **)(puVar11 + 0x59a34)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x59a34)" (( "(") (binary_expression "puVar11 + 0x59a34" (identifier "puVar11") (+ "+") (number_literal "0x59a34")) () ")"))))) (; ";")) (expression_statement "puStack_f4 = puVar1;" (assignment_expression "puStack_f4 = puVar1" (identifier "puStack_f4") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "iStack_fc = *piVar6;" (assignment_expression "iStack_fc = *piVar6" (identifier "iStack_fc") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "puStack_f0 = auStack_c8;" (assignment_expression "puStack_f0 = auStack_c8" (identifier "puStack_f0") (= "=") (identifier "auStack_c8")) (; ";")) (expression_statement "uStack_ec = uVar9;" (assignment_expression "uStack_ec = uVar9" (identifier "uStack_ec") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uStack_e8 = uVar10;" (assignment_expression "uStack_e8 = uVar10" (identifier "uStack_e8") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "pcStack_e4 = pcVar12;" (assignment_expression "pcStack_e4 = pcVar12" (identifier "pcStack_e4") (= "=") (identifier "pcVar12")) (; ";")) (expression_statement "uVar9 = (**(code **)(puVar11 + 0x58ea4))(0,iVar2);" (assignment_expression "uVar9 = (**(code **)(puVar11 + 0x58ea4))(0,iVar2)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(puVar11 + 0x58ea4))(0,iVar2)" (parenthesized_expression "(**(code **)(puVar11 + 0x58ea4))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x58ea4)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x58ea4)" (* "*") (cast_expression "(code **)(puVar11 + 0x58ea4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x58ea4)" (( "(") (binary_expression "puVar11 + 0x58ea4" (identifier "puVar11") (+ "+") (number_literal "0x58ea4")) () ")"))))) () ")")) (argument_list "(0,iVar2)" (( "(") (number_literal "0") (, ",") (identifier "iVar2") () ")")))) (; ";")) (expression_statement "uVar10 = (**(code **)(puVar11 + 0x59960))(uVar9);" (assignment_expression "uVar10 = (**(code **)(puVar11 + 0x59960))(uVar9)" (identifier "uVar10") (= "=") (call_expression "(**(code **)(puVar11 + 0x59960))(uVar9)" (parenthesized_expression "(**(code **)(puVar11 + 0x59960))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x59960)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x59960)" (* "*") (cast_expression "(code **)(puVar11 + 0x59960)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x59960)" (( "(") (binary_expression "puVar11 + 0x59960" (identifier "puVar11") (+ "+") (number_literal "0x59960")) () ")"))))) () ")")) (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")")))) (; ";")) (expression_statement "iVar2 = (**(code **)(puVar11 + 0x59808))(3,uVar10,auStack_1a0);" (assignment_expression "iVar2 = (**(code **)(puVar11 + 0x59808))(3,uVar10,auStack_1a0)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(puVar11 + 0x59808))(3,uVar10,auStack_1a0)" (parenthesized_expression "(**(code **)(puVar11 + 0x59808))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x59808)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x59808)" (* "*") (cast_expression "(code **)(puVar11 + 0x59808)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x59808)" (( "(") (binary_expression "puVar11 + 0x59808" (identifier "puVar11") (+ "+") (number_literal "0x59808")) () ")"))))) () ")")) (argument_list "(3,uVar10,auStack_1a0)" (( "(") (number_literal "3") (, ",") (identifier "uVar10") (, ",") (identifier "auStack_1a0") () ")")))) (; ";")) (if_statement "if (iVar2 == -1) {\n    piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))();\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    if (*piVar4 != 2) {\n      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);\n      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);\n      iVar2 = 0;\n      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);\n      goto LAB_0001e794;\n    }\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50;\n  }\n  else if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }" (if "if") (parenthesized_expression "(iVar2 == -1)" (( "(") (binary_expression "iVar2 == -1" (identifier "iVar2") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))();\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    if (*piVar4 != 2) {\n      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);\n      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);\n      iVar2 = 0;\n      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);\n      goto LAB_0001e794;\n    }\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50;\n  }" ({ "{") (expression_statement "piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))();" (assignment_expression "piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))()" (identifier "piVar4") (= "=") (cast_expression "(int *)(**(code **)(puVar11 + 0x598ec))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar11 + 0x598ec))()" (parenthesized_expression "(**(code **)(puVar11 + 0x598ec))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x598ec)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x598ec)" (* "*") (cast_expression "(code **)(puVar11 + 0x598ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x598ec)" (( "(") (binary_expression "puVar11 + 0x598ec" (identifier "puVar11") (+ "+") (number_literal "0x598ec")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pcVar12 = *(code **)(puVar11 + 0x59a08);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x59a08)" (identifier "pcVar12") (= "=") (pointer_expression "*(code **)(puVar11 + 0x59a08)" (* "*") (cast_expression "(code **)(puVar11 + 0x59a08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x59a08)" (( "(") (binary_expression "puVar11 + 0x59a08" (identifier "puVar11") (+ "+") (number_literal "0x59a08")) () ")"))))) (; ";")) (if_statement "if (*piVar4 != 2) {\n      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);\n      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);\n      iVar2 = 0;\n      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);\n      goto LAB_0001e794;\n    }" (if "if") (parenthesized_expression "(*piVar4 != 2)" (( "(") (binary_expression "*piVar4 != 2" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);\n      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);\n      iVar2 = 0;\n      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);\n      goto LAB_0001e794;\n    }" ({ "{") (expression_statement "uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);" (assignment_expression "uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5)" (identifier "uVar3") (= "=") (call_expression "(*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5)" (parenthesized_expression "(*pcVar12)" (( "(") (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) () ")")) (argument_list "(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar11 + 0x58e98) + -0xf30" (pointer_expression "*(int *)(puVar11 + 0x58e98)" (* "*") (cast_expression "(int *)(puVar11 + 0x58e98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x58e98)" (( "(") (binary_expression "puVar11 + 0x58e98" (identifier "puVar11") (+ "+") (number_literal "0x58e98")) () ")")))) (+ "+") (number_literal "-0xf30")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);" (assignment_expression "uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4)" (identifier "uVar5") (= "=") (call_expression "(**(code **)(puVar11 + 0x59964))(*piVar4)" (parenthesized_expression "(**(code **)(puVar11 + 0x59964))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x59964)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x59964)" (* "*") (cast_expression "(code **)(puVar11 + 0x59964)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x59964)" (( "(") (binary_expression "puVar11 + 0x59964" (identifier "puVar11") (+ "+") (number_literal "0x59964")) () ")"))))) () ")")) (argument_list "(*piVar4)" (( "(") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) () ")")))) (; ";")) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);" (call_expression "(**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5)" (parenthesized_expression "(**(code **)(puVar11 + 0x58eb8))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x58eb8)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x58eb8)" (* "*") (cast_expression "(code **)(puVar11 + 0x58eb8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x58eb8)" (( "(") (binary_expression "puVar11 + 0x58eb8" (identifier "puVar11") (+ "+") (number_literal "0x58eb8")) () ")"))))) () ")")) (argument_list "(3,uVar3,uVar10,uVar5)" (( "(") (number_literal "3") (, ",") (identifier "uVar3") (, ",") (identifier "uVar10") (, ",") (identifier "uVar5") () ")"))) (; ";")) (goto_statement "goto LAB_0001e794;" (goto "goto") (statement_identifier "LAB_0001e794") (; ";")) (} "}"))) (expression_statement "iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50;" (assignment_expression "iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50" (identifier "iVar2") (= "=") (binary_expression "*(int *)(puVar11 + 0x58e98) + -0xf50" (pointer_expression "*(int *)(puVar11 + 0x58e98)" (* "*") (cast_expression "(int *)(puVar11 + 0x58e98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x58e98)" (( "(") (binary_expression "puVar11 + 0x58e98" (identifier "puVar11") (+ "+") (number_literal "0x58e98")) () ")")))) (+ "+") (number_literal "-0xf50"))) (; ";")) (} "}")) (else_clause "else if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }" (else "else") (if_statement "if ((uStack_188 & 0xf000) == 0x4000) {\n    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;\n  }\n  else {\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }" (if "if") (parenthesized_expression "((uStack_188 & 0xf000) == 0x4000)" (( "(") (binary_expression "(uStack_188 & 0xf000) == 0x4000" (parenthesized_expression "(uStack_188 & 0xf000)" (( "(") (binary_expression "uStack_188 & 0xf000" (identifier "uStack_188") (& "&") (number_literal "0xf000")) () ")")) (== "==") (number_literal "0x4000")) () ")")) (compound_statement "{\n    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);\n    if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;\n  }" ({ "{") (expression_statement "iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);" (assignment_expression "iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(puVar11 + 0x598b8))(uVar10,1)" (parenthesized_expression "(**(code **)(puVar11 + 0x598b8))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x598b8)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x598b8)" (* "*") (cast_expression "(code **)(puVar11 + 0x598b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x598b8)" (( "(") (binary_expression "puVar11 + 0x598b8" (identifier "puVar11") (+ "+") (number_literal "0x598b8")) () ")"))))) () ")")) (argument_list "(uVar10,1)" (( "(") (identifier "uVar10") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar2 != -1) {\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }" (if "if") (parenthesized_expression "(iVar2 != -1)" (( "(") (binary_expression "iVar2 != -1" (identifier "iVar2") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }\n      goto LAB_0001e794;\n    }" ({ "{") (if_statement "if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {\n        iVar2 = 1;\n      }\n      else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }" (if "if") (parenthesized_expression "(((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1))" (( "(") (binary_expression "((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||\n         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)" (parenthesized_expression "((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0)" (( "(") (binary_expression "(*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0" (parenthesized_expression "(*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8)" (( "(") (binary_expression "*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8" (pointer_expression "*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4)" (* "*") (cast_expression "(uint *)(*(int *)(puVar11 + 0x58ed8) + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar11 + 0x58ed8) + 4)" (( "(") (binary_expression "*(int *)(puVar11 + 0x58ed8) + 4" (pointer_expression "*(int *)(puVar11 + 0x58ed8)" (* "*") (cast_expression "(int *)(puVar11 + 0x58ed8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x58ed8)" (( "(") (binary_expression "puVar11 + 0x58ed8" (identifier "puVar11") (+ "+") (number_literal "0x58ed8")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)" (( "(") (comma_expression "iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1" (assignment_expression "iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(puVar11 + 0x598b8))(uVar10,2)" (parenthesized_expression "(**(code **)(puVar11 + 0x598b8))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x598b8)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x598b8)" (* "*") (cast_expression "(code **)(puVar11 + 0x598b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x598b8)" (( "(") (binary_expression "puVar11 + 0x598b8" (identifier "puVar11") (+ "+") (number_literal "0x598b8")) () ")"))))) () ")")) (argument_list "(uVar10,2)" (( "(") (identifier "uVar10") (, ",") (number_literal "2") () ")")))) (, ",") (binary_expression "iVar2 != -1" (identifier "iVar2") (!= "!=") (number_literal "-1"))) () ")"))) () ")")) (compound_statement "{\n        iVar2 = 1;\n      }" ({ "{") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }" (else "else") (compound_statement "{\n        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);\n        iVar2 = 0;\n        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);\n      }" ({ "{") (expression_statement "uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);" (assignment_expression "uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5)" (identifier "uVar3") (= "=") (call_expression "(**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5)" (parenthesized_expression "(**(code **)(puVar11 + 0x59a08))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x59a08)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x59a08)" (* "*") (cast_expression "(code **)(puVar11 + 0x59a08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x59a08)" (( "(") (binary_expression "puVar11 + 0x59a08" (identifier "puVar11") (+ "+") (number_literal "0x59a08")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar11 + 0x58e98) + -0xee4" (pointer_expression "*(int *)(puVar11 + 0x58e98)" (* "*") (cast_expression "(int *)(puVar11 + 0x58e98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x58e98)" (( "(") (binary_expression "puVar11 + 0x58e98" (identifier "puVar11") (+ "+") (number_literal "0x58e98")) () ")")))) (+ "+") (number_literal "-0xee4")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);" (call_expression "(**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10)" (parenthesized_expression "(**(code **)(puVar11 + 0x58eb8))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x58eb8)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x58eb8)" (* "*") (cast_expression "(code **)(puVar11 + 0x58eb8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x58eb8)" (( "(") (binary_expression "puVar11 + 0x58eb8" (identifier "puVar11") (+ "+") (number_literal "0x58eb8")) () ")"))))) () ")")) (argument_list "(2,uVar3,uVar10)" (( "(") (number_literal "2") (, ",") (identifier "uVar3") (, ",") (identifier "uVar10") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0001e794;" (goto "goto") (statement_identifier "LAB_0001e794") (; ";")) (} "}"))) (expression_statement "pcVar12 = *(code **)(puVar11 + 0x59a08);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x59a08)" (identifier "pcVar12") (= "=") (pointer_expression "*(code **)(puVar11 + 0x59a08)" (* "*") (cast_expression "(code **)(puVar11 + 0x59a08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x59a08)" (( "(") (binary_expression "puVar11 + 0x59a08" (identifier "puVar11") (+ "+") (number_literal "0x59a08")) () ")"))))) (; ";")) (expression_statement "iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;" (assignment_expression "iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00" (identifier "iVar2") (= "=") (binary_expression "*(int *)(puVar11 + 0x58e98) + -0xf00" (pointer_expression "*(int *)(puVar11 + 0x58e98)" (* "*") (cast_expression "(int *)(puVar11 + 0x58e98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x58e98)" (( "(") (binary_expression "puVar11 + 0x58e98" (identifier "puVar11") (+ "+") (number_literal "0x58e98")) () ")")))) (+ "+") (number_literal "-0xf00"))) (; ";")) (} "}")) (else_clause "else {\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }" (else "else") (compound_statement "{\n    pcVar12 = *(code **)(puVar11 + 0x59a08);\n    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;\n  }" ({ "{") (expression_statement "pcVar12 = *(code **)(puVar11 + 0x59a08);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x59a08)" (identifier "pcVar12") (= "=") (pointer_expression "*(code **)(puVar11 + 0x59a08)" (* "*") (cast_expression "(code **)(puVar11 + 0x59a08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x59a08)" (( "(") (binary_expression "puVar11 + 0x59a08" (identifier "puVar11") (+ "+") (number_literal "0x59a08")) () ")"))))) (; ";")) (expression_statement "iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;" (assignment_expression "iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20" (identifier "iVar2") (= "=") (binary_expression "*(int *)(puVar11 + 0x58e98) + -0xf20" (pointer_expression "*(int *)(puVar11 + 0x58e98)" (* "*") (cast_expression "(int *)(puVar11 + 0x58e98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x58e98)" (( "(") (binary_expression "puVar11 + 0x58e98" (identifier "puVar11") (+ "+") (number_literal "0x58e98")) () ")")))) (+ "+") (number_literal "-0xf20"))) (; ";")) (} "}")))))) (expression_statement "uVar3 = (*pcVar12)(0,iVar2,5);" (assignment_expression "uVar3 = (*pcVar12)(0,iVar2,5)" (identifier "uVar3") (= "=") (call_expression "(*pcVar12)(0,iVar2,5)" (parenthesized_expression "(*pcVar12)" (( "(") (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) () ")")) (argument_list "(0,iVar2,5)" (( "(") (number_literal "0") (, ",") (identifier "iVar2") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10);" (call_expression "(**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10)" (parenthesized_expression "(**(code **)(puVar11 + 0x58eb8))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x58eb8)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x58eb8)" (* "*") (cast_expression "(code **)(puVar11 + 0x58eb8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x58eb8)" (( "(") (binary_expression "puVar11 + 0x58eb8" (identifier "puVar11") (+ "+") (number_literal "0x58eb8")) () ")"))))) () ")")) (argument_list "(3,uVar3,uVar10)" (( "(") (number_literal "3") (, ",") (identifier "uVar3") (, ",") (identifier "uVar10") () ")"))) (; ";")) (labeled_statement "LAB_0001e794:\n  (**(code **)(puVar11 + 0x59a48))(uVar9);" (statement_identifier "LAB_0001e794") (: ":") (expression_statement "(**(code **)(puVar11 + 0x59a48))(uVar9);" (call_expression "(**(code **)(puVar11 + 0x59a48))(uVar9)" (parenthesized_expression "(**(code **)(puVar11 + 0x59a48))" (( "(") (pointer_expression "**(code **)(puVar11 + 0x59a48)" (* "*") (pointer_expression "*(code **)(puVar11 + 0x59a48)" (* "*") (cast_expression "(code **)(puVar11 + 0x59a48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x59a48)" (( "(") (binary_expression "puVar11 + 0x59a48" (identifier "puVar11") (+ "+") (number_literal "0x59a48")) () ")"))))) () ")")) (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";"))) (if_statement "if (iStack_fc != *piVar6) {\n    pcVar12 = *(code **)(puVar11 + 0x599fc);\n    (*pcVar12)();\n    piVar6 = *(int **)(pcVar12 + 0x58c74);\n    iVar7 = *piVar6;\n    uVar9 = make_new_node(0);\n    iVar2 = *piVar6;\n    *(undefined4 *)(iVar7 + 4) = uVar9;\n    puVar8 = *(undefined4 **)(iVar2 + 4);\n    uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac);\n    iVar7 = *piVar6;\n    *puVar8 = uVar9;\n    *(undefined4 *)(iVar7 + 0x18) = 0;\n    *(undefined4 *)(iVar7 + 0x1c) = 0;\n    *(undefined4 *)(iVar7 + 0x14) = 0;\n    iVar2 = *(int *)(iVar7 + 4);\n    *(int *)(iVar7 + 8) = iVar2;\n    *(int *)(iVar7 + 0xc) = iVar2;\n    *(int *)(iVar7 + 0x10) = iVar2;\n    return iVar2;\n  }" (if "if") (parenthesized_expression "(iStack_fc != *piVar6)" (( "(") (binary_expression "iStack_fc != *piVar6" (identifier "iStack_fc") (!= "!=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) () ")")) (compound_statement "{\n    pcVar12 = *(code **)(puVar11 + 0x599fc);\n    (*pcVar12)();\n    piVar6 = *(int **)(pcVar12 + 0x58c74);\n    iVar7 = *piVar6;\n    uVar9 = make_new_node(0);\n    iVar2 = *piVar6;\n    *(undefined4 *)(iVar7 + 4) = uVar9;\n    puVar8 = *(undefined4 **)(iVar2 + 4);\n    uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac);\n    iVar7 = *piVar6;\n    *puVar8 = uVar9;\n    *(undefined4 *)(iVar7 + 0x18) = 0;\n    *(undefined4 *)(iVar7 + 0x1c) = 0;\n    *(undefined4 *)(iVar7 + 0x14) = 0;\n    iVar2 = *(int *)(iVar7 + 4);\n    *(int *)(iVar7 + 8) = iVar2;\n    *(int *)(iVar7 + 0xc) = iVar2;\n    *(int *)(iVar7 + 0x10) = iVar2;\n    return iVar2;\n  }" ({ "{") (expression_statement "pcVar12 = *(code **)(puVar11 + 0x599fc);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x599fc)" (identifier "pcVar12") (= "=") (pointer_expression "*(code **)(puVar11 + 0x599fc)" (* "*") (cast_expression "(code **)(puVar11 + 0x599fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x599fc)" (( "(") (binary_expression "puVar11 + 0x599fc" (identifier "puVar11") (+ "+") (number_literal "0x599fc")) () ")"))))) (; ";")) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" (( "(") (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar6 = *(int **)(pcVar12 + 0x58c74);" (assignment_expression "piVar6 = *(int **)(pcVar12 + 0x58c74)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(pcVar12 + 0x58c74)" (* "*") (cast_expression "(int **)(pcVar12 + 0x58c74)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar12 + 0x58c74)" (( "(") (binary_expression "pcVar12 + 0x58c74" (identifier "pcVar12") (+ "+") (number_literal "0x58c74")) () ")"))))) (; ";")) (expression_statement "iVar7 = *piVar6;" (assignment_expression "iVar7 = *piVar6" (identifier "iVar7") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "uVar9 = make_new_node(0);" (assignment_expression "uVar9 = make_new_node(0)" (identifier "uVar9") (= "=") (call_expression "make_new_node(0)" (identifier "make_new_node") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar2 = *piVar6;" (assignment_expression "iVar2 = *piVar6" (identifier "iVar2") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 4) = uVar9;" (assignment_expression "*(undefined4 *)(iVar7 + 4) = uVar9" (pointer_expression "*(undefined4 *)(iVar7 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "puVar8 = *(undefined4 **)(iVar2 + 4);" (assignment_expression "puVar8 = *(undefined4 **)(iVar2 + 4)" (identifier "puVar8") (= "=") (pointer_expression "*(undefined4 **)(iVar2 + 4)" (* "*") (cast_expression "(undefined4 **)(iVar2 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac);" (assignment_expression "uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac)" (parenthesized_expression "(**(code **)(pcVar12 + 0x58c70))" (( "(") (pointer_expression "**(code **)(pcVar12 + 0x58c70)" (* "*") (pointer_expression "*(code **)(pcVar12 + 0x58c70)" (* "*") (cast_expression "(code **)(pcVar12 + 0x58c70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar12 + 0x58c70)" (( "(") (binary_expression "pcVar12 + 0x58c70" (identifier "pcVar12") (+ "+") (number_literal "0x58c70")) () ")"))))) () ")")) (argument_list "(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(pcVar12 + 0x58c64) + 0x2cac" (pointer_expression "*(int *)(pcVar12 + 0x58c64)" (* "*") (cast_expression "(int *)(pcVar12 + 0x58c64)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar12 + 0x58c64)" (( "(") (binary_expression "pcVar12 + 0x58c64" (identifier "pcVar12") (+ "+") (number_literal "0x58c64")) () ")")))) (+ "+") (number_literal "0x2cac")) () ")")))) (; ";")) (expression_statement "iVar7 = *piVar6;" (assignment_expression "iVar7 = *piVar6" (identifier "iVar7") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "*puVar8 = uVar9;" (assignment_expression "*puVar8 = uVar9" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x18) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x18)" (( "(") (binary_expression "iVar7 + 0x18" (identifier "iVar7") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x1c)" (( "(") (binary_expression "iVar7 + 0x1c" (identifier "iVar7") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x14)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar2 = *(int *)(iVar7 + 4);" (assignment_expression "iVar2 = *(int *)(iVar7 + 4)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(iVar7 + 4)" (* "*") (cast_expression "(int *)(iVar7 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar7 + 8) = iVar2;" (assignment_expression "*(int *)(iVar7 + 8) = iVar2" (pointer_expression "*(int *)(iVar7 + 8)" (* "*") (cast_expression "(int *)(iVar7 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "*(int *)(iVar7 + 0xc) = iVar2;" (assignment_expression "*(int *)(iVar7 + 0xc) = iVar2" (pointer_expression "*(int *)(iVar7 + 0xc)" (* "*") (cast_expression "(int *)(iVar7 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "*(int *)(iVar7 + 0x10) = iVar2;" (assignment_expression "*(int *)(iVar7 + 0x10) = iVar2" (pointer_expression "*(int *)(iVar7 + 0x10)" (* "*") (cast_expression "(int *)(iVar7 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal) (binary_expression left: (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: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (identifier) (identifier) (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) 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: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (binary_expression left: (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: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (identifier) (identifier))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal) (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (identifier) (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (binary_expression left: (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: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) 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))))))) (expression_statement (assignment_expression left: (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: (identifier))) (expression_statement (assignment_expression left: (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: (identifier))) (expression_statement (assignment_expression left: (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: (identifier))) (return_statement (identifier)))) (return_statement (identifier)))))

int MASKED(undefined4 *param_1,undefined4 *param_2)

{
  undefined *puVar1;
  int iVar2;
  undefined4 uVar3;
  int *piVar4;
  undefined4 uVar5;
  int *piVar6;
  int iVar7;
  undefined4 *puVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined *puVar11;
  code *pcVar12;
  undefined1 auStack_1a0 [24];
  uint uStack_188;
  int iStack_fc;
  undefined *puStack_f4;
  undefined1 *puStack_f0;
  undefined4 uStack_ec;
  undefined4 uStack_e8;
  code *pcStack_e4;
  undefined1 auStack_c8 [24];
  uint local_b0;
  int local_24;
  
  puVar1 = PTR___stack_chk_guard_000780f8;
  uVar9 = *param_1;
  local_24 = *(int *)PTR___stack_chk_guard_000780f8;
  uVar10 = *param_2;
  iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar9,auStack_c8);
  if ((iVar2 == -1) || ((local_b0 & 0xf000) != 0x4000)) {
    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);
    if ((iVar2 == -1) || (iVar2 = 1, (local_b0 & 0xf000) != 0x4000)) goto LAB_0001e644;
  }
  else {
    iVar2 = (*(code *)PTR___xstat64_00077ecc)(3,uVar10,auStack_c8);
    if ((iVar2 != -1) && (iVar2 = -1, (local_b0 & 0xf000) == 0x4000)) {
LAB_0001e644:
      iVar2 = mbstrcasecmp(uVar9,uVar10);
    }
  }
  if (local_24 == *(int *)puVar1) {
    return iVar2;
  }
  pcVar12 = has_valid_path;
  iVar2 = local_24;
  puVar11 = PTR___stack_chk_fail_000780c0;
  (*(code *)PTR___stack_chk_fail_000780c0)();
  piVar6 = *(int **)(puVar11 + 0x59a34);
  puStack_f4 = puVar1;
  iStack_fc = *piVar6;
  puStack_f0 = auStack_c8;
  uStack_ec = uVar9;
  uStack_e8 = uVar10;
  pcStack_e4 = pcVar12;
  uVar9 = (**(code **)(puVar11 + 0x58ea4))(0,iVar2);
  uVar10 = (**(code **)(puVar11 + 0x59960))(uVar9);
  iVar2 = (**(code **)(puVar11 + 0x59808))(3,uVar10,auStack_1a0);
  if (iVar2 == -1) {
    piVar4 = (int *)(**(code **)(puVar11 + 0x598ec))();
    pcVar12 = *(code **)(puVar11 + 0x59a08);
    if (*piVar4 != 2) {
      uVar3 = (*pcVar12)(0,*(int *)(puVar11 + 0x58e98) + -0xf30,5);
      uVar5 = (**(code **)(puVar11 + 0x59964))(*piVar4);
      iVar2 = 0;
      (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10,uVar5);
      goto LAB_0001e794;
    }
    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf50;
  }
  else if ((uStack_188 & 0xf000) == 0x4000) {
    iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,1);
    if (iVar2 != -1) {
      if (((*(uint *)(*(int *)(puVar11 + 0x58ed8) + 4) & 8) == 0) ||
         (iVar2 = (**(code **)(puVar11 + 0x598b8))(uVar10,2), iVar2 != -1)) {
        iVar2 = 1;
      }
      else {
        uVar3 = (**(code **)(puVar11 + 0x59a08))(0,*(int *)(puVar11 + 0x58e98) + -0xee4,5);
        iVar2 = 0;
        (**(code **)(puVar11 + 0x58eb8))(2,uVar3,uVar10);
      }
      goto LAB_0001e794;
    }
    pcVar12 = *(code **)(puVar11 + 0x59a08);
    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf00;
  }
  else {
    pcVar12 = *(code **)(puVar11 + 0x59a08);
    iVar2 = *(int *)(puVar11 + 0x58e98) + -0xf20;
  }
  uVar3 = (*pcVar12)(0,iVar2,5);
  iVar2 = 0;
  (**(code **)(puVar11 + 0x58eb8))(3,uVar3,uVar10);
LAB_0001e794:
  (**(code **)(puVar11 + 0x59a48))(uVar9);
  if (iStack_fc != *piVar6) {
    pcVar12 = *(code **)(puVar11 + 0x599fc);
    (*pcVar12)();
    piVar6 = *(int **)(pcVar12 + 0x58c74);
    iVar7 = *piVar6;
    uVar9 = make_new_node(0);
    iVar2 = *piVar6;
    *(undefined4 *)(iVar7 + 4) = uVar9;
    puVar8 = *(undefined4 **)(iVar2 + 4);
    uVar9 = (**(code **)(pcVar12 + 0x58c70))(0,*(int *)(pcVar12 + 0x58c64) + 0x2cac);
    iVar7 = *piVar6;
    *puVar8 = uVar9;
    *(undefined4 *)(iVar7 + 0x18) = 0;
    *(undefined4 *)(iVar7 + 0x1c) = 0;
    *(undefined4 *)(iVar7 + 0x14) = 0;
    iVar2 = *(int *)(iVar7 + 4);
    *(int *)(iVar7 + 8) = iVar2;
    *(int *)(iVar7 + 0xc) = iVar2;
    *(int *)(iVar7 + 0x10) = iVar2;
    return iVar2;
  }
  return iVar2;
}

