
PROCESS * find_last_proc(int job,int block)

{
  process *ppVar1;
  code *pcVar2;
  PROCESS *pPVar3;
  int iVar4;
  int *piVar5;
  sigset_t *psVar6;
  int iVar7;
  undefined4 in_a2;
  sigset_t *unaff_s2;
  sigset_t *unaff_s3;
  PROCESS *pPVar8;
  undefined *puVar9;
  code *pcVar10;
  undefined1 auStack_38c [128];
  undefined1 auStack_30c [128];
  PROCESS *pPStack_28c;
  PROCESS *pPStack_284;
  int *piStack_280;
  code *pcStack_27c;
  undefined *puStack_268;
  undefined1 auStack_25c [128];
  int aiStack_1dc [32];
  int iStack_15c;
  PROCESS *pPStack_158;
  int iStack_154;
  sigset_t *psStack_150;
  sigset_t *psStack_14c;
  sigset_t set;
  sigset_t oset;
  
  pcVar2 = *(code **)PTR___stack_chk_guard_0015858c;
  if (block == 0) {
    pPVar3 = *(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4);
    psVar6 = (sigset_t *)0x0;
    if ((pPVar3 == (process *)0x0) || (ppVar1 = pPVar3->next, pPVar3->next == pPVar3))
    goto LAB_000683b4;
LAB_000682d4:
    do {
      pPVar8 = ppVar1;
      if (pPVar8 == (PROCESS *)0x0) break;
      ppVar1 = pPVar8->next;
    } while (pPVar3 != pPVar8->next);
    in_a2 = 0;
    pPVar3 = pPVar8;
    if (block == 0) goto LAB_000683b4;
  }
  else {
    unaff_s2 = &set;
    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);
    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);
    unaff_s3 = &oset;
    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);
    psVar6 = unaff_s2;
    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);
    pPVar3 = *(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4);
    if ((pPVar3 != (process *)0x0) && (ppVar1 = pPVar3->next, pPVar3->next != pPVar3))
    goto LAB_000682d4;
  }
  in_a2 = 0;
  psVar6 = &oset;
  (*(code *)PTR_sigprocmask_001585c4)(3,psVar6,0);
LAB_000683b4:
  if (pcVar2 == *(code **)PTR___stack_chk_guard_0015858c) {
    return pPVar3;
  }
  puVar9 = PTR___stack_chk_fail_0015853c;
  (*(code *)PTR___stack_chk_fail_0015853c)();
  puStack_268 = puVar9 + 0xf614c;
  iStack_15c = **(int **)(puVar9 + 0xf0198);
  pPVar8 = *(PROCESS **)(*(int *)(puVar9 + 0xeeab8) + 0x18);
  pPStack_158 = pPVar3;
  iStack_154 = block;
  psStack_150 = unaff_s2;
  psStack_14c = unaff_s3;
  if (pPVar8 != (PROCESS *)0x0) {
    (**(code **)(puVar9 + 0xeff94))(auStack_25c);
    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);
    block = (int)aiStack_1dc;
    (**(code **)(puStack_268 + -0x61b8))(block);
    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,block);
    pPVar3 = (PROCESS *)0x0;
    puVar9 = puStack_268;
    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {
      block = *(int *)(puStack_268 + -0x7690);
      iVar4 = *(int *)(puStack_268 + -0x7694);
      do {
        iVar7 = *(int *)(*(int *)block + (int)pPVar3 * 4);
        if ((iVar7 != 0) &&
           (pPVar8 = (PROCESS *)(*pcVar2)(iVar7,psVar6,in_a2,pPVar3), puVar9 = puStack_268,
           pPVar8 != (PROCESS *)0x0)) goto LAB_00068560;
        pPVar3 = (PROCESS *)((int)&pPVar3->next + 1);
      } while ((int)pPVar3 < *(int *)(iVar4 + 0x18));
    }
    pPVar8 = (PROCESS *)0x0;
LAB_00068560:
    (**(code **)(puVar9 + -0x5f7c))(3,aiStack_1dc,0);
  }
  if (iStack_15c == **(int **)(puStack_268 + -0x5fb4)) {
    return pPVar8;
  }
  pcVar2 = *(code **)(puStack_268 + -0x6004);
  pcVar10 = mark_all_jobs_as_dead;
  (*pcVar2)();
  pPStack_28c = (PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8);
  pPStack_284 = pPVar3;
  piStack_280 = (int *)block;
  pcStack_27c = pcVar10;
  if (*(int *)(*(int *)(pcVar2 + 0xee918) + 0x18) != 0) {
    (**(code **)(pcVar2 + 0xefdf4))(auStack_38c);
    (**(code **)(pcVar2 + 0xefe84))(auStack_38c,0x12);
    (**(code **)(pcVar2 + 0xefdf4))(auStack_30c);
    (**(code **)(pcVar2 + 0xf0030))(1,auStack_38c,auStack_30c);
    if (0 < *(int *)(*(int *)(pcVar2 + 0xee918) + 0x18)) {
      piVar5 = (int *)**(undefined4 **)(pcVar2 + 0xee91c);
      iVar4 = 0;
      iVar7 = *(int *)(pcVar2 + 0xee918);
      do {
        if (*piVar5 != 0) {
          *(undefined4 *)(*piVar5 + 0xc) = 4;
          *(int *)(iVar7 + 0x28) = *(int *)(iVar7 + 0x28) + 1;
        }
        iVar4 = iVar4 + 1;
        piVar5 = piVar5 + 1;
      } while (iVar4 < *(int *)(iVar7 + 0x18));
    }
    (**(code **)(pcVar2 + 0xf0030))(3,auStack_30c,0);
  }
  if (pPStack_28c != (PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8)) {
    pcVar2 = *(code **)(pcVar2 + 0xeffa8);
    (*pcVar2)();
    pPVar3 = *(PROCESS **)(pcVar2 + 0xeeac0);
    if (pPVar3->next != (process *)0x0) {
      pPVar3 = (PROCESS *)pPVar3->status;
      if (pPVar3 != (PROCESS *)0x0) {
        (**(code **)(pcVar2 + 0xefed0))();
        pPVar3 = *(PROCESS **)(pcVar2 + 0xeeac0);
        pPVar3->next = (process *)0x0;
        pPVar3->status = 0;
        pPVar3->pid = 0;
        pPVar3->running = 0;
      }
    }
    return pPVar3;
  }
  return (PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8);
}



int * FUN_00068268(int param_1,int *param_2,undefined4 param_3)

{
  int *piVar1;
  int iVar2;
  undefined1 *puVar3;
  int iVar4;
  int *piVar5;
  undefined1 *unaff_s2;
  undefined1 *unaff_s3;
  int *piVar6;
  undefined *puVar7;
  code *pcVar8;
  undefined4 uVar9;
  undefined1 auStack_38c [128];
  undefined1 auStack_30c [128];
  int *piStack_28c;
  int *piStack_284;
  int *piStack_280;
  undefined4 uStack_27c;
  undefined *puStack_268;
  undefined1 auStack_25c [128];
  int aiStack_1dc [32];
  int iStack_15c;
  int *piStack_158;
  int *piStack_154;
  undefined1 *puStack_150;
  undefined1 *puStack_14c;
  undefined1 auStack_11c [128];
  undefined1 auStack_9c [128];
  code *local_1c;
  
  local_1c = *(code **)PTR___stack_chk_guard_0015858c;
  if (param_2 == (int *)0x0) {
    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);
    puVar3 = (undefined1 *)0x0;
    if ((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))
    goto LAB_000683b4;
LAB_000682d4:
    do {
      piVar5 = piVar6;
      if (piVar5 == (int *)0x0) break;
      piVar6 = (int *)*piVar5;
    } while (piVar1 != (int *)*piVar5);
    param_3 = 0;
    piVar1 = piVar5;
    if (param_2 == (int *)0x0) goto LAB_000683b4;
  }
  else {
    unaff_s2 = auStack_11c;
    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);
    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);
    unaff_s3 = auStack_9c;
    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);
    puVar3 = unaff_s2;
    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);
    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);
    if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))
    goto LAB_000682d4;
  }
  param_3 = 0;
  puVar3 = auStack_9c;
  (*(code *)PTR_sigprocmask_001585c4)(3,puVar3,0);
LAB_000683b4:
  if (local_1c == *(code **)PTR___stack_chk_guard_0015858c) {
    return piVar1;
  }
  pcVar8 = local_1c;
  puVar7 = PTR___stack_chk_fail_0015853c;
  (*(code *)PTR___stack_chk_fail_0015853c)();
  puStack_268 = puVar7 + 0xf614c;
  iStack_15c = **(int **)(puVar7 + 0xf0198);
  piVar6 = *(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18);
  piStack_158 = piVar1;
  piStack_154 = param_2;
  puStack_150 = unaff_s2;
  puStack_14c = unaff_s3;
  if (piVar6 != (int *)0x0) {
    (**(code **)(puVar7 + 0xeff94))(auStack_25c);
    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);
    param_2 = aiStack_1dc;
    (**(code **)(puStack_268 + -0x61b8))(param_2);
    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2);
    piVar1 = (int *)0x0;
    puVar7 = puStack_268;
    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {
      param_2 = *(int **)(puStack_268 + -0x7690);
      iVar2 = *(int *)(puStack_268 + -0x7694);
      do {
        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);
        if ((iVar4 != 0) &&
           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,
           piVar6 != (int *)0x0)) goto LAB_00068560;
        piVar1 = (int *)((int)piVar1 + 1);
      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));
    }
    piVar6 = (int *)0x0;
LAB_00068560:
    (**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);
  }
  if (iStack_15c == **(int **)(puStack_268 + -0x5fb4)) {
    return piVar6;
  }
  pcVar8 = *(code **)(puStack_268 + -0x6004);
  uVar9 = 0x68594;
  (*pcVar8)();
  piStack_28c = (int *)**(int **)(pcVar8 + 0xefff8);
  piStack_284 = piVar1;
  piStack_280 = param_2;
  uStack_27c = uVar9;
  if (*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18) != 0) {
    (**(code **)(pcVar8 + 0xefdf4))(auStack_38c);
    (**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12);
    (**(code **)(pcVar8 + 0xefdf4))(auStack_30c);
    (**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c);
    if (0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)) {
      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);
      iVar2 = 0;
      iVar4 = *(int *)(pcVar8 + 0xee918);
      do {
        if (*piVar1 != 0) {
          *(undefined4 *)(*piVar1 + 0xc) = 4;
          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;
        }
        iVar2 = iVar2 + 1;
        piVar1 = piVar1 + 1;
      } while (iVar2 < *(int *)(iVar4 + 0x18));
    }
    (**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0);
  }
  if (piStack_28c != (int *)**(int **)(pcVar8 + 0xefff8)) {
    pcVar8 = *(code **)(pcVar8 + 0xeffa8);
    (*pcVar8)();
    piVar1 = *(int **)(pcVar8 + 0xeeac0);
    if (*piVar1 != 0) {
      piVar1 = (int *)piVar1[2];
      if (piVar1 != (int *)0x0) {
        (**(code **)(pcVar8 + 0xefed0))();
        piVar1 = *(int **)(pcVar8 + 0xeeac0);
        *piVar1 = 0;
        piVar1[2] = 0;
        piVar1[1] = 0;
        piVar1[3] = 0;
      }
    }
    return piVar1;
  }
  return (int *)**(int **)(pcVar8 + 0xefff8);
}


lui gp,0xf
addiu gp,gp,0x62d8
addu gp,gp,t9
addiu sp,sp,-0x138
sw ra,0x134(sp)
sw s3,0x130(sp)
sw s2,0x12c(sp)
sw s1,0x128(sp)
sw s0,0x124(sp)
sw gp,0x10(sp)
or s0,a0,zero
or s1,a1,zero
lw v0,-0x5fb4(gp)
lw v0,0x0(v0)
sw v0,0x11c(sp)
bne a1,zero,0x000682f0
_lw v0,-0x7690(gp)
lw v0,0x0(v0)
sll s0,a0,0x2
addu s0,v0,s0
lw v0,0x0(s0)
lw v1,0x4(v0)
beq v1,zero,0x000683b0
_or s0,v1,zero
lw s0,0x0(v1)
beq s0,v1,0x000683e0
_nop
beq s0,zero,0x000683a8
_nop
lw v0,0x0(s0)
beq v1,v0,0x000683a8
_nop
b 0x000682d4
_or s0,v0,zero
addiu s2,sp,0x1c
or a0,s2,zero
lw t9,-0x61b8(gp)
jalr t9
_nop
lw gp,0x10(sp)
li a1,0x12
or a0,s2,zero
lw t9,-0x6128(gp)
jalr t9
_nop
lw gp,0x10(sp)
addiu s3,sp,0x9c
or a0,s3,zero
lw t9,-0x61b8(gp)
jalr t9
_nop
lw gp,0x10(sp)
or a2,s3,zero
or a1,s2,zero
li a0,0x1
lw t9,-0x5f7c(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw v0,-0x7690(gp)
lw v0,0x0(v0)
sll s0,s0,0x2
addu s0,v0,s0
lw v0,0x0(s0)
lw v1,0x4(v0)
beq v1,zero,0x00068384
_or s0,v1,zero
lw s0,0x0(v1)
bne s0,v1,0x000682d4
_nop
or s0,v1,zero
or a2,zero,zero
addiu a1,sp,0x9c
li a0,0x3
lw t9,-0x5f7c(gp)
jalr t9
_nop
lw gp,0x10(sp)
b 0x000683b4
_or v0,s0,zero
bne s1,zero,0x00068388
_or a2,zero,zero
or v0,s0,zero
lw a0,0x11c(sp)
lw v1,-0x5fb4(gp)
lw v1,0x0(v1)
bne a0,v1,0x000683e8
_lw ra,0x134(sp)
lw s3,0x130(sp)
lw s2,0x12c(sp)
lw s1,0x128(sp)
lw s0,0x124(sp)
jr ra
_addiu sp,sp,0x138
b 0x000683b0
_or s0,v1,zero
lw t9,-0x6004(gp)
jalr t9
_nop
(translation_unit "int * FUN_00068268(int param_1,int *param_2,undefined4 param_3)\n\n{\n  int *piVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  int iVar4;\n  int *piVar5;\n  undefined1 *unaff_s2;\n  undefined1 *unaff_s3;\n  int *piVar6;\n  undefined *puVar7;\n  code *pcVar8;\n  undefined4 uVar9;\n  undefined1 auStack_38c [128];\n  undefined1 auStack_30c [128];\n  int *piStack_28c;\n  int *piStack_284;\n  int *piStack_280;\n  undefined4 uStack_27c;\n  undefined *puStack_268;\n  undefined1 auStack_25c [128];\n  int aiStack_1dc [32];\n  int iStack_15c;\n  int *piStack_158;\n  int *piStack_154;\n  undefined1 *puStack_150;\n  undefined1 *puStack_14c;\n  undefined1 auStack_11c [128];\n  undefined1 auStack_9c [128];\n  code *local_1c;\n  \n  local_1c = *(code **)PTR___stack_chk_guard_0015858c;\n  if (param_2 == (int *)0x0) {\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    puVar3 = (undefined1 *)0x0;\n    if ((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))\n    goto LAB_000683b4;\nLAB_000682d4:\n    do {\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    } while (piVar1 != (int *)*piVar5);\n    param_3 = 0;\n    piVar1 = piVar5;\n    if (param_2 == (int *)0x0) goto LAB_000683b4;\n  }\n  else {\n    unaff_s2 = auStack_11c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = auStack_9c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    puVar3 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))\n    goto LAB_000682d4;\n  }\n  param_3 = 0;\n  puVar3 = auStack_9c;\n  (*(code *)PTR_sigprocmask_001585c4)(3,puVar3,0);\nLAB_000683b4:\n  if (local_1c == *(code **)PTR___stack_chk_guard_0015858c) {\n    return piVar1;\n  }\n  pcVar8 = local_1c;\n  puVar7 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  puStack_268 = puVar7 + 0xf614c;\n  iStack_15c = **(int **)(puVar7 + 0xf0198);\n  piVar6 = *(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18);\n  piStack_158 = piVar1;\n  piStack_154 = param_2;\n  puStack_150 = unaff_s2;\n  puStack_14c = unaff_s3;\n  if (piVar6 != (int *)0x0) {\n    (**(code **)(puVar7 + 0xeff94))(auStack_25c);\n    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);\n    param_2 = aiStack_1dc;\n    (**(code **)(puStack_268 + -0x61b8))(param_2);\n    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2);\n    piVar1 = (int *)0x0;\n    puVar7 = puStack_268;\n    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      param_2 = *(int **)(puStack_268 + -0x7690);\n      iVar2 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));\n    }\n    piVar6 = (int *)0x0;\nLAB_00068560:\n    (**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);\n  }\n  if (iStack_15c == **(int **)(puStack_268 + -0x5fb4)) {\n    return piVar6;\n  }\n  pcVar8 = *(code **)(puStack_268 + -0x6004);\n  uVar9 = 0x68594;\n  (*pcVar8)();\n  piStack_28c = (int *)**(int **)(pcVar8 + 0xefff8);\n  piStack_284 = piVar1;\n  piStack_280 = param_2;\n  uStack_27c = uVar9;\n  if (*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18) != 0) {\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_38c);\n    (**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12);\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_30c);\n    (**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c);\n    if (0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)) {\n      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);\n      iVar2 = 0;\n      iVar4 = *(int *)(pcVar8 + 0xee918);\n      do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));\n    }\n    (**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0);\n  }\n  if (piStack_28c != (int *)**(int **)(pcVar8 + 0xefff8)) {\n    pcVar8 = *(code **)(pcVar8 + 0xeffa8);\n    (*pcVar8)();\n    piVar1 = *(int **)(pcVar8 + 0xeeac0);\n    if (*piVar1 != 0) {\n      piVar1 = (int *)piVar1[2];\n      if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }\n    }\n    return piVar1;\n  }\n  return (int *)**(int **)(pcVar8 + 0xefff8);\n}\n\n" (function_definition "int * FUN_00068268(int param_1,int *param_2,undefined4 param_3)\n\n{\n  int *piVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  int iVar4;\n  int *piVar5;\n  undefined1 *unaff_s2;\n  undefined1 *unaff_s3;\n  int *piVar6;\n  undefined *puVar7;\n  code *pcVar8;\n  undefined4 uVar9;\n  undefined1 auStack_38c [128];\n  undefined1 auStack_30c [128];\n  int *piStack_28c;\n  int *piStack_284;\n  int *piStack_280;\n  undefined4 uStack_27c;\n  undefined *puStack_268;\n  undefined1 auStack_25c [128];\n  int aiStack_1dc [32];\n  int iStack_15c;\n  int *piStack_158;\n  int *piStack_154;\n  undefined1 *puStack_150;\n  undefined1 *puStack_14c;\n  undefined1 auStack_11c [128];\n  undefined1 auStack_9c [128];\n  code *local_1c;\n  \n  local_1c = *(code **)PTR___stack_chk_guard_0015858c;\n  if (param_2 == (int *)0x0) {\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    puVar3 = (undefined1 *)0x0;\n    if ((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))\n    goto LAB_000683b4;\nLAB_000682d4:\n    do {\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    } while (piVar1 != (int *)*piVar5);\n    param_3 = 0;\n    piVar1 = piVar5;\n    if (param_2 == (int *)0x0) goto LAB_000683b4;\n  }\n  else {\n    unaff_s2 = auStack_11c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = auStack_9c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    puVar3 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))\n    goto LAB_000682d4;\n  }\n  param_3 = 0;\n  puVar3 = auStack_9c;\n  (*(code *)PTR_sigprocmask_001585c4)(3,puVar3,0);\nLAB_000683b4:\n  if (local_1c == *(code **)PTR___stack_chk_guard_0015858c) {\n    return piVar1;\n  }\n  pcVar8 = local_1c;\n  puVar7 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  puStack_268 = puVar7 + 0xf614c;\n  iStack_15c = **(int **)(puVar7 + 0xf0198);\n  piVar6 = *(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18);\n  piStack_158 = piVar1;\n  piStack_154 = param_2;\n  puStack_150 = unaff_s2;\n  puStack_14c = unaff_s3;\n  if (piVar6 != (int *)0x0) {\n    (**(code **)(puVar7 + 0xeff94))(auStack_25c);\n    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);\n    param_2 = aiStack_1dc;\n    (**(code **)(puStack_268 + -0x61b8))(param_2);\n    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2);\n    piVar1 = (int *)0x0;\n    puVar7 = puStack_268;\n    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      param_2 = *(int **)(puStack_268 + -0x7690);\n      iVar2 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));\n    }\n    piVar6 = (int *)0x0;\nLAB_00068560:\n    (**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);\n  }\n  if (iStack_15c == **(int **)(puStack_268 + -0x5fb4)) {\n    return piVar6;\n  }\n  pcVar8 = *(code **)(puStack_268 + -0x6004);\n  uVar9 = 0x68594;\n  (*pcVar8)();\n  piStack_28c = (int *)**(int **)(pcVar8 + 0xefff8);\n  piStack_284 = piVar1;\n  piStack_280 = param_2;\n  uStack_27c = uVar9;\n  if (*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18) != 0) {\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_38c);\n    (**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12);\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_30c);\n    (**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c);\n    if (0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)) {\n      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);\n      iVar2 = 0;\n      iVar4 = *(int *)(pcVar8 + 0xee918);\n      do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));\n    }\n    (**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0);\n  }\n  if (piStack_28c != (int *)**(int **)(pcVar8 + 0xefff8)) {\n    pcVar8 = *(code **)(pcVar8 + 0xeffa8);\n    (*pcVar8)();\n    piVar1 = *(int **)(pcVar8 + 0xeeac0);\n    if (*piVar1 != 0) {\n      piVar1 = (int *)piVar1[2];\n      if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }\n    }\n    return piVar1;\n  }\n  return (int *)**(int **)(pcVar8 + 0xefff8);\n}" primitive_type (pointer_declarator "* FUN_00068268(int param_1,int *param_2,undefined4 param_3)" * (function_declarator "FUN_00068268(int param_1,int *param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,int *param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) )))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  int iVar4;\n  int *piVar5;\n  undefined1 *unaff_s2;\n  undefined1 *unaff_s3;\n  int *piVar6;\n  undefined *puVar7;\n  code *pcVar8;\n  undefined4 uVar9;\n  undefined1 auStack_38c [128];\n  undefined1 auStack_30c [128];\n  int *piStack_28c;\n  int *piStack_284;\n  int *piStack_280;\n  undefined4 uStack_27c;\n  undefined *puStack_268;\n  undefined1 auStack_25c [128];\n  int aiStack_1dc [32];\n  int iStack_15c;\n  int *piStack_158;\n  int *piStack_154;\n  undefined1 *puStack_150;\n  undefined1 *puStack_14c;\n  undefined1 auStack_11c [128];\n  undefined1 auStack_9c [128];\n  code *local_1c;\n  \n  local_1c = *(code **)PTR___stack_chk_guard_0015858c;\n  if (param_2 == (int *)0x0) {\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    puVar3 = (undefined1 *)0x0;\n    if ((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))\n    goto LAB_000683b4;\nLAB_000682d4:\n    do {\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    } while (piVar1 != (int *)*piVar5);\n    param_3 = 0;\n    piVar1 = piVar5;\n    if (param_2 == (int *)0x0) goto LAB_000683b4;\n  }\n  else {\n    unaff_s2 = auStack_11c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = auStack_9c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    puVar3 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))\n    goto LAB_000682d4;\n  }\n  param_3 = 0;\n  puVar3 = auStack_9c;\n  (*(code *)PTR_sigprocmask_001585c4)(3,puVar3,0);\nLAB_000683b4:\n  if (local_1c == *(code **)PTR___stack_chk_guard_0015858c) {\n    return piVar1;\n  }\n  pcVar8 = local_1c;\n  puVar7 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  puStack_268 = puVar7 + 0xf614c;\n  iStack_15c = **(int **)(puVar7 + 0xf0198);\n  piVar6 = *(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18);\n  piStack_158 = piVar1;\n  piStack_154 = param_2;\n  puStack_150 = unaff_s2;\n  puStack_14c = unaff_s3;\n  if (piVar6 != (int *)0x0) {\n    (**(code **)(puVar7 + 0xeff94))(auStack_25c);\n    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);\n    param_2 = aiStack_1dc;\n    (**(code **)(puStack_268 + -0x61b8))(param_2);\n    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2);\n    piVar1 = (int *)0x0;\n    puVar7 = puStack_268;\n    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      param_2 = *(int **)(puStack_268 + -0x7690);\n      iVar2 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));\n    }\n    piVar6 = (int *)0x0;\nLAB_00068560:\n    (**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);\n  }\n  if (iStack_15c == **(int **)(puStack_268 + -0x5fb4)) {\n    return piVar6;\n  }\n  pcVar8 = *(code **)(puStack_268 + -0x6004);\n  uVar9 = 0x68594;\n  (*pcVar8)();\n  piStack_28c = (int *)**(int **)(pcVar8 + 0xefff8);\n  piStack_284 = piVar1;\n  piStack_280 = param_2;\n  uStack_27c = uVar9;\n  if (*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18) != 0) {\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_38c);\n    (**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12);\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_30c);\n    (**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c);\n    if (0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)) {\n      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);\n      iVar2 = 0;\n      iVar4 = *(int *)(pcVar8 + 0xee918);\n      do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));\n    }\n    (**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0);\n  }\n  if (piStack_28c != (int *)**(int **)(pcVar8 + 0xefff8)) {\n    pcVar8 = *(code **)(pcVar8 + 0xeffa8);\n    (*pcVar8)();\n    piVar1 = *(int **)(pcVar8 + 0xeeac0);\n    if (*piVar1 != 0) {\n      piVar1 = (int *)piVar1[2];\n      if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }\n    }\n    return piVar1;\n  }\n  return (int *)**(int **)(pcVar8 + 0xefff8);\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined1 *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "undefined1 *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined1 auStack_38c [128];" type_identifier (array_declarator "auStack_38c [128]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_30c [128];" type_identifier (array_declarator "auStack_30c [128]" identifier [ number_literal ]) ;) (declaration "int *piStack_28c;" primitive_type (pointer_declarator "*piStack_28c" * identifier) ;) (declaration "int *piStack_284;" primitive_type (pointer_declarator "*piStack_284" * identifier) ;) (declaration "int *piStack_280;" primitive_type (pointer_declarator "*piStack_280" * identifier) ;) (declaration "undefined4 uStack_27c;" type_identifier identifier ;) (declaration "undefined *puStack_268;" type_identifier (pointer_declarator "*puStack_268" * identifier) ;) (declaration "undefined1 auStack_25c [128];" type_identifier (array_declarator "auStack_25c [128]" identifier [ number_literal ]) ;) (declaration "int aiStack_1dc [32];" primitive_type (array_declarator "aiStack_1dc [32]" identifier [ number_literal ]) ;) (declaration "int iStack_15c;" primitive_type identifier ;) (declaration "int *piStack_158;" primitive_type (pointer_declarator "*piStack_158" * identifier) ;) (declaration "int *piStack_154;" primitive_type (pointer_declarator "*piStack_154" * identifier) ;) (declaration "undefined1 *puStack_150;" type_identifier (pointer_declarator "*puStack_150" * identifier) ;) (declaration "undefined1 *puStack_14c;" type_identifier (pointer_declarator "*puStack_14c" * identifier) ;) (declaration "undefined1 auStack_11c [128];" type_identifier (array_declarator "auStack_11c [128]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_9c [128];" type_identifier (array_declarator "auStack_9c [128]" identifier [ number_literal ]) ;) (declaration "code *local_1c;" type_identifier (pointer_declarator "*local_1c" * identifier) ;) (expression_statement "local_1c = *(code **)PTR___stack_chk_guard_0015858c;" (assignment_expression "local_1c = *(code **)PTR___stack_chk_guard_0015858c" identifier = (pointer_expression "*(code **)PTR___stack_chk_guard_0015858c" * (cast_expression "(code **)PTR___stack_chk_guard_0015858c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (param_2 == (int *)0x0) {\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    puVar3 = (undefined1 *)0x0;\n    if ((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))\n    goto LAB_000683b4;\nLAB_000682d4:\n    do {\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    } while (piVar1 != (int *)*piVar5);\n    param_3 = 0;\n    piVar1 = piVar5;\n    if (param_2 == (int *)0x0) goto LAB_000683b4;\n  }\n  else {\n    unaff_s2 = auStack_11c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = auStack_9c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    puVar3 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))\n    goto LAB_000682d4;\n  }" if (parenthesized_expression "(param_2 == (int *)0x0)" ( (binary_expression "param_2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    puVar3 = (undefined1 *)0x0;\n    if ((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))\n    goto LAB_000683b4;\nLAB_000682d4:\n    do {\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    } while (piVar1 != (int *)*piVar5);\n    param_3 = 0;\n    piVar1 = piVar5;\n    if (param_2 == (int *)0x0) goto LAB_000683b4;\n  }" { (expression_statement "piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);" (assignment_expression "piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" identifier = (pointer_expression "*(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" * (cast_expression "(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" ( (binary_expression "*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4" (pointer_expression "*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4)" * (cast_expression "(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_jobs_00156eb0 + param_1 * 4)" ( (binary_expression "*(int *)PTR_jobs_00156eb0 + param_1 * 4" (pointer_expression "*(int *)PTR_jobs_00156eb0" * (cast_expression "(int *)PTR_jobs_00156eb0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (binary_expression "param_1 * 4" identifier * number_literal)) )))) + number_literal) ))))) ;) (expression_statement "puVar3 = (undefined1 *)0x0;" (assignment_expression "puVar3 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))\n    goto LAB_000683b4;" if (parenthesized_expression "((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))" ( (binary_expression "(piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1)" (parenthesized_expression "(piVar1 == (int *)0x0)" ( (binary_expression "piVar1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1)" ( (comma_expression "piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1" (assignment_expression "piVar6 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) , (binary_expression "(int *)*piVar1 == piVar1" (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier)) == identifier)) ))) )) (goto_statement "goto LAB_000683b4;" goto statement_identifier ;)) (labeled_statement "LAB_000682d4:\n    do {\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    } while (piVar1 != (int *)*piVar5);" statement_identifier : (do_statement "do {\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    } while (piVar1 != (int *)*piVar5);" do (compound_statement "{\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    }" { (expression_statement "piVar5 = piVar6;" (assignment_expression "piVar5 = piVar6" identifier = identifier) ;) (if_statement "if (piVar5 == (int *)0x0) break;" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "piVar6 = (int *)*piVar5;" (assignment_expression "piVar6 = (int *)*piVar5" identifier = (cast_expression "(int *)*piVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar5" * identifier))) ;) }) while (parenthesized_expression "(piVar1 != (int *)*piVar5)" ( (binary_expression "piVar1 != (int *)*piVar5" identifier != (cast_expression "(int *)*piVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar5" * identifier))) )) ;)) (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" identifier = number_literal) ;) (expression_statement "piVar1 = piVar5;" (assignment_expression "piVar1 = piVar5" identifier = identifier) ;) (if_statement "if (param_2 == (int *)0x0) goto LAB_000683b4;" if (parenthesized_expression "(param_2 == (int *)0x0)" ( (binary_expression "param_2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000683b4;" goto statement_identifier ;)) }) (else_clause "else {\n    unaff_s2 = auStack_11c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = auStack_9c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    puVar3 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))\n    goto LAB_000682d4;\n  }" else (compound_statement "{\n    unaff_s2 = auStack_11c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = auStack_9c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    puVar3 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))\n    goto LAB_000682d4;\n  }" { (expression_statement "unaff_s2 = auStack_11c;" (assignment_expression "unaff_s2 = auStack_11c" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sigemptyset_00158388)(unaff_s2);" (call_expression "(*(code *)PTR_sigemptyset_00158388)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_sigemptyset_00158388)" ( (pointer_expression "*(code *)PTR_sigemptyset_00158388" * (cast_expression "(code *)PTR_sigemptyset_00158388" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);" (call_expression "(*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00158418)" ( (pointer_expression "*(code *)PTR_sigaddset_00158418" * (cast_expression "(code *)PTR_sigaddset_00158418" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2,0x12)" ( identifier , number_literal ))) ;) (expression_statement "unaff_s3 = auStack_9c;" (assignment_expression "unaff_s3 = auStack_9c" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sigemptyset_00158388)(unaff_s3);" (call_expression "(*(code *)PTR_sigemptyset_00158388)(unaff_s3)" (parenthesized_expression "(*(code *)PTR_sigemptyset_00158388)" ( (pointer_expression "*(code *)PTR_sigemptyset_00158388" * (cast_expression "(code *)PTR_sigemptyset_00158388" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s3)" ( identifier ))) ;) (expression_statement "puVar3 = unaff_s2;" (assignment_expression "puVar3 = unaff_s2" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);" (call_expression "(*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sigprocmask_001585c4)" ( (pointer_expression "*(code *)PTR_sigprocmask_001585c4" * (cast_expression "(code *)PTR_sigprocmask_001585c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,unaff_s2,unaff_s3)" ( number_literal , identifier , identifier ))) ;) (expression_statement "piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);" (assignment_expression "piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" identifier = (pointer_expression "*(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" * (cast_expression "(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" ( (binary_expression "*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4" (pointer_expression "*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4)" * (cast_expression "(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_jobs_00156eb0 + param_1 * 4)" ( (binary_expression "*(int *)PTR_jobs_00156eb0 + param_1 * 4" (pointer_expression "*(int *)PTR_jobs_00156eb0" * (cast_expression "(int *)PTR_jobs_00156eb0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (binary_expression "param_1 * 4" identifier * number_literal)) )))) + number_literal) ))))) ;) (if_statement "if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))\n    goto LAB_000682d4;" if (parenthesized_expression "((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))" ( (binary_expression "(piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1)" (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1)" ( (comma_expression "piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1" (assignment_expression "piVar6 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) , (binary_expression "(int *)*piVar1 != piVar1" (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier)) != identifier)) ))) )) (goto_statement "goto LAB_000682d4;" goto statement_identifier ;)) }))) (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = auStack_9c;" (assignment_expression "puVar3 = auStack_9c" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sigprocmask_001585c4)(3,puVar3,0);" (call_expression "(*(code *)PTR_sigprocmask_001585c4)(3,puVar3,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_001585c4)" ( (pointer_expression "*(code *)PTR_sigprocmask_001585c4" * (cast_expression "(code *)PTR_sigprocmask_001585c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,puVar3,0)" ( number_literal , identifier , number_literal ))) ;) (labeled_statement "LAB_000683b4:\n  if (local_1c == *(code **)PTR___stack_chk_guard_0015858c) {\n    return piVar1;\n  }" statement_identifier : (if_statement "if (local_1c == *(code **)PTR___stack_chk_guard_0015858c) {\n    return piVar1;\n  }" if (parenthesized_expression "(local_1c == *(code **)PTR___stack_chk_guard_0015858c)" ( (binary_expression "local_1c == *(code **)PTR___stack_chk_guard_0015858c" identifier == (pointer_expression "*(code **)PTR___stack_chk_guard_0015858c" * (cast_expression "(code **)PTR___stack_chk_guard_0015858c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return piVar1;\n  }" { (return_statement "return piVar1;" return identifier ;) }))) (expression_statement "pcVar8 = local_1c;" (assignment_expression "pcVar8 = local_1c" identifier = identifier) ;) (expression_statement "puVar7 = PTR___stack_chk_fail_0015853c;" (assignment_expression "puVar7 = PTR___stack_chk_fail_0015853c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015853c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015853c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015853c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015853c" * (cast_expression "(code *)PTR___stack_chk_fail_0015853c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_268 = puVar7 + 0xf614c;" (assignment_expression "puStack_268 = puVar7 + 0xf614c" identifier = (binary_expression "puVar7 + 0xf614c" identifier + number_literal)) ;) (expression_statement "iStack_15c = **(int **)(puVar7 + 0xf0198);" (assignment_expression "iStack_15c = **(int **)(puVar7 + 0xf0198)" identifier = (pointer_expression "**(int **)(puVar7 + 0xf0198)" * (pointer_expression "*(int **)(puVar7 + 0xf0198)" * (cast_expression "(int **)(puVar7 + 0xf0198)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0xf0198)" ( (binary_expression "puVar7 + 0xf0198" identifier + number_literal) )))))) ;) (expression_statement "piVar6 = *(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18);" (assignment_expression "piVar6 = *(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18)" identifier = (pointer_expression "*(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18)" * (cast_expression "(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar7 + 0xeeab8) + 0x18)" ( (binary_expression "*(int *)(puVar7 + 0xeeab8) + 0x18" (pointer_expression "*(int *)(puVar7 + 0xeeab8)" * (cast_expression "(int *)(puVar7 + 0xeeab8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0xeeab8)" ( (binary_expression "puVar7 + 0xeeab8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "piStack_158 = piVar1;" (assignment_expression "piStack_158 = piVar1" identifier = identifier) ;) (expression_statement "piStack_154 = param_2;" (assignment_expression "piStack_154 = param_2" identifier = identifier) ;) (expression_statement "puStack_150 = unaff_s2;" (assignment_expression "puStack_150 = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_14c = unaff_s3;" (assignment_expression "puStack_14c = unaff_s3" identifier = identifier) ;) (if_statement "if (piVar6 != (int *)0x0) {\n    (**(code **)(puVar7 + 0xeff94))(auStack_25c);\n    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);\n    param_2 = aiStack_1dc;\n    (**(code **)(puStack_268 + -0x61b8))(param_2);\n    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2);\n    piVar1 = (int *)0x0;\n    puVar7 = puStack_268;\n    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      param_2 = *(int **)(puStack_268 + -0x7690);\n      iVar2 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));\n    }\n    piVar6 = (int *)0x0;\nLAB_00068560:\n    (**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);\n  }" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(puVar7 + 0xeff94))(auStack_25c);\n    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);\n    param_2 = aiStack_1dc;\n    (**(code **)(puStack_268 + -0x61b8))(param_2);\n    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2);\n    piVar1 = (int *)0x0;\n    puVar7 = puStack_268;\n    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      param_2 = *(int **)(puStack_268 + -0x7690);\n      iVar2 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));\n    }\n    piVar6 = (int *)0x0;\nLAB_00068560:\n    (**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);\n  }" { (expression_statement "(**(code **)(puVar7 + 0xeff94))(auStack_25c);" (call_expression "(**(code **)(puVar7 + 0xeff94))(auStack_25c)" (parenthesized_expression "(**(code **)(puVar7 + 0xeff94))" ( (pointer_expression "**(code **)(puVar7 + 0xeff94)" * (pointer_expression "*(code **)(puVar7 + 0xeff94)" * (cast_expression "(code **)(puVar7 + 0xeff94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0xeff94)" ( (binary_expression "puVar7 + 0xeff94" identifier + number_literal) ))))) )) (argument_list "(auStack_25c)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);" (call_expression "(**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12)" (parenthesized_expression "(**(code **)(puStack_268 + -0x6128))" ( (pointer_expression "**(code **)(puStack_268 + -0x6128)" * (pointer_expression "*(code **)(puStack_268 + -0x6128)" * (cast_expression "(code **)(puStack_268 + -0x6128)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_268 + -0x6128)" ( (binary_expression "puStack_268 + -0x6128" identifier + number_literal) ))))) )) (argument_list "(auStack_25c,0x12)" ( identifier , number_literal ))) ;) (expression_statement "param_2 = aiStack_1dc;" (assignment_expression "param_2 = aiStack_1dc" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_268 + -0x61b8))(param_2);" (call_expression "(**(code **)(puStack_268 + -0x61b8))(param_2)" (parenthesized_expression "(**(code **)(puStack_268 + -0x61b8))" ( (pointer_expression "**(code **)(puStack_268 + -0x61b8)" * (pointer_expression "*(code **)(puStack_268 + -0x61b8)" * (cast_expression "(code **)(puStack_268 + -0x61b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_268 + -0x61b8)" ( (binary_expression "puStack_268 + -0x61b8" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2);" (call_expression "(**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2)" (parenthesized_expression "(**(code **)(puStack_268 + -0x5f7c))" ( (pointer_expression "**(code **)(puStack_268 + -0x5f7c)" * (pointer_expression "*(code **)(puStack_268 + -0x5f7c)" * (cast_expression "(code **)(puStack_268 + -0x5f7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_268 + -0x5f7c)" ( (binary_expression "puStack_268 + -0x5f7c" identifier + number_literal) ))))) )) (argument_list "(1,auStack_25c,param_2)" ( number_literal , identifier , identifier ))) ;) (expression_statement "piVar1 = (int *)0x0;" (assignment_expression "piVar1 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar7 = puStack_268;" (assignment_expression "puVar7 = puStack_268" identifier = identifier) ;) (if_statement "if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      param_2 = *(int **)(puStack_268 + -0x7690);\n      iVar2 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));\n    }" if (parenthesized_expression "(0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18))" ( (binary_expression "0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)" number_literal < (pointer_expression "*(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)" * (cast_expression "(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_268 + -0x7694) + 0x18)" ( (binary_expression "*(int *)(puStack_268 + -0x7694) + 0x18" (pointer_expression "*(int *)(puStack_268 + -0x7694)" * (cast_expression "(int *)(puStack_268 + -0x7694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_268 + -0x7694)" ( (binary_expression "puStack_268 + -0x7694" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n      param_2 = *(int **)(puStack_268 + -0x7690);\n      iVar2 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));\n    }" { (expression_statement "param_2 = *(int **)(puStack_268 + -0x7690);" (assignment_expression "param_2 = *(int **)(puStack_268 + -0x7690)" identifier = (pointer_expression "*(int **)(puStack_268 + -0x7690)" * (cast_expression "(int **)(puStack_268 + -0x7690)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_268 + -0x7690)" ( (binary_expression "puStack_268 + -0x7690" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(puStack_268 + -0x7694);" (assignment_expression "iVar2 = *(int *)(puStack_268 + -0x7694)" identifier = (pointer_expression "*(int *)(puStack_268 + -0x7694)" * (cast_expression "(int *)(puStack_268 + -0x7694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_268 + -0x7694)" ( (binary_expression "puStack_268 + -0x7694" identifier + number_literal) ))))) ;) (do_statement "do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));" do (compound_statement "{\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      }" { (expression_statement "iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);" (assignment_expression "iVar4 = *(int *)(*param_2 + (int)piVar1 * 4)" identifier = (pointer_expression "*(int *)(*param_2 + (int)piVar1 * 4)" * (cast_expression "(int *)(*param_2 + (int)piVar1 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + (int)piVar1 * 4)" ( (binary_expression "*param_2 + (int)piVar1 * 4" (pointer_expression "*param_2" * identifier) + (binary_expression "(int)piVar1 * 4" (cast_expression "(int)piVar1" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (if_statement "if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;" if (parenthesized_expression "((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0))" ( (binary_expression "(iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)" (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) && (parenthesized_expression "(piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)" ( (comma_expression "piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0" (assignment_expression "piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1)" identifier = (cast_expression "(int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar8)(iVar4,puVar3,param_3,piVar1)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(iVar4,puVar3,param_3,piVar1)" ( identifier , identifier , identifier , identifier ))))) , (comma_expression "puVar7 = puStack_268,\n           piVar6 != (int *)0x0" (assignment_expression "puVar7 = puStack_268" identifier = identifier) , (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (goto_statement "goto LAB_00068560;" goto statement_identifier ;)) (expression_statement "piVar1 = (int *)((int)piVar1 + 1);" (assignment_expression "piVar1 = (int *)((int)piVar1 + 1)" identifier = (cast_expression "(int *)((int)piVar1 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar1 + 1)" ( (binary_expression "(int)piVar1 + 1" (cast_expression "(int)piVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)piVar1 < *(int *)(iVar2 + 0x18))" ( (binary_expression "(int)piVar1 < *(int *)(iVar2 + 0x18)" (cast_expression "(int)piVar1" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "piVar6 = (int *)0x0;" (assignment_expression "piVar6 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00068560:\n    (**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);" statement_identifier : (expression_statement "(**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);" (call_expression "(**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0)" (parenthesized_expression "(**(code **)(puVar7 + -0x5f7c))" ( (pointer_expression "**(code **)(puVar7 + -0x5f7c)" * (pointer_expression "*(code **)(puVar7 + -0x5f7c)" * (cast_expression "(code **)(puVar7 + -0x5f7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x5f7c)" ( (binary_expression "puVar7 + -0x5f7c" identifier + number_literal) ))))) )) (argument_list "(3,aiStack_1dc,0)" ( number_literal , identifier , number_literal ))) ;)) })) (if_statement "if (iStack_15c == **(int **)(puStack_268 + -0x5fb4)) {\n    return piVar6;\n  }" if (parenthesized_expression "(iStack_15c == **(int **)(puStack_268 + -0x5fb4))" ( (binary_expression "iStack_15c == **(int **)(puStack_268 + -0x5fb4)" identifier == (pointer_expression "**(int **)(puStack_268 + -0x5fb4)" * (pointer_expression "*(int **)(puStack_268 + -0x5fb4)" * (cast_expression "(int **)(puStack_268 + -0x5fb4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_268 + -0x5fb4)" ( (binary_expression "puStack_268 + -0x5fb4" identifier + number_literal) )))))) )) (compound_statement "{\n    return piVar6;\n  }" { (return_statement "return piVar6;" return identifier ;) })) (expression_statement "pcVar8 = *(code **)(puStack_268 + -0x6004);" (assignment_expression "pcVar8 = *(code **)(puStack_268 + -0x6004)" identifier = (pointer_expression "*(code **)(puStack_268 + -0x6004)" * (cast_expression "(code **)(puStack_268 + -0x6004)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_268 + -0x6004)" ( (binary_expression "puStack_268 + -0x6004" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = 0x68594;" (assignment_expression "uVar9 = 0x68594" identifier = number_literal) ;) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piStack_28c = (int *)**(int **)(pcVar8 + 0xefff8);" (assignment_expression "piStack_28c = (int *)**(int **)(pcVar8 + 0xefff8)" identifier = (cast_expression "(int *)**(int **)(pcVar8 + 0xefff8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar8 + 0xefff8)" * (pointer_expression "*(int **)(pcVar8 + 0xefff8)" * (cast_expression "(int **)(pcVar8 + 0xefff8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xefff8)" ( (binary_expression "pcVar8 + 0xefff8" identifier + number_literal) ))))))) ;) (expression_statement "piStack_284 = piVar1;" (assignment_expression "piStack_284 = piVar1" identifier = identifier) ;) (expression_statement "piStack_280 = param_2;" (assignment_expression "piStack_280 = param_2" identifier = identifier) ;) (expression_statement "uStack_27c = uVar9;" (assignment_expression "uStack_27c = uVar9" identifier = identifier) ;) (if_statement "if (*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18) != 0) {\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_38c);\n    (**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12);\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_30c);\n    (**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c);\n    if (0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)) {\n      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);\n      iVar2 = 0;\n      iVar4 = *(int *)(pcVar8 + 0xee918);\n      do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));\n    }\n    (**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0);\n  }" if (parenthesized_expression "(*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18) != 0)" ( (binary_expression "*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18) != 0" (pointer_expression "*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)" * (cast_expression "(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0xee918) + 0x18)" ( (binary_expression "*(int *)(pcVar8 + 0xee918) + 0x18" (pointer_expression "*(int *)(pcVar8 + 0xee918)" * (cast_expression "(int *)(pcVar8 + 0xee918)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0xee918)" ( (binary_expression "pcVar8 + 0xee918" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_38c);\n    (**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12);\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_30c);\n    (**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c);\n    if (0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)) {\n      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);\n      iVar2 = 0;\n      iVar4 = *(int *)(pcVar8 + 0xee918);\n      do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));\n    }\n    (**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0);\n  }" { (expression_statement "(**(code **)(pcVar8 + 0xefdf4))(auStack_38c);" (call_expression "(**(code **)(pcVar8 + 0xefdf4))(auStack_38c)" (parenthesized_expression "(**(code **)(pcVar8 + 0xefdf4))" ( (pointer_expression "**(code **)(pcVar8 + 0xefdf4)" * (pointer_expression "*(code **)(pcVar8 + 0xefdf4)" * (cast_expression "(code **)(pcVar8 + 0xefdf4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xefdf4)" ( (binary_expression "pcVar8 + 0xefdf4" identifier + number_literal) ))))) )) (argument_list "(auStack_38c)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12);" (call_expression "(**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12)" (parenthesized_expression "(**(code **)(pcVar8 + 0xefe84))" ( (pointer_expression "**(code **)(pcVar8 + 0xefe84)" * (pointer_expression "*(code **)(pcVar8 + 0xefe84)" * (cast_expression "(code **)(pcVar8 + 0xefe84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xefe84)" ( (binary_expression "pcVar8 + 0xefe84" identifier + number_literal) ))))) )) (argument_list "(auStack_38c,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar8 + 0xefdf4))(auStack_30c);" (call_expression "(**(code **)(pcVar8 + 0xefdf4))(auStack_30c)" (parenthesized_expression "(**(code **)(pcVar8 + 0xefdf4))" ( (pointer_expression "**(code **)(pcVar8 + 0xefdf4)" * (pointer_expression "*(code **)(pcVar8 + 0xefdf4)" * (cast_expression "(code **)(pcVar8 + 0xefdf4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xefdf4)" ( (binary_expression "pcVar8 + 0xefdf4" identifier + number_literal) ))))) )) (argument_list "(auStack_30c)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c);" (call_expression "(**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c)" (parenthesized_expression "(**(code **)(pcVar8 + 0xf0030))" ( (pointer_expression "**(code **)(pcVar8 + 0xf0030)" * (pointer_expression "*(code **)(pcVar8 + 0xf0030)" * (cast_expression "(code **)(pcVar8 + 0xf0030)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xf0030)" ( (binary_expression "pcVar8 + 0xf0030" identifier + number_literal) ))))) )) (argument_list "(1,auStack_38c,auStack_30c)" ( number_literal , identifier , identifier ))) ;) (if_statement "if (0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)) {\n      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);\n      iVar2 = 0;\n      iVar4 = *(int *)(pcVar8 + 0xee918);\n      do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));\n    }" if (parenthesized_expression "(0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18))" ( (binary_expression "0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)" number_literal < (pointer_expression "*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)" * (cast_expression "(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0xee918) + 0x18)" ( (binary_expression "*(int *)(pcVar8 + 0xee918) + 0x18" (pointer_expression "*(int *)(pcVar8 + 0xee918)" * (cast_expression "(int *)(pcVar8 + 0xee918)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0xee918)" ( (binary_expression "pcVar8 + 0xee918" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);\n      iVar2 = 0;\n      iVar4 = *(int *)(pcVar8 + 0xee918);\n      do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));\n    }" { (expression_statement "piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);" (assignment_expression "piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c)" identifier = (cast_expression "(int *)**(undefined4 **)(pcVar8 + 0xee91c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar8 + 0xee91c)" * (pointer_expression "*(undefined4 **)(pcVar8 + 0xee91c)" * (cast_expression "(undefined4 **)(pcVar8 + 0xee91c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xee91c)" ( (binary_expression "pcVar8 + 0xee91c" identifier + number_literal) ))))))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = *(int *)(pcVar8 + 0xee918);" (assignment_expression "iVar4 = *(int *)(pcVar8 + 0xee918)" identifier = (pointer_expression "*(int *)(pcVar8 + 0xee918)" * (cast_expression "(int *)(pcVar8 + 0xee918)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0xee918)" ( (binary_expression "pcVar8 + 0xee918" identifier + number_literal) ))))) ;) (do_statement "do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));" do (compound_statement "{\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      }" { (if_statement "if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }" if (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) )) (compound_statement "{\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }" { (expression_statement "*(undefined4 *)(*piVar1 + 0xc) = 4;" (assignment_expression "*(undefined4 *)(*piVar1 + 0xc) = 4" (pointer_expression "*(undefined4 *)(*piVar1 + 0xc)" * (cast_expression "(undefined4 *)(*piVar1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar1 + 0xc)" ( (binary_expression "*piVar1 + 0xc" (pointer_expression "*piVar1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;" (assignment_expression "*(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1" (pointer_expression "*(int *)(iVar4 + 0x28)" * (cast_expression "(int *)(iVar4 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x28)" ( (binary_expression "iVar4 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar4 + 0x28) + 1" (pointer_expression "*(int *)(iVar4 + 0x28)" * (cast_expression "(int *)(iVar4 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x28)" ( (binary_expression "iVar4 + 0x28" identifier + number_literal) )))) + number_literal)) ;) })) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "piVar1 = piVar1 + 1;" (assignment_expression "piVar1 = piVar1 + 1" identifier = (binary_expression "piVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar2 < *(int *)(iVar4 + 0x18))" ( (binary_expression "iVar2 < *(int *)(iVar4 + 0x18)" identifier < (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "(**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0);" (call_expression "(**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0)" (parenthesized_expression "(**(code **)(pcVar8 + 0xf0030))" ( (pointer_expression "**(code **)(pcVar8 + 0xf0030)" * (pointer_expression "*(code **)(pcVar8 + 0xf0030)" * (cast_expression "(code **)(pcVar8 + 0xf0030)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xf0030)" ( (binary_expression "pcVar8 + 0xf0030" identifier + number_literal) ))))) )) (argument_list "(3,auStack_30c,0)" ( number_literal , identifier , number_literal ))) ;) })) (if_statement "if (piStack_28c != (int *)**(int **)(pcVar8 + 0xefff8)) {\n    pcVar8 = *(code **)(pcVar8 + 0xeffa8);\n    (*pcVar8)();\n    piVar1 = *(int **)(pcVar8 + 0xeeac0);\n    if (*piVar1 != 0) {\n      piVar1 = (int *)piVar1[2];\n      if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }\n    }\n    return piVar1;\n  }" if (parenthesized_expression "(piStack_28c != (int *)**(int **)(pcVar8 + 0xefff8))" ( (binary_expression "piStack_28c != (int *)**(int **)(pcVar8 + 0xefff8)" identifier != (cast_expression "(int *)**(int **)(pcVar8 + 0xefff8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar8 + 0xefff8)" * (pointer_expression "*(int **)(pcVar8 + 0xefff8)" * (cast_expression "(int **)(pcVar8 + 0xefff8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xefff8)" ( (binary_expression "pcVar8 + 0xefff8" identifier + number_literal) ))))))) )) (compound_statement "{\n    pcVar8 = *(code **)(pcVar8 + 0xeffa8);\n    (*pcVar8)();\n    piVar1 = *(int **)(pcVar8 + 0xeeac0);\n    if (*piVar1 != 0) {\n      piVar1 = (int *)piVar1[2];\n      if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }\n    }\n    return piVar1;\n  }" { (expression_statement "pcVar8 = *(code **)(pcVar8 + 0xeffa8);" (assignment_expression "pcVar8 = *(code **)(pcVar8 + 0xeffa8)" identifier = (pointer_expression "*(code **)(pcVar8 + 0xeffa8)" * (cast_expression "(code **)(pcVar8 + 0xeffa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xeffa8)" ( (binary_expression "pcVar8 + 0xeffa8" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar1 = *(int **)(pcVar8 + 0xeeac0);" (assignment_expression "piVar1 = *(int **)(pcVar8 + 0xeeac0)" identifier = (pointer_expression "*(int **)(pcVar8 + 0xeeac0)" * (cast_expression "(int **)(pcVar8 + 0xeeac0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xeeac0)" ( (binary_expression "pcVar8 + 0xeeac0" identifier + number_literal) ))))) ;) (if_statement "if (*piVar1 != 0) {\n      piVar1 = (int *)piVar1[2];\n      if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }\n    }" if (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) )) (compound_statement "{\n      piVar1 = (int *)piVar1[2];\n      if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }\n    }" { (expression_statement "piVar1 = (int *)piVar1[2];" (assignment_expression "piVar1 = (int *)piVar1[2]" identifier = (cast_expression "(int *)piVar1[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar1[2]" identifier [ number_literal ]))) ;) (if_statement "if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }" if (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }" { (expression_statement "(**(code **)(pcVar8 + 0xefed0))();" (call_expression "(**(code **)(pcVar8 + 0xefed0))()" (parenthesized_expression "(**(code **)(pcVar8 + 0xefed0))" ( (pointer_expression "**(code **)(pcVar8 + 0xefed0)" * (pointer_expression "*(code **)(pcVar8 + 0xefed0)" * (cast_expression "(code **)(pcVar8 + 0xefed0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xefed0)" ( (binary_expression "pcVar8 + 0xefed0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "piVar1 = *(int **)(pcVar8 + 0xeeac0);" (assignment_expression "piVar1 = *(int **)(pcVar8 + 0xeeac0)" identifier = (pointer_expression "*(int **)(pcVar8 + 0xeeac0)" * (cast_expression "(int **)(pcVar8 + 0xeeac0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xeeac0)" ( (binary_expression "pcVar8 + 0xeeac0" identifier + number_literal) ))))) ;) (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" * identifier) = number_literal) ;) (expression_statement "piVar1[2] = 0;" (assignment_expression "piVar1[2] = 0" (subscript_expression "piVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar1[1] = 0;" (assignment_expression "piVar1[1] = 0" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar1[3] = 0;" (assignment_expression "piVar1[3] = 0" (subscript_expression "piVar1[3]" identifier [ number_literal ]) = number_literal) ;) })) })) (return_statement "return piVar1;" return identifier ;) })) (return_statement "return (int *)**(int **)(pcVar8 + 0xefff8);" return (cast_expression "(int *)**(int **)(pcVar8 + 0xefff8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar8 + 0xefff8)" * (pointer_expression "*(int **)(pcVar8 + 0xefff8)" * (cast_expression "(int **)(pcVar8 + 0xefff8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xefff8)" ( (binary_expression "pcVar8 + 0xefff8" identifier + number_literal) )))))) ;) })))
(translation_unit "PROCESS * find_last_proc(int job,int block)\n\n{\n  process *ppVar1;\n  code *pcVar2;\n  PROCESS *pPVar3;\n  int iVar4;\n  int *piVar5;\n  sigset_t *psVar6;\n  int iVar7;\n  undefined4 in_a2;\n  sigset_t *unaff_s2;\n  sigset_t *unaff_s3;\n  PROCESS *pPVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined1 auStack_38c [128];\n  undefined1 auStack_30c [128];\n  PROCESS *pPStack_28c;\n  PROCESS *pPStack_284;\n  int *piStack_280;\n  code *pcStack_27c;\n  undefined *puStack_268;\n  undefined1 auStack_25c [128];\n  int aiStack_1dc [32];\n  int iStack_15c;\n  PROCESS *pPStack_158;\n  int iStack_154;\n  sigset_t *psStack_150;\n  sigset_t *psStack_14c;\n  sigset_t set;\n  sigset_t oset;\n  \n  pcVar2 = *(code **)PTR___stack_chk_guard_0015858c;\n  if (block == 0) {\n    pPVar3 = *(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4);\n    psVar6 = (sigset_t *)0x0;\n    if ((pPVar3 == (process *)0x0) || (ppVar1 = pPVar3->next, pPVar3->next == pPVar3))\n    goto LAB_000683b4;\nLAB_000682d4:\n    do {\n      pPVar8 = ppVar1;\n      if (pPVar8 == (PROCESS *)0x0) break;\n      ppVar1 = pPVar8->next;\n    } while (pPVar3 != pPVar8->next);\n    in_a2 = 0;\n    pPVar3 = pPVar8;\n    if (block == 0) goto LAB_000683b4;\n  }\n  else {\n    unaff_s2 = &set;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = &oset;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    psVar6 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    pPVar3 = *(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4);\n    if ((pPVar3 != (process *)0x0) && (ppVar1 = pPVar3->next, pPVar3->next != pPVar3))\n    goto LAB_000682d4;\n  }\n  in_a2 = 0;\n  psVar6 = &oset;\n  (*(code *)PTR_sigprocmask_001585c4)(3,psVar6,0);\nLAB_000683b4:\n  if (pcVar2 == *(code **)PTR___stack_chk_guard_0015858c) {\n    return pPVar3;\n  }\n  puVar9 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  puStack_268 = puVar9 + 0xf614c;\n  iStack_15c = **(int **)(puVar9 + 0xf0198);\n  pPVar8 = *(PROCESS **)(*(int *)(puVar9 + 0xeeab8) + 0x18);\n  pPStack_158 = pPVar3;\n  iStack_154 = block;\n  psStack_150 = unaff_s2;\n  psStack_14c = unaff_s3;\n  if (pPVar8 != (PROCESS *)0x0) {\n    (**(code **)(puVar9 + 0xeff94))(auStack_25c);\n    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);\n    block = (int)aiStack_1dc;\n    (**(code **)(puStack_268 + -0x61b8))(block);\n    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,block);\n    pPVar3 = (PROCESS *)0x0;\n    puVar9 = puStack_268;\n    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      block = *(int *)(puStack_268 + -0x7690);\n      iVar4 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar7 = *(int *)(*(int *)block + (int)pPVar3 * 4);\n        if ((iVar7 != 0) &&\n           (pPVar8 = (PROCESS *)(*pcVar2)(iVar7,psVar6,in_a2,pPVar3), puVar9 = puStack_268,\n           pPVar8 != (PROCESS *)0x0)) goto LAB_00068560;\n        pPVar3 = (PROCESS *)((int)&pPVar3->next + 1);\n      } while ((int)pPVar3 < *(int *)(iVar4 + 0x18));\n    }\n    pPVar8 = (PROCESS *)0x0;\nLAB_00068560:\n    (**(code **)(puVar9 + -0x5f7c))(3,aiStack_1dc,0);\n  }\n  if (iStack_15c == **(int **)(puStack_268 + -0x5fb4)) {\n    return pPVar8;\n  }\n  pcVar2 = *(code **)(puStack_268 + -0x6004);\n  pcVar10 = mark_all_jobs_as_dead;\n  (*pcVar2)();\n  pPStack_28c = (PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8);\n  pPStack_284 = pPVar3;\n  piStack_280 = (int *)block;\n  pcStack_27c = pcVar10;\n  if (*(int *)(*(int *)(pcVar2 + 0xee918) + 0x18) != 0) {\n    (**(code **)(pcVar2 + 0xefdf4))(auStack_38c);\n    (**(code **)(pcVar2 + 0xefe84))(auStack_38c,0x12);\n    (**(code **)(pcVar2 + 0xefdf4))(auStack_30c);\n    (**(code **)(pcVar2 + 0xf0030))(1,auStack_38c,auStack_30c);\n    if (0 < *(int *)(*(int *)(pcVar2 + 0xee918) + 0x18)) {\n      piVar5 = (int *)**(undefined4 **)(pcVar2 + 0xee91c);\n      iVar4 = 0;\n      iVar7 = *(int *)(pcVar2 + 0xee918);\n      do {\n        if (*piVar5 != 0) {\n          *(undefined4 *)(*piVar5 + 0xc) = 4;\n          *(int *)(iVar7 + 0x28) = *(int *)(iVar7 + 0x28) + 1;\n        }\n        iVar4 = iVar4 + 1;\n        piVar5 = piVar5 + 1;\n      } while (iVar4 < *(int *)(iVar7 + 0x18));\n    }\n    (**(code **)(pcVar2 + 0xf0030))(3,auStack_30c,0);\n  }\n  if (pPStack_28c != (PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8)) {\n    pcVar2 = *(code **)(pcVar2 + 0xeffa8);\n    (*pcVar2)();\n    pPVar3 = *(PROCESS **)(pcVar2 + 0xeeac0);\n    if (pPVar3->next != (process *)0x0) {\n      pPVar3 = (PROCESS *)pPVar3->status;\n      if (pPVar3 != (PROCESS *)0x0) {\n        (**(code **)(pcVar2 + 0xefed0))();\n        pPVar3 = *(PROCESS **)(pcVar2 + 0xeeac0);\n        pPVar3->next = (process *)0x0;\n        pPVar3->status = 0;\n        pPVar3->pid = 0;\n        pPVar3->running = 0;\n      }\n    }\n    return pPVar3;\n  }\n  return (PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8);\n}\n\n" (function_definition "PROCESS * find_last_proc(int job,int block)\n\n{\n  process *ppVar1;\n  code *pcVar2;\n  PROCESS *pPVar3;\n  int iVar4;\n  int *piVar5;\n  sigset_t *psVar6;\n  int iVar7;\n  undefined4 in_a2;\n  sigset_t *unaff_s2;\n  sigset_t *unaff_s3;\n  PROCESS *pPVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined1 auStack_38c [128];\n  undefined1 auStack_30c [128];\n  PROCESS *pPStack_28c;\n  PROCESS *pPStack_284;\n  int *piStack_280;\n  code *pcStack_27c;\n  undefined *puStack_268;\n  undefined1 auStack_25c [128];\n  int aiStack_1dc [32];\n  int iStack_15c;\n  PROCESS *pPStack_158;\n  int iStack_154;\n  sigset_t *psStack_150;\n  sigset_t *psStack_14c;\n  sigset_t set;\n  sigset_t oset;\n  \n  pcVar2 = *(code **)PTR___stack_chk_guard_0015858c;\n  if (block == 0) {\n    pPVar3 = *(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4);\n    psVar6 = (sigset_t *)0x0;\n    if ((pPVar3 == (process *)0x0) || (ppVar1 = pPVar3->next, pPVar3->next == pPVar3))\n    goto LAB_000683b4;\nLAB_000682d4:\n    do {\n      pPVar8 = ppVar1;\n      if (pPVar8 == (PROCESS *)0x0) break;\n      ppVar1 = pPVar8->next;\n    } while (pPVar3 != pPVar8->next);\n    in_a2 = 0;\n    pPVar3 = pPVar8;\n    if (block == 0) goto LAB_000683b4;\n  }\n  else {\n    unaff_s2 = &set;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = &oset;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    psVar6 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    pPVar3 = *(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4);\n    if ((pPVar3 != (process *)0x0) && (ppVar1 = pPVar3->next, pPVar3->next != pPVar3))\n    goto LAB_000682d4;\n  }\n  in_a2 = 0;\n  psVar6 = &oset;\n  (*(code *)PTR_sigprocmask_001585c4)(3,psVar6,0);\nLAB_000683b4:\n  if (pcVar2 == *(code **)PTR___stack_chk_guard_0015858c) {\n    return pPVar3;\n  }\n  puVar9 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  puStack_268 = puVar9 + 0xf614c;\n  iStack_15c = **(int **)(puVar9 + 0xf0198);\n  pPVar8 = *(PROCESS **)(*(int *)(puVar9 + 0xeeab8) + 0x18);\n  pPStack_158 = pPVar3;\n  iStack_154 = block;\n  psStack_150 = unaff_s2;\n  psStack_14c = unaff_s3;\n  if (pPVar8 != (PROCESS *)0x0) {\n    (**(code **)(puVar9 + 0xeff94))(auStack_25c);\n    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);\n    block = (int)aiStack_1dc;\n    (**(code **)(puStack_268 + -0x61b8))(block);\n    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,block);\n    pPVar3 = (PROCESS *)0x0;\n    puVar9 = puStack_268;\n    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      block = *(int *)(puStack_268 + -0x7690);\n      iVar4 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar7 = *(int *)(*(int *)block + (int)pPVar3 * 4);\n        if ((iVar7 != 0) &&\n           (pPVar8 = (PROCESS *)(*pcVar2)(iVar7,psVar6,in_a2,pPVar3), puVar9 = puStack_268,\n           pPVar8 != (PROCESS *)0x0)) goto LAB_00068560;\n        pPVar3 = (PROCESS *)((int)&pPVar3->next + 1);\n      } while ((int)pPVar3 < *(int *)(iVar4 + 0x18));\n    }\n    pPVar8 = (PROCESS *)0x0;\nLAB_00068560:\n    (**(code **)(puVar9 + -0x5f7c))(3,aiStack_1dc,0);\n  }\n  if (iStack_15c == **(int **)(puStack_268 + -0x5fb4)) {\n    return pPVar8;\n  }\n  pcVar2 = *(code **)(puStack_268 + -0x6004);\n  pcVar10 = mark_all_jobs_as_dead;\n  (*pcVar2)();\n  pPStack_28c = (PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8);\n  pPStack_284 = pPVar3;\n  piStack_280 = (int *)block;\n  pcStack_27c = pcVar10;\n  if (*(int *)(*(int *)(pcVar2 + 0xee918) + 0x18) != 0) {\n    (**(code **)(pcVar2 + 0xefdf4))(auStack_38c);\n    (**(code **)(pcVar2 + 0xefe84))(auStack_38c,0x12);\n    (**(code **)(pcVar2 + 0xefdf4))(auStack_30c);\n    (**(code **)(pcVar2 + 0xf0030))(1,auStack_38c,auStack_30c);\n    if (0 < *(int *)(*(int *)(pcVar2 + 0xee918) + 0x18)) {\n      piVar5 = (int *)**(undefined4 **)(pcVar2 + 0xee91c);\n      iVar4 = 0;\n      iVar7 = *(int *)(pcVar2 + 0xee918);\n      do {\n        if (*piVar5 != 0) {\n          *(undefined4 *)(*piVar5 + 0xc) = 4;\n          *(int *)(iVar7 + 0x28) = *(int *)(iVar7 + 0x28) + 1;\n        }\n        iVar4 = iVar4 + 1;\n        piVar5 = piVar5 + 1;\n      } while (iVar4 < *(int *)(iVar7 + 0x18));\n    }\n    (**(code **)(pcVar2 + 0xf0030))(3,auStack_30c,0);\n  }\n  if (pPStack_28c != (PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8)) {\n    pcVar2 = *(code **)(pcVar2 + 0xeffa8);\n    (*pcVar2)();\n    pPVar3 = *(PROCESS **)(pcVar2 + 0xeeac0);\n    if (pPVar3->next != (process *)0x0) {\n      pPVar3 = (PROCESS *)pPVar3->status;\n      if (pPVar3 != (PROCESS *)0x0) {\n        (**(code **)(pcVar2 + 0xefed0))();\n        pPVar3 = *(PROCESS **)(pcVar2 + 0xeeac0);\n        pPVar3->next = (process *)0x0;\n        pPVar3->status = 0;\n        pPVar3->pid = 0;\n        pPVar3->running = 0;\n      }\n    }\n    return pPVar3;\n  }\n  return (PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8);\n}" type_identifier (pointer_declarator "* find_last_proc(int job,int block)" * (function_declarator "find_last_proc(int job,int block)" identifier (parameter_list "(int job,int block)" ( (parameter_declaration "int job" primitive_type identifier) , (parameter_declaration "int block" primitive_type identifier) )))) (compound_statement "{\n  process *ppVar1;\n  code *pcVar2;\n  PROCESS *pPVar3;\n  int iVar4;\n  int *piVar5;\n  sigset_t *psVar6;\n  int iVar7;\n  undefined4 in_a2;\n  sigset_t *unaff_s2;\n  sigset_t *unaff_s3;\n  PROCESS *pPVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined1 auStack_38c [128];\n  undefined1 auStack_30c [128];\n  PROCESS *pPStack_28c;\n  PROCESS *pPStack_284;\n  int *piStack_280;\n  code *pcStack_27c;\n  undefined *puStack_268;\n  undefined1 auStack_25c [128];\n  int aiStack_1dc [32];\n  int iStack_15c;\n  PROCESS *pPStack_158;\n  int iStack_154;\n  sigset_t *psStack_150;\n  sigset_t *psStack_14c;\n  sigset_t set;\n  sigset_t oset;\n  \n  pcVar2 = *(code **)PTR___stack_chk_guard_0015858c;\n  if (block == 0) {\n    pPVar3 = *(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4);\n    psVar6 = (sigset_t *)0x0;\n    if ((pPVar3 == (process *)0x0) || (ppVar1 = pPVar3->next, pPVar3->next == pPVar3))\n    goto LAB_000683b4;\nLAB_000682d4:\n    do {\n      pPVar8 = ppVar1;\n      if (pPVar8 == (PROCESS *)0x0) break;\n      ppVar1 = pPVar8->next;\n    } while (pPVar3 != pPVar8->next);\n    in_a2 = 0;\n    pPVar3 = pPVar8;\n    if (block == 0) goto LAB_000683b4;\n  }\n  else {\n    unaff_s2 = &set;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = &oset;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    psVar6 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    pPVar3 = *(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4);\n    if ((pPVar3 != (process *)0x0) && (ppVar1 = pPVar3->next, pPVar3->next != pPVar3))\n    goto LAB_000682d4;\n  }\n  in_a2 = 0;\n  psVar6 = &oset;\n  (*(code *)PTR_sigprocmask_001585c4)(3,psVar6,0);\nLAB_000683b4:\n  if (pcVar2 == *(code **)PTR___stack_chk_guard_0015858c) {\n    return pPVar3;\n  }\n  puVar9 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  puStack_268 = puVar9 + 0xf614c;\n  iStack_15c = **(int **)(puVar9 + 0xf0198);\n  pPVar8 = *(PROCESS **)(*(int *)(puVar9 + 0xeeab8) + 0x18);\n  pPStack_158 = pPVar3;\n  iStack_154 = block;\n  psStack_150 = unaff_s2;\n  psStack_14c = unaff_s3;\n  if (pPVar8 != (PROCESS *)0x0) {\n    (**(code **)(puVar9 + 0xeff94))(auStack_25c);\n    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);\n    block = (int)aiStack_1dc;\n    (**(code **)(puStack_268 + -0x61b8))(block);\n    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,block);\n    pPVar3 = (PROCESS *)0x0;\n    puVar9 = puStack_268;\n    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      block = *(int *)(puStack_268 + -0x7690);\n      iVar4 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar7 = *(int *)(*(int *)block + (int)pPVar3 * 4);\n        if ((iVar7 != 0) &&\n           (pPVar8 = (PROCESS *)(*pcVar2)(iVar7,psVar6,in_a2,pPVar3), puVar9 = puStack_268,\n           pPVar8 != (PROCESS *)0x0)) goto LAB_00068560;\n        pPVar3 = (PROCESS *)((int)&pPVar3->next + 1);\n      } while ((int)pPVar3 < *(int *)(iVar4 + 0x18));\n    }\n    pPVar8 = (PROCESS *)0x0;\nLAB_00068560:\n    (**(code **)(puVar9 + -0x5f7c))(3,aiStack_1dc,0);\n  }\n  if (iStack_15c == **(int **)(puStack_268 + -0x5fb4)) {\n    return pPVar8;\n  }\n  pcVar2 = *(code **)(puStack_268 + -0x6004);\n  pcVar10 = mark_all_jobs_as_dead;\n  (*pcVar2)();\n  pPStack_28c = (PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8);\n  pPStack_284 = pPVar3;\n  piStack_280 = (int *)block;\n  pcStack_27c = pcVar10;\n  if (*(int *)(*(int *)(pcVar2 + 0xee918) + 0x18) != 0) {\n    (**(code **)(pcVar2 + 0xefdf4))(auStack_38c);\n    (**(code **)(pcVar2 + 0xefe84))(auStack_38c,0x12);\n    (**(code **)(pcVar2 + 0xefdf4))(auStack_30c);\n    (**(code **)(pcVar2 + 0xf0030))(1,auStack_38c,auStack_30c);\n    if (0 < *(int *)(*(int *)(pcVar2 + 0xee918) + 0x18)) {\n      piVar5 = (int *)**(undefined4 **)(pcVar2 + 0xee91c);\n      iVar4 = 0;\n      iVar7 = *(int *)(pcVar2 + 0xee918);\n      do {\n        if (*piVar5 != 0) {\n          *(undefined4 *)(*piVar5 + 0xc) = 4;\n          *(int *)(iVar7 + 0x28) = *(int *)(iVar7 + 0x28) + 1;\n        }\n        iVar4 = iVar4 + 1;\n        piVar5 = piVar5 + 1;\n      } while (iVar4 < *(int *)(iVar7 + 0x18));\n    }\n    (**(code **)(pcVar2 + 0xf0030))(3,auStack_30c,0);\n  }\n  if (pPStack_28c != (PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8)) {\n    pcVar2 = *(code **)(pcVar2 + 0xeffa8);\n    (*pcVar2)();\n    pPVar3 = *(PROCESS **)(pcVar2 + 0xeeac0);\n    if (pPVar3->next != (process *)0x0) {\n      pPVar3 = (PROCESS *)pPVar3->status;\n      if (pPVar3 != (PROCESS *)0x0) {\n        (**(code **)(pcVar2 + 0xefed0))();\n        pPVar3 = *(PROCESS **)(pcVar2 + 0xeeac0);\n        pPVar3->next = (process *)0x0;\n        pPVar3->status = 0;\n        pPVar3->pid = 0;\n        pPVar3->running = 0;\n      }\n    }\n    return pPVar3;\n  }\n  return (PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8);\n}" { (declaration "process *ppVar1;" type_identifier (pointer_declarator "*ppVar1" * identifier) ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "PROCESS *pPVar3;" type_identifier (pointer_declarator "*pPVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "sigset_t *psVar6;" type_identifier (pointer_declarator "*psVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 in_a2;" type_identifier identifier ;) (declaration "sigset_t *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "sigset_t *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "PROCESS *pPVar8;" type_identifier (pointer_declarator "*pPVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined1 auStack_38c [128];" type_identifier (array_declarator "auStack_38c [128]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_30c [128];" type_identifier (array_declarator "auStack_30c [128]" identifier [ number_literal ]) ;) (declaration "PROCESS *pPStack_28c;" type_identifier (pointer_declarator "*pPStack_28c" * identifier) ;) (declaration "PROCESS *pPStack_284;" type_identifier (pointer_declarator "*pPStack_284" * identifier) ;) (declaration "int *piStack_280;" primitive_type (pointer_declarator "*piStack_280" * identifier) ;) (declaration "code *pcStack_27c;" type_identifier (pointer_declarator "*pcStack_27c" * identifier) ;) (declaration "undefined *puStack_268;" type_identifier (pointer_declarator "*puStack_268" * identifier) ;) (declaration "undefined1 auStack_25c [128];" type_identifier (array_declarator "auStack_25c [128]" identifier [ number_literal ]) ;) (declaration "int aiStack_1dc [32];" primitive_type (array_declarator "aiStack_1dc [32]" identifier [ number_literal ]) ;) (declaration "int iStack_15c;" primitive_type identifier ;) (declaration "PROCESS *pPStack_158;" type_identifier (pointer_declarator "*pPStack_158" * identifier) ;) (declaration "int iStack_154;" primitive_type identifier ;) (declaration "sigset_t *psStack_150;" type_identifier (pointer_declarator "*psStack_150" * identifier) ;) (declaration "sigset_t *psStack_14c;" type_identifier (pointer_declarator "*psStack_14c" * identifier) ;) (declaration "sigset_t set;" type_identifier identifier ;) (declaration "sigset_t oset;" type_identifier identifier ;) (expression_statement "pcVar2 = *(code **)PTR___stack_chk_guard_0015858c;" (assignment_expression "pcVar2 = *(code **)PTR___stack_chk_guard_0015858c" identifier = (pointer_expression "*(code **)PTR___stack_chk_guard_0015858c" * (cast_expression "(code **)PTR___stack_chk_guard_0015858c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (block == 0) {\n    pPVar3 = *(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4);\n    psVar6 = (sigset_t *)0x0;\n    if ((pPVar3 == (process *)0x0) || (ppVar1 = pPVar3->next, pPVar3->next == pPVar3))\n    goto LAB_000683b4;\nLAB_000682d4:\n    do {\n      pPVar8 = ppVar1;\n      if (pPVar8 == (PROCESS *)0x0) break;\n      ppVar1 = pPVar8->next;\n    } while (pPVar3 != pPVar8->next);\n    in_a2 = 0;\n    pPVar3 = pPVar8;\n    if (block == 0) goto LAB_000683b4;\n  }\n  else {\n    unaff_s2 = &set;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = &oset;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    psVar6 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    pPVar3 = *(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4);\n    if ((pPVar3 != (process *)0x0) && (ppVar1 = pPVar3->next, pPVar3->next != pPVar3))\n    goto LAB_000682d4;\n  }" if (parenthesized_expression "(block == 0)" ( (binary_expression "block == 0" identifier == number_literal) )) (compound_statement "{\n    pPVar3 = *(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4);\n    psVar6 = (sigset_t *)0x0;\n    if ((pPVar3 == (process *)0x0) || (ppVar1 = pPVar3->next, pPVar3->next == pPVar3))\n    goto LAB_000683b4;\nLAB_000682d4:\n    do {\n      pPVar8 = ppVar1;\n      if (pPVar8 == (PROCESS *)0x0) break;\n      ppVar1 = pPVar8->next;\n    } while (pPVar3 != pPVar8->next);\n    in_a2 = 0;\n    pPVar3 = pPVar8;\n    if (block == 0) goto LAB_000683b4;\n  }" { (expression_statement "pPVar3 = *(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4);" (assignment_expression "pPVar3 = *(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4)" identifier = (pointer_expression "*(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4)" * (cast_expression "(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4)" ( (type_descriptor "PROCESS **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4)" ( (binary_expression "*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4" (pointer_expression "*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4)" * (cast_expression "(int *)(*(int *)PTR_jobs_00156eb0 + job * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_jobs_00156eb0 + job * 4)" ( (binary_expression "*(int *)PTR_jobs_00156eb0 + job * 4" (pointer_expression "*(int *)PTR_jobs_00156eb0" * (cast_expression "(int *)PTR_jobs_00156eb0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (binary_expression "job * 4" identifier * number_literal)) )))) + number_literal) ))))) ;) (expression_statement "psVar6 = (sigset_t *)0x0;" (assignment_expression "psVar6 = (sigset_t *)0x0" identifier = (cast_expression "(sigset_t *)0x0" ( (type_descriptor "sigset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((pPVar3 == (process *)0x0) || (ppVar1 = pPVar3->next, pPVar3->next == pPVar3))\n    goto LAB_000683b4;" if (parenthesized_expression "((pPVar3 == (process *)0x0) || (ppVar1 = pPVar3->next, pPVar3->next == pPVar3))" ( (binary_expression "(pPVar3 == (process *)0x0) || (ppVar1 = pPVar3->next, pPVar3->next == pPVar3)" (parenthesized_expression "(pPVar3 == (process *)0x0)" ( (binary_expression "pPVar3 == (process *)0x0" identifier == (cast_expression "(process *)0x0" ( (type_descriptor "process *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(ppVar1 = pPVar3->next, pPVar3->next == pPVar3)" ( (comma_expression "ppVar1 = pPVar3->next, pPVar3->next == pPVar3" (assignment_expression "ppVar1 = pPVar3->next" identifier = (field_expression "pPVar3->next" identifier -> field_identifier)) , (binary_expression "pPVar3->next == pPVar3" (field_expression "pPVar3->next" identifier -> field_identifier) == identifier)) ))) )) (goto_statement "goto LAB_000683b4;" goto statement_identifier ;)) (labeled_statement "LAB_000682d4:\n    do {\n      pPVar8 = ppVar1;\n      if (pPVar8 == (PROCESS *)0x0) break;\n      ppVar1 = pPVar8->next;\n    } while (pPVar3 != pPVar8->next);" statement_identifier : (do_statement "do {\n      pPVar8 = ppVar1;\n      if (pPVar8 == (PROCESS *)0x0) break;\n      ppVar1 = pPVar8->next;\n    } while (pPVar3 != pPVar8->next);" do (compound_statement "{\n      pPVar8 = ppVar1;\n      if (pPVar8 == (PROCESS *)0x0) break;\n      ppVar1 = pPVar8->next;\n    }" { (expression_statement "pPVar8 = ppVar1;" (assignment_expression "pPVar8 = ppVar1" identifier = identifier) ;) (if_statement "if (pPVar8 == (PROCESS *)0x0) break;" if (parenthesized_expression "(pPVar8 == (PROCESS *)0x0)" ( (binary_expression "pPVar8 == (PROCESS *)0x0" identifier == (cast_expression "(PROCESS *)0x0" ( (type_descriptor "PROCESS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppVar1 = pPVar8->next;" (assignment_expression "ppVar1 = pPVar8->next" identifier = (field_expression "pPVar8->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pPVar3 != pPVar8->next)" ( (binary_expression "pPVar3 != pPVar8->next" identifier != (field_expression "pPVar8->next" identifier -> field_identifier)) )) ;)) (expression_statement "in_a2 = 0;" (assignment_expression "in_a2 = 0" identifier = number_literal) ;) (expression_statement "pPVar3 = pPVar8;" (assignment_expression "pPVar3 = pPVar8" identifier = identifier) ;) (if_statement "if (block == 0) goto LAB_000683b4;" if (parenthesized_expression "(block == 0)" ( (binary_expression "block == 0" identifier == number_literal) )) (goto_statement "goto LAB_000683b4;" goto statement_identifier ;)) }) (else_clause "else {\n    unaff_s2 = &set;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = &oset;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    psVar6 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    pPVar3 = *(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4);\n    if ((pPVar3 != (process *)0x0) && (ppVar1 = pPVar3->next, pPVar3->next != pPVar3))\n    goto LAB_000682d4;\n  }" else (compound_statement "{\n    unaff_s2 = &set;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = &oset;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    psVar6 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    pPVar3 = *(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4);\n    if ((pPVar3 != (process *)0x0) && (ppVar1 = pPVar3->next, pPVar3->next != pPVar3))\n    goto LAB_000682d4;\n  }" { (expression_statement "unaff_s2 = &set;" (assignment_expression "unaff_s2 = &set" identifier = (pointer_expression "&set" & identifier)) ;) (expression_statement "(*(code *)PTR_sigemptyset_00158388)(unaff_s2);" (call_expression "(*(code *)PTR_sigemptyset_00158388)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_sigemptyset_00158388)" ( (pointer_expression "*(code *)PTR_sigemptyset_00158388" * (cast_expression "(code *)PTR_sigemptyset_00158388" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);" (call_expression "(*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00158418)" ( (pointer_expression "*(code *)PTR_sigaddset_00158418" * (cast_expression "(code *)PTR_sigaddset_00158418" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2,0x12)" ( identifier , number_literal ))) ;) (expression_statement "unaff_s3 = &oset;" (assignment_expression "unaff_s3 = &oset" identifier = (pointer_expression "&oset" & identifier)) ;) (expression_statement "(*(code *)PTR_sigemptyset_00158388)(unaff_s3);" (call_expression "(*(code *)PTR_sigemptyset_00158388)(unaff_s3)" (parenthesized_expression "(*(code *)PTR_sigemptyset_00158388)" ( (pointer_expression "*(code *)PTR_sigemptyset_00158388" * (cast_expression "(code *)PTR_sigemptyset_00158388" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s3)" ( identifier ))) ;) (expression_statement "psVar6 = unaff_s2;" (assignment_expression "psVar6 = unaff_s2" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);" (call_expression "(*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sigprocmask_001585c4)" ( (pointer_expression "*(code *)PTR_sigprocmask_001585c4" * (cast_expression "(code *)PTR_sigprocmask_001585c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,unaff_s2,unaff_s3)" ( number_literal , identifier , identifier ))) ;) (expression_statement "pPVar3 = *(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4);" (assignment_expression "pPVar3 = *(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4)" identifier = (pointer_expression "*(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4)" * (cast_expression "(PROCESS **)(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4)" ( (type_descriptor "PROCESS **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4)" ( (binary_expression "*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4) + 4" (pointer_expression "*(int *)(*(int *)PTR_jobs_00156eb0 + job * 4)" * (cast_expression "(int *)(*(int *)PTR_jobs_00156eb0 + job * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_jobs_00156eb0 + job * 4)" ( (binary_expression "*(int *)PTR_jobs_00156eb0 + job * 4" (pointer_expression "*(int *)PTR_jobs_00156eb0" * (cast_expression "(int *)PTR_jobs_00156eb0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (binary_expression "job * 4" identifier * number_literal)) )))) + number_literal) ))))) ;) (if_statement "if ((pPVar3 != (process *)0x0) && (ppVar1 = pPVar3->next, pPVar3->next != pPVar3))\n    goto LAB_000682d4;" if (parenthesized_expression "((pPVar3 != (process *)0x0) && (ppVar1 = pPVar3->next, pPVar3->next != pPVar3))" ( (binary_expression "(pPVar3 != (process *)0x0) && (ppVar1 = pPVar3->next, pPVar3->next != pPVar3)" (parenthesized_expression "(pPVar3 != (process *)0x0)" ( (binary_expression "pPVar3 != (process *)0x0" identifier != (cast_expression "(process *)0x0" ( (type_descriptor "process *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(ppVar1 = pPVar3->next, pPVar3->next != pPVar3)" ( (comma_expression "ppVar1 = pPVar3->next, pPVar3->next != pPVar3" (assignment_expression "ppVar1 = pPVar3->next" identifier = (field_expression "pPVar3->next" identifier -> field_identifier)) , (binary_expression "pPVar3->next != pPVar3" (field_expression "pPVar3->next" identifier -> field_identifier) != identifier)) ))) )) (goto_statement "goto LAB_000682d4;" goto statement_identifier ;)) }))) (expression_statement "in_a2 = 0;" (assignment_expression "in_a2 = 0" identifier = number_literal) ;) (expression_statement "psVar6 = &oset;" (assignment_expression "psVar6 = &oset" identifier = (pointer_expression "&oset" & identifier)) ;) (expression_statement "(*(code *)PTR_sigprocmask_001585c4)(3,psVar6,0);" (call_expression "(*(code *)PTR_sigprocmask_001585c4)(3,psVar6,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_001585c4)" ( (pointer_expression "*(code *)PTR_sigprocmask_001585c4" * (cast_expression "(code *)PTR_sigprocmask_001585c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,psVar6,0)" ( number_literal , identifier , number_literal ))) ;) (labeled_statement "LAB_000683b4:\n  if (pcVar2 == *(code **)PTR___stack_chk_guard_0015858c) {\n    return pPVar3;\n  }" statement_identifier : (if_statement "if (pcVar2 == *(code **)PTR___stack_chk_guard_0015858c) {\n    return pPVar3;\n  }" if (parenthesized_expression "(pcVar2 == *(code **)PTR___stack_chk_guard_0015858c)" ( (binary_expression "pcVar2 == *(code **)PTR___stack_chk_guard_0015858c" identifier == (pointer_expression "*(code **)PTR___stack_chk_guard_0015858c" * (cast_expression "(code **)PTR___stack_chk_guard_0015858c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return pPVar3;\n  }" { (return_statement "return pPVar3;" return identifier ;) }))) (expression_statement "puVar9 = PTR___stack_chk_fail_0015853c;" (assignment_expression "puVar9 = PTR___stack_chk_fail_0015853c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015853c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015853c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015853c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015853c" * (cast_expression "(code *)PTR___stack_chk_fail_0015853c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_268 = puVar9 + 0xf614c;" (assignment_expression "puStack_268 = puVar9 + 0xf614c" identifier = (binary_expression "puVar9 + 0xf614c" identifier + number_literal)) ;) (expression_statement "iStack_15c = **(int **)(puVar9 + 0xf0198);" (assignment_expression "iStack_15c = **(int **)(puVar9 + 0xf0198)" identifier = (pointer_expression "**(int **)(puVar9 + 0xf0198)" * (pointer_expression "*(int **)(puVar9 + 0xf0198)" * (cast_expression "(int **)(puVar9 + 0xf0198)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xf0198)" ( (binary_expression "puVar9 + 0xf0198" identifier + number_literal) )))))) ;) (expression_statement "pPVar8 = *(PROCESS **)(*(int *)(puVar9 + 0xeeab8) + 0x18);" (assignment_expression "pPVar8 = *(PROCESS **)(*(int *)(puVar9 + 0xeeab8) + 0x18)" identifier = (pointer_expression "*(PROCESS **)(*(int *)(puVar9 + 0xeeab8) + 0x18)" * (cast_expression "(PROCESS **)(*(int *)(puVar9 + 0xeeab8) + 0x18)" ( (type_descriptor "PROCESS **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar9 + 0xeeab8) + 0x18)" ( (binary_expression "*(int *)(puVar9 + 0xeeab8) + 0x18" (pointer_expression "*(int *)(puVar9 + 0xeeab8)" * (cast_expression "(int *)(puVar9 + 0xeeab8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xeeab8)" ( (binary_expression "puVar9 + 0xeeab8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pPStack_158 = pPVar3;" (assignment_expression "pPStack_158 = pPVar3" identifier = identifier) ;) (expression_statement "iStack_154 = block;" (assignment_expression "iStack_154 = block" identifier = identifier) ;) (expression_statement "psStack_150 = unaff_s2;" (assignment_expression "psStack_150 = unaff_s2" identifier = identifier) ;) (expression_statement "psStack_14c = unaff_s3;" (assignment_expression "psStack_14c = unaff_s3" identifier = identifier) ;) (if_statement "if (pPVar8 != (PROCESS *)0x0) {\n    (**(code **)(puVar9 + 0xeff94))(auStack_25c);\n    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);\n    block = (int)aiStack_1dc;\n    (**(code **)(puStack_268 + -0x61b8))(block);\n    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,block);\n    pPVar3 = (PROCESS *)0x0;\n    puVar9 = puStack_268;\n    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      block = *(int *)(puStack_268 + -0x7690);\n      iVar4 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar7 = *(int *)(*(int *)block + (int)pPVar3 * 4);\n        if ((iVar7 != 0) &&\n           (pPVar8 = (PROCESS *)(*pcVar2)(iVar7,psVar6,in_a2,pPVar3), puVar9 = puStack_268,\n           pPVar8 != (PROCESS *)0x0)) goto LAB_00068560;\n        pPVar3 = (PROCESS *)((int)&pPVar3->next + 1);\n      } while ((int)pPVar3 < *(int *)(iVar4 + 0x18));\n    }\n    pPVar8 = (PROCESS *)0x0;\nLAB_00068560:\n    (**(code **)(puVar9 + -0x5f7c))(3,aiStack_1dc,0);\n  }" if (parenthesized_expression "(pPVar8 != (PROCESS *)0x0)" ( (binary_expression "pPVar8 != (PROCESS *)0x0" identifier != (cast_expression "(PROCESS *)0x0" ( (type_descriptor "PROCESS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(puVar9 + 0xeff94))(auStack_25c);\n    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);\n    block = (int)aiStack_1dc;\n    (**(code **)(puStack_268 + -0x61b8))(block);\n    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,block);\n    pPVar3 = (PROCESS *)0x0;\n    puVar9 = puStack_268;\n    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      block = *(int *)(puStack_268 + -0x7690);\n      iVar4 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar7 = *(int *)(*(int *)block + (int)pPVar3 * 4);\n        if ((iVar7 != 0) &&\n           (pPVar8 = (PROCESS *)(*pcVar2)(iVar7,psVar6,in_a2,pPVar3), puVar9 = puStack_268,\n           pPVar8 != (PROCESS *)0x0)) goto LAB_00068560;\n        pPVar3 = (PROCESS *)((int)&pPVar3->next + 1);\n      } while ((int)pPVar3 < *(int *)(iVar4 + 0x18));\n    }\n    pPVar8 = (PROCESS *)0x0;\nLAB_00068560:\n    (**(code **)(puVar9 + -0x5f7c))(3,aiStack_1dc,0);\n  }" { (expression_statement "(**(code **)(puVar9 + 0xeff94))(auStack_25c);" (call_expression "(**(code **)(puVar9 + 0xeff94))(auStack_25c)" (parenthesized_expression "(**(code **)(puVar9 + 0xeff94))" ( (pointer_expression "**(code **)(puVar9 + 0xeff94)" * (pointer_expression "*(code **)(puVar9 + 0xeff94)" * (cast_expression "(code **)(puVar9 + 0xeff94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xeff94)" ( (binary_expression "puVar9 + 0xeff94" identifier + number_literal) ))))) )) (argument_list "(auStack_25c)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);" (call_expression "(**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12)" (parenthesized_expression "(**(code **)(puStack_268 + -0x6128))" ( (pointer_expression "**(code **)(puStack_268 + -0x6128)" * (pointer_expression "*(code **)(puStack_268 + -0x6128)" * (cast_expression "(code **)(puStack_268 + -0x6128)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_268 + -0x6128)" ( (binary_expression "puStack_268 + -0x6128" identifier + number_literal) ))))) )) (argument_list "(auStack_25c,0x12)" ( identifier , number_literal ))) ;) (expression_statement "block = (int)aiStack_1dc;" (assignment_expression "block = (int)aiStack_1dc" identifier = (cast_expression "(int)aiStack_1dc" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "(**(code **)(puStack_268 + -0x61b8))(block);" (call_expression "(**(code **)(puStack_268 + -0x61b8))(block)" (parenthesized_expression "(**(code **)(puStack_268 + -0x61b8))" ( (pointer_expression "**(code **)(puStack_268 + -0x61b8)" * (pointer_expression "*(code **)(puStack_268 + -0x61b8)" * (cast_expression "(code **)(puStack_268 + -0x61b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_268 + -0x61b8)" ( (binary_expression "puStack_268 + -0x61b8" identifier + number_literal) ))))) )) (argument_list "(block)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,block);" (call_expression "(**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,block)" (parenthesized_expression "(**(code **)(puStack_268 + -0x5f7c))" ( (pointer_expression "**(code **)(puStack_268 + -0x5f7c)" * (pointer_expression "*(code **)(puStack_268 + -0x5f7c)" * (cast_expression "(code **)(puStack_268 + -0x5f7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_268 + -0x5f7c)" ( (binary_expression "puStack_268 + -0x5f7c" identifier + number_literal) ))))) )) (argument_list "(1,auStack_25c,block)" ( number_literal , identifier , identifier ))) ;) (expression_statement "pPVar3 = (PROCESS *)0x0;" (assignment_expression "pPVar3 = (PROCESS *)0x0" identifier = (cast_expression "(PROCESS *)0x0" ( (type_descriptor "PROCESS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar9 = puStack_268;" (assignment_expression "puVar9 = puStack_268" identifier = identifier) ;) (if_statement "if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      block = *(int *)(puStack_268 + -0x7690);\n      iVar4 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar7 = *(int *)(*(int *)block + (int)pPVar3 * 4);\n        if ((iVar7 != 0) &&\n           (pPVar8 = (PROCESS *)(*pcVar2)(iVar7,psVar6,in_a2,pPVar3), puVar9 = puStack_268,\n           pPVar8 != (PROCESS *)0x0)) goto LAB_00068560;\n        pPVar3 = (PROCESS *)((int)&pPVar3->next + 1);\n      } while ((int)pPVar3 < *(int *)(iVar4 + 0x18));\n    }" if (parenthesized_expression "(0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18))" ( (binary_expression "0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)" number_literal < (pointer_expression "*(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)" * (cast_expression "(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_268 + -0x7694) + 0x18)" ( (binary_expression "*(int *)(puStack_268 + -0x7694) + 0x18" (pointer_expression "*(int *)(puStack_268 + -0x7694)" * (cast_expression "(int *)(puStack_268 + -0x7694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_268 + -0x7694)" ( (binary_expression "puStack_268 + -0x7694" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n      block = *(int *)(puStack_268 + -0x7690);\n      iVar4 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar7 = *(int *)(*(int *)block + (int)pPVar3 * 4);\n        if ((iVar7 != 0) &&\n           (pPVar8 = (PROCESS *)(*pcVar2)(iVar7,psVar6,in_a2,pPVar3), puVar9 = puStack_268,\n           pPVar8 != (PROCESS *)0x0)) goto LAB_00068560;\n        pPVar3 = (PROCESS *)((int)&pPVar3->next + 1);\n      } while ((int)pPVar3 < *(int *)(iVar4 + 0x18));\n    }" { (expression_statement "block = *(int *)(puStack_268 + -0x7690);" (assignment_expression "block = *(int *)(puStack_268 + -0x7690)" identifier = (pointer_expression "*(int *)(puStack_268 + -0x7690)" * (cast_expression "(int *)(puStack_268 + -0x7690)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_268 + -0x7690)" ( (binary_expression "puStack_268 + -0x7690" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(puStack_268 + -0x7694);" (assignment_expression "iVar4 = *(int *)(puStack_268 + -0x7694)" identifier = (pointer_expression "*(int *)(puStack_268 + -0x7694)" * (cast_expression "(int *)(puStack_268 + -0x7694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_268 + -0x7694)" ( (binary_expression "puStack_268 + -0x7694" identifier + number_literal) ))))) ;) (do_statement "do {\n        iVar7 = *(int *)(*(int *)block + (int)pPVar3 * 4);\n        if ((iVar7 != 0) &&\n           (pPVar8 = (PROCESS *)(*pcVar2)(iVar7,psVar6,in_a2,pPVar3), puVar9 = puStack_268,\n           pPVar8 != (PROCESS *)0x0)) goto LAB_00068560;\n        pPVar3 = (PROCESS *)((int)&pPVar3->next + 1);\n      } while ((int)pPVar3 < *(int *)(iVar4 + 0x18));" do (compound_statement "{\n        iVar7 = *(int *)(*(int *)block + (int)pPVar3 * 4);\n        if ((iVar7 != 0) &&\n           (pPVar8 = (PROCESS *)(*pcVar2)(iVar7,psVar6,in_a2,pPVar3), puVar9 = puStack_268,\n           pPVar8 != (PROCESS *)0x0)) goto LAB_00068560;\n        pPVar3 = (PROCESS *)((int)&pPVar3->next + 1);\n      }" { (expression_statement "iVar7 = *(int *)(*(int *)block + (int)pPVar3 * 4);" (assignment_expression "iVar7 = *(int *)(*(int *)block + (int)pPVar3 * 4)" identifier = (pointer_expression "*(int *)(*(int *)block + (int)pPVar3 * 4)" * (cast_expression "(int *)(*(int *)block + (int)pPVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)block + (int)pPVar3 * 4)" ( (binary_expression "*(int *)block + (int)pPVar3 * 4" (pointer_expression "*(int *)block" * (cast_expression "(int *)block" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (binary_expression "(int)pPVar3 * 4" (cast_expression "(int)pPVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (if_statement "if ((iVar7 != 0) &&\n           (pPVar8 = (PROCESS *)(*pcVar2)(iVar7,psVar6,in_a2,pPVar3), puVar9 = puStack_268,\n           pPVar8 != (PROCESS *)0x0)) goto LAB_00068560;" if (parenthesized_expression "((iVar7 != 0) &&\n           (pPVar8 = (PROCESS *)(*pcVar2)(iVar7,psVar6,in_a2,pPVar3), puVar9 = puStack_268,\n           pPVar8 != (PROCESS *)0x0))" ( (binary_expression "(iVar7 != 0) &&\n           (pPVar8 = (PROCESS *)(*pcVar2)(iVar7,psVar6,in_a2,pPVar3), puVar9 = puStack_268,\n           pPVar8 != (PROCESS *)0x0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(pPVar8 = (PROCESS *)(*pcVar2)(iVar7,psVar6,in_a2,pPVar3), puVar9 = puStack_268,\n           pPVar8 != (PROCESS *)0x0)" ( (comma_expression "pPVar8 = (PROCESS *)(*pcVar2)(iVar7,psVar6,in_a2,pPVar3), puVar9 = puStack_268,\n           pPVar8 != (PROCESS *)0x0" (assignment_expression "pPVar8 = (PROCESS *)(*pcVar2)(iVar7,psVar6,in_a2,pPVar3)" identifier = (cast_expression "(PROCESS *)(*pcVar2)(iVar7,psVar6,in_a2,pPVar3)" ( (type_descriptor "PROCESS *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar2)(iVar7,psVar6,in_a2,pPVar3)" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "(iVar7,psVar6,in_a2,pPVar3)" ( identifier , identifier , identifier , identifier ))))) , (comma_expression "puVar9 = puStack_268,\n           pPVar8 != (PROCESS *)0x0" (assignment_expression "puVar9 = puStack_268" identifier = identifier) , (binary_expression "pPVar8 != (PROCESS *)0x0" identifier != (cast_expression "(PROCESS *)0x0" ( (type_descriptor "PROCESS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (goto_statement "goto LAB_00068560;" goto statement_identifier ;)) (expression_statement "pPVar3 = (PROCESS *)((int)&pPVar3->next + 1);" (assignment_expression "pPVar3 = (PROCESS *)((int)&pPVar3->next + 1)" identifier = (cast_expression "(PROCESS *)((int)&pPVar3->next + 1)" ( (type_descriptor "PROCESS *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pPVar3->next + 1)" ( (binary_expression "(int)&pPVar3->next + 1" (cast_expression "(int)&pPVar3->next" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pPVar3->next" & (field_expression "pPVar3->next" identifier -> field_identifier))) + number_literal) )))) ;) }) while (parenthesized_expression "((int)pPVar3 < *(int *)(iVar4 + 0x18))" ( (binary_expression "(int)pPVar3 < *(int *)(iVar4 + 0x18)" (cast_expression "(int)pPVar3" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "pPVar8 = (PROCESS *)0x0;" (assignment_expression "pPVar8 = (PROCESS *)0x0" identifier = (cast_expression "(PROCESS *)0x0" ( (type_descriptor "PROCESS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00068560:\n    (**(code **)(puVar9 + -0x5f7c))(3,aiStack_1dc,0);" statement_identifier : (expression_statement "(**(code **)(puVar9 + -0x5f7c))(3,aiStack_1dc,0);" (call_expression "(**(code **)(puVar9 + -0x5f7c))(3,aiStack_1dc,0)" (parenthesized_expression "(**(code **)(puVar9 + -0x5f7c))" ( (pointer_expression "**(code **)(puVar9 + -0x5f7c)" * (pointer_expression "*(code **)(puVar9 + -0x5f7c)" * (cast_expression "(code **)(puVar9 + -0x5f7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x5f7c)" ( (binary_expression "puVar9 + -0x5f7c" identifier + number_literal) ))))) )) (argument_list "(3,aiStack_1dc,0)" ( number_literal , identifier , number_literal ))) ;)) })) (if_statement "if (iStack_15c == **(int **)(puStack_268 + -0x5fb4)) {\n    return pPVar8;\n  }" if (parenthesized_expression "(iStack_15c == **(int **)(puStack_268 + -0x5fb4))" ( (binary_expression "iStack_15c == **(int **)(puStack_268 + -0x5fb4)" identifier == (pointer_expression "**(int **)(puStack_268 + -0x5fb4)" * (pointer_expression "*(int **)(puStack_268 + -0x5fb4)" * (cast_expression "(int **)(puStack_268 + -0x5fb4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_268 + -0x5fb4)" ( (binary_expression "puStack_268 + -0x5fb4" identifier + number_literal) )))))) )) (compound_statement "{\n    return pPVar8;\n  }" { (return_statement "return pPVar8;" return identifier ;) })) (expression_statement "pcVar2 = *(code **)(puStack_268 + -0x6004);" (assignment_expression "pcVar2 = *(code **)(puStack_268 + -0x6004)" identifier = (pointer_expression "*(code **)(puStack_268 + -0x6004)" * (cast_expression "(code **)(puStack_268 + -0x6004)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_268 + -0x6004)" ( (binary_expression "puStack_268 + -0x6004" identifier + number_literal) ))))) ;) (expression_statement "pcVar10 = mark_all_jobs_as_dead;" (assignment_expression "pcVar10 = mark_all_jobs_as_dead" identifier = identifier) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pPStack_28c = (PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8);" (assignment_expression "pPStack_28c = (PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8)" identifier = (cast_expression "(PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8)" ( (type_descriptor "PROCESS *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar2 + 0xefff8)" * (pointer_expression "*(undefined4 **)(pcVar2 + 0xefff8)" * (cast_expression "(undefined4 **)(pcVar2 + 0xefff8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0xefff8)" ( (binary_expression "pcVar2 + 0xefff8" identifier + number_literal) ))))))) ;) (expression_statement "pPStack_284 = pPVar3;" (assignment_expression "pPStack_284 = pPVar3" identifier = identifier) ;) (expression_statement "piStack_280 = (int *)block;" (assignment_expression "piStack_280 = (int *)block" identifier = (cast_expression "(int *)block" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcStack_27c = pcVar10;" (assignment_expression "pcStack_27c = pcVar10" identifier = identifier) ;) (if_statement "if (*(int *)(*(int *)(pcVar2 + 0xee918) + 0x18) != 0) {\n    (**(code **)(pcVar2 + 0xefdf4))(auStack_38c);\n    (**(code **)(pcVar2 + 0xefe84))(auStack_38c,0x12);\n    (**(code **)(pcVar2 + 0xefdf4))(auStack_30c);\n    (**(code **)(pcVar2 + 0xf0030))(1,auStack_38c,auStack_30c);\n    if (0 < *(int *)(*(int *)(pcVar2 + 0xee918) + 0x18)) {\n      piVar5 = (int *)**(undefined4 **)(pcVar2 + 0xee91c);\n      iVar4 = 0;\n      iVar7 = *(int *)(pcVar2 + 0xee918);\n      do {\n        if (*piVar5 != 0) {\n          *(undefined4 *)(*piVar5 + 0xc) = 4;\n          *(int *)(iVar7 + 0x28) = *(int *)(iVar7 + 0x28) + 1;\n        }\n        iVar4 = iVar4 + 1;\n        piVar5 = piVar5 + 1;\n      } while (iVar4 < *(int *)(iVar7 + 0x18));\n    }\n    (**(code **)(pcVar2 + 0xf0030))(3,auStack_30c,0);\n  }" if (parenthesized_expression "(*(int *)(*(int *)(pcVar2 + 0xee918) + 0x18) != 0)" ( (binary_expression "*(int *)(*(int *)(pcVar2 + 0xee918) + 0x18) != 0" (pointer_expression "*(int *)(*(int *)(pcVar2 + 0xee918) + 0x18)" * (cast_expression "(int *)(*(int *)(pcVar2 + 0xee918) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar2 + 0xee918) + 0x18)" ( (binary_expression "*(int *)(pcVar2 + 0xee918) + 0x18" (pointer_expression "*(int *)(pcVar2 + 0xee918)" * (cast_expression "(int *)(pcVar2 + 0xee918)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0xee918)" ( (binary_expression "pcVar2 + 0xee918" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar2 + 0xefdf4))(auStack_38c);\n    (**(code **)(pcVar2 + 0xefe84))(auStack_38c,0x12);\n    (**(code **)(pcVar2 + 0xefdf4))(auStack_30c);\n    (**(code **)(pcVar2 + 0xf0030))(1,auStack_38c,auStack_30c);\n    if (0 < *(int *)(*(int *)(pcVar2 + 0xee918) + 0x18)) {\n      piVar5 = (int *)**(undefined4 **)(pcVar2 + 0xee91c);\n      iVar4 = 0;\n      iVar7 = *(int *)(pcVar2 + 0xee918);\n      do {\n        if (*piVar5 != 0) {\n          *(undefined4 *)(*piVar5 + 0xc) = 4;\n          *(int *)(iVar7 + 0x28) = *(int *)(iVar7 + 0x28) + 1;\n        }\n        iVar4 = iVar4 + 1;\n        piVar5 = piVar5 + 1;\n      } while (iVar4 < *(int *)(iVar7 + 0x18));\n    }\n    (**(code **)(pcVar2 + 0xf0030))(3,auStack_30c,0);\n  }" { (expression_statement "(**(code **)(pcVar2 + 0xefdf4))(auStack_38c);" (call_expression "(**(code **)(pcVar2 + 0xefdf4))(auStack_38c)" (parenthesized_expression "(**(code **)(pcVar2 + 0xefdf4))" ( (pointer_expression "**(code **)(pcVar2 + 0xefdf4)" * (pointer_expression "*(code **)(pcVar2 + 0xefdf4)" * (cast_expression "(code **)(pcVar2 + 0xefdf4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0xefdf4)" ( (binary_expression "pcVar2 + 0xefdf4" identifier + number_literal) ))))) )) (argument_list "(auStack_38c)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar2 + 0xefe84))(auStack_38c,0x12);" (call_expression "(**(code **)(pcVar2 + 0xefe84))(auStack_38c,0x12)" (parenthesized_expression "(**(code **)(pcVar2 + 0xefe84))" ( (pointer_expression "**(code **)(pcVar2 + 0xefe84)" * (pointer_expression "*(code **)(pcVar2 + 0xefe84)" * (cast_expression "(code **)(pcVar2 + 0xefe84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0xefe84)" ( (binary_expression "pcVar2 + 0xefe84" identifier + number_literal) ))))) )) (argument_list "(auStack_38c,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar2 + 0xefdf4))(auStack_30c);" (call_expression "(**(code **)(pcVar2 + 0xefdf4))(auStack_30c)" (parenthesized_expression "(**(code **)(pcVar2 + 0xefdf4))" ( (pointer_expression "**(code **)(pcVar2 + 0xefdf4)" * (pointer_expression "*(code **)(pcVar2 + 0xefdf4)" * (cast_expression "(code **)(pcVar2 + 0xefdf4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0xefdf4)" ( (binary_expression "pcVar2 + 0xefdf4" identifier + number_literal) ))))) )) (argument_list "(auStack_30c)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar2 + 0xf0030))(1,auStack_38c,auStack_30c);" (call_expression "(**(code **)(pcVar2 + 0xf0030))(1,auStack_38c,auStack_30c)" (parenthesized_expression "(**(code **)(pcVar2 + 0xf0030))" ( (pointer_expression "**(code **)(pcVar2 + 0xf0030)" * (pointer_expression "*(code **)(pcVar2 + 0xf0030)" * (cast_expression "(code **)(pcVar2 + 0xf0030)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0xf0030)" ( (binary_expression "pcVar2 + 0xf0030" identifier + number_literal) ))))) )) (argument_list "(1,auStack_38c,auStack_30c)" ( number_literal , identifier , identifier ))) ;) (if_statement "if (0 < *(int *)(*(int *)(pcVar2 + 0xee918) + 0x18)) {\n      piVar5 = (int *)**(undefined4 **)(pcVar2 + 0xee91c);\n      iVar4 = 0;\n      iVar7 = *(int *)(pcVar2 + 0xee918);\n      do {\n        if (*piVar5 != 0) {\n          *(undefined4 *)(*piVar5 + 0xc) = 4;\n          *(int *)(iVar7 + 0x28) = *(int *)(iVar7 + 0x28) + 1;\n        }\n        iVar4 = iVar4 + 1;\n        piVar5 = piVar5 + 1;\n      } while (iVar4 < *(int *)(iVar7 + 0x18));\n    }" if (parenthesized_expression "(0 < *(int *)(*(int *)(pcVar2 + 0xee918) + 0x18))" ( (binary_expression "0 < *(int *)(*(int *)(pcVar2 + 0xee918) + 0x18)" number_literal < (pointer_expression "*(int *)(*(int *)(pcVar2 + 0xee918) + 0x18)" * (cast_expression "(int *)(*(int *)(pcVar2 + 0xee918) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar2 + 0xee918) + 0x18)" ( (binary_expression "*(int *)(pcVar2 + 0xee918) + 0x18" (pointer_expression "*(int *)(pcVar2 + 0xee918)" * (cast_expression "(int *)(pcVar2 + 0xee918)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0xee918)" ( (binary_expression "pcVar2 + 0xee918" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n      piVar5 = (int *)**(undefined4 **)(pcVar2 + 0xee91c);\n      iVar4 = 0;\n      iVar7 = *(int *)(pcVar2 + 0xee918);\n      do {\n        if (*piVar5 != 0) {\n          *(undefined4 *)(*piVar5 + 0xc) = 4;\n          *(int *)(iVar7 + 0x28) = *(int *)(iVar7 + 0x28) + 1;\n        }\n        iVar4 = iVar4 + 1;\n        piVar5 = piVar5 + 1;\n      } while (iVar4 < *(int *)(iVar7 + 0x18));\n    }" { (expression_statement "piVar5 = (int *)**(undefined4 **)(pcVar2 + 0xee91c);" (assignment_expression "piVar5 = (int *)**(undefined4 **)(pcVar2 + 0xee91c)" identifier = (cast_expression "(int *)**(undefined4 **)(pcVar2 + 0xee91c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar2 + 0xee91c)" * (pointer_expression "*(undefined4 **)(pcVar2 + 0xee91c)" * (cast_expression "(undefined4 **)(pcVar2 + 0xee91c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0xee91c)" ( (binary_expression "pcVar2 + 0xee91c" identifier + number_literal) ))))))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = *(int *)(pcVar2 + 0xee918);" (assignment_expression "iVar7 = *(int *)(pcVar2 + 0xee918)" identifier = (pointer_expression "*(int *)(pcVar2 + 0xee918)" * (cast_expression "(int *)(pcVar2 + 0xee918)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0xee918)" ( (binary_expression "pcVar2 + 0xee918" identifier + number_literal) ))))) ;) (do_statement "do {\n        if (*piVar5 != 0) {\n          *(undefined4 *)(*piVar5 + 0xc) = 4;\n          *(int *)(iVar7 + 0x28) = *(int *)(iVar7 + 0x28) + 1;\n        }\n        iVar4 = iVar4 + 1;\n        piVar5 = piVar5 + 1;\n      } while (iVar4 < *(int *)(iVar7 + 0x18));" do (compound_statement "{\n        if (*piVar5 != 0) {\n          *(undefined4 *)(*piVar5 + 0xc) = 4;\n          *(int *)(iVar7 + 0x28) = *(int *)(iVar7 + 0x28) + 1;\n        }\n        iVar4 = iVar4 + 1;\n        piVar5 = piVar5 + 1;\n      }" { (if_statement "if (*piVar5 != 0) {\n          *(undefined4 *)(*piVar5 + 0xc) = 4;\n          *(int *)(iVar7 + 0x28) = *(int *)(iVar7 + 0x28) + 1;\n        }" if (parenthesized_expression "(*piVar5 != 0)" ( (binary_expression "*piVar5 != 0" (pointer_expression "*piVar5" * identifier) != number_literal) )) (compound_statement "{\n          *(undefined4 *)(*piVar5 + 0xc) = 4;\n          *(int *)(iVar7 + 0x28) = *(int *)(iVar7 + 0x28) + 1;\n        }" { (expression_statement "*(undefined4 *)(*piVar5 + 0xc) = 4;" (assignment_expression "*(undefined4 *)(*piVar5 + 0xc) = 4" (pointer_expression "*(undefined4 *)(*piVar5 + 0xc)" * (cast_expression "(undefined4 *)(*piVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + 0xc)" ( (binary_expression "*piVar5 + 0xc" (pointer_expression "*piVar5" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(iVar7 + 0x28) = *(int *)(iVar7 + 0x28) + 1;" (assignment_expression "*(int *)(iVar7 + 0x28) = *(int *)(iVar7 + 0x28) + 1" (pointer_expression "*(int *)(iVar7 + 0x28)" * (cast_expression "(int *)(iVar7 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x28)" ( (binary_expression "iVar7 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar7 + 0x28) + 1" (pointer_expression "*(int *)(iVar7 + 0x28)" * (cast_expression "(int *)(iVar7 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x28)" ( (binary_expression "iVar7 + 0x28" identifier + number_literal) )))) + number_literal)) ;) })) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "piVar5 = piVar5 + 1;" (assignment_expression "piVar5 = piVar5 + 1" identifier = (binary_expression "piVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 < *(int *)(iVar7 + 0x18))" ( (binary_expression "iVar4 < *(int *)(iVar7 + 0x18)" identifier < (pointer_expression "*(int *)(iVar7 + 0x18)" * (cast_expression "(int *)(iVar7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "(**(code **)(pcVar2 + 0xf0030))(3,auStack_30c,0);" (call_expression "(**(code **)(pcVar2 + 0xf0030))(3,auStack_30c,0)" (parenthesized_expression "(**(code **)(pcVar2 + 0xf0030))" ( (pointer_expression "**(code **)(pcVar2 + 0xf0030)" * (pointer_expression "*(code **)(pcVar2 + 0xf0030)" * (cast_expression "(code **)(pcVar2 + 0xf0030)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0xf0030)" ( (binary_expression "pcVar2 + 0xf0030" identifier + number_literal) ))))) )) (argument_list "(3,auStack_30c,0)" ( number_literal , identifier , number_literal ))) ;) })) (if_statement "if (pPStack_28c != (PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8)) {\n    pcVar2 = *(code **)(pcVar2 + 0xeffa8);\n    (*pcVar2)();\n    pPVar3 = *(PROCESS **)(pcVar2 + 0xeeac0);\n    if (pPVar3->next != (process *)0x0) {\n      pPVar3 = (PROCESS *)pPVar3->status;\n      if (pPVar3 != (PROCESS *)0x0) {\n        (**(code **)(pcVar2 + 0xefed0))();\n        pPVar3 = *(PROCESS **)(pcVar2 + 0xeeac0);\n        pPVar3->next = (process *)0x0;\n        pPVar3->status = 0;\n        pPVar3->pid = 0;\n        pPVar3->running = 0;\n      }\n    }\n    return pPVar3;\n  }" if (parenthesized_expression "(pPStack_28c != (PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8))" ( (binary_expression "pPStack_28c != (PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8)" identifier != (cast_expression "(PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8)" ( (type_descriptor "PROCESS *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar2 + 0xefff8)" * (pointer_expression "*(undefined4 **)(pcVar2 + 0xefff8)" * (cast_expression "(undefined4 **)(pcVar2 + 0xefff8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0xefff8)" ( (binary_expression "pcVar2 + 0xefff8" identifier + number_literal) ))))))) )) (compound_statement "{\n    pcVar2 = *(code **)(pcVar2 + 0xeffa8);\n    (*pcVar2)();\n    pPVar3 = *(PROCESS **)(pcVar2 + 0xeeac0);\n    if (pPVar3->next != (process *)0x0) {\n      pPVar3 = (PROCESS *)pPVar3->status;\n      if (pPVar3 != (PROCESS *)0x0) {\n        (**(code **)(pcVar2 + 0xefed0))();\n        pPVar3 = *(PROCESS **)(pcVar2 + 0xeeac0);\n        pPVar3->next = (process *)0x0;\n        pPVar3->status = 0;\n        pPVar3->pid = 0;\n        pPVar3->running = 0;\n      }\n    }\n    return pPVar3;\n  }" { (expression_statement "pcVar2 = *(code **)(pcVar2 + 0xeffa8);" (assignment_expression "pcVar2 = *(code **)(pcVar2 + 0xeffa8)" identifier = (pointer_expression "*(code **)(pcVar2 + 0xeffa8)" * (cast_expression "(code **)(pcVar2 + 0xeffa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0xeffa8)" ( (binary_expression "pcVar2 + 0xeffa8" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pPVar3 = *(PROCESS **)(pcVar2 + 0xeeac0);" (assignment_expression "pPVar3 = *(PROCESS **)(pcVar2 + 0xeeac0)" identifier = (pointer_expression "*(PROCESS **)(pcVar2 + 0xeeac0)" * (cast_expression "(PROCESS **)(pcVar2 + 0xeeac0)" ( (type_descriptor "PROCESS **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0xeeac0)" ( (binary_expression "pcVar2 + 0xeeac0" identifier + number_literal) ))))) ;) (if_statement "if (pPVar3->next != (process *)0x0) {\n      pPVar3 = (PROCESS *)pPVar3->status;\n      if (pPVar3 != (PROCESS *)0x0) {\n        (**(code **)(pcVar2 + 0xefed0))();\n        pPVar3 = *(PROCESS **)(pcVar2 + 0xeeac0);\n        pPVar3->next = (process *)0x0;\n        pPVar3->status = 0;\n        pPVar3->pid = 0;\n        pPVar3->running = 0;\n      }\n    }" if (parenthesized_expression "(pPVar3->next != (process *)0x0)" ( (binary_expression "pPVar3->next != (process *)0x0" (field_expression "pPVar3->next" identifier -> field_identifier) != (cast_expression "(process *)0x0" ( (type_descriptor "process *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pPVar3 = (PROCESS *)pPVar3->status;\n      if (pPVar3 != (PROCESS *)0x0) {\n        (**(code **)(pcVar2 + 0xefed0))();\n        pPVar3 = *(PROCESS **)(pcVar2 + 0xeeac0);\n        pPVar3->next = (process *)0x0;\n        pPVar3->status = 0;\n        pPVar3->pid = 0;\n        pPVar3->running = 0;\n      }\n    }" { (expression_statement "pPVar3 = (PROCESS *)pPVar3->status;" (assignment_expression "pPVar3 = (PROCESS *)pPVar3->status" identifier = (cast_expression "(PROCESS *)pPVar3->status" ( (type_descriptor "PROCESS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pPVar3->status" identifier -> field_identifier))) ;) (if_statement "if (pPVar3 != (PROCESS *)0x0) {\n        (**(code **)(pcVar2 + 0xefed0))();\n        pPVar3 = *(PROCESS **)(pcVar2 + 0xeeac0);\n        pPVar3->next = (process *)0x0;\n        pPVar3->status = 0;\n        pPVar3->pid = 0;\n        pPVar3->running = 0;\n      }" if (parenthesized_expression "(pPVar3 != (PROCESS *)0x0)" ( (binary_expression "pPVar3 != (PROCESS *)0x0" identifier != (cast_expression "(PROCESS *)0x0" ( (type_descriptor "PROCESS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(pcVar2 + 0xefed0))();\n        pPVar3 = *(PROCESS **)(pcVar2 + 0xeeac0);\n        pPVar3->next = (process *)0x0;\n        pPVar3->status = 0;\n        pPVar3->pid = 0;\n        pPVar3->running = 0;\n      }" { (expression_statement "(**(code **)(pcVar2 + 0xefed0))();" (call_expression "(**(code **)(pcVar2 + 0xefed0))()" (parenthesized_expression "(**(code **)(pcVar2 + 0xefed0))" ( (pointer_expression "**(code **)(pcVar2 + 0xefed0)" * (pointer_expression "*(code **)(pcVar2 + 0xefed0)" * (cast_expression "(code **)(pcVar2 + 0xefed0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0xefed0)" ( (binary_expression "pcVar2 + 0xefed0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pPVar3 = *(PROCESS **)(pcVar2 + 0xeeac0);" (assignment_expression "pPVar3 = *(PROCESS **)(pcVar2 + 0xeeac0)" identifier = (pointer_expression "*(PROCESS **)(pcVar2 + 0xeeac0)" * (cast_expression "(PROCESS **)(pcVar2 + 0xeeac0)" ( (type_descriptor "PROCESS **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0xeeac0)" ( (binary_expression "pcVar2 + 0xeeac0" identifier + number_literal) ))))) ;) (expression_statement "pPVar3->next = (process *)0x0;" (assignment_expression "pPVar3->next = (process *)0x0" (field_expression "pPVar3->next" identifier -> field_identifier) = (cast_expression "(process *)0x0" ( (type_descriptor "process *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pPVar3->status = 0;" (assignment_expression "pPVar3->status = 0" (field_expression "pPVar3->status" identifier -> field_identifier) = number_literal) ;) (expression_statement "pPVar3->pid = 0;" (assignment_expression "pPVar3->pid = 0" (field_expression "pPVar3->pid" identifier -> field_identifier) = number_literal) ;) (expression_statement "pPVar3->running = 0;" (assignment_expression "pPVar3->running = 0" (field_expression "pPVar3->running" identifier -> field_identifier) = number_literal) ;) })) })) (return_statement "return pPVar3;" return identifier ;) })) (return_statement "return (PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8);" return (cast_expression "(PROCESS *)**(undefined4 **)(pcVar2 + 0xefff8)" ( (type_descriptor "PROCESS *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar2 + 0xefff8)" * (pointer_expression "*(undefined4 **)(pcVar2 + 0xefff8)" * (cast_expression "(undefined4 **)(pcVar2 + 0xefff8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0xefff8)" ( (binary_expression "pcVar2 + 0xefff8" identifier + number_literal) )))))) ;) })))
(translation_unit "int * FUN_00068268(int param_1,int *param_2,undefined4 param_3)\n\n{\n  int *piVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  int iVar4;\n  int *piVar5;\n  undefined1 *unaff_s2;\n  undefined1 *unaff_s3;\n  int *piVar6;\n  undefined *puVar7;\n  code *pcVar8;\n  undefined4 uVar9;\n  undefined1 auStack_38c [128];\n  undefined1 auStack_30c [128];\n  int *piStack_28c;\n  int *piStack_284;\n  int *piStack_280;\n  undefined4 uStack_27c;\n  undefined *puStack_268;\n  undefined1 auStack_25c [128];\n  int aiStack_1dc [32];\n  int iStack_15c;\n  int *piStack_158;\n  int *piStack_154;\n  undefined1 *puStack_150;\n  undefined1 *puStack_14c;\n  undefined1 auStack_11c [128];\n  undefined1 auStack_9c [128];\n  code *local_1c;\n  \n  local_1c = *(code **)PTR___stack_chk_guard_0015858c;\n  if (param_2 == (int *)0x0) {\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    puVar3 = (undefined1 *)0x0;\n    if ((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))\n    goto LAB_000683b4;\nLAB_000682d4:\n    do {\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    } while (piVar1 != (int *)*piVar5);\n    param_3 = 0;\n    piVar1 = piVar5;\n    if (param_2 == (int *)0x0) goto LAB_000683b4;\n  }\n  else {\n    unaff_s2 = auStack_11c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = auStack_9c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    puVar3 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))\n    goto LAB_000682d4;\n  }\n  param_3 = 0;\n  puVar3 = auStack_9c;\n  (*(code *)PTR_sigprocmask_001585c4)(3,puVar3,0);\nLAB_000683b4:\n  if (local_1c == *(code **)PTR___stack_chk_guard_0015858c) {\n    return piVar1;\n  }\n  pcVar8 = local_1c;\n  puVar7 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  puStack_268 = puVar7 + 0xf614c;\n  iStack_15c = **(int **)(puVar7 + 0xf0198);\n  piVar6 = *(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18);\n  piStack_158 = piVar1;\n  piStack_154 = param_2;\n  puStack_150 = unaff_s2;\n  puStack_14c = unaff_s3;\n  if (piVar6 != (int *)0x0) {\n    (**(code **)(puVar7 + 0xeff94))(auStack_25c);\n    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);\n    param_2 = aiStack_1dc;\n    (**(code **)(puStack_268 + -0x61b8))(param_2);\n    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2);\n    piVar1 = (int *)0x0;\n    puVar7 = puStack_268;\n    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      param_2 = *(int **)(puStack_268 + -0x7690);\n      iVar2 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));\n    }\n    piVar6 = (int *)0x0;\nLAB_00068560:\n    (**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);\n  }\n  if (iStack_15c == **(int **)(puStack_268 + -0x5fb4)) {\n    return piVar6;\n  }\n  pcVar8 = *(code **)(puStack_268 + -0x6004);\n  uVar9 = 0x68594;\n  (*pcVar8)();\n  piStack_28c = (int *)**(int **)(pcVar8 + 0xefff8);\n  piStack_284 = piVar1;\n  piStack_280 = param_2;\n  uStack_27c = uVar9;\n  if (*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18) != 0) {\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_38c);\n    (**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12);\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_30c);\n    (**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c);\n    if (0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)) {\n      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);\n      iVar2 = 0;\n      iVar4 = *(int *)(pcVar8 + 0xee918);\n      do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));\n    }\n    (**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0);\n  }\n  if (piStack_28c != (int *)**(int **)(pcVar8 + 0xefff8)) {\n    pcVar8 = *(code **)(pcVar8 + 0xeffa8);\n    (*pcVar8)();\n    piVar1 = *(int **)(pcVar8 + 0xeeac0);\n    if (*piVar1 != 0) {\n      piVar1 = (int *)piVar1[2];\n      if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }\n    }\n    return piVar1;\n  }\n  return (int *)**(int **)(pcVar8 + 0xefff8);\n}\n\n" (function_definition "int * FUN_00068268(int param_1,int *param_2,undefined4 param_3)\n\n{\n  int *piVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  int iVar4;\n  int *piVar5;\n  undefined1 *unaff_s2;\n  undefined1 *unaff_s3;\n  int *piVar6;\n  undefined *puVar7;\n  code *pcVar8;\n  undefined4 uVar9;\n  undefined1 auStack_38c [128];\n  undefined1 auStack_30c [128];\n  int *piStack_28c;\n  int *piStack_284;\n  int *piStack_280;\n  undefined4 uStack_27c;\n  undefined *puStack_268;\n  undefined1 auStack_25c [128];\n  int aiStack_1dc [32];\n  int iStack_15c;\n  int *piStack_158;\n  int *piStack_154;\n  undefined1 *puStack_150;\n  undefined1 *puStack_14c;\n  undefined1 auStack_11c [128];\n  undefined1 auStack_9c [128];\n  code *local_1c;\n  \n  local_1c = *(code **)PTR___stack_chk_guard_0015858c;\n  if (param_2 == (int *)0x0) {\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    puVar3 = (undefined1 *)0x0;\n    if ((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))\n    goto LAB_000683b4;\nLAB_000682d4:\n    do {\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    } while (piVar1 != (int *)*piVar5);\n    param_3 = 0;\n    piVar1 = piVar5;\n    if (param_2 == (int *)0x0) goto LAB_000683b4;\n  }\n  else {\n    unaff_s2 = auStack_11c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = auStack_9c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    puVar3 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))\n    goto LAB_000682d4;\n  }\n  param_3 = 0;\n  puVar3 = auStack_9c;\n  (*(code *)PTR_sigprocmask_001585c4)(3,puVar3,0);\nLAB_000683b4:\n  if (local_1c == *(code **)PTR___stack_chk_guard_0015858c) {\n    return piVar1;\n  }\n  pcVar8 = local_1c;\n  puVar7 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  puStack_268 = puVar7 + 0xf614c;\n  iStack_15c = **(int **)(puVar7 + 0xf0198);\n  piVar6 = *(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18);\n  piStack_158 = piVar1;\n  piStack_154 = param_2;\n  puStack_150 = unaff_s2;\n  puStack_14c = unaff_s3;\n  if (piVar6 != (int *)0x0) {\n    (**(code **)(puVar7 + 0xeff94))(auStack_25c);\n    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);\n    param_2 = aiStack_1dc;\n    (**(code **)(puStack_268 + -0x61b8))(param_2);\n    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2);\n    piVar1 = (int *)0x0;\n    puVar7 = puStack_268;\n    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      param_2 = *(int **)(puStack_268 + -0x7690);\n      iVar2 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));\n    }\n    piVar6 = (int *)0x0;\nLAB_00068560:\n    (**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);\n  }\n  if (iStack_15c == **(int **)(puStack_268 + -0x5fb4)) {\n    return piVar6;\n  }\n  pcVar8 = *(code **)(puStack_268 + -0x6004);\n  uVar9 = 0x68594;\n  (*pcVar8)();\n  piStack_28c = (int *)**(int **)(pcVar8 + 0xefff8);\n  piStack_284 = piVar1;\n  piStack_280 = param_2;\n  uStack_27c = uVar9;\n  if (*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18) != 0) {\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_38c);\n    (**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12);\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_30c);\n    (**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c);\n    if (0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)) {\n      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);\n      iVar2 = 0;\n      iVar4 = *(int *)(pcVar8 + 0xee918);\n      do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));\n    }\n    (**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0);\n  }\n  if (piStack_28c != (int *)**(int **)(pcVar8 + 0xefff8)) {\n    pcVar8 = *(code **)(pcVar8 + 0xeffa8);\n    (*pcVar8)();\n    piVar1 = *(int **)(pcVar8 + 0xeeac0);\n    if (*piVar1 != 0) {\n      piVar1 = (int *)piVar1[2];\n      if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }\n    }\n    return piVar1;\n  }\n  return (int *)**(int **)(pcVar8 + 0xefff8);\n}" primitive_type (pointer_declarator "* FUN_00068268(int param_1,int *param_2,undefined4 param_3)" * (function_declarator "FUN_00068268(int param_1,int *param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,int *param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) )))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  int iVar4;\n  int *piVar5;\n  undefined1 *unaff_s2;\n  undefined1 *unaff_s3;\n  int *piVar6;\n  undefined *puVar7;\n  code *pcVar8;\n  undefined4 uVar9;\n  undefined1 auStack_38c [128];\n  undefined1 auStack_30c [128];\n  int *piStack_28c;\n  int *piStack_284;\n  int *piStack_280;\n  undefined4 uStack_27c;\n  undefined *puStack_268;\n  undefined1 auStack_25c [128];\n  int aiStack_1dc [32];\n  int iStack_15c;\n  int *piStack_158;\n  int *piStack_154;\n  undefined1 *puStack_150;\n  undefined1 *puStack_14c;\n  undefined1 auStack_11c [128];\n  undefined1 auStack_9c [128];\n  code *local_1c;\n  \n  local_1c = *(code **)PTR___stack_chk_guard_0015858c;\n  if (param_2 == (int *)0x0) {\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    puVar3 = (undefined1 *)0x0;\n    if ((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))\n    goto LAB_000683b4;\nLAB_000682d4:\n    do {\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    } while (piVar1 != (int *)*piVar5);\n    param_3 = 0;\n    piVar1 = piVar5;\n    if (param_2 == (int *)0x0) goto LAB_000683b4;\n  }\n  else {\n    unaff_s2 = auStack_11c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = auStack_9c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    puVar3 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))\n    goto LAB_000682d4;\n  }\n  param_3 = 0;\n  puVar3 = auStack_9c;\n  (*(code *)PTR_sigprocmask_001585c4)(3,puVar3,0);\nLAB_000683b4:\n  if (local_1c == *(code **)PTR___stack_chk_guard_0015858c) {\n    return piVar1;\n  }\n  pcVar8 = local_1c;\n  puVar7 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  puStack_268 = puVar7 + 0xf614c;\n  iStack_15c = **(int **)(puVar7 + 0xf0198);\n  piVar6 = *(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18);\n  piStack_158 = piVar1;\n  piStack_154 = param_2;\n  puStack_150 = unaff_s2;\n  puStack_14c = unaff_s3;\n  if (piVar6 != (int *)0x0) {\n    (**(code **)(puVar7 + 0xeff94))(auStack_25c);\n    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);\n    param_2 = aiStack_1dc;\n    (**(code **)(puStack_268 + -0x61b8))(param_2);\n    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2);\n    piVar1 = (int *)0x0;\n    puVar7 = puStack_268;\n    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      param_2 = *(int **)(puStack_268 + -0x7690);\n      iVar2 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));\n    }\n    piVar6 = (int *)0x0;\nLAB_00068560:\n    (**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);\n  }\n  if (iStack_15c == **(int **)(puStack_268 + -0x5fb4)) {\n    return piVar6;\n  }\n  pcVar8 = *(code **)(puStack_268 + -0x6004);\n  uVar9 = 0x68594;\n  (*pcVar8)();\n  piStack_28c = (int *)**(int **)(pcVar8 + 0xefff8);\n  piStack_284 = piVar1;\n  piStack_280 = param_2;\n  uStack_27c = uVar9;\n  if (*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18) != 0) {\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_38c);\n    (**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12);\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_30c);\n    (**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c);\n    if (0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)) {\n      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);\n      iVar2 = 0;\n      iVar4 = *(int *)(pcVar8 + 0xee918);\n      do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));\n    }\n    (**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0);\n  }\n  if (piStack_28c != (int *)**(int **)(pcVar8 + 0xefff8)) {\n    pcVar8 = *(code **)(pcVar8 + 0xeffa8);\n    (*pcVar8)();\n    piVar1 = *(int **)(pcVar8 + 0xeeac0);\n    if (*piVar1 != 0) {\n      piVar1 = (int *)piVar1[2];\n      if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }\n    }\n    return piVar1;\n  }\n  return (int *)**(int **)(pcVar8 + 0xefff8);\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined1 *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "undefined1 *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined1 auStack_38c [128];" type_identifier (array_declarator "auStack_38c [128]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_30c [128];" type_identifier (array_declarator "auStack_30c [128]" identifier [ number_literal ]) ;) (declaration "int *piStack_28c;" primitive_type (pointer_declarator "*piStack_28c" * identifier) ;) (declaration "int *piStack_284;" primitive_type (pointer_declarator "*piStack_284" * identifier) ;) (declaration "int *piStack_280;" primitive_type (pointer_declarator "*piStack_280" * identifier) ;) (declaration "undefined4 uStack_27c;" type_identifier identifier ;) (declaration "undefined *puStack_268;" type_identifier (pointer_declarator "*puStack_268" * identifier) ;) (declaration "undefined1 auStack_25c [128];" type_identifier (array_declarator "auStack_25c [128]" identifier [ number_literal ]) ;) (declaration "int aiStack_1dc [32];" primitive_type (array_declarator "aiStack_1dc [32]" identifier [ number_literal ]) ;) (declaration "int iStack_15c;" primitive_type identifier ;) (declaration "int *piStack_158;" primitive_type (pointer_declarator "*piStack_158" * identifier) ;) (declaration "int *piStack_154;" primitive_type (pointer_declarator "*piStack_154" * identifier) ;) (declaration "undefined1 *puStack_150;" type_identifier (pointer_declarator "*puStack_150" * identifier) ;) (declaration "undefined1 *puStack_14c;" type_identifier (pointer_declarator "*puStack_14c" * identifier) ;) (declaration "undefined1 auStack_11c [128];" type_identifier (array_declarator "auStack_11c [128]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_9c [128];" type_identifier (array_declarator "auStack_9c [128]" identifier [ number_literal ]) ;) (declaration "code *local_1c;" type_identifier (pointer_declarator "*local_1c" * identifier) ;) (expression_statement "local_1c = *(code **)PTR___stack_chk_guard_0015858c;" (assignment_expression "local_1c = *(code **)PTR___stack_chk_guard_0015858c" identifier = (pointer_expression "*(code **)PTR___stack_chk_guard_0015858c" * (cast_expression "(code **)PTR___stack_chk_guard_0015858c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (param_2 == (int *)0x0) {\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    puVar3 = (undefined1 *)0x0;\n    if ((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))\n    goto LAB_000683b4;\nLAB_000682d4:\n    do {\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    } while (piVar1 != (int *)*piVar5);\n    param_3 = 0;\n    piVar1 = piVar5;\n    if (param_2 == (int *)0x0) goto LAB_000683b4;\n  }\n  else {\n    unaff_s2 = auStack_11c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = auStack_9c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    puVar3 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))\n    goto LAB_000682d4;\n  }" if (parenthesized_expression "(param_2 == (int *)0x0)" ( (binary_expression "param_2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    puVar3 = (undefined1 *)0x0;\n    if ((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))\n    goto LAB_000683b4;\nLAB_000682d4:\n    do {\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    } while (piVar1 != (int *)*piVar5);\n    param_3 = 0;\n    piVar1 = piVar5;\n    if (param_2 == (int *)0x0) goto LAB_000683b4;\n  }" { (expression_statement "piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);" (assignment_expression "piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" identifier = (pointer_expression "*(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" * (cast_expression "(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" ( (binary_expression "*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4" (pointer_expression "*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4)" * (cast_expression "(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_jobs_00156eb0 + param_1 * 4)" ( (binary_expression "*(int *)PTR_jobs_00156eb0 + param_1 * 4" (pointer_expression "*(int *)PTR_jobs_00156eb0" * (cast_expression "(int *)PTR_jobs_00156eb0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (binary_expression "param_1 * 4" identifier * number_literal)) )))) + number_literal) ))))) ;) (expression_statement "puVar3 = (undefined1 *)0x0;" (assignment_expression "puVar3 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))\n    goto LAB_000683b4;" if (parenthesized_expression "((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))" ( (binary_expression "(piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1)" (parenthesized_expression "(piVar1 == (int *)0x0)" ( (binary_expression "piVar1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1)" ( (comma_expression "piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1" (assignment_expression "piVar6 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) , (binary_expression "(int *)*piVar1 == piVar1" (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier)) == identifier)) ))) )) (goto_statement "goto LAB_000683b4;" goto statement_identifier ;)) (labeled_statement "LAB_000682d4:\n    do {\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    } while (piVar1 != (int *)*piVar5);" statement_identifier : (do_statement "do {\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    } while (piVar1 != (int *)*piVar5);" do (compound_statement "{\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    }" { (expression_statement "piVar5 = piVar6;" (assignment_expression "piVar5 = piVar6" identifier = identifier) ;) (if_statement "if (piVar5 == (int *)0x0) break;" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "piVar6 = (int *)*piVar5;" (assignment_expression "piVar6 = (int *)*piVar5" identifier = (cast_expression "(int *)*piVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar5" * identifier))) ;) }) while (parenthesized_expression "(piVar1 != (int *)*piVar5)" ( (binary_expression "piVar1 != (int *)*piVar5" identifier != (cast_expression "(int *)*piVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar5" * identifier))) )) ;)) (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" identifier = number_literal) ;) (expression_statement "piVar1 = piVar5;" (assignment_expression "piVar1 = piVar5" identifier = identifier) ;) (if_statement "if (param_2 == (int *)0x0) goto LAB_000683b4;" if (parenthesized_expression "(param_2 == (int *)0x0)" ( (binary_expression "param_2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000683b4;" goto statement_identifier ;)) }) (else_clause "else {\n    unaff_s2 = auStack_11c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = auStack_9c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    puVar3 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))\n    goto LAB_000682d4;\n  }" else (compound_statement "{\n    unaff_s2 = auStack_11c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = auStack_9c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    puVar3 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))\n    goto LAB_000682d4;\n  }" { (expression_statement "unaff_s2 = auStack_11c;" (assignment_expression "unaff_s2 = auStack_11c" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sigemptyset_00158388)(unaff_s2);" (call_expression "(*(code *)PTR_sigemptyset_00158388)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_sigemptyset_00158388)" ( (pointer_expression "*(code *)PTR_sigemptyset_00158388" * (cast_expression "(code *)PTR_sigemptyset_00158388" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);" (call_expression "(*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00158418)" ( (pointer_expression "*(code *)PTR_sigaddset_00158418" * (cast_expression "(code *)PTR_sigaddset_00158418" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2,0x12)" ( identifier , number_literal ))) ;) (expression_statement "unaff_s3 = auStack_9c;" (assignment_expression "unaff_s3 = auStack_9c" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sigemptyset_00158388)(unaff_s3);" (call_expression "(*(code *)PTR_sigemptyset_00158388)(unaff_s3)" (parenthesized_expression "(*(code *)PTR_sigemptyset_00158388)" ( (pointer_expression "*(code *)PTR_sigemptyset_00158388" * (cast_expression "(code *)PTR_sigemptyset_00158388" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s3)" ( identifier ))) ;) (expression_statement "puVar3 = unaff_s2;" (assignment_expression "puVar3 = unaff_s2" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);" (call_expression "(*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sigprocmask_001585c4)" ( (pointer_expression "*(code *)PTR_sigprocmask_001585c4" * (cast_expression "(code *)PTR_sigprocmask_001585c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,unaff_s2,unaff_s3)" ( number_literal , identifier , identifier ))) ;) (expression_statement "piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);" (assignment_expression "piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" identifier = (pointer_expression "*(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" * (cast_expression "(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" ( (binary_expression "*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4" (pointer_expression "*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4)" * (cast_expression "(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_jobs_00156eb0 + param_1 * 4)" ( (binary_expression "*(int *)PTR_jobs_00156eb0 + param_1 * 4" (pointer_expression "*(int *)PTR_jobs_00156eb0" * (cast_expression "(int *)PTR_jobs_00156eb0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (binary_expression "param_1 * 4" identifier * number_literal)) )))) + number_literal) ))))) ;) (if_statement "if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))\n    goto LAB_000682d4;" if (parenthesized_expression "((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))" ( (binary_expression "(piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1)" (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1)" ( (comma_expression "piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1" (assignment_expression "piVar6 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) , (binary_expression "(int *)*piVar1 != piVar1" (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier)) != identifier)) ))) )) (goto_statement "goto LAB_000682d4;" goto statement_identifier ;)) }))) (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = auStack_9c;" (assignment_expression "puVar3 = auStack_9c" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sigprocmask_001585c4)(3,puVar3,0);" (call_expression "(*(code *)PTR_sigprocmask_001585c4)(3,puVar3,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_001585c4)" ( (pointer_expression "*(code *)PTR_sigprocmask_001585c4" * (cast_expression "(code *)PTR_sigprocmask_001585c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,puVar3,0)" ( number_literal , identifier , number_literal ))) ;) (labeled_statement "LAB_000683b4:\n  if (local_1c == *(code **)PTR___stack_chk_guard_0015858c) {\n    return piVar1;\n  }" statement_identifier : (if_statement "if (local_1c == *(code **)PTR___stack_chk_guard_0015858c) {\n    return piVar1;\n  }" if (parenthesized_expression "(local_1c == *(code **)PTR___stack_chk_guard_0015858c)" ( (binary_expression "local_1c == *(code **)PTR___stack_chk_guard_0015858c" identifier == (pointer_expression "*(code **)PTR___stack_chk_guard_0015858c" * (cast_expression "(code **)PTR___stack_chk_guard_0015858c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return piVar1;\n  }" { (return_statement "return piVar1;" return identifier ;) }))) (expression_statement "pcVar8 = local_1c;" (assignment_expression "pcVar8 = local_1c" identifier = identifier) ;) (expression_statement "puVar7 = PTR___stack_chk_fail_0015853c;" (assignment_expression "puVar7 = PTR___stack_chk_fail_0015853c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015853c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015853c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015853c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015853c" * (cast_expression "(code *)PTR___stack_chk_fail_0015853c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_268 = puVar7 + 0xf614c;" (assignment_expression "puStack_268 = puVar7 + 0xf614c" identifier = (binary_expression "puVar7 + 0xf614c" identifier + number_literal)) ;) (expression_statement "iStack_15c = **(int **)(puVar7 + 0xf0198);" (assignment_expression "iStack_15c = **(int **)(puVar7 + 0xf0198)" identifier = (pointer_expression "**(int **)(puVar7 + 0xf0198)" * (pointer_expression "*(int **)(puVar7 + 0xf0198)" * (cast_expression "(int **)(puVar7 + 0xf0198)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0xf0198)" ( (binary_expression "puVar7 + 0xf0198" identifier + number_literal) )))))) ;) (expression_statement "piVar6 = *(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18);" (assignment_expression "piVar6 = *(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18)" identifier = (pointer_expression "*(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18)" * (cast_expression "(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar7 + 0xeeab8) + 0x18)" ( (binary_expression "*(int *)(puVar7 + 0xeeab8) + 0x18" (pointer_expression "*(int *)(puVar7 + 0xeeab8)" * (cast_expression "(int *)(puVar7 + 0xeeab8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0xeeab8)" ( (binary_expression "puVar7 + 0xeeab8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "piStack_158 = piVar1;" (assignment_expression "piStack_158 = piVar1" identifier = identifier) ;) (expression_statement "piStack_154 = param_2;" (assignment_expression "piStack_154 = param_2" identifier = identifier) ;) (expression_statement "puStack_150 = unaff_s2;" (assignment_expression "puStack_150 = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_14c = unaff_s3;" (assignment_expression "puStack_14c = unaff_s3" identifier = identifier) ;) (if_statement "if (piVar6 != (int *)0x0) {\n    (**(code **)(puVar7 + 0xeff94))(auStack_25c);\n    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);\n    param_2 = aiStack_1dc;\n    (**(code **)(puStack_268 + -0x61b8))(param_2);\n    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2);\n    piVar1 = (int *)0x0;\n    puVar7 = puStack_268;\n    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      param_2 = *(int **)(puStack_268 + -0x7690);\n      iVar2 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));\n    }\n    piVar6 = (int *)0x0;\nLAB_00068560:\n    (**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);\n  }" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(puVar7 + 0xeff94))(auStack_25c);\n    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);\n    param_2 = aiStack_1dc;\n    (**(code **)(puStack_268 + -0x61b8))(param_2);\n    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2);\n    piVar1 = (int *)0x0;\n    puVar7 = puStack_268;\n    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      param_2 = *(int **)(puStack_268 + -0x7690);\n      iVar2 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));\n    }\n    piVar6 = (int *)0x0;\nLAB_00068560:\n    (**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);\n  }" { (expression_statement "(**(code **)(puVar7 + 0xeff94))(auStack_25c);" (call_expression "(**(code **)(puVar7 + 0xeff94))(auStack_25c)" (parenthesized_expression "(**(code **)(puVar7 + 0xeff94))" ( (pointer_expression "**(code **)(puVar7 + 0xeff94)" * (pointer_expression "*(code **)(puVar7 + 0xeff94)" * (cast_expression "(code **)(puVar7 + 0xeff94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0xeff94)" ( (binary_expression "puVar7 + 0xeff94" identifier + number_literal) ))))) )) (argument_list "(auStack_25c)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);" (call_expression "(**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12)" (parenthesized_expression "(**(code **)(puStack_268 + -0x6128))" ( (pointer_expression "**(code **)(puStack_268 + -0x6128)" * (pointer_expression "*(code **)(puStack_268 + -0x6128)" * (cast_expression "(code **)(puStack_268 + -0x6128)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_268 + -0x6128)" ( (binary_expression "puStack_268 + -0x6128" identifier + number_literal) ))))) )) (argument_list "(auStack_25c,0x12)" ( identifier , number_literal ))) ;) (expression_statement "param_2 = aiStack_1dc;" (assignment_expression "param_2 = aiStack_1dc" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_268 + -0x61b8))(param_2);" (call_expression "(**(code **)(puStack_268 + -0x61b8))(param_2)" (parenthesized_expression "(**(code **)(puStack_268 + -0x61b8))" ( (pointer_expression "**(code **)(puStack_268 + -0x61b8)" * (pointer_expression "*(code **)(puStack_268 + -0x61b8)" * (cast_expression "(code **)(puStack_268 + -0x61b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_268 + -0x61b8)" ( (binary_expression "puStack_268 + -0x61b8" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2);" (call_expression "(**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2)" (parenthesized_expression "(**(code **)(puStack_268 + -0x5f7c))" ( (pointer_expression "**(code **)(puStack_268 + -0x5f7c)" * (pointer_expression "*(code **)(puStack_268 + -0x5f7c)" * (cast_expression "(code **)(puStack_268 + -0x5f7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_268 + -0x5f7c)" ( (binary_expression "puStack_268 + -0x5f7c" identifier + number_literal) ))))) )) (argument_list "(1,auStack_25c,param_2)" ( number_literal , identifier , identifier ))) ;) (expression_statement "piVar1 = (int *)0x0;" (assignment_expression "piVar1 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar7 = puStack_268;" (assignment_expression "puVar7 = puStack_268" identifier = identifier) ;) (if_statement "if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      param_2 = *(int **)(puStack_268 + -0x7690);\n      iVar2 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));\n    }" if (parenthesized_expression "(0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18))" ( (binary_expression "0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)" number_literal < (pointer_expression "*(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)" * (cast_expression "(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_268 + -0x7694) + 0x18)" ( (binary_expression "*(int *)(puStack_268 + -0x7694) + 0x18" (pointer_expression "*(int *)(puStack_268 + -0x7694)" * (cast_expression "(int *)(puStack_268 + -0x7694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_268 + -0x7694)" ( (binary_expression "puStack_268 + -0x7694" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n      param_2 = *(int **)(puStack_268 + -0x7690);\n      iVar2 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));\n    }" { (expression_statement "param_2 = *(int **)(puStack_268 + -0x7690);" (assignment_expression "param_2 = *(int **)(puStack_268 + -0x7690)" identifier = (pointer_expression "*(int **)(puStack_268 + -0x7690)" * (cast_expression "(int **)(puStack_268 + -0x7690)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_268 + -0x7690)" ( (binary_expression "puStack_268 + -0x7690" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(puStack_268 + -0x7694);" (assignment_expression "iVar2 = *(int *)(puStack_268 + -0x7694)" identifier = (pointer_expression "*(int *)(puStack_268 + -0x7694)" * (cast_expression "(int *)(puStack_268 + -0x7694)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_268 + -0x7694)" ( (binary_expression "puStack_268 + -0x7694" identifier + number_literal) ))))) ;) (do_statement "do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));" do (compound_statement "{\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      }" { (expression_statement "iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);" (assignment_expression "iVar4 = *(int *)(*param_2 + (int)piVar1 * 4)" identifier = (pointer_expression "*(int *)(*param_2 + (int)piVar1 * 4)" * (cast_expression "(int *)(*param_2 + (int)piVar1 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + (int)piVar1 * 4)" ( (binary_expression "*param_2 + (int)piVar1 * 4" (pointer_expression "*param_2" * identifier) + (binary_expression "(int)piVar1 * 4" (cast_expression "(int)piVar1" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (if_statement "if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;" if (parenthesized_expression "((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0))" ( (binary_expression "(iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)" (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) && (parenthesized_expression "(piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)" ( (comma_expression "piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0" (assignment_expression "piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1)" identifier = (cast_expression "(int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar8)(iVar4,puVar3,param_3,piVar1)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(iVar4,puVar3,param_3,piVar1)" ( identifier , identifier , identifier , identifier ))))) , (comma_expression "puVar7 = puStack_268,\n           piVar6 != (int *)0x0" (assignment_expression "puVar7 = puStack_268" identifier = identifier) , (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (goto_statement "goto LAB_00068560;" goto statement_identifier ;)) (expression_statement "piVar1 = (int *)((int)piVar1 + 1);" (assignment_expression "piVar1 = (int *)((int)piVar1 + 1)" identifier = (cast_expression "(int *)((int)piVar1 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar1 + 1)" ( (binary_expression "(int)piVar1 + 1" (cast_expression "(int)piVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)piVar1 < *(int *)(iVar2 + 0x18))" ( (binary_expression "(int)piVar1 < *(int *)(iVar2 + 0x18)" (cast_expression "(int)piVar1" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "piVar6 = (int *)0x0;" (assignment_expression "piVar6 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00068560:\n    (**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);" statement_identifier : (expression_statement "(**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);" (call_expression "(**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0)" (parenthesized_expression "(**(code **)(puVar7 + -0x5f7c))" ( (pointer_expression "**(code **)(puVar7 + -0x5f7c)" * (pointer_expression "*(code **)(puVar7 + -0x5f7c)" * (cast_expression "(code **)(puVar7 + -0x5f7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x5f7c)" ( (binary_expression "puVar7 + -0x5f7c" identifier + number_literal) ))))) )) (argument_list "(3,aiStack_1dc,0)" ( number_literal , identifier , number_literal ))) ;)) })) (if_statement "if (iStack_15c == **(int **)(puStack_268 + -0x5fb4)) {\n    return piVar6;\n  }" if (parenthesized_expression "(iStack_15c == **(int **)(puStack_268 + -0x5fb4))" ( (binary_expression "iStack_15c == **(int **)(puStack_268 + -0x5fb4)" identifier == (pointer_expression "**(int **)(puStack_268 + -0x5fb4)" * (pointer_expression "*(int **)(puStack_268 + -0x5fb4)" * (cast_expression "(int **)(puStack_268 + -0x5fb4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_268 + -0x5fb4)" ( (binary_expression "puStack_268 + -0x5fb4" identifier + number_literal) )))))) )) (compound_statement "{\n    return piVar6;\n  }" { (return_statement "return piVar6;" return identifier ;) })) (expression_statement "pcVar8 = *(code **)(puStack_268 + -0x6004);" (assignment_expression "pcVar8 = *(code **)(puStack_268 + -0x6004)" identifier = (pointer_expression "*(code **)(puStack_268 + -0x6004)" * (cast_expression "(code **)(puStack_268 + -0x6004)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_268 + -0x6004)" ( (binary_expression "puStack_268 + -0x6004" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = 0x68594;" (assignment_expression "uVar9 = 0x68594" identifier = number_literal) ;) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piStack_28c = (int *)**(int **)(pcVar8 + 0xefff8);" (assignment_expression "piStack_28c = (int *)**(int **)(pcVar8 + 0xefff8)" identifier = (cast_expression "(int *)**(int **)(pcVar8 + 0xefff8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar8 + 0xefff8)" * (pointer_expression "*(int **)(pcVar8 + 0xefff8)" * (cast_expression "(int **)(pcVar8 + 0xefff8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xefff8)" ( (binary_expression "pcVar8 + 0xefff8" identifier + number_literal) ))))))) ;) (expression_statement "piStack_284 = piVar1;" (assignment_expression "piStack_284 = piVar1" identifier = identifier) ;) (expression_statement "piStack_280 = param_2;" (assignment_expression "piStack_280 = param_2" identifier = identifier) ;) (expression_statement "uStack_27c = uVar9;" (assignment_expression "uStack_27c = uVar9" identifier = identifier) ;) (if_statement "if (*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18) != 0) {\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_38c);\n    (**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12);\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_30c);\n    (**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c);\n    if (0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)) {\n      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);\n      iVar2 = 0;\n      iVar4 = *(int *)(pcVar8 + 0xee918);\n      do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));\n    }\n    (**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0);\n  }" if (parenthesized_expression "(*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18) != 0)" ( (binary_expression "*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18) != 0" (pointer_expression "*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)" * (cast_expression "(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0xee918) + 0x18)" ( (binary_expression "*(int *)(pcVar8 + 0xee918) + 0x18" (pointer_expression "*(int *)(pcVar8 + 0xee918)" * (cast_expression "(int *)(pcVar8 + 0xee918)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0xee918)" ( (binary_expression "pcVar8 + 0xee918" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_38c);\n    (**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12);\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_30c);\n    (**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c);\n    if (0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)) {\n      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);\n      iVar2 = 0;\n      iVar4 = *(int *)(pcVar8 + 0xee918);\n      do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));\n    }\n    (**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0);\n  }" { (expression_statement "(**(code **)(pcVar8 + 0xefdf4))(auStack_38c);" (call_expression "(**(code **)(pcVar8 + 0xefdf4))(auStack_38c)" (parenthesized_expression "(**(code **)(pcVar8 + 0xefdf4))" ( (pointer_expression "**(code **)(pcVar8 + 0xefdf4)" * (pointer_expression "*(code **)(pcVar8 + 0xefdf4)" * (cast_expression "(code **)(pcVar8 + 0xefdf4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xefdf4)" ( (binary_expression "pcVar8 + 0xefdf4" identifier + number_literal) ))))) )) (argument_list "(auStack_38c)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12);" (call_expression "(**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12)" (parenthesized_expression "(**(code **)(pcVar8 + 0xefe84))" ( (pointer_expression "**(code **)(pcVar8 + 0xefe84)" * (pointer_expression "*(code **)(pcVar8 + 0xefe84)" * (cast_expression "(code **)(pcVar8 + 0xefe84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xefe84)" ( (binary_expression "pcVar8 + 0xefe84" identifier + number_literal) ))))) )) (argument_list "(auStack_38c,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar8 + 0xefdf4))(auStack_30c);" (call_expression "(**(code **)(pcVar8 + 0xefdf4))(auStack_30c)" (parenthesized_expression "(**(code **)(pcVar8 + 0xefdf4))" ( (pointer_expression "**(code **)(pcVar8 + 0xefdf4)" * (pointer_expression "*(code **)(pcVar8 + 0xefdf4)" * (cast_expression "(code **)(pcVar8 + 0xefdf4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xefdf4)" ( (binary_expression "pcVar8 + 0xefdf4" identifier + number_literal) ))))) )) (argument_list "(auStack_30c)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c);" (call_expression "(**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c)" (parenthesized_expression "(**(code **)(pcVar8 + 0xf0030))" ( (pointer_expression "**(code **)(pcVar8 + 0xf0030)" * (pointer_expression "*(code **)(pcVar8 + 0xf0030)" * (cast_expression "(code **)(pcVar8 + 0xf0030)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xf0030)" ( (binary_expression "pcVar8 + 0xf0030" identifier + number_literal) ))))) )) (argument_list "(1,auStack_38c,auStack_30c)" ( number_literal , identifier , identifier ))) ;) (if_statement "if (0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)) {\n      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);\n      iVar2 = 0;\n      iVar4 = *(int *)(pcVar8 + 0xee918);\n      do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));\n    }" if (parenthesized_expression "(0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18))" ( (binary_expression "0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)" number_literal < (pointer_expression "*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)" * (cast_expression "(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0xee918) + 0x18)" ( (binary_expression "*(int *)(pcVar8 + 0xee918) + 0x18" (pointer_expression "*(int *)(pcVar8 + 0xee918)" * (cast_expression "(int *)(pcVar8 + 0xee918)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0xee918)" ( (binary_expression "pcVar8 + 0xee918" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);\n      iVar2 = 0;\n      iVar4 = *(int *)(pcVar8 + 0xee918);\n      do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));\n    }" { (expression_statement "piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);" (assignment_expression "piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c)" identifier = (cast_expression "(int *)**(undefined4 **)(pcVar8 + 0xee91c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar8 + 0xee91c)" * (pointer_expression "*(undefined4 **)(pcVar8 + 0xee91c)" * (cast_expression "(undefined4 **)(pcVar8 + 0xee91c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xee91c)" ( (binary_expression "pcVar8 + 0xee91c" identifier + number_literal) ))))))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = *(int *)(pcVar8 + 0xee918);" (assignment_expression "iVar4 = *(int *)(pcVar8 + 0xee918)" identifier = (pointer_expression "*(int *)(pcVar8 + 0xee918)" * (cast_expression "(int *)(pcVar8 + 0xee918)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0xee918)" ( (binary_expression "pcVar8 + 0xee918" identifier + number_literal) ))))) ;) (do_statement "do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));" do (compound_statement "{\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      }" { (if_statement "if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }" if (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) )) (compound_statement "{\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }" { (expression_statement "*(undefined4 *)(*piVar1 + 0xc) = 4;" (assignment_expression "*(undefined4 *)(*piVar1 + 0xc) = 4" (pointer_expression "*(undefined4 *)(*piVar1 + 0xc)" * (cast_expression "(undefined4 *)(*piVar1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar1 + 0xc)" ( (binary_expression "*piVar1 + 0xc" (pointer_expression "*piVar1" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;" (assignment_expression "*(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1" (pointer_expression "*(int *)(iVar4 + 0x28)" * (cast_expression "(int *)(iVar4 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x28)" ( (binary_expression "iVar4 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar4 + 0x28) + 1" (pointer_expression "*(int *)(iVar4 + 0x28)" * (cast_expression "(int *)(iVar4 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x28)" ( (binary_expression "iVar4 + 0x28" identifier + number_literal) )))) + number_literal)) ;) })) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "piVar1 = piVar1 + 1;" (assignment_expression "piVar1 = piVar1 + 1" identifier = (binary_expression "piVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar2 < *(int *)(iVar4 + 0x18))" ( (binary_expression "iVar2 < *(int *)(iVar4 + 0x18)" identifier < (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "(**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0);" (call_expression "(**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0)" (parenthesized_expression "(**(code **)(pcVar8 + 0xf0030))" ( (pointer_expression "**(code **)(pcVar8 + 0xf0030)" * (pointer_expression "*(code **)(pcVar8 + 0xf0030)" * (cast_expression "(code **)(pcVar8 + 0xf0030)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xf0030)" ( (binary_expression "pcVar8 + 0xf0030" identifier + number_literal) ))))) )) (argument_list "(3,auStack_30c,0)" ( number_literal , identifier , number_literal ))) ;) })) (if_statement "if (piStack_28c != (int *)**(int **)(pcVar8 + 0xefff8)) {\n    pcVar8 = *(code **)(pcVar8 + 0xeffa8);\n    (*pcVar8)();\n    piVar1 = *(int **)(pcVar8 + 0xeeac0);\n    if (*piVar1 != 0) {\n      piVar1 = (int *)piVar1[2];\n      if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }\n    }\n    return piVar1;\n  }" if (parenthesized_expression "(piStack_28c != (int *)**(int **)(pcVar8 + 0xefff8))" ( (binary_expression "piStack_28c != (int *)**(int **)(pcVar8 + 0xefff8)" identifier != (cast_expression "(int *)**(int **)(pcVar8 + 0xefff8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar8 + 0xefff8)" * (pointer_expression "*(int **)(pcVar8 + 0xefff8)" * (cast_expression "(int **)(pcVar8 + 0xefff8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xefff8)" ( (binary_expression "pcVar8 + 0xefff8" identifier + number_literal) ))))))) )) (compound_statement "{\n    pcVar8 = *(code **)(pcVar8 + 0xeffa8);\n    (*pcVar8)();\n    piVar1 = *(int **)(pcVar8 + 0xeeac0);\n    if (*piVar1 != 0) {\n      piVar1 = (int *)piVar1[2];\n      if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }\n    }\n    return piVar1;\n  }" { (expression_statement "pcVar8 = *(code **)(pcVar8 + 0xeffa8);" (assignment_expression "pcVar8 = *(code **)(pcVar8 + 0xeffa8)" identifier = (pointer_expression "*(code **)(pcVar8 + 0xeffa8)" * (cast_expression "(code **)(pcVar8 + 0xeffa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xeffa8)" ( (binary_expression "pcVar8 + 0xeffa8" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar1 = *(int **)(pcVar8 + 0xeeac0);" (assignment_expression "piVar1 = *(int **)(pcVar8 + 0xeeac0)" identifier = (pointer_expression "*(int **)(pcVar8 + 0xeeac0)" * (cast_expression "(int **)(pcVar8 + 0xeeac0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xeeac0)" ( (binary_expression "pcVar8 + 0xeeac0" identifier + number_literal) ))))) ;) (if_statement "if (*piVar1 != 0) {\n      piVar1 = (int *)piVar1[2];\n      if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }\n    }" if (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) )) (compound_statement "{\n      piVar1 = (int *)piVar1[2];\n      if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }\n    }" { (expression_statement "piVar1 = (int *)piVar1[2];" (assignment_expression "piVar1 = (int *)piVar1[2]" identifier = (cast_expression "(int *)piVar1[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar1[2]" identifier [ number_literal ]))) ;) (if_statement "if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }" if (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }" { (expression_statement "(**(code **)(pcVar8 + 0xefed0))();" (call_expression "(**(code **)(pcVar8 + 0xefed0))()" (parenthesized_expression "(**(code **)(pcVar8 + 0xefed0))" ( (pointer_expression "**(code **)(pcVar8 + 0xefed0)" * (pointer_expression "*(code **)(pcVar8 + 0xefed0)" * (cast_expression "(code **)(pcVar8 + 0xefed0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xefed0)" ( (binary_expression "pcVar8 + 0xefed0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "piVar1 = *(int **)(pcVar8 + 0xeeac0);" (assignment_expression "piVar1 = *(int **)(pcVar8 + 0xeeac0)" identifier = (pointer_expression "*(int **)(pcVar8 + 0xeeac0)" * (cast_expression "(int **)(pcVar8 + 0xeeac0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xeeac0)" ( (binary_expression "pcVar8 + 0xeeac0" identifier + number_literal) ))))) ;) (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" * identifier) = number_literal) ;) (expression_statement "piVar1[2] = 0;" (assignment_expression "piVar1[2] = 0" (subscript_expression "piVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar1[1] = 0;" (assignment_expression "piVar1[1] = 0" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar1[3] = 0;" (assignment_expression "piVar1[3] = 0" (subscript_expression "piVar1[3]" identifier [ number_literal ]) = number_literal) ;) })) })) (return_statement "return piVar1;" return identifier ;) })) (return_statement "return (int *)**(int **)(pcVar8 + 0xefff8);" return (cast_expression "(int *)**(int **)(pcVar8 + 0xefff8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar8 + 0xefff8)" * (pointer_expression "*(int **)(pcVar8 + 0xefff8)" * (cast_expression "(int **)(pcVar8 + 0xefff8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0xefff8)" ( (binary_expression "pcVar8 + 0xefff8" identifier + number_literal) )))))) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + (binary_expression IDENT * LIT)) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) , (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (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 ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))) ;) (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 ( 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 ( LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + (binary_expression IDENT * LIT)) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) , (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) != IDENT)) ))) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (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 ( LIT , IDENT , LIT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 ))) ;) (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 , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 ))) ;) (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 ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (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) ))))) )) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (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 ( LIT , IDENT , LIT ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (return_statement return 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 = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (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) )) (compound_statement { (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 ))) ;) (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 , 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 ( IDENT ))) ;) (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 ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (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) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 ( ))) ;) (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 (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) })) (return_statement return IDENT ;) })) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })))
(function_definition "int * FUN_00068268(int param_1,int *param_2,undefined4 param_3)\n\n{\n  int *piVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  int iVar4;\n  int *piVar5;\n  undefined1 *unaff_s2;\n  undefined1 *unaff_s3;\n  int *piVar6;\n  undefined *puVar7;\n  code *pcVar8;\n  undefined4 uVar9;\n  undefined1 auStack_38c [128];\n  undefined1 auStack_30c [128];\n  int *piStack_28c;\n  int *piStack_284;\n  int *piStack_280;\n  undefined4 uStack_27c;\n  undefined *puStack_268;\n  undefined1 auStack_25c [128];\n  int aiStack_1dc [32];\n  int iStack_15c;\n  int *piStack_158;\n  int *piStack_154;\n  undefined1 *puStack_150;\n  undefined1 *puStack_14c;\n  undefined1 auStack_11c [128];\n  undefined1 auStack_9c [128];\n  code *local_1c;\n  \n  local_1c = *(code **)PTR___stack_chk_guard_0015858c;\n  if (param_2 == (int *)0x0) {\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    puVar3 = (undefined1 *)0x0;\n    if ((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))\n    goto LAB_000683b4;\nLAB_000682d4:\n    do {\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    } while (piVar1 != (int *)*piVar5);\n    param_3 = 0;\n    piVar1 = piVar5;\n    if (param_2 == (int *)0x0) goto LAB_000683b4;\n  }\n  else {\n    unaff_s2 = auStack_11c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = auStack_9c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    puVar3 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))\n    goto LAB_000682d4;\n  }\n  param_3 = 0;\n  puVar3 = auStack_9c;\n  (*(code *)PTR_sigprocmask_001585c4)(3,puVar3,0);\nLAB_000683b4:\n  if (local_1c == *(code **)PTR___stack_chk_guard_0015858c) {\n    return piVar1;\n  }\n  pcVar8 = local_1c;\n  puVar7 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  puStack_268 = puVar7 + 0xf614c;\n  iStack_15c = **(int **)(puVar7 + 0xf0198);\n  piVar6 = *(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18);\n  piStack_158 = piVar1;\n  piStack_154 = param_2;\n  puStack_150 = unaff_s2;\n  puStack_14c = unaff_s3;\n  if (piVar6 != (int *)0x0) {\n    (**(code **)(puVar7 + 0xeff94))(auStack_25c);\n    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);\n    param_2 = aiStack_1dc;\n    (**(code **)(puStack_268 + -0x61b8))(param_2);\n    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2);\n    piVar1 = (int *)0x0;\n    puVar7 = puStack_268;\n    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      param_2 = *(int **)(puStack_268 + -0x7690);\n      iVar2 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));\n    }\n    piVar6 = (int *)0x0;\nLAB_00068560:\n    (**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);\n  }\n  if (iStack_15c == **(int **)(puStack_268 + -0x5fb4)) {\n    return piVar6;\n  }\n  pcVar8 = *(code **)(puStack_268 + -0x6004);\n  uVar9 = 0x68594;\n  (*pcVar8)();\n  piStack_28c = (int *)**(int **)(pcVar8 + 0xefff8);\n  piStack_284 = piVar1;\n  piStack_280 = param_2;\n  uStack_27c = uVar9;\n  if (*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18) != 0) {\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_38c);\n    (**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12);\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_30c);\n    (**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c);\n    if (0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)) {\n      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);\n      iVar2 = 0;\n      iVar4 = *(int *)(pcVar8 + 0xee918);\n      do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));\n    }\n    (**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0);\n  }\n  if (piStack_28c != (int *)**(int **)(pcVar8 + 0xefff8)) {\n    pcVar8 = *(code **)(pcVar8 + 0xeffa8);\n    (*pcVar8)();\n    piVar1 = *(int **)(pcVar8 + 0xeeac0);\n    if (*piVar1 != 0) {\n      piVar1 = (int *)piVar1[2];\n      if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }\n    }\n    return piVar1;\n  }\n  return (int *)**(int **)(pcVar8 + 0xefff8);\n}" (primitive_type "int") (pointer_declarator "* FUN_00068268(int param_1,int *param_2,undefined4 param_3)" (* "*") (function_declarator "FUN_00068268(int param_1,int *param_2,undefined4 param_3)" (identifier "FUN_00068268") (parameter_list "(int param_1,int *param_2,undefined4 param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")")))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  int iVar4;\n  int *piVar5;\n  undefined1 *unaff_s2;\n  undefined1 *unaff_s3;\n  int *piVar6;\n  undefined *puVar7;\n  code *pcVar8;\n  undefined4 uVar9;\n  undefined1 auStack_38c [128];\n  undefined1 auStack_30c [128];\n  int *piStack_28c;\n  int *piStack_284;\n  int *piStack_280;\n  undefined4 uStack_27c;\n  undefined *puStack_268;\n  undefined1 auStack_25c [128];\n  int aiStack_1dc [32];\n  int iStack_15c;\n  int *piStack_158;\n  int *piStack_154;\n  undefined1 *puStack_150;\n  undefined1 *puStack_14c;\n  undefined1 auStack_11c [128];\n  undefined1 auStack_9c [128];\n  code *local_1c;\n  \n  local_1c = *(code **)PTR___stack_chk_guard_0015858c;\n  if (param_2 == (int *)0x0) {\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    puVar3 = (undefined1 *)0x0;\n    if ((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))\n    goto LAB_000683b4;\nLAB_000682d4:\n    do {\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    } while (piVar1 != (int *)*piVar5);\n    param_3 = 0;\n    piVar1 = piVar5;\n    if (param_2 == (int *)0x0) goto LAB_000683b4;\n  }\n  else {\n    unaff_s2 = auStack_11c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = auStack_9c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    puVar3 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))\n    goto LAB_000682d4;\n  }\n  param_3 = 0;\n  puVar3 = auStack_9c;\n  (*(code *)PTR_sigprocmask_001585c4)(3,puVar3,0);\nLAB_000683b4:\n  if (local_1c == *(code **)PTR___stack_chk_guard_0015858c) {\n    return piVar1;\n  }\n  pcVar8 = local_1c;\n  puVar7 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  puStack_268 = puVar7 + 0xf614c;\n  iStack_15c = **(int **)(puVar7 + 0xf0198);\n  piVar6 = *(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18);\n  piStack_158 = piVar1;\n  piStack_154 = param_2;\n  puStack_150 = unaff_s2;\n  puStack_14c = unaff_s3;\n  if (piVar6 != (int *)0x0) {\n    (**(code **)(puVar7 + 0xeff94))(auStack_25c);\n    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);\n    param_2 = aiStack_1dc;\n    (**(code **)(puStack_268 + -0x61b8))(param_2);\n    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2);\n    piVar1 = (int *)0x0;\n    puVar7 = puStack_268;\n    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      param_2 = *(int **)(puStack_268 + -0x7690);\n      iVar2 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));\n    }\n    piVar6 = (int *)0x0;\nLAB_00068560:\n    (**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);\n  }\n  if (iStack_15c == **(int **)(puStack_268 + -0x5fb4)) {\n    return piVar6;\n  }\n  pcVar8 = *(code **)(puStack_268 + -0x6004);\n  uVar9 = 0x68594;\n  (*pcVar8)();\n  piStack_28c = (int *)**(int **)(pcVar8 + 0xefff8);\n  piStack_284 = piVar1;\n  piStack_280 = param_2;\n  uStack_27c = uVar9;\n  if (*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18) != 0) {\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_38c);\n    (**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12);\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_30c);\n    (**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c);\n    if (0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)) {\n      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);\n      iVar2 = 0;\n      iVar4 = *(int *)(pcVar8 + 0xee918);\n      do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));\n    }\n    (**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0);\n  }\n  if (piStack_28c != (int *)**(int **)(pcVar8 + 0xefff8)) {\n    pcVar8 = *(code **)(pcVar8 + 0xeffa8);\n    (*pcVar8)();\n    piVar1 = *(int **)(pcVar8 + 0xeeac0);\n    if (*piVar1 != 0) {\n      piVar1 = (int *)piVar1[2];\n      if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }\n    }\n    return piVar1;\n  }\n  return (int *)**(int **)(pcVar8 + 0xefff8);\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined1 *puVar3;" (type_identifier "undefined1") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined1 *unaff_s2;" (type_identifier "undefined1") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "undefined1 *unaff_s3;" (type_identifier "undefined1") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")) (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "code *pcVar8;" (type_identifier "code") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "undefined1 auStack_38c [128];" (type_identifier "undefined1") (array_declarator "auStack_38c [128]" (identifier "auStack_38c") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "undefined1 auStack_30c [128];" (type_identifier "undefined1") (array_declarator "auStack_30c [128]" (identifier "auStack_30c") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "int *piStack_28c;" (primitive_type "int") (pointer_declarator "*piStack_28c" (* "*") (identifier "piStack_28c")) (; ";")) (declaration "int *piStack_284;" (primitive_type "int") (pointer_declarator "*piStack_284" (* "*") (identifier "piStack_284")) (; ";")) (declaration "int *piStack_280;" (primitive_type "int") (pointer_declarator "*piStack_280" (* "*") (identifier "piStack_280")) (; ";")) (declaration "undefined4 uStack_27c;" (type_identifier "undefined4") (identifier "uStack_27c") (; ";")) (declaration "undefined *puStack_268;" (type_identifier "undefined") (pointer_declarator "*puStack_268" (* "*") (identifier "puStack_268")) (; ";")) (declaration "undefined1 auStack_25c [128];" (type_identifier "undefined1") (array_declarator "auStack_25c [128]" (identifier "auStack_25c") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "int aiStack_1dc [32];" (primitive_type "int") (array_declarator "aiStack_1dc [32]" (identifier "aiStack_1dc") ([ "[") (number_literal "32") (] "]")) (; ";")) (declaration "int iStack_15c;" (primitive_type "int") (identifier "iStack_15c") (; ";")) (declaration "int *piStack_158;" (primitive_type "int") (pointer_declarator "*piStack_158" (* "*") (identifier "piStack_158")) (; ";")) (declaration "int *piStack_154;" (primitive_type "int") (pointer_declarator "*piStack_154" (* "*") (identifier "piStack_154")) (; ";")) (declaration "undefined1 *puStack_150;" (type_identifier "undefined1") (pointer_declarator "*puStack_150" (* "*") (identifier "puStack_150")) (; ";")) (declaration "undefined1 *puStack_14c;" (type_identifier "undefined1") (pointer_declarator "*puStack_14c" (* "*") (identifier "puStack_14c")) (; ";")) (declaration "undefined1 auStack_11c [128];" (type_identifier "undefined1") (array_declarator "auStack_11c [128]" (identifier "auStack_11c") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "undefined1 auStack_9c [128];" (type_identifier "undefined1") (array_declarator "auStack_9c [128]" (identifier "auStack_9c") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "code *local_1c;" (type_identifier "code") (pointer_declarator "*local_1c" (* "*") (identifier "local_1c")) (; ";")) (expression_statement "local_1c = *(code **)PTR___stack_chk_guard_0015858c;" (assignment_expression "local_1c = *(code **)PTR___stack_chk_guard_0015858c" (identifier "local_1c") (= "=") (pointer_expression "*(code **)PTR___stack_chk_guard_0015858c" (* "*") (cast_expression "(code **)PTR___stack_chk_guard_0015858c" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_0015858c")))) (; ";")) (if_statement "if (param_2 == (int *)0x0) {\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    puVar3 = (undefined1 *)0x0;\n    if ((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))\n    goto LAB_000683b4;\nLAB_000682d4:\n    do {\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    } while (piVar1 != (int *)*piVar5);\n    param_3 = 0;\n    piVar1 = piVar5;\n    if (param_2 == (int *)0x0) goto LAB_000683b4;\n  }\n  else {\n    unaff_s2 = auStack_11c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = auStack_9c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    puVar3 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))\n    goto LAB_000682d4;\n  }" (if "if") (parenthesized_expression "(param_2 == (int *)0x0)" (( "(") (binary_expression "param_2 == (int *)0x0" (identifier "param_2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    puVar3 = (undefined1 *)0x0;\n    if ((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))\n    goto LAB_000683b4;\nLAB_000682d4:\n    do {\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    } while (piVar1 != (int *)*piVar5);\n    param_3 = 0;\n    piVar1 = piVar5;\n    if (param_2 == (int *)0x0) goto LAB_000683b4;\n  }" ({ "{") (expression_statement "piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);" (assignment_expression "piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" (identifier "piVar1") (= "=") (pointer_expression "*(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" (* "*") (cast_expression "(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" (( "(") (binary_expression "*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4" (pointer_expression "*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4)" (* "*") (cast_expression "(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_jobs_00156eb0 + param_1 * 4)" (( "(") (binary_expression "*(int *)PTR_jobs_00156eb0 + param_1 * 4" (pointer_expression "*(int *)PTR_jobs_00156eb0" (* "*") (cast_expression "(int *)PTR_jobs_00156eb0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_jobs_00156eb0"))) (+ "+") (binary_expression "param_1 * 4" (identifier "param_1") (* "*") (number_literal "4"))) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "puVar3 = (undefined1 *)0x0;" (assignment_expression "puVar3 = (undefined1 *)0x0" (identifier "puVar3") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))\n    goto LAB_000683b4;" (if "if") (parenthesized_expression "((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))" (( "(") (binary_expression "(piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1)" (parenthesized_expression "(piVar1 == (int *)0x0)" (( "(") (binary_expression "piVar1 == (int *)0x0" (identifier "piVar1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1)" (( "(") (comma_expression "piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1" (assignment_expression "piVar6 = (int *)*piVar1" (identifier "piVar6") (= "=") (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) (, ",") (binary_expression "(int *)*piVar1 == piVar1" (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (== "==") (identifier "piVar1"))) () ")"))) () ")")) (goto_statement "goto LAB_000683b4;" (goto "goto") (statement_identifier "LAB_000683b4") (; ";"))) (labeled_statement "LAB_000682d4:\n    do {\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    } while (piVar1 != (int *)*piVar5);" (statement_identifier "LAB_000682d4") (: ":") (do_statement "do {\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    } while (piVar1 != (int *)*piVar5);" (do "do") (compound_statement "{\n      piVar5 = piVar6;\n      if (piVar5 == (int *)0x0) break;\n      piVar6 = (int *)*piVar5;\n    }" ({ "{") (expression_statement "piVar5 = piVar6;" (assignment_expression "piVar5 = piVar6" (identifier "piVar5") (= "=") (identifier "piVar6")) (; ";")) (if_statement "if (piVar5 == (int *)0x0) break;" (if "if") (parenthesized_expression "(piVar5 == (int *)0x0)" (( "(") (binary_expression "piVar5 == (int *)0x0" (identifier "piVar5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "piVar6 = (int *)*piVar5;" (assignment_expression "piVar6 = (int *)*piVar5" (identifier "piVar6") (= "=") (cast_expression "(int *)*piVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar5" (* "*") (identifier "piVar5")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar1 != (int *)*piVar5)" (( "(") (binary_expression "piVar1 != (int *)*piVar5" (identifier "piVar1") (!= "!=") (cast_expression "(int *)*piVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar5" (* "*") (identifier "piVar5")))) () ")")) (; ";"))) (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" (identifier "param_3") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar1 = piVar5;" (assignment_expression "piVar1 = piVar5" (identifier "piVar1") (= "=") (identifier "piVar5")) (; ";")) (if_statement "if (param_2 == (int *)0x0) goto LAB_000683b4;" (if "if") (parenthesized_expression "(param_2 == (int *)0x0)" (( "(") (binary_expression "param_2 == (int *)0x0" (identifier "param_2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000683b4;" (goto "goto") (statement_identifier "LAB_000683b4") (; ";"))) (} "}")) (else_clause "else {\n    unaff_s2 = auStack_11c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = auStack_9c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    puVar3 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))\n    goto LAB_000682d4;\n  }" (else "else") (compound_statement "{\n    unaff_s2 = auStack_11c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);\n    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);\n    unaff_s3 = auStack_9c;\n    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);\n    puVar3 = unaff_s2;\n    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);\n    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);\n    if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))\n    goto LAB_000682d4;\n  }" ({ "{") (expression_statement "unaff_s2 = auStack_11c;" (assignment_expression "unaff_s2 = auStack_11c" (identifier "unaff_s2") (= "=") (identifier "auStack_11c")) (; ";")) (expression_statement "(*(code *)PTR_sigemptyset_00158388)(unaff_s2);" (call_expression "(*(code *)PTR_sigemptyset_00158388)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_sigemptyset_00158388)" (( "(") (pointer_expression "*(code *)PTR_sigemptyset_00158388" (* "*") (cast_expression "(code *)PTR_sigemptyset_00158388" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigemptyset_00158388"))) () ")")) (argument_list "(unaff_s2)" (( "(") (identifier "unaff_s2") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);" (call_expression "(*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00158418)" (( "(") (pointer_expression "*(code *)PTR_sigaddset_00158418" (* "*") (cast_expression "(code *)PTR_sigaddset_00158418" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigaddset_00158418"))) () ")")) (argument_list "(unaff_s2,0x12)" (( "(") (identifier "unaff_s2") (, ",") (number_literal "0x12") () ")"))) (; ";")) (expression_statement "unaff_s3 = auStack_9c;" (assignment_expression "unaff_s3 = auStack_9c" (identifier "unaff_s3") (= "=") (identifier "auStack_9c")) (; ";")) (expression_statement "(*(code *)PTR_sigemptyset_00158388)(unaff_s3);" (call_expression "(*(code *)PTR_sigemptyset_00158388)(unaff_s3)" (parenthesized_expression "(*(code *)PTR_sigemptyset_00158388)" (( "(") (pointer_expression "*(code *)PTR_sigemptyset_00158388" (* "*") (cast_expression "(code *)PTR_sigemptyset_00158388" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigemptyset_00158388"))) () ")")) (argument_list "(unaff_s3)" (( "(") (identifier "unaff_s3") () ")"))) (; ";")) (expression_statement "puVar3 = unaff_s2;" (assignment_expression "puVar3 = unaff_s2" (identifier "puVar3") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "(*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);" (call_expression "(*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sigprocmask_001585c4)" (( "(") (pointer_expression "*(code *)PTR_sigprocmask_001585c4" (* "*") (cast_expression "(code *)PTR_sigprocmask_001585c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigprocmask_001585c4"))) () ")")) (argument_list "(1,unaff_s2,unaff_s3)" (( "(") (number_literal "1") (, ",") (identifier "unaff_s2") (, ",") (identifier "unaff_s3") () ")"))) (; ";")) (expression_statement "piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);" (assignment_expression "piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" (identifier "piVar1") (= "=") (pointer_expression "*(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" (* "*") (cast_expression "(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4)" (( "(") (binary_expression "*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4" (pointer_expression "*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4)" (* "*") (cast_expression "(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_jobs_00156eb0 + param_1 * 4)" (( "(") (binary_expression "*(int *)PTR_jobs_00156eb0 + param_1 * 4" (pointer_expression "*(int *)PTR_jobs_00156eb0" (* "*") (cast_expression "(int *)PTR_jobs_00156eb0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_jobs_00156eb0"))) (+ "+") (binary_expression "param_1 * 4" (identifier "param_1") (* "*") (number_literal "4"))) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))\n    goto LAB_000682d4;" (if "if") (parenthesized_expression "((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))" (( "(") (binary_expression "(piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1)" (parenthesized_expression "(piVar1 != (int *)0x0)" (( "(") (binary_expression "piVar1 != (int *)0x0" (identifier "piVar1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1)" (( "(") (comma_expression "piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1" (assignment_expression "piVar6 = (int *)*piVar1" (identifier "piVar6") (= "=") (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) (, ",") (binary_expression "(int *)*piVar1 != piVar1" (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (!= "!=") (identifier "piVar1"))) () ")"))) () ")")) (goto_statement "goto LAB_000682d4;" (goto "goto") (statement_identifier "LAB_000682d4") (; ";"))) (} "}")))) (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" (identifier "param_3") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3 = auStack_9c;" (assignment_expression "puVar3 = auStack_9c" (identifier "puVar3") (= "=") (identifier "auStack_9c")) (; ";")) (expression_statement "(*(code *)PTR_sigprocmask_001585c4)(3,puVar3,0);" (call_expression "(*(code *)PTR_sigprocmask_001585c4)(3,puVar3,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_001585c4)" (( "(") (pointer_expression "*(code *)PTR_sigprocmask_001585c4" (* "*") (cast_expression "(code *)PTR_sigprocmask_001585c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigprocmask_001585c4"))) () ")")) (argument_list "(3,puVar3,0)" (( "(") (number_literal "3") (, ",") (identifier "puVar3") (, ",") (number_literal "0") () ")"))) (; ";")) (labeled_statement "LAB_000683b4:\n  if (local_1c == *(code **)PTR___stack_chk_guard_0015858c) {\n    return piVar1;\n  }" (statement_identifier "LAB_000683b4") (: ":") (if_statement "if (local_1c == *(code **)PTR___stack_chk_guard_0015858c) {\n    return piVar1;\n  }" (if "if") (parenthesized_expression "(local_1c == *(code **)PTR___stack_chk_guard_0015858c)" (( "(") (binary_expression "local_1c == *(code **)PTR___stack_chk_guard_0015858c" (identifier "local_1c") (== "==") (pointer_expression "*(code **)PTR___stack_chk_guard_0015858c" (* "*") (cast_expression "(code **)PTR___stack_chk_guard_0015858c" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_0015858c")))) () ")")) (compound_statement "{\n    return piVar1;\n  }" ({ "{") (return_statement "return piVar1;" (return "return") (identifier "piVar1") (; ";")) (} "}")))) (expression_statement "pcVar8 = local_1c;" (assignment_expression "pcVar8 = local_1c" (identifier "pcVar8") (= "=") (identifier "local_1c")) (; ";")) (expression_statement "puVar7 = PTR___stack_chk_fail_0015853c;" (assignment_expression "puVar7 = PTR___stack_chk_fail_0015853c" (identifier "puVar7") (= "=") (identifier "PTR___stack_chk_fail_0015853c")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0015853c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015853c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015853c)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0015853c" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0015853c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0015853c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_268 = puVar7 + 0xf614c;" (assignment_expression "puStack_268 = puVar7 + 0xf614c" (identifier "puStack_268") (= "=") (binary_expression "puVar7 + 0xf614c" (identifier "puVar7") (+ "+") (number_literal "0xf614c"))) (; ";")) (expression_statement "iStack_15c = **(int **)(puVar7 + 0xf0198);" (assignment_expression "iStack_15c = **(int **)(puVar7 + 0xf0198)" (identifier "iStack_15c") (= "=") (pointer_expression "**(int **)(puVar7 + 0xf0198)" (* "*") (pointer_expression "*(int **)(puVar7 + 0xf0198)" (* "*") (cast_expression "(int **)(puVar7 + 0xf0198)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 0xf0198)" (( "(") (binary_expression "puVar7 + 0xf0198" (identifier "puVar7") (+ "+") (number_literal "0xf0198")) () ")")))))) (; ";")) (expression_statement "piVar6 = *(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18);" (assignment_expression "piVar6 = *(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18)" (* "*") (cast_expression "(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar7 + 0xeeab8) + 0x18)" (( "(") (binary_expression "*(int *)(puVar7 + 0xeeab8) + 0x18" (pointer_expression "*(int *)(puVar7 + 0xeeab8)" (* "*") (cast_expression "(int *)(puVar7 + 0xeeab8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0xeeab8)" (( "(") (binary_expression "puVar7 + 0xeeab8" (identifier "puVar7") (+ "+") (number_literal "0xeeab8")) () ")")))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "piStack_158 = piVar1;" (assignment_expression "piStack_158 = piVar1" (identifier "piStack_158") (= "=") (identifier "piVar1")) (; ";")) (expression_statement "piStack_154 = param_2;" (assignment_expression "piStack_154 = param_2" (identifier "piStack_154") (= "=") (identifier "param_2")) (; ";")) (expression_statement "puStack_150 = unaff_s2;" (assignment_expression "puStack_150 = unaff_s2" (identifier "puStack_150") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "puStack_14c = unaff_s3;" (assignment_expression "puStack_14c = unaff_s3" (identifier "puStack_14c") (= "=") (identifier "unaff_s3")) (; ";")) (if_statement "if (piVar6 != (int *)0x0) {\n    (**(code **)(puVar7 + 0xeff94))(auStack_25c);\n    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);\n    param_2 = aiStack_1dc;\n    (**(code **)(puStack_268 + -0x61b8))(param_2);\n    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2);\n    piVar1 = (int *)0x0;\n    puVar7 = puStack_268;\n    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      param_2 = *(int **)(puStack_268 + -0x7690);\n      iVar2 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));\n    }\n    piVar6 = (int *)0x0;\nLAB_00068560:\n    (**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);\n  }" (if "if") (parenthesized_expression "(piVar6 != (int *)0x0)" (( "(") (binary_expression "piVar6 != (int *)0x0" (identifier "piVar6") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(puVar7 + 0xeff94))(auStack_25c);\n    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);\n    param_2 = aiStack_1dc;\n    (**(code **)(puStack_268 + -0x61b8))(param_2);\n    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2);\n    piVar1 = (int *)0x0;\n    puVar7 = puStack_268;\n    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      param_2 = *(int **)(puStack_268 + -0x7690);\n      iVar2 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));\n    }\n    piVar6 = (int *)0x0;\nLAB_00068560:\n    (**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);\n  }" ({ "{") (expression_statement "(**(code **)(puVar7 + 0xeff94))(auStack_25c);" (call_expression "(**(code **)(puVar7 + 0xeff94))(auStack_25c)" (parenthesized_expression "(**(code **)(puVar7 + 0xeff94))" (( "(") (pointer_expression "**(code **)(puVar7 + 0xeff94)" (* "*") (pointer_expression "*(code **)(puVar7 + 0xeff94)" (* "*") (cast_expression "(code **)(puVar7 + 0xeff94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 0xeff94)" (( "(") (binary_expression "puVar7 + 0xeff94" (identifier "puVar7") (+ "+") (number_literal "0xeff94")) () ")"))))) () ")")) (argument_list "(auStack_25c)" (( "(") (identifier "auStack_25c") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);" (call_expression "(**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12)" (parenthesized_expression "(**(code **)(puStack_268 + -0x6128))" (( "(") (pointer_expression "**(code **)(puStack_268 + -0x6128)" (* "*") (pointer_expression "*(code **)(puStack_268 + -0x6128)" (* "*") (cast_expression "(code **)(puStack_268 + -0x6128)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_268 + -0x6128)" (( "(") (binary_expression "puStack_268 + -0x6128" (identifier "puStack_268") (+ "+") (number_literal "-0x6128")) () ")"))))) () ")")) (argument_list "(auStack_25c,0x12)" (( "(") (identifier "auStack_25c") (, ",") (number_literal "0x12") () ")"))) (; ";")) (expression_statement "param_2 = aiStack_1dc;" (assignment_expression "param_2 = aiStack_1dc" (identifier "param_2") (= "=") (identifier "aiStack_1dc")) (; ";")) (expression_statement "(**(code **)(puStack_268 + -0x61b8))(param_2);" (call_expression "(**(code **)(puStack_268 + -0x61b8))(param_2)" (parenthesized_expression "(**(code **)(puStack_268 + -0x61b8))" (( "(") (pointer_expression "**(code **)(puStack_268 + -0x61b8)" (* "*") (pointer_expression "*(code **)(puStack_268 + -0x61b8)" (* "*") (cast_expression "(code **)(puStack_268 + -0x61b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_268 + -0x61b8)" (( "(") (binary_expression "puStack_268 + -0x61b8" (identifier "puStack_268") (+ "+") (number_literal "-0x61b8")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2);" (call_expression "(**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2)" (parenthesized_expression "(**(code **)(puStack_268 + -0x5f7c))" (( "(") (pointer_expression "**(code **)(puStack_268 + -0x5f7c)" (* "*") (pointer_expression "*(code **)(puStack_268 + -0x5f7c)" (* "*") (cast_expression "(code **)(puStack_268 + -0x5f7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_268 + -0x5f7c)" (( "(") (binary_expression "puStack_268 + -0x5f7c" (identifier "puStack_268") (+ "+") (number_literal "-0x5f7c")) () ")"))))) () ")")) (argument_list "(1,auStack_25c,param_2)" (( "(") (number_literal "1") (, ",") (identifier "auStack_25c") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "piVar1 = (int *)0x0;" (assignment_expression "piVar1 = (int *)0x0" (identifier "piVar1") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar7 = puStack_268;" (assignment_expression "puVar7 = puStack_268" (identifier "puVar7") (= "=") (identifier "puStack_268")) (; ";")) (if_statement "if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {\n      param_2 = *(int **)(puStack_268 + -0x7690);\n      iVar2 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));\n    }" (if "if") (parenthesized_expression "(0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18))" (( "(") (binary_expression "0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)" (number_literal "0") (< "<") (pointer_expression "*(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)" (* "*") (cast_expression "(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_268 + -0x7694) + 0x18)" (( "(") (binary_expression "*(int *)(puStack_268 + -0x7694) + 0x18" (pointer_expression "*(int *)(puStack_268 + -0x7694)" (* "*") (cast_expression "(int *)(puStack_268 + -0x7694)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_268 + -0x7694)" (( "(") (binary_expression "puStack_268 + -0x7694" (identifier "puStack_268") (+ "+") (number_literal "-0x7694")) () ")")))) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n      param_2 = *(int **)(puStack_268 + -0x7690);\n      iVar2 = *(int *)(puStack_268 + -0x7694);\n      do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));\n    }" ({ "{") (expression_statement "param_2 = *(int **)(puStack_268 + -0x7690);" (assignment_expression "param_2 = *(int **)(puStack_268 + -0x7690)" (identifier "param_2") (= "=") (pointer_expression "*(int **)(puStack_268 + -0x7690)" (* "*") (cast_expression "(int **)(puStack_268 + -0x7690)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_268 + -0x7690)" (( "(") (binary_expression "puStack_268 + -0x7690" (identifier "puStack_268") (+ "+") (number_literal "-0x7690")) () ")"))))) (; ";")) (expression_statement "iVar2 = *(int *)(puStack_268 + -0x7694);" (assignment_expression "iVar2 = *(int *)(puStack_268 + -0x7694)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(puStack_268 + -0x7694)" (* "*") (cast_expression "(int *)(puStack_268 + -0x7694)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_268 + -0x7694)" (( "(") (binary_expression "puStack_268 + -0x7694" (identifier "puStack_268") (+ "+") (number_literal "-0x7694")) () ")"))))) (; ";")) (do_statement "do {\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));" (do "do") (compound_statement "{\n        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);\n        if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;\n        piVar1 = (int *)((int)piVar1 + 1);\n      }" ({ "{") (expression_statement "iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);" (assignment_expression "iVar4 = *(int *)(*param_2 + (int)piVar1 * 4)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(*param_2 + (int)piVar1 * 4)" (* "*") (cast_expression "(int *)(*param_2 + (int)piVar1 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_2 + (int)piVar1 * 4)" (( "(") (binary_expression "*param_2 + (int)piVar1 * 4" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (binary_expression "(int)piVar1 * 4" (cast_expression "(int)piVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar1")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if ((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)) goto LAB_00068560;" (if "if") (parenthesized_expression "((iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0))" (( "(") (binary_expression "(iVar4 != 0) &&\n           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)" (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0)" (( "(") (comma_expression "piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,\n           piVar6 != (int *)0x0" (assignment_expression "piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1)" (identifier "piVar6") (= "=") (cast_expression "(int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar8)(iVar4,puVar3,param_3,piVar1)" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(iVar4,puVar3,param_3,piVar1)" (( "(") (identifier "iVar4") (, ",") (identifier "puVar3") (, ",") (identifier "param_3") (, ",") (identifier "piVar1") () ")"))))) (, ",") (comma_expression "puVar7 = puStack_268,\n           piVar6 != (int *)0x0" (assignment_expression "puVar7 = puStack_268" (identifier "puVar7") (= "=") (identifier "puStack_268")) (, ",") (binary_expression "piVar6 != (int *)0x0" (identifier "piVar6") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))))) () ")"))) () ")")) (goto_statement "goto LAB_00068560;" (goto "goto") (statement_identifier "LAB_00068560") (; ";"))) (expression_statement "piVar1 = (int *)((int)piVar1 + 1);" (assignment_expression "piVar1 = (int *)((int)piVar1 + 1)" (identifier "piVar1") (= "=") (cast_expression "(int *)((int)piVar1 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar1 + 1)" (( "(") (binary_expression "(int)piVar1 + 1" (cast_expression "(int)piVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar1")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)piVar1 < *(int *)(iVar2 + 0x18))" (( "(") (binary_expression "(int)piVar1 < *(int *)(iVar2 + 0x18)" (cast_expression "(int)piVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar1")) (< "<") (pointer_expression "*(int *)(iVar2 + 0x18)" (* "*") (cast_expression "(int *)(iVar2 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x18)" (( "(") (binary_expression "iVar2 + 0x18" (identifier "iVar2") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "piVar6 = (int *)0x0;" (assignment_expression "piVar6 = (int *)0x0" (identifier "piVar6") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_00068560:\n    (**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);" (statement_identifier "LAB_00068560") (: ":") (expression_statement "(**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);" (call_expression "(**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0)" (parenthesized_expression "(**(code **)(puVar7 + -0x5f7c))" (( "(") (pointer_expression "**(code **)(puVar7 + -0x5f7c)" (* "*") (pointer_expression "*(code **)(puVar7 + -0x5f7c)" (* "*") (cast_expression "(code **)(puVar7 + -0x5f7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -0x5f7c)" (( "(") (binary_expression "puVar7 + -0x5f7c" (identifier "puVar7") (+ "+") (number_literal "-0x5f7c")) () ")"))))) () ")")) (argument_list "(3,aiStack_1dc,0)" (( "(") (number_literal "3") (, ",") (identifier "aiStack_1dc") (, ",") (number_literal "0") () ")"))) (; ";"))) (} "}"))) (if_statement "if (iStack_15c == **(int **)(puStack_268 + -0x5fb4)) {\n    return piVar6;\n  }" (if "if") (parenthesized_expression "(iStack_15c == **(int **)(puStack_268 + -0x5fb4))" (( "(") (binary_expression "iStack_15c == **(int **)(puStack_268 + -0x5fb4)" (identifier "iStack_15c") (== "==") (pointer_expression "**(int **)(puStack_268 + -0x5fb4)" (* "*") (pointer_expression "*(int **)(puStack_268 + -0x5fb4)" (* "*") (cast_expression "(int **)(puStack_268 + -0x5fb4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_268 + -0x5fb4)" (( "(") (binary_expression "puStack_268 + -0x5fb4" (identifier "puStack_268") (+ "+") (number_literal "-0x5fb4")) () ")")))))) () ")")) (compound_statement "{\n    return piVar6;\n  }" ({ "{") (return_statement "return piVar6;" (return "return") (identifier "piVar6") (; ";")) (} "}"))) (expression_statement "pcVar8 = *(code **)(puStack_268 + -0x6004);" (assignment_expression "pcVar8 = *(code **)(puStack_268 + -0x6004)" (identifier "pcVar8") (= "=") (pointer_expression "*(code **)(puStack_268 + -0x6004)" (* "*") (cast_expression "(code **)(puStack_268 + -0x6004)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_268 + -0x6004)" (( "(") (binary_expression "puStack_268 + -0x6004" (identifier "puStack_268") (+ "+") (number_literal "-0x6004")) () ")"))))) (; ";")) (expression_statement "uVar9 = 0x68594;" (assignment_expression "uVar9 = 0x68594" (identifier "uVar9") (= "=") (number_literal "0x68594")) (; ";")) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piStack_28c = (int *)**(int **)(pcVar8 + 0xefff8);" (assignment_expression "piStack_28c = (int *)**(int **)(pcVar8 + 0xefff8)" (identifier "piStack_28c") (= "=") (cast_expression "(int *)**(int **)(pcVar8 + 0xefff8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(int **)(pcVar8 + 0xefff8)" (* "*") (pointer_expression "*(int **)(pcVar8 + 0xefff8)" (* "*") (cast_expression "(int **)(pcVar8 + 0xefff8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0xefff8)" (( "(") (binary_expression "pcVar8 + 0xefff8" (identifier "pcVar8") (+ "+") (number_literal "0xefff8")) () ")"))))))) (; ";")) (expression_statement "piStack_284 = piVar1;" (assignment_expression "piStack_284 = piVar1" (identifier "piStack_284") (= "=") (identifier "piVar1")) (; ";")) (expression_statement "piStack_280 = param_2;" (assignment_expression "piStack_280 = param_2" (identifier "piStack_280") (= "=") (identifier "param_2")) (; ";")) (expression_statement "uStack_27c = uVar9;" (assignment_expression "uStack_27c = uVar9" (identifier "uStack_27c") (= "=") (identifier "uVar9")) (; ";")) (if_statement "if (*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18) != 0) {\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_38c);\n    (**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12);\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_30c);\n    (**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c);\n    if (0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)) {\n      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);\n      iVar2 = 0;\n      iVar4 = *(int *)(pcVar8 + 0xee918);\n      do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));\n    }\n    (**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0);\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18) != 0" (pointer_expression "*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)" (* "*") (cast_expression "(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar8 + 0xee918) + 0x18)" (( "(") (binary_expression "*(int *)(pcVar8 + 0xee918) + 0x18" (pointer_expression "*(int *)(pcVar8 + 0xee918)" (* "*") (cast_expression "(int *)(pcVar8 + 0xee918)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0xee918)" (( "(") (binary_expression "pcVar8 + 0xee918" (identifier "pcVar8") (+ "+") (number_literal "0xee918")) () ")")))) (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_38c);\n    (**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12);\n    (**(code **)(pcVar8 + 0xefdf4))(auStack_30c);\n    (**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c);\n    if (0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)) {\n      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);\n      iVar2 = 0;\n      iVar4 = *(int *)(pcVar8 + 0xee918);\n      do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));\n    }\n    (**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0);\n  }" ({ "{") (expression_statement "(**(code **)(pcVar8 + 0xefdf4))(auStack_38c);" (call_expression "(**(code **)(pcVar8 + 0xefdf4))(auStack_38c)" (parenthesized_expression "(**(code **)(pcVar8 + 0xefdf4))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0xefdf4)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0xefdf4)" (* "*") (cast_expression "(code **)(pcVar8 + 0xefdf4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0xefdf4)" (( "(") (binary_expression "pcVar8 + 0xefdf4" (identifier "pcVar8") (+ "+") (number_literal "0xefdf4")) () ")"))))) () ")")) (argument_list "(auStack_38c)" (( "(") (identifier "auStack_38c") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12);" (call_expression "(**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12)" (parenthesized_expression "(**(code **)(pcVar8 + 0xefe84))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0xefe84)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0xefe84)" (* "*") (cast_expression "(code **)(pcVar8 + 0xefe84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0xefe84)" (( "(") (binary_expression "pcVar8 + 0xefe84" (identifier "pcVar8") (+ "+") (number_literal "0xefe84")) () ")"))))) () ")")) (argument_list "(auStack_38c,0x12)" (( "(") (identifier "auStack_38c") (, ",") (number_literal "0x12") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar8 + 0xefdf4))(auStack_30c);" (call_expression "(**(code **)(pcVar8 + 0xefdf4))(auStack_30c)" (parenthesized_expression "(**(code **)(pcVar8 + 0xefdf4))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0xefdf4)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0xefdf4)" (* "*") (cast_expression "(code **)(pcVar8 + 0xefdf4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0xefdf4)" (( "(") (binary_expression "pcVar8 + 0xefdf4" (identifier "pcVar8") (+ "+") (number_literal "0xefdf4")) () ")"))))) () ")")) (argument_list "(auStack_30c)" (( "(") (identifier "auStack_30c") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c);" (call_expression "(**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c)" (parenthesized_expression "(**(code **)(pcVar8 + 0xf0030))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0xf0030)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0xf0030)" (* "*") (cast_expression "(code **)(pcVar8 + 0xf0030)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0xf0030)" (( "(") (binary_expression "pcVar8 + 0xf0030" (identifier "pcVar8") (+ "+") (number_literal "0xf0030")) () ")"))))) () ")")) (argument_list "(1,auStack_38c,auStack_30c)" (( "(") (number_literal "1") (, ",") (identifier "auStack_38c") (, ",") (identifier "auStack_30c") () ")"))) (; ";")) (if_statement "if (0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)) {\n      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);\n      iVar2 = 0;\n      iVar4 = *(int *)(pcVar8 + 0xee918);\n      do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));\n    }" (if "if") (parenthesized_expression "(0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18))" (( "(") (binary_expression "0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)" (number_literal "0") (< "<") (pointer_expression "*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)" (* "*") (cast_expression "(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar8 + 0xee918) + 0x18)" (( "(") (binary_expression "*(int *)(pcVar8 + 0xee918) + 0x18" (pointer_expression "*(int *)(pcVar8 + 0xee918)" (* "*") (cast_expression "(int *)(pcVar8 + 0xee918)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0xee918)" (( "(") (binary_expression "pcVar8 + 0xee918" (identifier "pcVar8") (+ "+") (number_literal "0xee918")) () ")")))) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);\n      iVar2 = 0;\n      iVar4 = *(int *)(pcVar8 + 0xee918);\n      do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));\n    }" ({ "{") (expression_statement "piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);" (assignment_expression "piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c)" (identifier "piVar1") (= "=") (cast_expression "(int *)**(undefined4 **)(pcVar8 + 0xee91c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar8 + 0xee91c)" (* "*") (pointer_expression "*(undefined4 **)(pcVar8 + 0xee91c)" (* "*") (cast_expression "(undefined4 **)(pcVar8 + 0xee91c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0xee91c)" (( "(") (binary_expression "pcVar8 + 0xee91c" (identifier "pcVar8") (+ "+") (number_literal "0xee91c")) () ")"))))))) (; ";")) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = *(int *)(pcVar8 + 0xee918);" (assignment_expression "iVar4 = *(int *)(pcVar8 + 0xee918)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(pcVar8 + 0xee918)" (* "*") (cast_expression "(int *)(pcVar8 + 0xee918)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0xee918)" (( "(") (binary_expression "pcVar8 + 0xee918" (identifier "pcVar8") (+ "+") (number_literal "0xee918")) () ")"))))) (; ";")) (do_statement "do {\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      } while (iVar2 < *(int *)(iVar4 + 0x18));" (do "do") (compound_statement "{\n        if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }\n        iVar2 = iVar2 + 1;\n        piVar1 = piVar1 + 1;\n      }" ({ "{") (if_statement "if (*piVar1 != 0) {\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }" (if "if") (parenthesized_expression "(*piVar1 != 0)" (( "(") (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined4 *)(*piVar1 + 0xc) = 4;\n          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;\n        }" ({ "{") (expression_statement "*(undefined4 *)(*piVar1 + 0xc) = 4;" (assignment_expression "*(undefined4 *)(*piVar1 + 0xc) = 4" (pointer_expression "*(undefined4 *)(*piVar1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(*piVar1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar1 + 0xc)" (( "(") (binary_expression "*piVar1 + 0xc" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "*(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;" (assignment_expression "*(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1" (pointer_expression "*(int *)(iVar4 + 0x28)" (* "*") (cast_expression "(int *)(iVar4 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x28)" (( "(") (binary_expression "iVar4 + 0x28" (identifier "iVar4") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "*(int *)(iVar4 + 0x28) + 1" (pointer_expression "*(int *)(iVar4 + 0x28)" (* "*") (cast_expression "(int *)(iVar4 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x28)" (( "(") (binary_expression "iVar4 + 0x28" (identifier "iVar4") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" (identifier "iVar2") (= "=") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar1 = piVar1 + 1;" (assignment_expression "piVar1 = piVar1 + 1" (identifier "piVar1") (= "=") (binary_expression "piVar1 + 1" (identifier "piVar1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar2 < *(int *)(iVar4 + 0x18))" (( "(") (binary_expression "iVar2 < *(int *)(iVar4 + 0x18)" (identifier "iVar2") (< "<") (pointer_expression "*(int *)(iVar4 + 0x18)" (* "*") (cast_expression "(int *)(iVar4 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0);" (call_expression "(**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0)" (parenthesized_expression "(**(code **)(pcVar8 + 0xf0030))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0xf0030)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0xf0030)" (* "*") (cast_expression "(code **)(pcVar8 + 0xf0030)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0xf0030)" (( "(") (binary_expression "pcVar8 + 0xf0030" (identifier "pcVar8") (+ "+") (number_literal "0xf0030")) () ")"))))) () ")")) (argument_list "(3,auStack_30c,0)" (( "(") (number_literal "3") (, ",") (identifier "auStack_30c") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (if_statement "if (piStack_28c != (int *)**(int **)(pcVar8 + 0xefff8)) {\n    pcVar8 = *(code **)(pcVar8 + 0xeffa8);\n    (*pcVar8)();\n    piVar1 = *(int **)(pcVar8 + 0xeeac0);\n    if (*piVar1 != 0) {\n      piVar1 = (int *)piVar1[2];\n      if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }\n    }\n    return piVar1;\n  }" (if "if") (parenthesized_expression "(piStack_28c != (int *)**(int **)(pcVar8 + 0xefff8))" (( "(") (binary_expression "piStack_28c != (int *)**(int **)(pcVar8 + 0xefff8)" (identifier "piStack_28c") (!= "!=") (cast_expression "(int *)**(int **)(pcVar8 + 0xefff8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(int **)(pcVar8 + 0xefff8)" (* "*") (pointer_expression "*(int **)(pcVar8 + 0xefff8)" (* "*") (cast_expression "(int **)(pcVar8 + 0xefff8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0xefff8)" (( "(") (binary_expression "pcVar8 + 0xefff8" (identifier "pcVar8") (+ "+") (number_literal "0xefff8")) () ")"))))))) () ")")) (compound_statement "{\n    pcVar8 = *(code **)(pcVar8 + 0xeffa8);\n    (*pcVar8)();\n    piVar1 = *(int **)(pcVar8 + 0xeeac0);\n    if (*piVar1 != 0) {\n      piVar1 = (int *)piVar1[2];\n      if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }\n    }\n    return piVar1;\n  }" ({ "{") (expression_statement "pcVar8 = *(code **)(pcVar8 + 0xeffa8);" (assignment_expression "pcVar8 = *(code **)(pcVar8 + 0xeffa8)" (identifier "pcVar8") (= "=") (pointer_expression "*(code **)(pcVar8 + 0xeffa8)" (* "*") (cast_expression "(code **)(pcVar8 + 0xeffa8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0xeffa8)" (( "(") (binary_expression "pcVar8 + 0xeffa8" (identifier "pcVar8") (+ "+") (number_literal "0xeffa8")) () ")"))))) (; ";")) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar1 = *(int **)(pcVar8 + 0xeeac0);" (assignment_expression "piVar1 = *(int **)(pcVar8 + 0xeeac0)" (identifier "piVar1") (= "=") (pointer_expression "*(int **)(pcVar8 + 0xeeac0)" (* "*") (cast_expression "(int **)(pcVar8 + 0xeeac0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0xeeac0)" (( "(") (binary_expression "pcVar8 + 0xeeac0" (identifier "pcVar8") (+ "+") (number_literal "0xeeac0")) () ")"))))) (; ";")) (if_statement "if (*piVar1 != 0) {\n      piVar1 = (int *)piVar1[2];\n      if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }\n    }" (if "if") (parenthesized_expression "(*piVar1 != 0)" (( "(") (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      piVar1 = (int *)piVar1[2];\n      if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }\n    }" ({ "{") (expression_statement "piVar1 = (int *)piVar1[2];" (assignment_expression "piVar1 = (int *)piVar1[2]" (identifier "piVar1") (= "=") (cast_expression "(int *)piVar1[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (piVar1 != (int *)0x0) {\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }" (if "if") (parenthesized_expression "(piVar1 != (int *)0x0)" (( "(") (binary_expression "piVar1 != (int *)0x0" (identifier "piVar1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        (**(code **)(pcVar8 + 0xefed0))();\n        piVar1 = *(int **)(pcVar8 + 0xeeac0);\n        *piVar1 = 0;\n        piVar1[2] = 0;\n        piVar1[1] = 0;\n        piVar1[3] = 0;\n      }" ({ "{") (expression_statement "(**(code **)(pcVar8 + 0xefed0))();" (call_expression "(**(code **)(pcVar8 + 0xefed0))()" (parenthesized_expression "(**(code **)(pcVar8 + 0xefed0))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0xefed0)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0xefed0)" (* "*") (cast_expression "(code **)(pcVar8 + 0xefed0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0xefed0)" (( "(") (binary_expression "pcVar8 + 0xefed0" (identifier "pcVar8") (+ "+") (number_literal "0xefed0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar1 = *(int **)(pcVar8 + 0xeeac0);" (assignment_expression "piVar1 = *(int **)(pcVar8 + 0xeeac0)" (identifier "piVar1") (= "=") (pointer_expression "*(int **)(pcVar8 + 0xeeac0)" (* "*") (cast_expression "(int **)(pcVar8 + 0xeeac0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0xeeac0)" (( "(") (binary_expression "pcVar8 + 0xeeac0" (identifier "pcVar8") (+ "+") (number_literal "0xeeac0")) () ")"))))) (; ";")) (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar1[2] = 0;" (assignment_expression "piVar1[2] = 0" (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar1[1] = 0;" (assignment_expression "piVar1[1] = 0" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar1[3] = 0;" (assignment_expression "piVar1[3] = 0" (subscript_expression "piVar1[3]" (identifier "piVar1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (return_statement "return piVar1;" (return "return") (identifier "piVar1") (; ";")) (} "}"))) (return_statement "return (int *)**(int **)(pcVar8 + 0xefff8);" (return "return") (cast_expression "(int *)**(int **)(pcVar8 + 0xefff8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(int **)(pcVar8 + 0xefff8)" (* "*") (pointer_expression "*(int **)(pcVar8 + 0xefff8)" (* "*") (cast_expression "(int **)(pcVar8 + 0xefff8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0xefff8)" (( "(") (binary_expression "pcVar8 + 0xefff8" (identifier "pcVar8") (+ "+") (number_literal "0xefff8")) () ")")))))) (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier))))) body: (compound_statement (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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator 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: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (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: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) right: (identifier)))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (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 (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 (identifier) (number_literal)))) (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 (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 (number_literal) (identifier) (identifier)))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) right: (identifier)))))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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 (number_literal) (identifier) (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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 (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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))))))) (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (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 (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)))) (expression_statement (assignment_expression left: (identifier) right: (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)))) (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)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (do_statement body: (compound_statement (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: (pointer_expression argument: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (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 (number_literal) (identifier) (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (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)))))))) consequence: (compound_statement (return_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: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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))) consequence: (compound_statement (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)))) (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) (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 (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 (number_literal) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (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))))))))) (expression_statement (assignment_expression left: (identifier) 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))))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (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: (pointer_expression argument: (identifier)) right: (number_literal))))) 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: (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_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 (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) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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))))))))) 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))))))) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (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: (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: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (return_statement (identifier)))) (return_statement (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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)))))))))))

int * MASKED(int param_1,int *param_2,undefined4 param_3)

{
  int *piVar1;
  int iVar2;
  undefined1 *puVar3;
  int iVar4;
  int *piVar5;
  undefined1 *unaff_s2;
  undefined1 *unaff_s3;
  int *piVar6;
  undefined *puVar7;
  code *pcVar8;
  undefined4 uVar9;
  undefined1 auStack_38c [128];
  undefined1 auStack_30c [128];
  int *piStack_28c;
  int *piStack_284;
  int *piStack_280;
  undefined4 uStack_27c;
  undefined *puStack_268;
  undefined1 auStack_25c [128];
  int aiStack_1dc [32];
  int iStack_15c;
  int *piStack_158;
  int *piStack_154;
  undefined1 *puStack_150;
  undefined1 *puStack_14c;
  undefined1 auStack_11c [128];
  undefined1 auStack_9c [128];
  code *local_1c;
  
  local_1c = *(code **)PTR___stack_chk_guard_0015858c;
  if (param_2 == (int *)0x0) {
    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);
    puVar3 = (undefined1 *)0x0;
    if ((piVar1 == (int *)0x0) || (piVar6 = (int *)*piVar1, (int *)*piVar1 == piVar1))
    goto LAB_000683b4;
LAB_000682d4:
    do {
      piVar5 = piVar6;
      if (piVar5 == (int *)0x0) break;
      piVar6 = (int *)*piVar5;
    } while (piVar1 != (int *)*piVar5);
    param_3 = 0;
    piVar1 = piVar5;
    if (param_2 == (int *)0x0) goto LAB_000683b4;
  }
  else {
    unaff_s2 = auStack_11c;
    (*(code *)PTR_sigemptyset_00158388)(unaff_s2);
    (*(code *)PTR_sigaddset_00158418)(unaff_s2,0x12);
    unaff_s3 = auStack_9c;
    (*(code *)PTR_sigemptyset_00158388)(unaff_s3);
    puVar3 = unaff_s2;
    (*(code *)PTR_sigprocmask_001585c4)(1,unaff_s2,unaff_s3);
    piVar1 = *(int **)(*(int *)(*(int *)PTR_jobs_00156eb0 + param_1 * 4) + 4);
    if ((piVar1 != (int *)0x0) && (piVar6 = (int *)*piVar1, (int *)*piVar1 != piVar1))
    goto LAB_000682d4;
  }
  param_3 = 0;
  puVar3 = auStack_9c;
  (*(code *)PTR_sigprocmask_001585c4)(3,puVar3,0);
LAB_000683b4:
  if (local_1c == *(code **)PTR___stack_chk_guard_0015858c) {
    return piVar1;
  }
  pcVar8 = local_1c;
  puVar7 = PTR___stack_chk_fail_0015853c;
  (*(code *)PTR___stack_chk_fail_0015853c)();
  puStack_268 = puVar7 + 0xf614c;
  iStack_15c = **(int **)(puVar7 + 0xf0198);
  piVar6 = *(int **)(*(int *)(puVar7 + 0xeeab8) + 0x18);
  piStack_158 = piVar1;
  piStack_154 = param_2;
  puStack_150 = unaff_s2;
  puStack_14c = unaff_s3;
  if (piVar6 != (int *)0x0) {
    (**(code **)(puVar7 + 0xeff94))(auStack_25c);
    (**(code **)(puStack_268 + -0x6128))(auStack_25c,0x12);
    param_2 = aiStack_1dc;
    (**(code **)(puStack_268 + -0x61b8))(param_2);
    (**(code **)(puStack_268 + -0x5f7c))(1,auStack_25c,param_2);
    piVar1 = (int *)0x0;
    puVar7 = puStack_268;
    if (0 < *(int *)(*(int *)(puStack_268 + -0x7694) + 0x18)) {
      param_2 = *(int **)(puStack_268 + -0x7690);
      iVar2 = *(int *)(puStack_268 + -0x7694);
      do {
        iVar4 = *(int *)(*param_2 + (int)piVar1 * 4);
        if ((iVar4 != 0) &&
           (piVar6 = (int *)(*pcVar8)(iVar4,puVar3,param_3,piVar1), puVar7 = puStack_268,
           piVar6 != (int *)0x0)) goto LAB_00068560;
        piVar1 = (int *)((int)piVar1 + 1);
      } while ((int)piVar1 < *(int *)(iVar2 + 0x18));
    }
    piVar6 = (int *)0x0;
LAB_00068560:
    (**(code **)(puVar7 + -0x5f7c))(3,aiStack_1dc,0);
  }
  if (iStack_15c == **(int **)(puStack_268 + -0x5fb4)) {
    return piVar6;
  }
  pcVar8 = *(code **)(puStack_268 + -0x6004);
  uVar9 = 0x68594;
  (*pcVar8)();
  piStack_28c = (int *)**(int **)(pcVar8 + 0xefff8);
  piStack_284 = piVar1;
  piStack_280 = param_2;
  uStack_27c = uVar9;
  if (*(int *)(*(int *)(pcVar8 + 0xee918) + 0x18) != 0) {
    (**(code **)(pcVar8 + 0xefdf4))(auStack_38c);
    (**(code **)(pcVar8 + 0xefe84))(auStack_38c,0x12);
    (**(code **)(pcVar8 + 0xefdf4))(auStack_30c);
    (**(code **)(pcVar8 + 0xf0030))(1,auStack_38c,auStack_30c);
    if (0 < *(int *)(*(int *)(pcVar8 + 0xee918) + 0x18)) {
      piVar1 = (int *)**(undefined4 **)(pcVar8 + 0xee91c);
      iVar2 = 0;
      iVar4 = *(int *)(pcVar8 + 0xee918);
      do {
        if (*piVar1 != 0) {
          *(undefined4 *)(*piVar1 + 0xc) = 4;
          *(int *)(iVar4 + 0x28) = *(int *)(iVar4 + 0x28) + 1;
        }
        iVar2 = iVar2 + 1;
        piVar1 = piVar1 + 1;
      } while (iVar2 < *(int *)(iVar4 + 0x18));
    }
    (**(code **)(pcVar8 + 0xf0030))(3,auStack_30c,0);
  }
  if (piStack_28c != (int *)**(int **)(pcVar8 + 0xefff8)) {
    pcVar8 = *(code **)(pcVar8 + 0xeffa8);
    (*pcVar8)();
    piVar1 = *(int **)(pcVar8 + 0xeeac0);
    if (*piVar1 != 0) {
      piVar1 = (int *)piVar1[2];
      if (piVar1 != (int *)0x0) {
        (**(code **)(pcVar8 + 0xefed0))();
        piVar1 = *(int **)(pcVar8 + 0xeeac0);
        *piVar1 = 0;
        piVar1[2] = 0;
        piVar1[1] = 0;
        piVar1[3] = 0;
      }
    }
    return piVar1;
  }
  return (int *)**(int **)(pcVar8 + 0xefff8);
}

