
int wait_for_job(int job,int flags)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  PROCESS *pPVar4;
  code *pcVar5;
  int iVar6;
  undefined1 *puVar7;
  int *piVar8;
  char *pcVar9;
  int iVar10;
  int *piVar11;
  int iVar12;
  sigset_t *block;
  undefined4 *puVar13;
  int iVar14;
  int *piVar15;
  int iVar16;
  sigset_t *psVar17;
  undefined4 uVar18;
  pid_t pid;
  int *piVar19;
  int *piVar20;
  int *piVar21;
  int iVar22;
  undefined4 *puVar23;
  int *piVar24;
  int *piVar25;
  undefined *puVar26;
  int *piVar27;
  code *pcVar28;
  char *pcStack_3e4;
  undefined1 auStack_3dc [128];
  undefined1 auStack_35c [128];
  int iStack_2dc;
  sigset_t *psStack_2d8;
  undefined1 *puStack_2d4;
  int iStack_2d0;
  int *piStack_2cc;
  int *piStack_2c8;
  undefined4 *puStack_2c4;
  int *piStack_2c0;
  int iStack_2bc;
  int *piStack_2b8;
  code *pcStack_2b4;
  undefined *puStack_2a0;
  code *pcStack_294;
  undefined1 auStack_28c [128];
  sigset_t sStack_20c;
  int *piStack_18c;
  sigset_t *psStack_188;
  sigset_t *psStack_184;
  int iStack_180;
  undefined4 uStack_17c;
  int *piStack_178;
  int iStack_174;
  int *piStack_170;
  int *piStack_16c;
  undefined *puStack_168;
  code *pcStack_164;
  sigset_t set;
  sigset_t oset;
  
  puVar26 = PTR___stack_chk_guard_001464dc;
  piVar27 = (int *)PTR_jobs_00144e5c;
  psVar17 = &set;
  piVar25 = (int *)(job * 4);
  iVar3 = *(int *)PTR___stack_chk_guard_001464dc;
  (*(code *)PTR_sigemptyset_001462d4)(psVar17);
  (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);
  (*(code *)PTR_sigemptyset_001462d4)(&oset);
  block = psVar17;
  (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);
  if (*(int *)(*(int *)(*piVar27 + (int)piVar25) + 0xc) == 2) {
    pcVar9 = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);
    block = (sigset_t *)(job + 1);
    internal_warning(pcVar9);
  }
  puVar2 = PTR_js_00144e58;
  puVar1 = PTR_wait_for_00144d9c;
  piVar20 = (int *)0xffffffff;
  piVar21 = (int *)(flags & 2);
  pPVar4 = find_last_proc(job,(int)block);
  piVar24 = (int *)pPVar4->pid;
  (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);
  pcVar5 = (code *)(PTR_LAB_00144ff0 + 0x4e60);
  do {
    iVar6 = (*(code *)puVar1)(piVar24);
    if (((iVar6 == -1) &&
        (piVar15 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar15 == 10)) &&
       (*(int *)(puVar2 + 0x18) != 0)) {
      (*pcVar5)();
    }
    if (piVar21 == (int *)0x0) {
      (*(code *)PTR_sigemptyset_001462d4)(psVar17);
      (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);
      (*(code *)PTR_sigemptyset_001462d4)(&oset);
      (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);
      if (job == -1) goto LAB_0006b0f4;
      goto LAB_0006b0d0;
    }
    (*(code *)PTR_sigemptyset_001462d4)();
    (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);
    (*(code *)PTR_sigemptyset_001462d4)(&oset);
    (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);
    if (job == -1) {
      (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);
      (*(code *)PTR_sigemptyset_001462d4)(psVar17);
      (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);
      (*(code *)PTR_sigemptyset_001462d4)(&oset);
      (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);
      goto LAB_0006b0f4;
    }
    if (*(int *)(*piVar27 + (int)piVar25) == 0) {
      (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);
      break;
    }
    iVar10 = *(int *)(*(int *)(*piVar27 + (int)piVar25) + 0xc);
    (*(code *)PTR_sigprocmask_00146514)(3,&oset);
  } while (iVar10 != 4);
  (*(code *)PTR_sigemptyset_001462d4)(psVar17);
  (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);
  (*(code *)PTR_sigemptyset_001462d4)(&oset);
  (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);
LAB_0006b0d0:
  piVar25 = (int *)(*piVar27 + (int)piVar25);
  iVar10 = *piVar25;
  if ((iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4)) {
    *(uint *)(iVar10 + 0x10) = *(uint *)(iVar10 + 0x10) | 2;
  }
LAB_0006b0f4:
  (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);
  if (iVar3 == *(int *)puVar26) {
    return iVar6;
  }
  pcVar5 = wait_for_any_job;
  puVar26 = PTR___stack_chk_fail_00146488;
  (*(code *)PTR___stack_chk_fail_00146488)();
  puStack_2a0 = puVar26 + 0xe1290;
  iVar3 = *(int *)(puVar26 + 0xd9ea4);
  puVar23 = *(undefined4 **)(puVar26 + 0xdb22c);
  puStack_168 = (undefined *)piVar27;
  uStack_17c = 0xffffffff;
  piStack_18c = (int *)*puVar23;
  psStack_188 = psVar17;
  psStack_184 = &oset;
  iStack_180 = iVar6;
  piStack_178 = piVar21;
  iStack_174 = job;
  piStack_170 = piVar24;
  piStack_16c = piVar25;
  pcStack_164 = pcVar5;
  if (*(int *)(iVar3 + -0x705c) == 0) {
    puVar7 = auStack_28c;
    iVar6 = *(int *)(puVar26 + 0xd9ba8);
    psVar17 = &sStack_20c;
    (**(code **)(puVar26 + 0xdb024))(puVar7);
    (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);
    (**(code **)(puStack_2a0 + -0x626c))(psVar17);
    (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);
    if (0 < (int)*(int **)(iVar6 + 0x18)) {
      piVar27 = (int *)0x0;
      piVar15 = (int *)**(int **)(puStack_2a0 + -0x76e4);
      piVar25 = piVar15;
      do {
        iVar10 = *piVar25;
        if (((iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4)) &&
           ((*(uint *)(iVar10 + 0x10) & 2) == 0)) goto LAB_0006b3b8;
        piVar27 = (int *)((int)piVar27 + 1);
        piVar25 = piVar25 + 1;
      } while (piVar27 != *(int **)(iVar6 + 0x18));
    }
    piVar21 = *(int **)(puStack_2a0 + -0x76e4);
    piVar20 = *(int **)(puStack_2a0 + -0x7d0c);
    (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);
    piVar27 = *(int **)(puStack_2a0 + -0x7550);
    piVar24 = *(int **)(puStack_2a0 + -0x7d04);
    pcStack_294 = (code *)(piVar27 + 0x1398);
    do {
      (**(code **)(puStack_2a0 + -0x626c))(puVar7);
      (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);
      (**(code **)(puStack_2a0 + -0x626c))(psVar17);
      (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);
      iVar10 = *(int *)(iVar6 + 0x18);
      if (iVar10 < 1) {
        pcVar5 = *(code **)(puStack_2a0 + -0x602c);
        if (iVar10 == 0) {
LAB_0006b680:
          (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);
          puVar7 = (undefined1 *)0xffffffff;
          goto LAB_0006b430;
        }
      }
      else {
        piVar25 = (int *)*piVar21;
        iVar12 = 0;
        while (((iVar22 = *piVar25, iVar22 == 0 || (*(int *)(iVar22 + 0xc) != 1)) ||
               ((*(uint *)(iVar22 + 0x10) & 1) != 0))) {
          iVar12 = iVar12 + 1;
          piVar25 = piVar25 + 1;
          if (iVar12 == iVar10) goto LAB_0006b680;
        }
        pcVar5 = *(code **)(puStack_2a0 + -0x602c);
      }
      (*pcVar5)(3,psVar17,0);
      if (*piVar20 == 0) {
        pcVar5 = *(code **)(puStack_2a0 + -32000);
        if (*piVar24 == 0) goto LAB_0006b564;
LAB_0006b6f0:
        (*pcVar5)();
        if (*piVar20 != 0) {
          pcVar5 = *(code **)(puStack_2a0 + -0x7d08);
          goto LAB_0006b708;
        }
      }
      else {
        (**(code **)(puStack_2a0 + -0x7d08))(*piVar20);
        if (*piVar24 != 0) {
          pcVar5 = *(code **)(puStack_2a0 + -32000);
          goto LAB_0006b6f0;
        }
LAB_0006b564:
        pcVar5 = *(code **)(puStack_2a0 + -0x7d08);
        if (*piVar20 != 0) {
LAB_0006b708:
          (*pcVar5)(*piVar20);
        }
      }
      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {
LAB_0006b5a4:
        pcVar5 = *(code **)(puStack_2a0 + -0x6204);
      }
      else {
        pcVar5 = *(code **)(puStack_2a0 + -0x6204);
        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {
          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {
            piVar25 = *(int **)(puStack_2a0 + -0x73d4);
            puVar26 = puStack_2a0;
            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))
            goto LAB_0006b5a4;
            goto LAB_0006b730;
          }
        }
      }
      piVar27 = (int *)(*pcVar5)();
      *piVar27 = 0;
      iVar10 = wait_for(-1);
      if (iVar10 == -1) {
        pcVar5 = *(code **)(puStack_2a0 + -0x626c);
        if ((*piVar27 == 10) && (*(int *)(iVar6 + 0x18) != 0)) {
          (*pcStack_294)();
          goto LAB_0006b5d4;
        }
      }
      else {
LAB_0006b5d4:
        pcVar5 = *(code **)(puStack_2a0 + -0x626c);
      }
      (*pcVar5)(puVar7);
      (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);
      (**(code **)(puStack_2a0 + -0x626c))(psVar17);
      (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);
      if (0 < (int)*(int **)(iVar6 + 0x18)) {
        piVar15 = (int *)*piVar21;
        piVar27 = (int *)0x0;
        piVar25 = piVar15;
        do {
          if ((*piVar25 != 0) && (*(int *)(*piVar25 + 0xc) == 4)) goto LAB_0006b3b8;
          piVar27 = (int *)((int)piVar27 + 1);
          piVar25 = piVar25 + 1;
        } while (*(int **)(iVar6 + 0x18) != piVar27);
      }
      (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);
    } while( true );
  }
  puVar7 = (undefined1 *)0xffffffff;
LAB_0006b430:
  puVar26 = puStack_2a0;
  if (piStack_18c == (int *)*puVar23) {
    return (int)puVar7;
  }
  piVar25 = piStack_18c;
  (**(code **)(puStack_2a0 + -0x60b8))();
LAB_0006b730:
  pcVar5 = *(code **)(puVar26 + -0x625c);
  pcVar28 = start_job;
  puVar13 = (undefined4 *)0x1;
  (*pcVar5)();
  piVar15 = *(int **)(pcVar5 + 0xdada0);
  iVar10 = (int)piVar25 * 4;
  iStack_2dc = *piVar15;
  piVar19 = *(int **)(pcVar5 + 0xd9720);
  psStack_2d8 = psVar17;
  puStack_2d4 = puVar7;
  iStack_2d0 = iVar6;
  piStack_2cc = piVar20;
  piStack_2c8 = piVar21;
  puStack_2c4 = puVar23;
  piStack_2c0 = piVar24;
  iStack_2bc = iVar3;
  piStack_2b8 = piVar27;
  pcStack_2b4 = pcVar28;
  (**(code **)(pcVar5 + 0xdab98))(auStack_3dc);
  (**(code **)(pcVar5 + 0xdac28))(auStack_3dc,0x12);
  (**(code **)(pcVar5 + 0xdab98))(auStack_35c);
  (**(code **)(pcVar5 + 0xdadd8))(1,auStack_3dc,auStack_35c);
  iVar3 = *(int *)(*(int *)(*piVar19 + iVar10) + 0xc);
  if (iVar3 == 4) {
    iVar3 = -1;
    pcVar9 = (char *)(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7d9c,5);
    internal_error(pcVar9,**(undefined4 **)(pcVar5 + 0xd8fec));
    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);
  }
  else if (puVar13 == (undefined4 *)0x0) {
    if (iVar3 != 1) {
      pcStack_3e4 = current_working_directory();
      iVar6 = *(int *)(*piVar19 + iVar10);
      iVar12 = **(int **)(pcVar5 + 0xd8e50);
      *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffd;
      if (iVar12 == 0) {
        if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x2c) == piVar25) {
          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7144;
        }
        else {
          if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x30) != piVar25) goto LAB_0006b860;
          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7d98;
        }
      }
      else {
LAB_0006b860:
        iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7b04;
      }
      piVar27 = *(int **)(iVar6 + 4);
      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7dd8,(int)piVar25 + 1,iVar12)
      ;
      piVar20 = *(int **)(*(int *)(*piVar19 + iVar10) + 4);
      goto LAB_0006b898;
    }
    pcVar9 = (char *)(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7db4,5);
    internal_error(pcVar9,**(undefined4 **)(pcVar5 + 0xd8fec),(int)piVar25 + 1);
LAB_0006b9dc:
    iVar3 = 0;
    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);
  }
  else {
    pcStack_3e4 = current_working_directory();
    *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =
         *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffd;
    set_current_job((int)piVar25);
    iVar6 = *(int *)(*piVar19 + iVar10);
    piVar20 = *(int **)(iVar6 + 4);
    *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) | 1;
    piVar27 = piVar20;
LAB_0006b898:
    iVar12 = *(int *)(pcVar5 + 0xd8e3c);
    iVar6 = *(int *)(pcVar5 + 0xd8e70);
    iVar22 = *(int *)(pcVar5 + 0xd8e3c);
    do {
      iVar14 = piVar27[4];
      if (piVar27[4] == 0) {
        iVar14 = iVar6 + -0x6800;
      }
      iVar16 = iVar22 + 0x6720;
      if ((int *)*piVar27 == piVar20) {
        iVar16 = iVar6 + -0x6800;
      }
      (**(code **)(pcVar5 + 0xdabb0))(1,iVar12 + 0x6298,iVar14,iVar16);
      piVar27 = (int *)*piVar27;
      puVar23 = *(undefined4 **)(*piVar19 + iVar10);
      piVar20 = (int *)puVar23[1];
    } while (piVar20 != piVar27);
    if (puVar13 == (undefined4 *)0x0) {
      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7b74);
      puVar23 = *(undefined4 **)(*piVar19 + iVar10);
    }
    uVar18 = *puVar23;
    iVar6 = (**(code **)(pcVar5 + 0xdae0c))(pcStack_3e4,uVar18);
    if (iVar6 != 0) {
      uVar18 = (**(code **)(pcVar5 + 0xd9234))(uVar18);
      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7de0,uVar18);
    }
    (**(code **)(pcVar5 + 0xdac04))(10);
    if (iVar3 == 1) {
      if (puVar13 == (undefined4 *)0x0) {
        *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =
             *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffe;
        goto LAB_0006b9c8;
      }
      get_tty_state();
      iVar6 = *(int *)(pcVar5 + 0xd9a18);
      piVar20 = (int *)(iVar6 + -0x70d0);
      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);
      piVar27 = piVar20;
      piVar21 = piVar24;
      do {
        piVar8 = piVar27 + 4;
        piVar11 = piVar21 + 4;
        iVar14 = piVar27[1];
        iVar22 = piVar27[2];
        iVar12 = piVar27[3];
        *piVar21 = *piVar27;
        piVar21[1] = iVar14;
        piVar21[2] = iVar22;
        piVar21[3] = iVar12;
        piVar27 = piVar8;
        piVar21 = piVar11;
      } while (piVar8 != (int *)(iVar6 + -0x70a0));
      iVar6 = *piVar19;
      iVar12 = *piVar8;
      *piVar11 = iVar12;
      iVar6 = *(int *)(iVar6 + iVar10);
      if ((*(uint *)(iVar6 + 0x10) & 4) != 0) goto LAB_0006bce0;
    }
    else {
      iVar6 = *(int *)(*piVar19 + iVar10);
      piVar20 = *(int **)(iVar6 + 4);
      piVar27 = piVar20;
      do {
        if (*(char *)((int)piVar27 + 0xb) == '\x7f') {
          piVar27[3] = 1;
        }
        piVar27 = (int *)*piVar27;
      } while (piVar20 != piVar27);
      *(undefined4 *)(iVar6 + 0xc) = 1;
      if (puVar13 == (undefined4 *)0x0) {
        pcVar28 = *(code **)(pcVar5 + 0xdad38);
        *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffe | 2;
        (*pcVar28)(*(undefined4 *)(iVar6 + 8),0x19);
LAB_0006b9c8:
        reset_current();
        goto LAB_0006b9dc;
      }
      get_tty_state();
      iVar6 = *(int *)(pcVar5 + 0xd9a18);
      piVar20 = (int *)(iVar6 + -0x70d0);
      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);
      piVar27 = piVar20;
      piVar21 = piVar24;
      do {
        piVar8 = piVar27 + 4;
        piVar11 = piVar21 + 4;
        iVar14 = piVar27[1];
        iVar22 = piVar27[2];
        iVar12 = piVar27[3];
        *piVar21 = *piVar27;
        piVar21[1] = iVar14;
        piVar21[2] = iVar22;
        piVar21[3] = iVar12;
        piVar27 = piVar8;
        piVar21 = piVar11;
      } while (piVar8 != (int *)(iVar6 + -0x70a0));
      iVar6 = *piVar19;
      *piVar11 = *piVar8;
      iVar6 = *(int *)(iVar6 + iVar10);
      if ((*(uint *)(iVar6 + 0x10) & 4) == 0) {
        iVar3 = *piVar19;
      }
      else {
LAB_0006bce0:
        iVar12 = 0;
        give_terminal_to(*(pid_t *)(iVar6 + 8),0);
        if (iVar3 == 1) goto LAB_0006bbc8;
        iVar3 = *piVar19;
      }
      iVar12 = 0x19;
      pcVar28 = *(code **)(pcVar5 + 0xdad38);
      iVar3 = *(int *)(iVar3 + iVar10);
      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;
      (*pcVar28)(*(undefined4 *)(iVar3 + 8));
    }
LAB_0006bbc8:
    pPVar4 = find_last_proc((int)piVar25,iVar12);
    pid = pPVar4->pid;
    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);
    iVar3 = wait_for(pid);
    piVar27 = piVar24;
    do {
      piVar8 = piVar27 + 4;
      piVar21 = piVar20 + 4;
      iVar12 = piVar27[1];
      iVar10 = piVar27[2];
      iVar6 = piVar27[3];
      *piVar20 = *piVar27;
      piVar20[1] = iVar12;
      piVar20[2] = iVar10;
      piVar20[3] = iVar6;
      piVar20 = piVar21;
      piVar27 = piVar8;
    } while (piVar8 != piVar24 + 0xc);
    *piVar21 = *piVar8;
    set_tty_state();
  }
  if (iStack_2dc == *piVar15) {
    return iVar3;
  }
  pcVar5 = *(code **)(pcVar5 + 0xdad4c);
  iVar3 = iStack_2dc;
  (*pcVar5)();
  piVar27 = *(int **)(pcVar5 + 0xd8b10);
  iVar6 = (**(code **)(pcVar5 + 0xda6dc))();
  *piVar27 = iVar6;
  if (iVar6 == -1) {
    pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7dec,5);
    sys_error(pcVar9);
    (**(code **)(pcVar5 + 0xda620))(1);
LAB_0006c3c8:
    uVar18 = *puVar13;
LAB_0006be24:
    uVar18 = (**(code **)(pcVar5 + 0xda58c))(uVar18);
    iVar3 = (**(code **)(pcVar5 + 0xda780))(uVar18);
    *piVar19 = iVar3;
    if (iVar3 != -1) goto LAB_0006bf80;
    pcVar28 = *(code **)(pcVar5 + 0xda670);
    if (*piVar27 == 0) goto LAB_0006bf08;
LAB_0006be5c:
    iVar3 = *piVar19;
  }
  else {
    piVar25 = *(int **)(pcVar5 + 0xd87f4);
    puVar13 = *(undefined4 **)(pcVar5 + 0xda77c);
    uVar18 = *puVar13;
    if (iVar3 == 0 && *piVar25 == 0) {
      piVar20 = *(int **)(pcVar5 + 0xd8b0c);
      puVar23 = *(undefined4 **)(pcVar5 + 0xd9070);
      pcVar28 = *(code **)(pcVar5 + 0xda58c);
      piVar19 = *(int **)(pcVar5 + 0xd93fc);
      *piVar20 = 0;
      *puVar23 = 0xffffffff;
      iVar3 = (*pcVar28)(uVar18);
      pcVar28 = *(code **)(pcVar5 + 0xda598);
      *piVar19 = iVar3;
      iVar3 = (*pcVar28)(iVar3);
      iVar6 = *piVar27;
      **(int **)(pcVar5 + 0xd9434) = iVar3;
      goto LAB_0006bff4;
    }
    piVar19 = *(int **)(pcVar5 + 0xd93fc);
    iVar3 = **(int **)(pcVar5 + 0xd87e4);
    *piVar19 = -1;
    if (iVar3 == 0) goto LAB_0006be24;
    uVar18 = (**(code **)(pcVar5 + 0xda58c))();
    iVar3 = (**(code **)(pcVar5 + 0xda4b0))(uVar18);
    if (iVar3 == 0) {
      iVar3 = (**(code **)(pcVar5 + 0xda5dc))(*(int *)(pcVar5 + 0xd87dc) + 0x62c0,0x82);
      *piVar19 = iVar3;
    }
    else {
      iVar3 = *piVar19;
    }
    if (iVar3 == -1) goto LAB_0006c3c8;
LAB_0006bf80:
    iVar3 = (**(code **)(pcVar5 + 0xd8a0c))(iVar3,1,0xffffffff);
    *piVar19 = iVar3;
    pcVar28 = *(code **)(pcVar5 + 0xda670);
    if (*piVar27 != 0) goto LAB_0006be5c;
LAB_0006bf08:
    iVar3 = (*pcVar28)();
    pcVar28 = *(code **)(pcVar5 + 0xda4fc);
    *piVar27 = iVar3;
    (*pcVar28)(0,iVar3);
    iVar3 = *piVar19;
    if (iVar3 != -1) {
      (**(code **)(pcVar5 + 0xda73c))(iVar3,*piVar27);
      goto LAB_0006be5c;
    }
  }
  iVar6 = 0x12;
  piVar21 = *(int **)(pcVar5 + 0xd9434);
  piVar20 = *(int **)(pcVar5 + 0xd8a98);
  while( true ) {
    iVar3 = (**(code **)(pcVar5 + 0xda598))(iVar3);
    *piVar21 = iVar3;
    if (iVar3 == -1) break;
    if (*piVar27 == iVar3) {
      iVar10 = -1;
      goto LAB_0006c118;
    }
    pcVar28 = *(code **)(pcVar5 + 0xd8aac);
    if (*piVar20 != 0) {
      (**(code **)(pcVar5 + 0xd8a9c))(*piVar20);
      pcVar28 = *(code **)(pcVar5 + 0xd8aac);
    }
    iVar6 = iVar6 + -1;
    uVar18 = (*pcVar28)(0x1a,0);
    (**(code **)(pcVar5 + 0xda61c))(0,0x1a);
    (**(code **)(pcVar5 + 0xd8aac))(0x1a,uVar18);
    if (iVar6 == 0) {
      piVar20 = *(int **)(pcVar5 + 0xd8b0c);
      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e14,5);
      sys_error(pcVar9);
      iVar3 = *piVar21;
      iVar6 = *piVar27;
      *piVar20 = 0;
      **(int **)(pcVar5 + 0xd9070) = iVar3;
      goto LAB_0006bff4;
    }
    iVar3 = *piVar19;
  }
  piVar20 = (int *)(**(code **)(pcVar5 + 0xda5a0))();
  iVar10 = *piVar20;
  iVar3 = *piVar27;
LAB_0006c118:
  piVar24 = *(int **)(pcVar5 + 0xd9070);
  pcVar28 = *(code **)(pcVar5 + 0xda670);
  *piVar24 = iVar3;
  iVar3 = (*pcVar28)();
  iVar6 = *piVar24;
  *piVar27 = iVar3;
  if (iVar3 == iVar6) {
LAB_0006c138:
    piVar20 = *(int **)(pcVar5 + 0xd8b0c);
    *piVar20 = 1;
LAB_0006c144:
    pcVar28 = *(code **)(pcVar5 + 0xda598);
LAB_0006c148:
    iVar6 = (*pcVar28)(*piVar19);
    if ((iVar6 == -1) || (*piVar27 != iVar6)) {
      if (iVar10 != -1) {
        piVar24 = (int *)(**(code **)(pcVar5 + 0xda5a0))();
        *piVar24 = iVar10;
      }
      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e6c,5);
      sys_error(pcVar9,iVar6);
      *piVar20 = 0;
      goto LAB_0006c230;
    }
    iVar3 = *(int *)(pcVar5 + 0xd87dc);
    if (*piVar20 != 0) {
      iVar3 = *piVar21;
      goto LAB_0006bff4;
    }
  }
  else {
    iVar3 = (**(code **)(pcVar5 + 0xda4fc))(0,iVar3);
    if (iVar3 < 0) {
      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e4c,5);
      sys_error(pcVar9);
      *piVar27 = *piVar24;
      goto LAB_0006c138;
    }
    piVar20 = *(int **)(pcVar5 + 0xd8b0c);
    iVar6 = *piVar27;
    iVar3 = *piVar24;
    *piVar20 = 1;
    if (iVar6 == iVar3) goto LAB_0006c144;
    pcVar28 = *(code **)(pcVar5 + 0xda598);
    if (*piVar21 == iVar6) goto LAB_0006c148;
    iVar3 = give_terminal_to(iVar6,0);
    if (iVar3 < 0) {
      puVar23 = (undefined4 *)(**(code **)(pcVar5 + 0xda5a0))();
      uVar18 = *puVar23;
      (**(code **)(pcVar5 + 0xda4fc))(0,*piVar24);
      iVar3 = *(int *)(pcVar5 + 0xd87dc);
      pcVar28 = *(code **)(pcVar5 + 0xda6fc);
      *piVar27 = *piVar24;
      *puVar23 = uVar18;
      pcVar9 = (char *)(*pcVar28)(0,iVar3 + 0x7e6c,5);
      sys_error(pcVar9,*piVar27);
      *piVar20 = 0;
    }
    else {
      pcVar28 = *(code **)(pcVar5 + 0xda598);
      if (*piVar20 != 0) goto LAB_0006c148;
    }
LAB_0006c230:
    iVar3 = *(int *)(pcVar5 + 0xd87dc);
  }
  pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,iVar3 + 0x7e94,5);
  internal_error(pcVar9);
  iVar3 = *piVar21;
  iVar6 = *piVar27;
LAB_0006bff4:
  pcVar28 = *(code **)(pcVar5 + 0xda58c);
  uVar18 = *puVar13;
  **(uint **)(pcVar5 + 0xd8954) = (uint)(iVar6 != iVar3);
  iVar3 = (*pcVar28)(uVar18);
  if (iVar3 != *piVar19) {
    (**(code **)(pcVar5 + 0xda540))(*piVar19,2,1);
  }
  (**(code **)(pcVar5 + 0xd8aac))(0x12,*(int *)(pcVar5 + 0xd942c) + -0x6fbc);
  iVar3 = 0x2b;
  if (*piVar20 != 0) {
    iVar3 = 0x2d;
  }
  change_flag(0x6d,iVar3);
  if (*piVar25 != 0) {
    get_tty_state();
  }
  piVar27 = *(int **)(pcVar5 + 0xd90bc);
  if (-1 < *piVar27) {
    return *piVar20;
  }
  iVar3 = (**(code **)(pcVar5 + 0xd93d8))();
  if (iVar3 < 0) {
    iVar3 = 0x20;
  }
  *piVar27 = iVar3;
  return *piVar20;
LAB_0006b3b8:
  puVar7 = (undefined1 *)job_exit_status((int)piVar27);
  if (((piVar15 == (int *)0x0) || (notify_of_job_status(), *(int *)(iVar6 + 0x18) != 0)) &&
     (*(int *)(iVar3 + -0x705c) == 0)) {
    delete_job((int)piVar27,0);
  }
  (**(code **)(puStack_2a0 + -0x737c))();
  (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);
  goto LAB_0006b430;
}



undefined1 * wait_for_job(int param_1,uint param_2)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  code *pcVar4;
  undefined1 *puVar5;
  undefined1 *puVar6;
  undefined4 *puVar7;
  int iVar8;
  undefined4 *puVar9;
  undefined4 *puVar10;
  int iVar11;
  int iVar12;
  undefined4 *puVar13;
  undefined4 uVar14;
  int iVar15;
  undefined4 uVar16;
  int *piVar17;
  int iVar18;
  undefined4 uVar19;
  undefined1 *puVar20;
  undefined4 *puVar21;
  int *piVar22;
  int *piVar23;
  undefined4 *puVar24;
  int *piVar25;
  int iVar26;
  undefined4 *puVar27;
  int *piVar28;
  int *piVar29;
  undefined *puVar30;
  int *piVar31;
  code *pcVar32;
  undefined4 uStack_3e4;
  undefined1 auStack_3dc [128];
  undefined1 auStack_35c [128];
  int iStack_2dc;
  undefined1 *puStack_2d8;
  undefined1 *puStack_2d4;
  undefined1 *puStack_2d0;
  int *piStack_2cc;
  int *piStack_2c8;
  undefined4 *puStack_2c4;
  int *piStack_2c0;
  int iStack_2bc;
  int *piStack_2b8;
  code *pcStack_2b4;
  undefined *puStack_2a0;
  code *pcStack_294;
  undefined1 auStack_28c [128];
  undefined1 auStack_20c [128];
  int *piStack_18c;
  undefined1 *puStack_188;
  undefined1 *puStack_184;
  undefined1 *puStack_180;
  undefined4 uStack_17c;
  int *piStack_178;
  int iStack_174;
  int *piStack_170;
  int *piStack_16c;
  undefined *puStack_168;
  code *pcStack_164;
  undefined1 auStack_12c [128];
  undefined1 auStack_ac [128];
  int local_2c;
  
  puVar30 = PTR___stack_chk_guard_001464dc;
  piVar31 = (int *)PTR_jobs_00144e5c;
  puVar20 = auStack_12c;
  piVar29 = (int *)(param_1 * 4);
  local_2c = *(int *)PTR___stack_chk_guard_001464dc;
  (*(code *)PTR_sigemptyset_001462d4)(puVar20);
  (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);
  (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);
  (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);
  if (*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc) == 2) {
    uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);
    internal_warning(uVar19,param_1 + 1);
  }
  puVar2 = PTR_js_00144e58;
  puVar1 = PTR_wait_for_00144d9c;
  piVar23 = (int *)0xffffffff;
  piVar25 = (int *)(param_2 & 2);
  iVar3 = FUN_00065a6c(param_1);
  piVar28 = *(int **)(iVar3 + 4);
  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);
  pcVar4 = (code *)(PTR_LAB_00144ff0 + 0x4e60);
  do {
    puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28);
    if (((puVar5 == (undefined1 *)0xffffffff) &&
        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&
       (*(int *)(puVar2 + 0x18) != 0)) {
      (*pcVar4)();
    }
    if (piVar25 == (int *)0x0) {
      (*(code *)PTR_sigemptyset_001462d4)(puVar20);
      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);
      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);
      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);
      if (param_1 == -1) goto LAB_0006b0f4;
      goto LAB_0006b0d0;
    }
    (*(code *)PTR_sigemptyset_001462d4)();
    (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);
    (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);
    (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);
    if (param_1 == -1) {
      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);
      (*(code *)PTR_sigemptyset_001462d4)(puVar20);
      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);
      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);
      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);
      goto LAB_0006b0f4;
    }
    if (*(int *)(*piVar31 + (int)piVar29) == 0) {
      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);
      break;
    }
    iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc);
    (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac);
  } while (iVar3 != 4);
  (*(code *)PTR_sigemptyset_001462d4)(puVar20);
  (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);
  (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);
  (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);
LAB_0006b0d0:
  piVar29 = (int *)(*piVar31 + (int)piVar29);
  iVar3 = *piVar29;
  if ((iVar3 != 0) && (*(int *)(iVar3 + 0xc) == 4)) {
    *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;
  }
LAB_0006b0f4:
  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);
  if (local_2c == *(int *)puVar30) {
    return puVar5;
  }
  pcVar4 = wait_for_any_job;
  puVar30 = PTR___stack_chk_fail_00146488;
  (*(code *)PTR___stack_chk_fail_00146488)();
  puStack_2a0 = puVar30 + 0xe1290;
  iVar3 = *(int *)(puVar30 + 0xd9ea4);
  puVar27 = *(undefined4 **)(puVar30 + 0xdb22c);
  puStack_168 = (undefined *)piVar31;
  uStack_17c = 0xffffffff;
  piStack_18c = (int *)*puVar27;
  puStack_188 = puVar20;
  puStack_184 = auStack_ac;
  puStack_180 = puVar5;
  piStack_178 = piVar25;
  iStack_174 = param_1;
  piStack_170 = piVar28;
  piStack_16c = piVar29;
  pcStack_164 = pcVar4;
  if (*(int *)(iVar3 + -0x705c) == 0) {
    puVar6 = auStack_28c;
    puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8);
    puVar20 = auStack_20c;
    (**(code **)(puVar30 + 0xdb024))(puVar6);
    (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);
    (**(code **)(puStack_2a0 + -0x626c))(puVar20);
    (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);
    if (0 < (int)*(int **)(puVar5 + 0x18)) {
      piVar31 = (int *)0x0;
      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);
      piVar29 = piVar17;
      do {
        iVar11 = *piVar29;
        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&
           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;
        piVar31 = (int *)((int)piVar31 + 1);
        piVar29 = piVar29 + 1;
      } while (piVar31 != *(int **)(puVar5 + 0x18));
    }
    piVar25 = *(int **)(puStack_2a0 + -0x76e4);
    piVar23 = *(int **)(puStack_2a0 + -0x7d0c);
    (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);
    piVar31 = *(int **)(puStack_2a0 + -0x7550);
    piVar28 = *(int **)(puStack_2a0 + -0x7d04);
    pcStack_294 = (code *)(piVar31 + 0x1398);
    do {
      (**(code **)(puStack_2a0 + -0x626c))(puVar6);
      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);
      (**(code **)(puStack_2a0 + -0x626c))(puVar20);
      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);
      iVar11 = *(int *)(puVar5 + 0x18);
      if (iVar11 < 1) {
        pcVar4 = *(code **)(puStack_2a0 + -0x602c);
        if (iVar11 == 0) {
LAB_0006b680:
          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);
          puVar6 = (undefined1 *)0xffffffff;
          goto LAB_0006b430;
        }
      }
      else {
        piVar29 = (int *)*piVar25;
        iVar8 = 0;
        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||
               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {
          iVar8 = iVar8 + 1;
          piVar29 = piVar29 + 1;
          if (iVar8 == iVar11) goto LAB_0006b680;
        }
        pcVar4 = *(code **)(puStack_2a0 + -0x602c);
      }
      (*pcVar4)(3,puVar20,0);
      if (*piVar23 == 0) {
        pcVar4 = *(code **)(puStack_2a0 + -32000);
        if (*piVar28 == 0) goto LAB_0006b564;
LAB_0006b6f0:
        (*pcVar4)();
        if (*piVar23 != 0) {
          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);
          goto LAB_0006b708;
        }
      }
      else {
        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);
        if (*piVar28 != 0) {
          pcVar4 = *(code **)(puStack_2a0 + -32000);
          goto LAB_0006b6f0;
        }
LAB_0006b564:
        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);
        if (*piVar23 != 0) {
LAB_0006b708:
          (*pcVar4)(*piVar23);
        }
      }
      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {
LAB_0006b5a4:
        pcVar4 = *(code **)(puStack_2a0 + -0x6204);
      }
      else {
        pcVar4 = *(code **)(puStack_2a0 + -0x6204);
        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {
          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {
            piVar29 = *(int **)(puStack_2a0 + -0x73d4);
            puVar30 = puStack_2a0;
            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))
            goto LAB_0006b5a4;
            goto LAB_0006b730;
          }
        }
      }
      piVar31 = (int *)(*pcVar4)();
      *piVar31 = 0;
      iVar11 = wait_for(0xffffffff);
      if (iVar11 == -1) {
        pcVar4 = *(code **)(puStack_2a0 + -0x626c);
        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {
          (*pcStack_294)();
          goto LAB_0006b5d4;
        }
      }
      else {
LAB_0006b5d4:
        pcVar4 = *(code **)(puStack_2a0 + -0x626c);
      }
      (*pcVar4)(puVar6);
      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);
      (**(code **)(puStack_2a0 + -0x626c))(puVar20);
      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);
      if (0 < (int)*(int **)(puVar5 + 0x18)) {
        piVar17 = (int *)*piVar25;
        piVar31 = (int *)0x0;
        piVar29 = piVar17;
        do {
          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;
          piVar31 = (int *)((int)piVar31 + 1);
          piVar29 = piVar29 + 1;
        } while (*(int **)(puVar5 + 0x18) != piVar31);
      }
      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);
    } while( true );
  }
  puVar6 = (undefined1 *)0xffffffff;
LAB_0006b430:
  puVar30 = puStack_2a0;
  if (piStack_18c == (int *)*puVar27) {
    return puVar6;
  }
  piVar29 = piStack_18c;
  (**(code **)(puStack_2a0 + -0x60b8))();
LAB_0006b730:
  pcVar4 = *(code **)(puVar30 + -0x625c);
  pcVar32 = start_job;
  puVar13 = (undefined4 *)0x1;
  (*pcVar4)();
  piVar17 = *(int **)(pcVar4 + 0xdada0);
  iVar11 = (int)piVar29 * 4;
  iStack_2dc = *piVar17;
  piVar22 = *(int **)(pcVar4 + 0xd9720);
  puStack_2d8 = puVar20;
  puStack_2d4 = puVar6;
  puStack_2d0 = puVar5;
  piStack_2cc = piVar23;
  piStack_2c8 = piVar25;
  puStack_2c4 = puVar27;
  piStack_2c0 = piVar28;
  iStack_2bc = iVar3;
  piStack_2b8 = piVar31;
  pcStack_2b4 = pcVar32;
  (**(code **)(pcVar4 + 0xdab98))(auStack_3dc);
  (**(code **)(pcVar4 + 0xdac28))(auStack_3dc,0x12);
  (**(code **)(pcVar4 + 0xdab98))(auStack_35c);
  (**(code **)(pcVar4 + 0xdadd8))(1,auStack_3dc,auStack_35c);
  iVar3 = *(int *)(*(int *)(*piVar22 + iVar11) + 0xc);
  if (iVar3 == 4) {
    puVar20 = (undefined1 *)0xffffffff;
    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5);
    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec));
    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);
  }
  else if (puVar13 == (undefined4 *)0x0) {
    if (iVar3 != 1) {
      uStack_3e4 = FUN_000649c8();
      iVar8 = *(int *)(*piVar22 + iVar11);
      iVar12 = **(int **)(pcVar4 + 0xd8e50);
      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;
      if (iVar12 == 0) {
        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {
          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;
        }
        else {
          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;
          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;
        }
      }
      else {
LAB_0006b860:
        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;
      }
      piVar31 = *(int **)(iVar8 + 4);
      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)
      ;
      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);
      goto LAB_0006b898;
    }
    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);
    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);
LAB_0006b9dc:
    puVar20 = (undefined1 *)0x0;
    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);
  }
  else {
    uStack_3e4 = FUN_000649c8();
    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =
         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;
    FUN_00064368(piVar29);
    iVar8 = *(int *)(*piVar22 + iVar11);
    piVar23 = *(int **)(iVar8 + 4);
    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;
    piVar31 = piVar23;
LAB_0006b898:
    iVar12 = *(int *)(pcVar4 + 0xd8e3c);
    iVar8 = *(int *)(pcVar4 + 0xd8e70);
    iVar26 = *(int *)(pcVar4 + 0xd8e3c);
    do {
      iVar15 = piVar31[4];
      if (piVar31[4] == 0) {
        iVar15 = iVar8 + -0x6800;
      }
      iVar18 = iVar26 + 0x6720;
      if ((int *)*piVar31 == piVar23) {
        iVar18 = iVar8 + -0x6800;
      }
      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);
      piVar31 = (int *)*piVar31;
      puVar27 = *(undefined4 **)(*piVar22 + iVar11);
      piVar23 = (int *)puVar27[1];
    } while (piVar23 != piVar31);
    if (puVar13 == (undefined4 *)0x0) {
      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);
      puVar27 = *(undefined4 **)(*piVar22 + iVar11);
    }
    uVar19 = *puVar27;
    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);
    if (iVar8 != 0) {
      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);
      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);
    }
    (**(code **)(pcVar4 + 0xdac04))(10);
    if (iVar3 == 1) {
      if (puVar13 == (undefined4 *)0x0) {
        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =
             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;
        goto LAB_0006b9c8;
      }
      get_tty_state();
      iVar8 = *(int *)(pcVar4 + 0xd9a18);
      puVar24 = (undefined4 *)(iVar8 + -0x70d0);
      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);
      puVar27 = puVar24;
      puVar9 = puVar21;
      do {
        puVar7 = puVar27 + 4;
        puVar10 = puVar9 + 4;
        uVar16 = puVar27[1];
        uVar14 = puVar27[2];
        uVar19 = puVar27[3];
        *puVar9 = *puVar27;
        puVar9[1] = uVar16;
        puVar9[2] = uVar14;
        puVar9[3] = uVar19;
        puVar27 = puVar7;
        puVar9 = puVar10;
      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));
      iVar8 = *piVar22;
      *puVar10 = *puVar7;
      iVar8 = *(int *)(iVar8 + iVar11);
      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;
    }
    else {
      iVar8 = *(int *)(*piVar22 + iVar11);
      piVar23 = *(int **)(iVar8 + 4);
      piVar31 = piVar23;
      do {
        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {
          piVar31[3] = 1;
        }
        piVar31 = (int *)*piVar31;
      } while (piVar23 != piVar31);
      *(undefined4 *)(iVar8 + 0xc) = 1;
      if (puVar13 == (undefined4 *)0x0) {
        pcVar32 = *(code **)(pcVar4 + 0xdad38);
        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;
        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);
LAB_0006b9c8:
        FUN_00064490();
        goto LAB_0006b9dc;
      }
      get_tty_state();
      iVar8 = *(int *)(pcVar4 + 0xd9a18);
      puVar24 = (undefined4 *)(iVar8 + -0x70d0);
      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);
      puVar27 = puVar24;
      puVar9 = puVar21;
      do {
        puVar7 = puVar27 + 4;
        puVar10 = puVar9 + 4;
        uVar16 = puVar27[1];
        uVar14 = puVar27[2];
        uVar19 = puVar27[3];
        *puVar9 = *puVar27;
        puVar9[1] = uVar16;
        puVar9[2] = uVar14;
        puVar9[3] = uVar19;
        puVar27 = puVar7;
        puVar9 = puVar10;
      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));
      iVar8 = *piVar22;
      *puVar10 = *puVar7;
      iVar8 = *(int *)(iVar8 + iVar11);
      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {
        iVar3 = *piVar22;
      }
      else {
LAB_0006bce0:
        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);
        if (iVar3 == 1) goto LAB_0006bbc8;
        iVar3 = *piVar22;
      }
      pcVar32 = *(code **)(pcVar4 + 0xdad38);
      iVar3 = *(int *)(iVar3 + iVar11);
      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;
      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);
    }
LAB_0006bbc8:
    iVar3 = FUN_00065a6c(piVar29);
    uVar19 = *(undefined4 *)(iVar3 + 4);
    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);
    puVar20 = (undefined1 *)wait_for(uVar19);
    puVar27 = puVar21;
    do {
      puVar7 = puVar27 + 4;
      puVar9 = puVar24 + 4;
      uVar16 = puVar27[1];
      uVar14 = puVar27[2];
      uVar19 = puVar27[3];
      *puVar24 = *puVar27;
      puVar24[1] = uVar16;
      puVar24[2] = uVar14;
      puVar24[3] = uVar19;
      puVar24 = puVar9;
      puVar27 = puVar7;
    } while (puVar7 != puVar21 + 0xc);
    *puVar9 = *puVar7;
    set_tty_state();
  }
  if (iStack_2dc == *piVar17) {
    return puVar20;
  }
  pcVar4 = *(code **)(pcVar4 + 0xdad4c);
  iVar3 = iStack_2dc;
  (*pcVar4)();
  piVar31 = *(int **)(pcVar4 + 0xd8b10);
  iVar11 = (**(code **)(pcVar4 + 0xda6dc))();
  *piVar31 = iVar11;
  if (iVar11 == -1) {
    uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5);
    sys_error(uVar19);
    (**(code **)(pcVar4 + 0xda620))(1);
LAB_0006c3c8:
    uVar19 = *puVar13;
LAB_0006be24:
    uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);
    iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19);
    *piVar22 = iVar3;
    if (iVar3 != -1) goto LAB_0006bf80;
    pcVar32 = *(code **)(pcVar4 + 0xda670);
    if (*piVar31 == 0) goto LAB_0006bf08;
LAB_0006be5c:
    iVar3 = *piVar22;
  }
  else {
    piVar29 = *(int **)(pcVar4 + 0xd87f4);
    puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);
    uVar19 = *puVar13;
    if (iVar3 == 0 && *piVar29 == 0) {
      piVar23 = *(int **)(pcVar4 + 0xd8b0c);
      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);
      pcVar32 = *(code **)(pcVar4 + 0xda58c);
      piVar22 = *(int **)(pcVar4 + 0xd93fc);
      *piVar23 = 0;
      *puVar27 = 0xffffffff;
      iVar3 = (*pcVar32)(uVar19);
      pcVar32 = *(code **)(pcVar4 + 0xda598);
      *piVar22 = iVar3;
      iVar3 = (*pcVar32)(iVar3);
      iVar11 = *piVar31;
      **(int **)(pcVar4 + 0xd9434) = iVar3;
      goto LAB_0006bff4;
    }
    piVar22 = *(int **)(pcVar4 + 0xd93fc);
    iVar3 = **(int **)(pcVar4 + 0xd87e4);
    *piVar22 = -1;
    if (iVar3 == 0) goto LAB_0006be24;
    uVar19 = (**(code **)(pcVar4 + 0xda58c))();
    iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);
    if (iVar3 == 0) {
      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);
      *piVar22 = iVar3;
    }
    else {
      iVar3 = *piVar22;
    }
    if (iVar3 == -1) goto LAB_0006c3c8;
LAB_0006bf80:
    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);
    *piVar22 = iVar3;
    pcVar32 = *(code **)(pcVar4 + 0xda670);
    if (*piVar31 != 0) goto LAB_0006be5c;
LAB_0006bf08:
    iVar3 = (*pcVar32)();
    pcVar32 = *(code **)(pcVar4 + 0xda4fc);
    *piVar31 = iVar3;
    (*pcVar32)(0,iVar3);
    iVar3 = *piVar22;
    if (iVar3 != -1) {
      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);
      goto LAB_0006be5c;
    }
  }
  iVar11 = 0x12;
  piVar25 = *(int **)(pcVar4 + 0xd9434);
  piVar23 = *(int **)(pcVar4 + 0xd8a98);
  while( true ) {
    iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3);
    *piVar25 = iVar3;
    if (iVar3 == -1) break;
    if (*piVar31 == iVar3) {
      iVar8 = -1;
      goto LAB_0006c118;
    }
    pcVar32 = *(code **)(pcVar4 + 0xd8aac);
    if (*piVar23 != 0) {
      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);
      pcVar32 = *(code **)(pcVar4 + 0xd8aac);
    }
    iVar11 = iVar11 + -1;
    uVar19 = (*pcVar32)(0x1a,0);
    (**(code **)(pcVar4 + 0xda61c))(0,0x1a);
    (**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19);
    if (iVar11 == 0) {
      piVar23 = *(int **)(pcVar4 + 0xd8b0c);
      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);
      sys_error(uVar19);
      iVar3 = *piVar25;
      iVar11 = *piVar31;
      *piVar23 = 0;
      **(int **)(pcVar4 + 0xd9070) = iVar3;
      goto LAB_0006bff4;
    }
    iVar3 = *piVar22;
  }
  piVar23 = (int *)(**(code **)(pcVar4 + 0xda5a0))();
  iVar8 = *piVar23;
  iVar3 = *piVar31;
LAB_0006c118:
  piVar28 = *(int **)(pcVar4 + 0xd9070);
  pcVar32 = *(code **)(pcVar4 + 0xda670);
  *piVar28 = iVar3;
  iVar3 = (*pcVar32)();
  iVar11 = *piVar28;
  *piVar31 = iVar3;
  if (iVar3 == iVar11) {
LAB_0006c138:
    piVar23 = *(int **)(pcVar4 + 0xd8b0c);
    *piVar23 = 1;
LAB_0006c144:
    pcVar32 = *(code **)(pcVar4 + 0xda598);
LAB_0006c148:
    iVar11 = (*pcVar32)(*piVar22);
    if ((iVar11 == -1) || (*piVar31 != iVar11)) {
      if (iVar8 != -1) {
        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();
        *piVar28 = iVar8;
      }
      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);
      sys_error(uVar19,iVar11);
      *piVar23 = 0;
      goto LAB_0006c230;
    }
    iVar3 = *(int *)(pcVar4 + 0xd87dc);
    if (*piVar23 != 0) {
      iVar3 = *piVar25;
      goto LAB_0006bff4;
    }
  }
  else {
    iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);
    if (iVar3 < 0) {
      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);
      sys_error(uVar19);
      *piVar31 = *piVar28;
      goto LAB_0006c138;
    }
    piVar23 = *(int **)(pcVar4 + 0xd8b0c);
    iVar11 = *piVar31;
    iVar3 = *piVar28;
    *piVar23 = 1;
    if (iVar11 == iVar3) goto LAB_0006c144;
    pcVar32 = *(code **)(pcVar4 + 0xda598);
    if (*piVar25 == iVar11) goto LAB_0006c148;
    iVar3 = give_terminal_to(iVar11,0);
    if (iVar3 < 0) {
      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();
      uVar19 = *puVar27;
      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);
      iVar3 = *(int *)(pcVar4 + 0xd87dc);
      pcVar32 = *(code **)(pcVar4 + 0xda6fc);
      *piVar31 = *piVar28;
      *puVar27 = uVar19;
      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);
      sys_error(uVar19,*piVar31);
      *piVar23 = 0;
    }
    else {
      pcVar32 = *(code **)(pcVar4 + 0xda598);
      if (*piVar23 != 0) goto LAB_0006c148;
    }
LAB_0006c230:
    iVar3 = *(int *)(pcVar4 + 0xd87dc);
  }
  uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,iVar3 + 0x7e94,5);
  internal_error(uVar19);
  iVar3 = *piVar25;
  iVar11 = *piVar31;
LAB_0006bff4:
  pcVar32 = *(code **)(pcVar4 + 0xda58c);
  uVar19 = *puVar13;
  **(uint **)(pcVar4 + 0xd8954) = (uint)(iVar11 != iVar3);
  iVar3 = (*pcVar32)(uVar19);
  if (iVar3 != *piVar22) {
    (**(code **)(pcVar4 + 0xda540))(*piVar22,2,1);
  }
  (**(code **)(pcVar4 + 0xd8aac))(0x12,*(int *)(pcVar4 + 0xd942c) + -0x6fbc);
  uVar19 = 0x2b;
  if (*piVar23 != 0) {
    uVar19 = 0x2d;
  }
  change_flag(0x6d,uVar19);
  if (*piVar29 != 0) {
    get_tty_state();
  }
  piVar31 = *(int **)(pcVar4 + 0xd90bc);
  if (-1 < *piVar31) {
    return (undefined1 *)*piVar23;
  }
  iVar3 = (**(code **)(pcVar4 + 0xd93d8))();
  if (iVar3 < 0) {
    iVar3 = 0x20;
  }
  *piVar31 = iVar3;
  return (undefined1 *)*piVar23;
LAB_0006b3b8:
  puVar6 = (undefined1 *)job_exit_status(piVar31);
  if (((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)) &&
     (*(int *)(iVar3 + -0x705c) == 0)) {
    FUN_00066b6c(piVar31,0);
  }
  (**(code **)(puStack_2a0 + -0x737c))();
  (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);
  goto LAB_0006b430;
}


lui gp,0xe
addiu gp,gp,0x1688
addu gp,gp,t9
lw v0,-0x6064(gp)
addiu sp,sp,-0x160
lw t9,-0x626c(gp)
sw v0,0x28(sp)
sw s0,0x138(sp)
addiu s0,sp,0x34
sw ra,0x15c(sp)
sw gp,0x10(sp)
sw s8,0x158(sp)
sw s7,0x154(sp)
sw s5,0x14c(sp)
or s5,a0,zero
sw s4,0x148(sp)
or a0,s0,zero
sw s1,0x13c(sp)
or s4,a1,zero
sw s6,0x150(sp)
addiu s1,sp,0xb4
sw s3,0x144(sp)
sll s7,s5,0x2
sw s2,0x140(sp)
lw v0,0x0(v0)
lw s8,-0x76e4(gp)
sw v0,0x134(sp)
jalr t9
_nop
li a1,0x12
lw gp,0x10(sp)
lw t9,-0x61dc(gp)
jalr t9
_or a0,s0,zero
lw gp,0x10(sp)
lw t9,-0x626c(gp)
jalr t9
_or a0,s1,zero
li a0,0x1
lw gp,0x10(sp)
or a2,s1,zero
lw t9,-0x602c(gp)
jalr t9
_or a1,s0,zero
li v1,0x2
lw v0,0x0(s8)
addu v0,v0,s7
lw v0,0x0(v0)
lw v0,0xc(v0)
beq v0,v1,0x0006b260
_lw gp,0x10(sp)
lw v0,-0x77a4(gp)
or a0,s5,zero
lw t9,-0x7550(gp)
li s3,-0x1
andi s4,s4,0x2
sw v0,0x1c(sp)
lw v0,-0x76e8(gp)
addiu t9,t9,0x5a6c
bal 0x00065a6c
_sw v0,0x24(sp)
or a2,zero,zero
lw gp,0x10(sp)
li a0,0x3
or a1,s1,zero
lw t9,-0x602c(gp)
jalr t9
_lw s6,0x4(v0)
lw gp,0x10(sp)
lw v0,-0x7550(gp)
addiu v0,v0,0x4e60
sw v0,0x2c(sp)
lw t9,0x1c(sp)
jalr t9
_or a0,s6,zero
lw gp,0x10(sp)
beq v0,s3,0x0006b14c
_or s2,v0,zero
lw t9,-0x626c(gp)
beq s4,zero,0x0006b190
_or a0,s0,zero
jalr t9
_nop
li a1,0x12
lw gp,0x10(sp)
lw t9,-0x61dc(gp)
jalr t9
_or a0,s0,zero
lw gp,0x10(sp)
lw t9,-0x626c(gp)
jalr t9
_or a0,s1,zero
li a0,0x1
lw gp,0x10(sp)
or a2,s1,zero
lw t9,-0x602c(gp)
jalr t9
_or a1,s0,zero
beq s5,s3,0x0006b1e8
_lw gp,0x10(sp)
lw v0,0x0(s8)
or a2,zero,zero
lw t9,-0x602c(gp)
addu v0,v0,s7
lw v0,0x0(v0)
beq v0,zero,0x0006b250
_li a0,0x3
lw v1,0xc(v0)
or a1,s1,zero
jalr t9
_sw v1,0x20(sp)
li v0,0x4
lw v1,0x20(sp)
bne v1,v0,0x0006afd8
_lw gp,0x10(sp)
lw t9,-0x626c(gp)
jalr t9
_or a0,s0,zero
li a1,0x12
lw gp,0x10(sp)
lw t9,-0x61dc(gp)
jalr t9
_or a0,s0,zero
lw gp,0x10(sp)
lw t9,-0x626c(gp)
jalr t9
_or a0,s1,zero
li a0,0x1
lw gp,0x10(sp)
or a2,s1,zero
lw t9,-0x602c(gp)
jalr t9
_or a1,s0,zero
lw gp,0x10(sp)
lw v0,0x0(s8)
addu s7,v0,s7
lw v0,0x0(s7)
beq v0,zero,0x0006b0f0
_li v1,0x4
lw a0,0xc(v0)
beq a0,v1,0x0006b294
_nop
lw t9,-0x602c(gp)
li a0,0x3
or a2,zero,zero
jalr t9
_or a1,s1,zero
or v0,s2,zero
lw v1,0x28(sp)
lw a0,0x134(sp)
lw gp,0x10(sp)
lw v1,0x0(v1)
bne a0,v1,0x0006b2a4
_lw ra,0x15c(sp)
lw s8,0x158(sp)
lw s7,0x154(sp)
lw s6,0x150(sp)
lw s5,0x14c(sp)
lw s4,0x148(sp)
lw s3,0x144(sp)
lw s2,0x140(sp)
lw s1,0x13c(sp)
lw s0,0x138(sp)
jr ra
_addiu sp,sp,0x160
lw t9,-0x6204(gp)
jalr t9
_nop
li v1,0xa
lw v0,0x0(v0)
bne v0,v1,0x0006aff0
_lw gp,0x10(sp)
lw v0,0x24(sp)
lw v0,0x18(v0)
beq v0,zero,0x0006aff0
_lw t9,0x2c(sp)
jalr t9
_nop
or a0,s0,zero
lw gp,0x10(sp)
bne s4,zero,0x0006affc
_lw t9,-0x626c(gp)
jalr t9
_nop
li a1,0x12
lw gp,0x10(sp)
lw t9,-0x61dc(gp)
jalr t9
_or a0,s0,zero
lw gp,0x10(sp)
lw t9,-0x626c(gp)
jalr t9
_or a0,s1,zero
li a0,0x1
lw gp,0x10(sp)
or a2,s1,zero
lw t9,-0x602c(gp)
jalr t9
_or a1,s0,zero
li v0,-0x1
bne s5,v0,0x0006b0d0
_lw gp,0x10(sp)
b 0x0006b0f4
_lw t9,-0x602c(gp)
lw t9,-0x602c(gp)
or a2,zero,zero
li a0,0x3
jalr t9
_or a1,s1,zero
lw gp,0x10(sp)
lw t9,-0x626c(gp)
jalr t9
_or a0,s0,zero
li a1,0x12
lw gp,0x10(sp)
lw t9,-0x61dc(gp)
jalr t9
_or a0,s0,zero
lw gp,0x10(sp)
lw t9,-0x626c(gp)
jalr t9
_or a0,s1,zero
li a0,0x1
lw gp,0x10(sp)
or a2,s1,zero
lw t9,-0x602c(gp)
jalr t9
_or a1,s0,zero
b 0x0006b0f0
_lw gp,0x10(sp)
jalr t9
_or a1,s1,zero
b 0x0006b084
_lw gp,0x10(sp)
lw a1,-0x7fc8(gp)
li a2,0x5
lw t9,-0x60a8(gp)
or a0,zero,zero
jalr t9
_addiu a1,a1,0x7d78
addiu a1,s5,0x1
lw gp,0x10(sp)
lw t9,-0x7f3c(gp)
bal 0x0005fbbc
_or a0,v0,zero
b 0x0006af84
_lw gp,0x10(sp)
lw v1,0x10(v0)
ori v1,v1,0x2
b 0x0006b0f0
_sw v1,0x10(v0)
lw t9,-0x60b8(gp)
jalr t9
_nop
(translation_unit "undefined1 * wait_for_job(int param_1,uint param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  code *pcVar4;\n  undefined1 *puVar5;\n  undefined1 *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  undefined4 uVar14;\n  int iVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int iVar18;\n  undefined4 uVar19;\n  undefined1 *puVar20;\n  undefined4 *puVar21;\n  int *piVar22;\n  int *piVar23;\n  undefined4 *puVar24;\n  int *piVar25;\n  int iVar26;\n  undefined4 *puVar27;\n  int *piVar28;\n  int *piVar29;\n  undefined *puVar30;\n  int *piVar31;\n  code *pcVar32;\n  undefined4 uStack_3e4;\n  undefined1 auStack_3dc [128];\n  undefined1 auStack_35c [128];\n  int iStack_2dc;\n  undefined1 *puStack_2d8;\n  undefined1 *puStack_2d4;\n  undefined1 *puStack_2d0;\n  int *piStack_2cc;\n  int *piStack_2c8;\n  undefined4 *puStack_2c4;\n  int *piStack_2c0;\n  int iStack_2bc;\n  int *piStack_2b8;\n  code *pcStack_2b4;\n  undefined *puStack_2a0;\n  code *pcStack_294;\n  undefined1 auStack_28c [128];\n  undefined1 auStack_20c [128];\n  int *piStack_18c;\n  undefined1 *puStack_188;\n  undefined1 *puStack_184;\n  undefined1 *puStack_180;\n  undefined4 uStack_17c;\n  int *piStack_178;\n  int iStack_174;\n  int *piStack_170;\n  int *piStack_16c;\n  undefined *puStack_168;\n  code *pcStack_164;\n  undefined1 auStack_12c [128];\n  undefined1 auStack_ac [128];\n  int local_2c;\n  \n  puVar30 = PTR___stack_chk_guard_001464dc;\n  piVar31 = (int *)PTR_jobs_00144e5c;\n  puVar20 = auStack_12c;\n  piVar29 = (int *)(param_1 * 4);\n  local_2c = *(int *)PTR___stack_chk_guard_001464dc;\n  (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n  (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n  (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n  if (*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc) == 2) {\n    uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);\n    internal_warning(uVar19,param_1 + 1);\n  }\n  puVar2 = PTR_js_00144e58;\n  puVar1 = PTR_wait_for_00144d9c;\n  piVar23 = (int *)0xffffffff;\n  piVar25 = (int *)(param_2 & 2);\n  iVar3 = FUN_00065a6c(param_1);\n  piVar28 = *(int **)(iVar3 + 4);\n  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n  pcVar4 = (code *)(PTR_LAB_00144ff0 + 0x4e60);\n  do {\n    puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28);\n    if (((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar4)();\n    }\n    if (piVar25 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      if (param_1 == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }\n    (*(code *)PTR_sigemptyset_001462d4)();\n    (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n    (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n    (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n    if (param_1 == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      goto LAB_0006b0f4;\n    }\n    if (*(int *)(*piVar31 + (int)piVar29) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      break;\n    }\n    iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc);\n    (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac);\n  } while (iVar3 != 4);\n  (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n  (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n  (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\nLAB_0006b0d0:\n  piVar29 = (int *)(*piVar31 + (int)piVar29);\n  iVar3 = *piVar29;\n  if ((iVar3 != 0) && (*(int *)(iVar3 + 0xc) == 4)) {\n    *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n  }\nLAB_0006b0f4:\n  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n  if (local_2c == *(int *)puVar30) {\n    return puVar5;\n  }\n  pcVar4 = wait_for_any_job;\n  puVar30 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  puStack_2a0 = puVar30 + 0xe1290;\n  iVar3 = *(int *)(puVar30 + 0xd9ea4);\n  puVar27 = *(undefined4 **)(puVar30 + 0xdb22c);\n  puStack_168 = (undefined *)piVar31;\n  uStack_17c = 0xffffffff;\n  piStack_18c = (int *)*puVar27;\n  puStack_188 = puVar20;\n  puStack_184 = auStack_ac;\n  puStack_180 = puVar5;\n  piStack_178 = piVar25;\n  iStack_174 = param_1;\n  piStack_170 = piVar28;\n  piStack_16c = piVar29;\n  pcStack_164 = pcVar4;\n  if (*(int *)(iVar3 + -0x705c) == 0) {\n    puVar6 = auStack_28c;\n    puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8);\n    puVar20 = auStack_20c;\n    (**(code **)(puVar30 + 0xdb024))(puVar6);\n    (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n    (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n    (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n    if (0 < (int)*(int **)(puVar5 + 0x18)) {\n      piVar31 = (int *)0x0;\n      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar29 = piVar17;\n      do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));\n    }\n    piVar25 = *(int **)(puStack_2a0 + -0x76e4);\n    piVar23 = *(int **)(puStack_2a0 + -0x7d0c);\n    (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    piVar31 = *(int **)(puStack_2a0 + -0x7550);\n    piVar28 = *(int **)(puStack_2a0 + -0x7d04);\n    pcStack_294 = (code *)(piVar31 + 0x1398);\n    do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      iVar11 = *(int *)(puVar5 + 0x18);\n      if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar4)(3,puVar20,0);\n      if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar31 = (int *)(*pcVar4)();\n      *piVar31 = 0;\n      iVar11 = wait_for(0xffffffff);\n      if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar4)(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    } while( true );\n  }\n  puVar6 = (undefined1 *)0xffffffff;\nLAB_0006b430:\n  puVar30 = puStack_2a0;\n  if (piStack_18c == (int *)*puVar27) {\n    return puVar6;\n  }\n  piVar29 = piStack_18c;\n  (**(code **)(puStack_2a0 + -0x60b8))();\nLAB_0006b730:\n  pcVar4 = *(code **)(puVar30 + -0x625c);\n  pcVar32 = start_job;\n  puVar13 = (undefined4 *)0x1;\n  (*pcVar4)();\n  piVar17 = *(int **)(pcVar4 + 0xdada0);\n  iVar11 = (int)piVar29 * 4;\n  iStack_2dc = *piVar17;\n  piVar22 = *(int **)(pcVar4 + 0xd9720);\n  puStack_2d8 = puVar20;\n  puStack_2d4 = puVar6;\n  puStack_2d0 = puVar5;\n  piStack_2cc = piVar23;\n  piStack_2c8 = piVar25;\n  puStack_2c4 = puVar27;\n  piStack_2c0 = piVar28;\n  iStack_2bc = iVar3;\n  piStack_2b8 = piVar31;\n  pcStack_2b4 = pcVar32;\n  (**(code **)(pcVar4 + 0xdab98))(auStack_3dc);\n  (**(code **)(pcVar4 + 0xdac28))(auStack_3dc,0x12);\n  (**(code **)(pcVar4 + 0xdab98))(auStack_35c);\n  (**(code **)(pcVar4 + 0xdadd8))(1,auStack_3dc,auStack_35c);\n  iVar3 = *(int *)(*(int *)(*piVar22 + iVar11) + 0xc);\n  if (iVar3 == 4) {\n    puVar20 = (undefined1 *)0xffffffff;\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec));\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);\nLAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }\n  if (iStack_2dc == *piVar17) {\n    return puVar20;\n  }\n  pcVar4 = *(code **)(pcVar4 + 0xdad4c);\n  iVar3 = iStack_2dc;\n  (*pcVar4)();\n  piVar31 = *(int **)(pcVar4 + 0xd8b10);\n  iVar11 = (**(code **)(pcVar4 + 0xda6dc))();\n  *piVar31 = iVar11;\n  if (iVar11 == -1) {\n    uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5);\n    sys_error(uVar19);\n    (**(code **)(pcVar4 + 0xda620))(1);\nLAB_0006c3c8:\n    uVar19 = *puVar13;\nLAB_0006be24:\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);\n    iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19);\n    *piVar22 = iVar3;\n    if (iVar3 != -1) goto LAB_0006bf80;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 == 0) goto LAB_0006bf08;\nLAB_0006be5c:\n    iVar3 = *piVar22;\n  }\n  else {\n    piVar29 = *(int **)(pcVar4 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);\n    uVar19 = *puVar13;\n    if (iVar3 == 0 && *piVar29 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar22 = *(int **)(pcVar4 + 0xd93fc);\n    iVar3 = **(int **)(pcVar4 + 0xd87e4);\n    *piVar22 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }\n    else {\n      iVar3 = *piVar22;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar22 = iVar3;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar32)();\n    pcVar32 = *(code **)(pcVar4 + 0xda4fc);\n    *piVar31 = iVar3;\n    (*pcVar32)(0,iVar3);\n    iVar3 = *piVar22;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }\n  }\n  iVar11 = 0x12;\n  piVar25 = *(int **)(pcVar4 + 0xd9434);\n  piVar23 = *(int **)(pcVar4 + 0xd8a98);\n  while( true ) {\n    iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3);\n    *piVar25 = iVar3;\n    if (iVar3 == -1) break;\n    if (*piVar31 == iVar3) {\n      iVar8 = -1;\n      goto LAB_0006c118;\n    }\n    pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    if (*piVar23 != 0) {\n      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);\n      pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    }\n    iVar11 = iVar11 + -1;\n    uVar19 = (*pcVar32)(0x1a,0);\n    (**(code **)(pcVar4 + 0xda61c))(0,0x1a);\n    (**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19);\n    if (iVar11 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);\n      sys_error(uVar19);\n      iVar3 = *piVar25;\n      iVar11 = *piVar31;\n      *piVar23 = 0;\n      **(int **)(pcVar4 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }\n    iVar3 = *piVar22;\n  }\n  piVar23 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n  iVar8 = *piVar23;\n  iVar3 = *piVar31;\nLAB_0006c118:\n  piVar28 = *(int **)(pcVar4 + 0xd9070);\n  pcVar32 = *(code **)(pcVar4 + 0xda670);\n  *piVar28 = iVar3;\n  iVar3 = (*pcVar32)();\n  iVar11 = *piVar28;\n  *piVar31 = iVar3;\n  if (iVar3 == iVar11) {\nLAB_0006c138:\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    *piVar23 = 1;\nLAB_0006c144:\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\nLAB_0006c148:\n    iVar11 = (*pcVar32)(*piVar22);\n    if ((iVar11 == -1) || (*piVar31 != iVar11)) {\n      if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);\n      sys_error(uVar19,iVar11);\n      *piVar23 = 0;\n      goto LAB_0006c230;\n    }\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n    if (*piVar23 != 0) {\n      iVar3 = *piVar25;\n      goto LAB_0006bff4;\n    }\n  }\n  else {\n    iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    iVar11 = *piVar31;\n    iVar3 = *piVar28;\n    *piVar23 = 1;\n    if (iVar11 == iVar3) goto LAB_0006c144;\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\n    if (*piVar25 == iVar11) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar11,0);\n    if (iVar3 < 0) {\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }\n    else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n  }\n  uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,iVar3 + 0x7e94,5);\n  internal_error(uVar19);\n  iVar3 = *piVar25;\n  iVar11 = *piVar31;\nLAB_0006bff4:\n  pcVar32 = *(code **)(pcVar4 + 0xda58c);\n  uVar19 = *puVar13;\n  **(uint **)(pcVar4 + 0xd8954) = (uint)(iVar11 != iVar3);\n  iVar3 = (*pcVar32)(uVar19);\n  if (iVar3 != *piVar22) {\n    (**(code **)(pcVar4 + 0xda540))(*piVar22,2,1);\n  }\n  (**(code **)(pcVar4 + 0xd8aac))(0x12,*(int *)(pcVar4 + 0xd942c) + -0x6fbc);\n  uVar19 = 0x2b;\n  if (*piVar23 != 0) {\n    uVar19 = 0x2d;\n  }\n  change_flag(0x6d,uVar19);\n  if (*piVar29 != 0) {\n    get_tty_state();\n  }\n  piVar31 = *(int **)(pcVar4 + 0xd90bc);\n  if (-1 < *piVar31) {\n    return (undefined1 *)*piVar23;\n  }\n  iVar3 = (**(code **)(pcVar4 + 0xd93d8))();\n  if (iVar3 < 0) {\n    iVar3 = 0x20;\n  }\n  *piVar31 = iVar3;\n  return (undefined1 *)*piVar23;\nLAB_0006b3b8:\n  puVar6 = (undefined1 *)job_exit_status(piVar31);\n  if (((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0)) {\n    FUN_00066b6c(piVar31,0);\n  }\n  (**(code **)(puStack_2a0 + -0x737c))();\n  (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n  goto LAB_0006b430;\n}\n\n" (function_definition "undefined1 * wait_for_job(int param_1,uint param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  code *pcVar4;\n  undefined1 *puVar5;\n  undefined1 *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  undefined4 uVar14;\n  int iVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int iVar18;\n  undefined4 uVar19;\n  undefined1 *puVar20;\n  undefined4 *puVar21;\n  int *piVar22;\n  int *piVar23;\n  undefined4 *puVar24;\n  int *piVar25;\n  int iVar26;\n  undefined4 *puVar27;\n  int *piVar28;\n  int *piVar29;\n  undefined *puVar30;\n  int *piVar31;\n  code *pcVar32;\n  undefined4 uStack_3e4;\n  undefined1 auStack_3dc [128];\n  undefined1 auStack_35c [128];\n  int iStack_2dc;\n  undefined1 *puStack_2d8;\n  undefined1 *puStack_2d4;\n  undefined1 *puStack_2d0;\n  int *piStack_2cc;\n  int *piStack_2c8;\n  undefined4 *puStack_2c4;\n  int *piStack_2c0;\n  int iStack_2bc;\n  int *piStack_2b8;\n  code *pcStack_2b4;\n  undefined *puStack_2a0;\n  code *pcStack_294;\n  undefined1 auStack_28c [128];\n  undefined1 auStack_20c [128];\n  int *piStack_18c;\n  undefined1 *puStack_188;\n  undefined1 *puStack_184;\n  undefined1 *puStack_180;\n  undefined4 uStack_17c;\n  int *piStack_178;\n  int iStack_174;\n  int *piStack_170;\n  int *piStack_16c;\n  undefined *puStack_168;\n  code *pcStack_164;\n  undefined1 auStack_12c [128];\n  undefined1 auStack_ac [128];\n  int local_2c;\n  \n  puVar30 = PTR___stack_chk_guard_001464dc;\n  piVar31 = (int *)PTR_jobs_00144e5c;\n  puVar20 = auStack_12c;\n  piVar29 = (int *)(param_1 * 4);\n  local_2c = *(int *)PTR___stack_chk_guard_001464dc;\n  (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n  (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n  (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n  if (*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc) == 2) {\n    uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);\n    internal_warning(uVar19,param_1 + 1);\n  }\n  puVar2 = PTR_js_00144e58;\n  puVar1 = PTR_wait_for_00144d9c;\n  piVar23 = (int *)0xffffffff;\n  piVar25 = (int *)(param_2 & 2);\n  iVar3 = FUN_00065a6c(param_1);\n  piVar28 = *(int **)(iVar3 + 4);\n  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n  pcVar4 = (code *)(PTR_LAB_00144ff0 + 0x4e60);\n  do {\n    puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28);\n    if (((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar4)();\n    }\n    if (piVar25 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      if (param_1 == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }\n    (*(code *)PTR_sigemptyset_001462d4)();\n    (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n    (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n    (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n    if (param_1 == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      goto LAB_0006b0f4;\n    }\n    if (*(int *)(*piVar31 + (int)piVar29) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      break;\n    }\n    iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc);\n    (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac);\n  } while (iVar3 != 4);\n  (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n  (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n  (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\nLAB_0006b0d0:\n  piVar29 = (int *)(*piVar31 + (int)piVar29);\n  iVar3 = *piVar29;\n  if ((iVar3 != 0) && (*(int *)(iVar3 + 0xc) == 4)) {\n    *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n  }\nLAB_0006b0f4:\n  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n  if (local_2c == *(int *)puVar30) {\n    return puVar5;\n  }\n  pcVar4 = wait_for_any_job;\n  puVar30 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  puStack_2a0 = puVar30 + 0xe1290;\n  iVar3 = *(int *)(puVar30 + 0xd9ea4);\n  puVar27 = *(undefined4 **)(puVar30 + 0xdb22c);\n  puStack_168 = (undefined *)piVar31;\n  uStack_17c = 0xffffffff;\n  piStack_18c = (int *)*puVar27;\n  puStack_188 = puVar20;\n  puStack_184 = auStack_ac;\n  puStack_180 = puVar5;\n  piStack_178 = piVar25;\n  iStack_174 = param_1;\n  piStack_170 = piVar28;\n  piStack_16c = piVar29;\n  pcStack_164 = pcVar4;\n  if (*(int *)(iVar3 + -0x705c) == 0) {\n    puVar6 = auStack_28c;\n    puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8);\n    puVar20 = auStack_20c;\n    (**(code **)(puVar30 + 0xdb024))(puVar6);\n    (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n    (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n    (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n    if (0 < (int)*(int **)(puVar5 + 0x18)) {\n      piVar31 = (int *)0x0;\n      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar29 = piVar17;\n      do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));\n    }\n    piVar25 = *(int **)(puStack_2a0 + -0x76e4);\n    piVar23 = *(int **)(puStack_2a0 + -0x7d0c);\n    (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    piVar31 = *(int **)(puStack_2a0 + -0x7550);\n    piVar28 = *(int **)(puStack_2a0 + -0x7d04);\n    pcStack_294 = (code *)(piVar31 + 0x1398);\n    do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      iVar11 = *(int *)(puVar5 + 0x18);\n      if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar4)(3,puVar20,0);\n      if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar31 = (int *)(*pcVar4)();\n      *piVar31 = 0;\n      iVar11 = wait_for(0xffffffff);\n      if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar4)(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    } while( true );\n  }\n  puVar6 = (undefined1 *)0xffffffff;\nLAB_0006b430:\n  puVar30 = puStack_2a0;\n  if (piStack_18c == (int *)*puVar27) {\n    return puVar6;\n  }\n  piVar29 = piStack_18c;\n  (**(code **)(puStack_2a0 + -0x60b8))();\nLAB_0006b730:\n  pcVar4 = *(code **)(puVar30 + -0x625c);\n  pcVar32 = start_job;\n  puVar13 = (undefined4 *)0x1;\n  (*pcVar4)();\n  piVar17 = *(int **)(pcVar4 + 0xdada0);\n  iVar11 = (int)piVar29 * 4;\n  iStack_2dc = *piVar17;\n  piVar22 = *(int **)(pcVar4 + 0xd9720);\n  puStack_2d8 = puVar20;\n  puStack_2d4 = puVar6;\n  puStack_2d0 = puVar5;\n  piStack_2cc = piVar23;\n  piStack_2c8 = piVar25;\n  puStack_2c4 = puVar27;\n  piStack_2c0 = piVar28;\n  iStack_2bc = iVar3;\n  piStack_2b8 = piVar31;\n  pcStack_2b4 = pcVar32;\n  (**(code **)(pcVar4 + 0xdab98))(auStack_3dc);\n  (**(code **)(pcVar4 + 0xdac28))(auStack_3dc,0x12);\n  (**(code **)(pcVar4 + 0xdab98))(auStack_35c);\n  (**(code **)(pcVar4 + 0xdadd8))(1,auStack_3dc,auStack_35c);\n  iVar3 = *(int *)(*(int *)(*piVar22 + iVar11) + 0xc);\n  if (iVar3 == 4) {\n    puVar20 = (undefined1 *)0xffffffff;\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec));\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);\nLAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }\n  if (iStack_2dc == *piVar17) {\n    return puVar20;\n  }\n  pcVar4 = *(code **)(pcVar4 + 0xdad4c);\n  iVar3 = iStack_2dc;\n  (*pcVar4)();\n  piVar31 = *(int **)(pcVar4 + 0xd8b10);\n  iVar11 = (**(code **)(pcVar4 + 0xda6dc))();\n  *piVar31 = iVar11;\n  if (iVar11 == -1) {\n    uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5);\n    sys_error(uVar19);\n    (**(code **)(pcVar4 + 0xda620))(1);\nLAB_0006c3c8:\n    uVar19 = *puVar13;\nLAB_0006be24:\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);\n    iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19);\n    *piVar22 = iVar3;\n    if (iVar3 != -1) goto LAB_0006bf80;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 == 0) goto LAB_0006bf08;\nLAB_0006be5c:\n    iVar3 = *piVar22;\n  }\n  else {\n    piVar29 = *(int **)(pcVar4 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);\n    uVar19 = *puVar13;\n    if (iVar3 == 0 && *piVar29 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar22 = *(int **)(pcVar4 + 0xd93fc);\n    iVar3 = **(int **)(pcVar4 + 0xd87e4);\n    *piVar22 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }\n    else {\n      iVar3 = *piVar22;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar22 = iVar3;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar32)();\n    pcVar32 = *(code **)(pcVar4 + 0xda4fc);\n    *piVar31 = iVar3;\n    (*pcVar32)(0,iVar3);\n    iVar3 = *piVar22;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }\n  }\n  iVar11 = 0x12;\n  piVar25 = *(int **)(pcVar4 + 0xd9434);\n  piVar23 = *(int **)(pcVar4 + 0xd8a98);\n  while( true ) {\n    iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3);\n    *piVar25 = iVar3;\n    if (iVar3 == -1) break;\n    if (*piVar31 == iVar3) {\n      iVar8 = -1;\n      goto LAB_0006c118;\n    }\n    pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    if (*piVar23 != 0) {\n      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);\n      pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    }\n    iVar11 = iVar11 + -1;\n    uVar19 = (*pcVar32)(0x1a,0);\n    (**(code **)(pcVar4 + 0xda61c))(0,0x1a);\n    (**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19);\n    if (iVar11 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);\n      sys_error(uVar19);\n      iVar3 = *piVar25;\n      iVar11 = *piVar31;\n      *piVar23 = 0;\n      **(int **)(pcVar4 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }\n    iVar3 = *piVar22;\n  }\n  piVar23 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n  iVar8 = *piVar23;\n  iVar3 = *piVar31;\nLAB_0006c118:\n  piVar28 = *(int **)(pcVar4 + 0xd9070);\n  pcVar32 = *(code **)(pcVar4 + 0xda670);\n  *piVar28 = iVar3;\n  iVar3 = (*pcVar32)();\n  iVar11 = *piVar28;\n  *piVar31 = iVar3;\n  if (iVar3 == iVar11) {\nLAB_0006c138:\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    *piVar23 = 1;\nLAB_0006c144:\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\nLAB_0006c148:\n    iVar11 = (*pcVar32)(*piVar22);\n    if ((iVar11 == -1) || (*piVar31 != iVar11)) {\n      if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);\n      sys_error(uVar19,iVar11);\n      *piVar23 = 0;\n      goto LAB_0006c230;\n    }\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n    if (*piVar23 != 0) {\n      iVar3 = *piVar25;\n      goto LAB_0006bff4;\n    }\n  }\n  else {\n    iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    iVar11 = *piVar31;\n    iVar3 = *piVar28;\n    *piVar23 = 1;\n    if (iVar11 == iVar3) goto LAB_0006c144;\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\n    if (*piVar25 == iVar11) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar11,0);\n    if (iVar3 < 0) {\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }\n    else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n  }\n  uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,iVar3 + 0x7e94,5);\n  internal_error(uVar19);\n  iVar3 = *piVar25;\n  iVar11 = *piVar31;\nLAB_0006bff4:\n  pcVar32 = *(code **)(pcVar4 + 0xda58c);\n  uVar19 = *puVar13;\n  **(uint **)(pcVar4 + 0xd8954) = (uint)(iVar11 != iVar3);\n  iVar3 = (*pcVar32)(uVar19);\n  if (iVar3 != *piVar22) {\n    (**(code **)(pcVar4 + 0xda540))(*piVar22,2,1);\n  }\n  (**(code **)(pcVar4 + 0xd8aac))(0x12,*(int *)(pcVar4 + 0xd942c) + -0x6fbc);\n  uVar19 = 0x2b;\n  if (*piVar23 != 0) {\n    uVar19 = 0x2d;\n  }\n  change_flag(0x6d,uVar19);\n  if (*piVar29 != 0) {\n    get_tty_state();\n  }\n  piVar31 = *(int **)(pcVar4 + 0xd90bc);\n  if (-1 < *piVar31) {\n    return (undefined1 *)*piVar23;\n  }\n  iVar3 = (**(code **)(pcVar4 + 0xd93d8))();\n  if (iVar3 < 0) {\n    iVar3 = 0x20;\n  }\n  *piVar31 = iVar3;\n  return (undefined1 *)*piVar23;\nLAB_0006b3b8:\n  puVar6 = (undefined1 *)job_exit_status(piVar31);\n  if (((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0)) {\n    FUN_00066b6c(piVar31,0);\n  }\n  (**(code **)(puStack_2a0 + -0x737c))();\n  (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n  goto LAB_0006b430;\n}" type_identifier (pointer_declarator "* wait_for_job(int param_1,uint param_2)" * (function_declarator "wait_for_job(int param_1,uint param_2)" identifier (parameter_list "(int param_1,uint param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  code *pcVar4;\n  undefined1 *puVar5;\n  undefined1 *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  undefined4 uVar14;\n  int iVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int iVar18;\n  undefined4 uVar19;\n  undefined1 *puVar20;\n  undefined4 *puVar21;\n  int *piVar22;\n  int *piVar23;\n  undefined4 *puVar24;\n  int *piVar25;\n  int iVar26;\n  undefined4 *puVar27;\n  int *piVar28;\n  int *piVar29;\n  undefined *puVar30;\n  int *piVar31;\n  code *pcVar32;\n  undefined4 uStack_3e4;\n  undefined1 auStack_3dc [128];\n  undefined1 auStack_35c [128];\n  int iStack_2dc;\n  undefined1 *puStack_2d8;\n  undefined1 *puStack_2d4;\n  undefined1 *puStack_2d0;\n  int *piStack_2cc;\n  int *piStack_2c8;\n  undefined4 *puStack_2c4;\n  int *piStack_2c0;\n  int iStack_2bc;\n  int *piStack_2b8;\n  code *pcStack_2b4;\n  undefined *puStack_2a0;\n  code *pcStack_294;\n  undefined1 auStack_28c [128];\n  undefined1 auStack_20c [128];\n  int *piStack_18c;\n  undefined1 *puStack_188;\n  undefined1 *puStack_184;\n  undefined1 *puStack_180;\n  undefined4 uStack_17c;\n  int *piStack_178;\n  int iStack_174;\n  int *piStack_170;\n  int *piStack_16c;\n  undefined *puStack_168;\n  code *pcStack_164;\n  undefined1 auStack_12c [128];\n  undefined1 auStack_ac [128];\n  int local_2c;\n  \n  puVar30 = PTR___stack_chk_guard_001464dc;\n  piVar31 = (int *)PTR_jobs_00144e5c;\n  puVar20 = auStack_12c;\n  piVar29 = (int *)(param_1 * 4);\n  local_2c = *(int *)PTR___stack_chk_guard_001464dc;\n  (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n  (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n  (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n  if (*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc) == 2) {\n    uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);\n    internal_warning(uVar19,param_1 + 1);\n  }\n  puVar2 = PTR_js_00144e58;\n  puVar1 = PTR_wait_for_00144d9c;\n  piVar23 = (int *)0xffffffff;\n  piVar25 = (int *)(param_2 & 2);\n  iVar3 = FUN_00065a6c(param_1);\n  piVar28 = *(int **)(iVar3 + 4);\n  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n  pcVar4 = (code *)(PTR_LAB_00144ff0 + 0x4e60);\n  do {\n    puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28);\n    if (((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar4)();\n    }\n    if (piVar25 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      if (param_1 == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }\n    (*(code *)PTR_sigemptyset_001462d4)();\n    (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n    (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n    (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n    if (param_1 == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      goto LAB_0006b0f4;\n    }\n    if (*(int *)(*piVar31 + (int)piVar29) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      break;\n    }\n    iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc);\n    (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac);\n  } while (iVar3 != 4);\n  (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n  (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n  (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\nLAB_0006b0d0:\n  piVar29 = (int *)(*piVar31 + (int)piVar29);\n  iVar3 = *piVar29;\n  if ((iVar3 != 0) && (*(int *)(iVar3 + 0xc) == 4)) {\n    *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n  }\nLAB_0006b0f4:\n  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n  if (local_2c == *(int *)puVar30) {\n    return puVar5;\n  }\n  pcVar4 = wait_for_any_job;\n  puVar30 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  puStack_2a0 = puVar30 + 0xe1290;\n  iVar3 = *(int *)(puVar30 + 0xd9ea4);\n  puVar27 = *(undefined4 **)(puVar30 + 0xdb22c);\n  puStack_168 = (undefined *)piVar31;\n  uStack_17c = 0xffffffff;\n  piStack_18c = (int *)*puVar27;\n  puStack_188 = puVar20;\n  puStack_184 = auStack_ac;\n  puStack_180 = puVar5;\n  piStack_178 = piVar25;\n  iStack_174 = param_1;\n  piStack_170 = piVar28;\n  piStack_16c = piVar29;\n  pcStack_164 = pcVar4;\n  if (*(int *)(iVar3 + -0x705c) == 0) {\n    puVar6 = auStack_28c;\n    puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8);\n    puVar20 = auStack_20c;\n    (**(code **)(puVar30 + 0xdb024))(puVar6);\n    (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n    (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n    (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n    if (0 < (int)*(int **)(puVar5 + 0x18)) {\n      piVar31 = (int *)0x0;\n      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar29 = piVar17;\n      do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));\n    }\n    piVar25 = *(int **)(puStack_2a0 + -0x76e4);\n    piVar23 = *(int **)(puStack_2a0 + -0x7d0c);\n    (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    piVar31 = *(int **)(puStack_2a0 + -0x7550);\n    piVar28 = *(int **)(puStack_2a0 + -0x7d04);\n    pcStack_294 = (code *)(piVar31 + 0x1398);\n    do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      iVar11 = *(int *)(puVar5 + 0x18);\n      if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar4)(3,puVar20,0);\n      if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar31 = (int *)(*pcVar4)();\n      *piVar31 = 0;\n      iVar11 = wait_for(0xffffffff);\n      if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar4)(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    } while( true );\n  }\n  puVar6 = (undefined1 *)0xffffffff;\nLAB_0006b430:\n  puVar30 = puStack_2a0;\n  if (piStack_18c == (int *)*puVar27) {\n    return puVar6;\n  }\n  piVar29 = piStack_18c;\n  (**(code **)(puStack_2a0 + -0x60b8))();\nLAB_0006b730:\n  pcVar4 = *(code **)(puVar30 + -0x625c);\n  pcVar32 = start_job;\n  puVar13 = (undefined4 *)0x1;\n  (*pcVar4)();\n  piVar17 = *(int **)(pcVar4 + 0xdada0);\n  iVar11 = (int)piVar29 * 4;\n  iStack_2dc = *piVar17;\n  piVar22 = *(int **)(pcVar4 + 0xd9720);\n  puStack_2d8 = puVar20;\n  puStack_2d4 = puVar6;\n  puStack_2d0 = puVar5;\n  piStack_2cc = piVar23;\n  piStack_2c8 = piVar25;\n  puStack_2c4 = puVar27;\n  piStack_2c0 = piVar28;\n  iStack_2bc = iVar3;\n  piStack_2b8 = piVar31;\n  pcStack_2b4 = pcVar32;\n  (**(code **)(pcVar4 + 0xdab98))(auStack_3dc);\n  (**(code **)(pcVar4 + 0xdac28))(auStack_3dc,0x12);\n  (**(code **)(pcVar4 + 0xdab98))(auStack_35c);\n  (**(code **)(pcVar4 + 0xdadd8))(1,auStack_3dc,auStack_35c);\n  iVar3 = *(int *)(*(int *)(*piVar22 + iVar11) + 0xc);\n  if (iVar3 == 4) {\n    puVar20 = (undefined1 *)0xffffffff;\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec));\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);\nLAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }\n  if (iStack_2dc == *piVar17) {\n    return puVar20;\n  }\n  pcVar4 = *(code **)(pcVar4 + 0xdad4c);\n  iVar3 = iStack_2dc;\n  (*pcVar4)();\n  piVar31 = *(int **)(pcVar4 + 0xd8b10);\n  iVar11 = (**(code **)(pcVar4 + 0xda6dc))();\n  *piVar31 = iVar11;\n  if (iVar11 == -1) {\n    uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5);\n    sys_error(uVar19);\n    (**(code **)(pcVar4 + 0xda620))(1);\nLAB_0006c3c8:\n    uVar19 = *puVar13;\nLAB_0006be24:\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);\n    iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19);\n    *piVar22 = iVar3;\n    if (iVar3 != -1) goto LAB_0006bf80;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 == 0) goto LAB_0006bf08;\nLAB_0006be5c:\n    iVar3 = *piVar22;\n  }\n  else {\n    piVar29 = *(int **)(pcVar4 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);\n    uVar19 = *puVar13;\n    if (iVar3 == 0 && *piVar29 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar22 = *(int **)(pcVar4 + 0xd93fc);\n    iVar3 = **(int **)(pcVar4 + 0xd87e4);\n    *piVar22 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }\n    else {\n      iVar3 = *piVar22;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar22 = iVar3;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar32)();\n    pcVar32 = *(code **)(pcVar4 + 0xda4fc);\n    *piVar31 = iVar3;\n    (*pcVar32)(0,iVar3);\n    iVar3 = *piVar22;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }\n  }\n  iVar11 = 0x12;\n  piVar25 = *(int **)(pcVar4 + 0xd9434);\n  piVar23 = *(int **)(pcVar4 + 0xd8a98);\n  while( true ) {\n    iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3);\n    *piVar25 = iVar3;\n    if (iVar3 == -1) break;\n    if (*piVar31 == iVar3) {\n      iVar8 = -1;\n      goto LAB_0006c118;\n    }\n    pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    if (*piVar23 != 0) {\n      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);\n      pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    }\n    iVar11 = iVar11 + -1;\n    uVar19 = (*pcVar32)(0x1a,0);\n    (**(code **)(pcVar4 + 0xda61c))(0,0x1a);\n    (**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19);\n    if (iVar11 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);\n      sys_error(uVar19);\n      iVar3 = *piVar25;\n      iVar11 = *piVar31;\n      *piVar23 = 0;\n      **(int **)(pcVar4 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }\n    iVar3 = *piVar22;\n  }\n  piVar23 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n  iVar8 = *piVar23;\n  iVar3 = *piVar31;\nLAB_0006c118:\n  piVar28 = *(int **)(pcVar4 + 0xd9070);\n  pcVar32 = *(code **)(pcVar4 + 0xda670);\n  *piVar28 = iVar3;\n  iVar3 = (*pcVar32)();\n  iVar11 = *piVar28;\n  *piVar31 = iVar3;\n  if (iVar3 == iVar11) {\nLAB_0006c138:\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    *piVar23 = 1;\nLAB_0006c144:\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\nLAB_0006c148:\n    iVar11 = (*pcVar32)(*piVar22);\n    if ((iVar11 == -1) || (*piVar31 != iVar11)) {\n      if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);\n      sys_error(uVar19,iVar11);\n      *piVar23 = 0;\n      goto LAB_0006c230;\n    }\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n    if (*piVar23 != 0) {\n      iVar3 = *piVar25;\n      goto LAB_0006bff4;\n    }\n  }\n  else {\n    iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    iVar11 = *piVar31;\n    iVar3 = *piVar28;\n    *piVar23 = 1;\n    if (iVar11 == iVar3) goto LAB_0006c144;\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\n    if (*piVar25 == iVar11) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar11,0);\n    if (iVar3 < 0) {\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }\n    else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n  }\n  uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,iVar3 + 0x7e94,5);\n  internal_error(uVar19);\n  iVar3 = *piVar25;\n  iVar11 = *piVar31;\nLAB_0006bff4:\n  pcVar32 = *(code **)(pcVar4 + 0xda58c);\n  uVar19 = *puVar13;\n  **(uint **)(pcVar4 + 0xd8954) = (uint)(iVar11 != iVar3);\n  iVar3 = (*pcVar32)(uVar19);\n  if (iVar3 != *piVar22) {\n    (**(code **)(pcVar4 + 0xda540))(*piVar22,2,1);\n  }\n  (**(code **)(pcVar4 + 0xd8aac))(0x12,*(int *)(pcVar4 + 0xd942c) + -0x6fbc);\n  uVar19 = 0x2b;\n  if (*piVar23 != 0) {\n    uVar19 = 0x2d;\n  }\n  change_flag(0x6d,uVar19);\n  if (*piVar29 != 0) {\n    get_tty_state();\n  }\n  piVar31 = *(int **)(pcVar4 + 0xd90bc);\n  if (-1 < *piVar31) {\n    return (undefined1 *)*piVar23;\n  }\n  iVar3 = (**(code **)(pcVar4 + 0xd93d8))();\n  if (iVar3 < 0) {\n    iVar3 = 0x20;\n  }\n  *piVar31 = iVar3;\n  return (undefined1 *)*piVar23;\nLAB_0006b3b8:\n  puVar6 = (undefined1 *)job_exit_status(piVar31);\n  if (((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0)) {\n    FUN_00066b6c(piVar31,0);\n  }\n  (**(code **)(puStack_2a0 + -0x737c))();\n  (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n  goto LAB_0006b430;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined4 uVar19;" type_identifier identifier ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "undefined4 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "int *piVar25;" primitive_type (pointer_declarator "*piVar25" * identifier) ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "undefined4 *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "int *piVar28;" primitive_type (pointer_declarator "*piVar28" * identifier) ;) (declaration "int *piVar29;" primitive_type (pointer_declarator "*piVar29" * identifier) ;) (declaration "undefined *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "int *piVar31;" primitive_type (pointer_declarator "*piVar31" * identifier) ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "undefined4 uStack_3e4;" type_identifier identifier ;) (declaration "undefined1 auStack_3dc [128];" type_identifier (array_declarator "auStack_3dc [128]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_35c [128];" type_identifier (array_declarator "auStack_35c [128]" identifier [ number_literal ]) ;) (declaration "int iStack_2dc;" primitive_type identifier ;) (declaration "undefined1 *puStack_2d8;" type_identifier (pointer_declarator "*puStack_2d8" * identifier) ;) (declaration "undefined1 *puStack_2d4;" type_identifier (pointer_declarator "*puStack_2d4" * identifier) ;) (declaration "undefined1 *puStack_2d0;" type_identifier (pointer_declarator "*puStack_2d0" * identifier) ;) (declaration "int *piStack_2cc;" primitive_type (pointer_declarator "*piStack_2cc" * identifier) ;) (declaration "int *piStack_2c8;" primitive_type (pointer_declarator "*piStack_2c8" * identifier) ;) (declaration "undefined4 *puStack_2c4;" type_identifier (pointer_declarator "*puStack_2c4" * identifier) ;) (declaration "int *piStack_2c0;" primitive_type (pointer_declarator "*piStack_2c0" * identifier) ;) (declaration "int iStack_2bc;" primitive_type identifier ;) (declaration "int *piStack_2b8;" primitive_type (pointer_declarator "*piStack_2b8" * identifier) ;) (declaration "code *pcStack_2b4;" type_identifier (pointer_declarator "*pcStack_2b4" * identifier) ;) (declaration "undefined *puStack_2a0;" type_identifier (pointer_declarator "*puStack_2a0" * identifier) ;) (declaration "code *pcStack_294;" type_identifier (pointer_declarator "*pcStack_294" * identifier) ;) (declaration "undefined1 auStack_28c [128];" type_identifier (array_declarator "auStack_28c [128]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_20c [128];" type_identifier (array_declarator "auStack_20c [128]" identifier [ number_literal ]) ;) (declaration "int *piStack_18c;" primitive_type (pointer_declarator "*piStack_18c" * identifier) ;) (declaration "undefined1 *puStack_188;" type_identifier (pointer_declarator "*puStack_188" * identifier) ;) (declaration "undefined1 *puStack_184;" type_identifier (pointer_declarator "*puStack_184" * identifier) ;) (declaration "undefined1 *puStack_180;" type_identifier (pointer_declarator "*puStack_180" * identifier) ;) (declaration "undefined4 uStack_17c;" type_identifier identifier ;) (declaration "int *piStack_178;" primitive_type (pointer_declarator "*piStack_178" * identifier) ;) (declaration "int iStack_174;" primitive_type identifier ;) (declaration "int *piStack_170;" primitive_type (pointer_declarator "*piStack_170" * identifier) ;) (declaration "int *piStack_16c;" primitive_type (pointer_declarator "*piStack_16c" * identifier) ;) (declaration "undefined *puStack_168;" type_identifier (pointer_declarator "*puStack_168" * identifier) ;) (declaration "code *pcStack_164;" type_identifier (pointer_declarator "*pcStack_164" * identifier) ;) (declaration "undefined1 auStack_12c [128];" type_identifier (array_declarator "auStack_12c [128]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_ac [128];" type_identifier (array_declarator "auStack_ac [128]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar30 = PTR___stack_chk_guard_001464dc;" (assignment_expression "puVar30 = PTR___stack_chk_guard_001464dc" identifier = identifier) ;) (expression_statement "piVar31 = (int *)PTR_jobs_00144e5c;" (assignment_expression "piVar31 = (int *)PTR_jobs_00144e5c" identifier = (cast_expression "(int *)PTR_jobs_00144e5c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar20 = auStack_12c;" (assignment_expression "puVar20 = auStack_12c" identifier = identifier) ;) (expression_statement "piVar29 = (int *)(param_1 * 4);" (assignment_expression "piVar29 = (int *)(param_1 * 4)" identifier = (cast_expression "(int *)(param_1 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 * 4)" ( (binary_expression "param_1 * 4" identifier * number_literal) )))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_001464dc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_001464dc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_001464dc" * (cast_expression "(int *)PTR___stack_chk_guard_001464dc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(puVar20);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(puVar20)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12);" (call_expression "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00146364)" ( (pointer_expression "*(code *)PTR_sigaddset_00146364" * (cast_expression "(code *)PTR_sigaddset_00146364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_ac)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,puVar20,auStack_ac)" ( number_literal , identifier , identifier ))) ;) (if_statement "if (*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc) == 2) {\n    uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);\n    internal_warning(uVar19,param_1 + 1);\n  }" if (parenthesized_expression "(*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc) == 2)" ( (binary_expression "*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc) == 2" (pointer_expression "*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc)" * (cast_expression "(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar31 + (int)piVar29) + 0xc)" ( (binary_expression "*(int *)(*piVar31 + (int)piVar29) + 0xc" (pointer_expression "*(int *)(*piVar31 + (int)piVar29)" * (cast_expression "(int *)(*piVar31 + (int)piVar29)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar31 + (int)piVar29)" ( (binary_expression "*piVar31 + (int)piVar29" (pointer_expression "*piVar31" * identifier) + (cast_expression "(int)piVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);\n    internal_warning(uVar19,param_1 + 1);\n  }" { (expression_statement "uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);" (assignment_expression "uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00146498)" ( (pointer_expression "*(code *)PTR_dcgettext_00146498" * (cast_expression "(code *)PTR_dcgettext_00146498" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_00144578 + 0x7d78,5)" ( number_literal , (binary_expression "PTR_LAB_00144578 + 0x7d78" identifier + number_literal) , number_literal )))) ;) (expression_statement "internal_warning(uVar19,param_1 + 1);" (call_expression "internal_warning(uVar19,param_1 + 1)" identifier (argument_list "(uVar19,param_1 + 1)" ( identifier , (binary_expression "param_1 + 1" identifier + number_literal) ))) ;) })) (expression_statement "puVar2 = PTR_js_00144e58;" (assignment_expression "puVar2 = PTR_js_00144e58" identifier = identifier) ;) (expression_statement "puVar1 = PTR_wait_for_00144d9c;" (assignment_expression "puVar1 = PTR_wait_for_00144d9c" identifier = identifier) ;) (expression_statement "piVar23 = (int *)0xffffffff;" (assignment_expression "piVar23 = (int *)0xffffffff" identifier = (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar25 = (int *)(param_2 & 2);" (assignment_expression "piVar25 = (int *)(param_2 & 2)" identifier = (cast_expression "(int *)(param_2 & 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 & 2)" ( (binary_expression "param_2 & 2" identifier & number_literal) )))) ;) (expression_statement "iVar3 = FUN_00065a6c(param_1);" (assignment_expression "iVar3 = FUN_00065a6c(param_1)" identifier = (call_expression "FUN_00065a6c(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "piVar28 = *(int **)(iVar3 + 4);" (assignment_expression "piVar28 = *(int **)(iVar3 + 4)" identifier = (pointer_expression "*(int **)(iVar3 + 4)" * (cast_expression "(int **)(iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,auStack_ac,0)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "pcVar4 = (code *)(PTR_LAB_00144ff0 + 0x4e60);" (assignment_expression "pcVar4 = (code *)(PTR_LAB_00144ff0 + 0x4e60)" identifier = (cast_expression "(code *)(PTR_LAB_00144ff0 + 0x4e60)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00144ff0 + 0x4e60)" ( (binary_expression "PTR_LAB_00144ff0 + 0x4e60" identifier + number_literal) )))) ;) (do_statement "do {\n    puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28);\n    if (((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar4)();\n    }\n    if (piVar25 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      if (param_1 == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }\n    (*(code *)PTR_sigemptyset_001462d4)();\n    (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n    (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n    (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n    if (param_1 == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      goto LAB_0006b0f4;\n    }\n    if (*(int *)(*piVar31 + (int)piVar29) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      break;\n    }\n    iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc);\n    (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac);\n  } while (iVar3 != 4);" do (compound_statement "{\n    puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28);\n    if (((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar4)();\n    }\n    if (piVar25 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      if (param_1 == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }\n    (*(code *)PTR_sigemptyset_001462d4)();\n    (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n    (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n    (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n    if (param_1 == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      goto LAB_0006b0f4;\n    }\n    if (*(int *)(*piVar31 + (int)piVar29) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      break;\n    }\n    iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc);\n    (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac);\n  }" { (expression_statement "puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28);" (assignment_expression "puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28)" identifier = (cast_expression "(undefined1 *)(*(code *)puVar1)(piVar28)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar1)(piVar28)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar28)" ( identifier ))))) ;) (if_statement "if (((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar4)();\n    }" if (parenthesized_expression "(((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0))" ( (binary_expression "((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)" (parenthesized_expression "((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10))" ( (binary_expression "(puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)" (parenthesized_expression "(puVar5 == (undefined1 *)0xffffffff)" ( (binary_expression "puVar5 == (undefined1 *)0xffffffff" identifier == (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)" ( (comma_expression "piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10" (assignment_expression "piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0014633c)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0014633c)()" (parenthesized_expression "(*(code *)PTR___errno_location_0014633c)" ( (pointer_expression "*(code *)PTR___errno_location_0014633c" * (cast_expression "(code *)PTR___errno_location_0014633c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) , (binary_expression "*piVar17 == 10" (pointer_expression "*piVar17" * identifier) == number_literal)) ))) )) && (parenthesized_expression "(*(int *)(puVar2 + 0x18) != 0)" ( (binary_expression "*(int *)(puVar2 + 0x18) != 0" (pointer_expression "*(int *)(puVar2 + 0x18)" * (cast_expression "(int *)(puVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x18)" ( (binary_expression "puVar2 + 0x18" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n      (*pcVar4)();\n    }" { (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( ))) ;) })) (if_statement "if (piVar25 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      if (param_1 == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }" if (parenthesized_expression "(piVar25 == (int *)0x0)" ( (binary_expression "piVar25 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      if (param_1 == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }" { (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(puVar20);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(puVar20)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12);" (call_expression "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00146364)" ( (pointer_expression "*(code *)PTR_sigaddset_00146364" * (cast_expression "(code *)PTR_sigaddset_00146364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_ac)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,puVar20,auStack_ac)" ( number_literal , identifier , identifier ))) ;) (if_statement "if (param_1 == -1) goto LAB_0006b0f4;" if (parenthesized_expression "(param_1 == -1)" ( (binary_expression "param_1 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0006b0f4;" goto statement_identifier ;)) (goto_statement "goto LAB_0006b0d0;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)();" (call_expression "(*(code *)PTR_sigemptyset_001462d4)()" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12);" (call_expression "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00146364)" ( (pointer_expression "*(code *)PTR_sigaddset_00146364" * (cast_expression "(code *)PTR_sigaddset_00146364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_ac)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,puVar20,auStack_ac)" ( number_literal , identifier , identifier ))) ;) (if_statement "if (param_1 == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      goto LAB_0006b0f4;\n    }" if (parenthesized_expression "(param_1 == -1)" ( (binary_expression "param_1 == -1" identifier == number_literal) )) (compound_statement "{\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      goto LAB_0006b0f4;\n    }" { (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,auStack_ac,0)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(puVar20);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(puVar20)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12);" (call_expression "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00146364)" ( (pointer_expression "*(code *)PTR_sigaddset_00146364" * (cast_expression "(code *)PTR_sigaddset_00146364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_ac)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,puVar20,auStack_ac)" ( number_literal , identifier , identifier ))) ;) (goto_statement "goto LAB_0006b0f4;" goto statement_identifier ;) })) (if_statement "if (*(int *)(*piVar31 + (int)piVar29) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      break;\n    }" if (parenthesized_expression "(*(int *)(*piVar31 + (int)piVar29) == 0)" ( (binary_expression "*(int *)(*piVar31 + (int)piVar29) == 0" (pointer_expression "*(int *)(*piVar31 + (int)piVar29)" * (cast_expression "(int *)(*piVar31 + (int)piVar29)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar31 + (int)piVar29)" ( (binary_expression "*piVar31 + (int)piVar29" (pointer_expression "*piVar31" * identifier) + (cast_expression "(int)piVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == number_literal) )) (compound_statement "{\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      break;\n    }" { (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,auStack_ac,0)" ( number_literal , identifier , number_literal ))) ;) (break_statement "break;" break ;) })) (expression_statement "iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc);" (assignment_expression "iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc)" identifier = (pointer_expression "*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc)" * (cast_expression "(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar31 + (int)piVar29) + 0xc)" ( (binary_expression "*(int *)(*piVar31 + (int)piVar29) + 0xc" (pointer_expression "*(int *)(*piVar31 + (int)piVar29)" * (cast_expression "(int *)(*piVar31 + (int)piVar29)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar31 + (int)piVar29)" ( (binary_expression "*piVar31 + (int)piVar29" (pointer_expression "*piVar31" * identifier) + (cast_expression "(int)piVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )))) + number_literal) ))))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,auStack_ac)" ( number_literal , identifier ))) ;) }) while (parenthesized_expression "(iVar3 != 4)" ( (binary_expression "iVar3 != 4" identifier != number_literal) )) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(puVar20);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(puVar20)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12);" (call_expression "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00146364)" ( (pointer_expression "*(code *)PTR_sigaddset_00146364" * (cast_expression "(code *)PTR_sigaddset_00146364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_ac)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,puVar20,auStack_ac)" ( number_literal , identifier , identifier ))) ;) (labeled_statement "LAB_0006b0d0:\n  piVar29 = (int *)(*piVar31 + (int)piVar29);" statement_identifier : (expression_statement "piVar29 = (int *)(*piVar31 + (int)piVar29);" (assignment_expression "piVar29 = (int *)(*piVar31 + (int)piVar29)" identifier = (cast_expression "(int *)(*piVar31 + (int)piVar29)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar31 + (int)piVar29)" ( (binary_expression "*piVar31 + (int)piVar29" (pointer_expression "*piVar31" * identifier) + (cast_expression "(int)piVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "iVar3 = *piVar29;" (assignment_expression "iVar3 = *piVar29" identifier = (pointer_expression "*piVar29" * identifier)) ;) (if_statement "if ((iVar3 != 0) && (*(int *)(iVar3 + 0xc) == 4)) {\n    *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n  }" if (parenthesized_expression "((iVar3 != 0) && (*(int *)(iVar3 + 0xc) == 4))" ( (binary_expression "(iVar3 != 0) && (*(int *)(iVar3 + 0xc) == 4)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(iVar3 + 0xc) == 4)" ( (binary_expression "*(int *)(iVar3 + 0xc) == 4" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n  }" { (expression_statement "*(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;" (assignment_expression "*(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2" (pointer_expression "*(uint *)(iVar3 + 0x10)" * (cast_expression "(uint *)(iVar3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar3 + 0x10) | 2" (pointer_expression "*(uint *)(iVar3 + 0x10)" * (cast_expression "(uint *)(iVar3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) | number_literal)) ;) })) (labeled_statement "LAB_0006b0f4:\n  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);" statement_identifier : (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,auStack_ac,0)" ( number_literal , identifier , number_literal ))) ;)) (if_statement "if (local_2c == *(int *)puVar30) {\n    return puVar5;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar30)" ( (binary_expression "local_2c == *(int *)puVar30" identifier == (pointer_expression "*(int *)puVar30" * (cast_expression "(int *)puVar30" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return puVar5;\n  }" { (return_statement "return puVar5;" return identifier ;) })) (expression_statement "pcVar4 = wait_for_any_job;" (assignment_expression "pcVar4 = wait_for_any_job" identifier = identifier) ;) (expression_statement "puVar30 = PTR___stack_chk_fail_00146488;" (assignment_expression "puVar30 = PTR___stack_chk_fail_00146488" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00146488)();" (call_expression "(*(code *)PTR___stack_chk_fail_00146488)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00146488)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00146488" * (cast_expression "(code *)PTR___stack_chk_fail_00146488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_2a0 = puVar30 + 0xe1290;" (assignment_expression "puStack_2a0 = puVar30 + 0xe1290" identifier = (binary_expression "puVar30 + 0xe1290" identifier + number_literal)) ;) (expression_statement "iVar3 = *(int *)(puVar30 + 0xd9ea4);" (assignment_expression "iVar3 = *(int *)(puVar30 + 0xd9ea4)" identifier = (pointer_expression "*(int *)(puVar30 + 0xd9ea4)" * (cast_expression "(int *)(puVar30 + 0xd9ea4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0xd9ea4)" ( (binary_expression "puVar30 + 0xd9ea4" identifier + number_literal) ))))) ;) (expression_statement "puVar27 = *(undefined4 **)(puVar30 + 0xdb22c);" (assignment_expression "puVar27 = *(undefined4 **)(puVar30 + 0xdb22c)" identifier = (pointer_expression "*(undefined4 **)(puVar30 + 0xdb22c)" * (cast_expression "(undefined4 **)(puVar30 + 0xdb22c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0xdb22c)" ( (binary_expression "puVar30 + 0xdb22c" identifier + number_literal) ))))) ;) (expression_statement "puStack_168 = (undefined *)piVar31;" (assignment_expression "puStack_168 = (undefined *)piVar31" identifier = (cast_expression "(undefined *)piVar31" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uStack_17c = 0xffffffff;" (assignment_expression "uStack_17c = 0xffffffff" identifier = number_literal) ;) (expression_statement "piStack_18c = (int *)*puVar27;" (assignment_expression "piStack_18c = (int *)*puVar27" identifier = (cast_expression "(int *)*puVar27" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar27" * identifier))) ;) (expression_statement "puStack_188 = puVar20;" (assignment_expression "puStack_188 = puVar20" identifier = identifier) ;) (expression_statement "puStack_184 = auStack_ac;" (assignment_expression "puStack_184 = auStack_ac" identifier = identifier) ;) (expression_statement "puStack_180 = puVar5;" (assignment_expression "puStack_180 = puVar5" identifier = identifier) ;) (expression_statement "piStack_178 = piVar25;" (assignment_expression "piStack_178 = piVar25" identifier = identifier) ;) (expression_statement "iStack_174 = param_1;" (assignment_expression "iStack_174 = param_1" identifier = identifier) ;) (expression_statement "piStack_170 = piVar28;" (assignment_expression "piStack_170 = piVar28" identifier = identifier) ;) (expression_statement "piStack_16c = piVar29;" (assignment_expression "piStack_16c = piVar29" identifier = identifier) ;) (expression_statement "pcStack_164 = pcVar4;" (assignment_expression "pcStack_164 = pcVar4" identifier = identifier) ;) (if_statement "if (*(int *)(iVar3 + -0x705c) == 0) {\n    puVar6 = auStack_28c;\n    puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8);\n    puVar20 = auStack_20c;\n    (**(code **)(puVar30 + 0xdb024))(puVar6);\n    (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n    (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n    (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n    if (0 < (int)*(int **)(puVar5 + 0x18)) {\n      piVar31 = (int *)0x0;\n      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar29 = piVar17;\n      do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));\n    }\n    piVar25 = *(int **)(puStack_2a0 + -0x76e4);\n    piVar23 = *(int **)(puStack_2a0 + -0x7d0c);\n    (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    piVar31 = *(int **)(puStack_2a0 + -0x7550);\n    piVar28 = *(int **)(puStack_2a0 + -0x7d04);\n    pcStack_294 = (code *)(piVar31 + 0x1398);\n    do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      iVar11 = *(int *)(puVar5 + 0x18);\n      if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar4)(3,puVar20,0);\n      if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar31 = (int *)(*pcVar4)();\n      *piVar31 = 0;\n      iVar11 = wait_for(0xffffffff);\n      if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar4)(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    } while( true );\n  }" if (parenthesized_expression "(*(int *)(iVar3 + -0x705c) == 0)" ( (binary_expression "*(int *)(iVar3 + -0x705c) == 0" (pointer_expression "*(int *)(iVar3 + -0x705c)" * (cast_expression "(int *)(iVar3 + -0x705c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -0x705c)" ( (binary_expression "iVar3 + -0x705c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    puVar6 = auStack_28c;\n    puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8);\n    puVar20 = auStack_20c;\n    (**(code **)(puVar30 + 0xdb024))(puVar6);\n    (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n    (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n    (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n    if (0 < (int)*(int **)(puVar5 + 0x18)) {\n      piVar31 = (int *)0x0;\n      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar29 = piVar17;\n      do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));\n    }\n    piVar25 = *(int **)(puStack_2a0 + -0x76e4);\n    piVar23 = *(int **)(puStack_2a0 + -0x7d0c);\n    (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    piVar31 = *(int **)(puStack_2a0 + -0x7550);\n    piVar28 = *(int **)(puStack_2a0 + -0x7d04);\n    pcStack_294 = (code *)(piVar31 + 0x1398);\n    do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      iVar11 = *(int *)(puVar5 + 0x18);\n      if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar4)(3,puVar20,0);\n      if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar31 = (int *)(*pcVar4)();\n      *piVar31 = 0;\n      iVar11 = wait_for(0xffffffff);\n      if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar4)(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    } while( true );\n  }" { (expression_statement "puVar6 = auStack_28c;" (assignment_expression "puVar6 = auStack_28c" identifier = identifier) ;) (expression_statement "puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8);" (assignment_expression "puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8)" identifier = (pointer_expression "*(undefined1 **)(puVar30 + 0xd9ba8)" * (cast_expression "(undefined1 **)(puVar30 + 0xd9ba8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0xd9ba8)" ( (binary_expression "puVar30 + 0xd9ba8" identifier + number_literal) ))))) ;) (expression_statement "puVar20 = auStack_20c;" (assignment_expression "puVar20 = auStack_20c" identifier = identifier) ;) (expression_statement "(**(code **)(puVar30 + 0xdb024))(puVar6);" (call_expression "(**(code **)(puVar30 + 0xdb024))(puVar6)" (parenthesized_expression "(**(code **)(puVar30 + 0xdb024))" ( (pointer_expression "**(code **)(puVar30 + 0xdb024)" * (pointer_expression "*(code **)(puVar30 + 0xdb024)" * (cast_expression "(code **)(puVar30 + 0xdb024)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0xdb024)" ( (binary_expression "puVar30 + 0xdb024" identifier + number_literal) ))))) )) (argument_list "(puVar6)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);" (call_expression "(**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x61dc))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x61dc)" * (pointer_expression "*(code **)(puStack_2a0 + -0x61dc)" * (cast_expression "(code **)(puStack_2a0 + -0x61dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x61dc)" ( (binary_expression "puStack_2a0 + -0x61dc" identifier + number_literal) ))))) )) (argument_list "(puVar6,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x626c))(puVar20);" (call_expression "(**(code **)(puStack_2a0 + -0x626c))(puVar20)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x626c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x626c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" * (cast_expression "(code **)(puStack_2a0 + -0x626c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x626c)" ( (binary_expression "puStack_2a0 + -0x626c" identifier + number_literal) ))))) )) (argument_list "(puVar20)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(1,puVar6,puVar20)" ( number_literal , identifier , identifier ))) ;) (if_statement "if (0 < (int)*(int **)(puVar5 + 0x18)) {\n      piVar31 = (int *)0x0;\n      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar29 = piVar17;\n      do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));\n    }" if (parenthesized_expression "(0 < (int)*(int **)(puVar5 + 0x18))" ( (binary_expression "0 < (int)*(int **)(puVar5 + 0x18)" number_literal < (cast_expression "(int)*(int **)(puVar5 + 0x18)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(int **)(puVar5 + 0x18)" * (cast_expression "(int **)(puVar5 + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x18)" ( (binary_expression "puVar5 + 0x18" identifier + number_literal) )))))) )) (compound_statement "{\n      piVar31 = (int *)0x0;\n      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar29 = piVar17;\n      do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));\n    }" { (expression_statement "piVar31 = (int *)0x0;" (assignment_expression "piVar31 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);" (assignment_expression "piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4)" identifier = (cast_expression "(int *)**(int **)(puStack_2a0 + -0x76e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(puStack_2a0 + -0x76e4)" * (pointer_expression "*(int **)(puStack_2a0 + -0x76e4)" * (cast_expression "(int **)(puStack_2a0 + -0x76e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x76e4)" ( (binary_expression "puStack_2a0 + -0x76e4" identifier + number_literal) ))))))) ;) (expression_statement "piVar29 = piVar17;" (assignment_expression "piVar29 = piVar17" identifier = identifier) ;) (do_statement "do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));" do (compound_statement "{\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      }" { (expression_statement "iVar11 = *piVar29;" (assignment_expression "iVar11 = *piVar29" identifier = (pointer_expression "*piVar29" * identifier)) ;) (if_statement "if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;" if (parenthesized_expression "(((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0))" ( (binary_expression "((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)" (parenthesized_expression "((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4))" ( (binary_expression "(iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)" (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(iVar11 + 0xc) == 4)" ( (binary_expression "*(int *)(iVar11 + 0xc) == 4" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "((*(uint *)(iVar11 + 0x10) & 2) == 0)" ( (binary_expression "(*(uint *)(iVar11 + 0x10) & 2) == 0" (parenthesized_expression "(*(uint *)(iVar11 + 0x10) & 2)" ( (binary_expression "*(uint *)(iVar11 + 0x10) & 2" (pointer_expression "*(uint *)(iVar11 + 0x10)" * (cast_expression "(uint *)(iVar11 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_0006b3b8;" goto statement_identifier ;)) (expression_statement "piVar31 = (int *)((int)piVar31 + 1);" (assignment_expression "piVar31 = (int *)((int)piVar31 + 1)" identifier = (cast_expression "(int *)((int)piVar31 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar31 + 1)" ( (binary_expression "(int)piVar31 + 1" (cast_expression "(int)piVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar29 = piVar29 + 1;" (assignment_expression "piVar29 = piVar29 + 1" identifier = (binary_expression "piVar29 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar31 != *(int **)(puVar5 + 0x18))" ( (binary_expression "piVar31 != *(int **)(puVar5 + 0x18)" identifier != (pointer_expression "*(int **)(puVar5 + 0x18)" * (cast_expression "(int **)(puVar5 + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x18)" ( (binary_expression "puVar5 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "piVar25 = *(int **)(puStack_2a0 + -0x76e4);" (assignment_expression "piVar25 = *(int **)(puStack_2a0 + -0x76e4)" identifier = (pointer_expression "*(int **)(puStack_2a0 + -0x76e4)" * (cast_expression "(int **)(puStack_2a0 + -0x76e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x76e4)" ( (binary_expression "puStack_2a0 + -0x76e4" identifier + number_literal) ))))) ;) (expression_statement "piVar23 = *(int **)(puStack_2a0 + -0x7d0c);" (assignment_expression "piVar23 = *(int **)(puStack_2a0 + -0x7d0c)" identifier = (pointer_expression "*(int **)(puStack_2a0 + -0x7d0c)" * (cast_expression "(int **)(puStack_2a0 + -0x7d0c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7d0c)" ( (binary_expression "puStack_2a0 + -0x7d0c" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(3,puVar20,0)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "piVar31 = *(int **)(puStack_2a0 + -0x7550);" (assignment_expression "piVar31 = *(int **)(puStack_2a0 + -0x7550)" identifier = (pointer_expression "*(int **)(puStack_2a0 + -0x7550)" * (cast_expression "(int **)(puStack_2a0 + -0x7550)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7550)" ( (binary_expression "puStack_2a0 + -0x7550" identifier + number_literal) ))))) ;) (expression_statement "piVar28 = *(int **)(puStack_2a0 + -0x7d04);" (assignment_expression "piVar28 = *(int **)(puStack_2a0 + -0x7d04)" identifier = (pointer_expression "*(int **)(puStack_2a0 + -0x7d04)" * (cast_expression "(int **)(puStack_2a0 + -0x7d04)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7d04)" ( (binary_expression "puStack_2a0 + -0x7d04" identifier + number_literal) ))))) ;) (expression_statement "pcStack_294 = (code *)(piVar31 + 0x1398);" (assignment_expression "pcStack_294 = (code *)(piVar31 + 0x1398)" identifier = (cast_expression "(code *)(piVar31 + 0x1398)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar31 + 0x1398)" ( (binary_expression "piVar31 + 0x1398" identifier + number_literal) )))) ;) (do_statement "do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      iVar11 = *(int *)(puVar5 + 0x18);\n      if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar4)(3,puVar20,0);\n      if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar31 = (int *)(*pcVar4)();\n      *piVar31 = 0;\n      iVar11 = wait_for(0xffffffff);\n      if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar4)(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    } while( true );" do (compound_statement "{\n      (**(code **)(puStack_2a0 + -0x626c))(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      iVar11 = *(int *)(puVar5 + 0x18);\n      if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar4)(3,puVar20,0);\n      if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar31 = (int *)(*pcVar4)();\n      *piVar31 = 0;\n      iVar11 = wait_for(0xffffffff);\n      if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar4)(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    }" { (expression_statement "(**(code **)(puStack_2a0 + -0x626c))(puVar6);" (call_expression "(**(code **)(puStack_2a0 + -0x626c))(puVar6)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x626c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x626c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" * (cast_expression "(code **)(puStack_2a0 + -0x626c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x626c)" ( (binary_expression "puStack_2a0 + -0x626c" identifier + number_literal) ))))) )) (argument_list "(puVar6)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);" (call_expression "(**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x61dc))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x61dc)" * (pointer_expression "*(code **)(puStack_2a0 + -0x61dc)" * (cast_expression "(code **)(puStack_2a0 + -0x61dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x61dc)" ( (binary_expression "puStack_2a0 + -0x61dc" identifier + number_literal) ))))) )) (argument_list "(puVar6,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x626c))(puVar20);" (call_expression "(**(code **)(puStack_2a0 + -0x626c))(puVar20)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x626c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x626c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" * (cast_expression "(code **)(puStack_2a0 + -0x626c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x626c)" ( (binary_expression "puStack_2a0 + -0x626c" identifier + number_literal) ))))) )) (argument_list "(puVar20)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(1,puVar6,puVar20)" ( number_literal , identifier , identifier ))) ;) (expression_statement "iVar11 = *(int *)(puVar5 + 0x18);" (assignment_expression "iVar11 = *(int *)(puVar5 + 0x18)" identifier = (pointer_expression "*(int *)(puVar5 + 0x18)" * (cast_expression "(int *)(puVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x18)" ( (binary_expression "puVar5 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }" { (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x602c);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x602c)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }" { (labeled_statement "LAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);" statement_identifier : (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(3,puVar20,0)" ( number_literal , identifier , number_literal ))) ;)) (expression_statement "puVar6 = (undefined1 *)0xffffffff;" (assignment_expression "puVar6 = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0006b430;" goto statement_identifier ;) })) }) (else_clause "else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }" else (compound_statement "{\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }" { (expression_statement "piVar29 = (int *)*piVar25;" (assignment_expression "piVar29 = (int *)*piVar25" identifier = (cast_expression "(int *)*piVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar25" * identifier))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (while_statement "while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }" while (parenthesized_expression "(((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0)))" ( (parenthesized_expression "((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))" ( (binary_expression "(iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0)" (parenthesized_expression "(iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1))" ( (comma_expression "iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)" (assignment_expression "iVar12 = *piVar29" identifier = (pointer_expression "*piVar29" * identifier)) , (binary_expression "iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)" (binary_expression "iVar12 == 0" identifier == number_literal) || (parenthesized_expression "(*(int *)(iVar12 + 0xc) != 1)" ( (binary_expression "*(int *)(iVar12 + 0xc) != 1" (pointer_expression "*(int *)(iVar12 + 0xc)" * (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) != number_literal) )))) )) || (parenthesized_expression "((*(uint *)(iVar12 + 0x10) & 1) != 0)" ( (binary_expression "(*(uint *)(iVar12 + 0x10) & 1) != 0" (parenthesized_expression "(*(uint *)(iVar12 + 0x10) & 1)" ( (binary_expression "*(uint *)(iVar12 + 0x10) & 1" (pointer_expression "*(uint *)(iVar12 + 0x10)" * (cast_expression "(uint *)(iVar12 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) )) (compound_statement "{\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }" { (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "piVar29 = piVar29 + 1;" (assignment_expression "piVar29 = piVar29 + 1" identifier = (binary_expression "piVar29 + 1" identifier + number_literal)) ;) (if_statement "if (iVar8 == iVar11) goto LAB_0006b680;" if (parenthesized_expression "(iVar8 == iVar11)" ( (binary_expression "iVar8 == iVar11" identifier == identifier) )) (goto_statement "goto LAB_0006b680;" goto statement_identifier ;)) })) (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x602c);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x602c)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) ;) }))) (expression_statement "(*pcVar4)(3,puVar20,0);" (call_expression "(*pcVar4)(3,puVar20,0)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(3,puVar20,0)" ( number_literal , identifier , number_literal ))) ;) (if_statement "if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }" if (parenthesized_expression "(*piVar23 == 0)" ( (binary_expression "*piVar23 == 0" (pointer_expression "*piVar23" * identifier) == number_literal) )) (compound_statement "{\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }" { (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -32000);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -32000)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -32000)" * (cast_expression "(code **)(puStack_2a0 + -32000)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -32000)" ( (binary_expression "puStack_2a0 + -32000" identifier + number_literal) ))))) ;) (if_statement "if (*piVar28 == 0) goto LAB_0006b564;" if (parenthesized_expression "(*piVar28 == 0)" ( (binary_expression "*piVar28 == 0" (pointer_expression "*piVar28" * identifier) == number_literal) )) (goto_statement "goto LAB_0006b564;" goto statement_identifier ;)) (labeled_statement "LAB_0006b6f0:\n        (*pcVar4)();" statement_identifier : (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( ))) ;)) (if_statement "if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }" if (parenthesized_expression "(*piVar23 != 0)" ( (binary_expression "*piVar23 != 0" (pointer_expression "*piVar23" * identifier) != number_literal) )) (compound_statement "{\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }" { (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x7d08);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x7d08)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x7d08)" * (cast_expression "(code **)(puStack_2a0 + -0x7d08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7d08)" ( (binary_expression "puStack_2a0 + -0x7d08" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0006b708;" goto statement_identifier ;) })) }) (else_clause "else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }" else (compound_statement "{\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }" { (expression_statement "(**(code **)(puStack_2a0 + -0x7d08))(*piVar23);" (call_expression "(**(code **)(puStack_2a0 + -0x7d08))(*piVar23)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x7d08))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x7d08)" * (pointer_expression "*(code **)(puStack_2a0 + -0x7d08)" * (cast_expression "(code **)(puStack_2a0 + -0x7d08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7d08)" ( (binary_expression "puStack_2a0 + -0x7d08" identifier + number_literal) ))))) )) (argument_list "(*piVar23)" ( (pointer_expression "*piVar23" * identifier) ))) ;) (if_statement "if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }" if (parenthesized_expression "(*piVar28 != 0)" ( (binary_expression "*piVar28 != 0" (pointer_expression "*piVar28" * identifier) != number_literal) )) (compound_statement "{\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }" { (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -32000);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -32000)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -32000)" * (cast_expression "(code **)(puStack_2a0 + -32000)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -32000)" ( (binary_expression "puStack_2a0 + -32000" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0006b6f0;" goto statement_identifier ;) })) (labeled_statement "LAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);" statement_identifier : (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x7d08);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x7d08)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x7d08)" * (cast_expression "(code **)(puStack_2a0 + -0x7d08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7d08)" ( (binary_expression "puStack_2a0 + -0x7d08" identifier + number_literal) ))))) ;)) (if_statement "if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }" if (parenthesized_expression "(*piVar23 != 0)" ( (binary_expression "*piVar23 != 0" (pointer_expression "*piVar23" * identifier) != number_literal) )) (compound_statement "{\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }" { (labeled_statement "LAB_0006b708:\n          (*pcVar4)(*piVar23);" statement_identifier : (expression_statement "(*pcVar4)(*piVar23);" (call_expression "(*pcVar4)(*piVar23)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(*piVar23)" ( (pointer_expression "*piVar23" * identifier) ))) ;)) })) }))) (if_statement "if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }" if (parenthesized_expression "(**(int **)(puStack_2a0 + -0x73d8) == 0)" ( (binary_expression "**(int **)(puStack_2a0 + -0x73d8) == 0" (pointer_expression "**(int **)(puStack_2a0 + -0x73d8)" * (pointer_expression "*(int **)(puStack_2a0 + -0x73d8)" * (cast_expression "(int **)(puStack_2a0 + -0x73d8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x73d8)" ( (binary_expression "puStack_2a0 + -0x73d8" identifier + number_literal) ))))) == number_literal) )) (compound_statement "{\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }" { (labeled_statement "LAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);" statement_identifier : (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x6204);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x6204)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x6204)" * (cast_expression "(code **)(puStack_2a0 + -0x6204)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x6204)" ( (binary_expression "puStack_2a0 + -0x6204" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }" else (compound_statement "{\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }" { (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x6204);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x6204)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x6204)" * (cast_expression "(code **)(puStack_2a0 + -0x6204)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x6204)" ( (binary_expression "puStack_2a0 + -0x6204" identifier + number_literal) ))))) ;) (if_statement "if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }" if (parenthesized_expression "(**(int **)(puStack_2a0 + -0x73dc) != 0)" ( (binary_expression "**(int **)(puStack_2a0 + -0x73dc) != 0" (pointer_expression "**(int **)(puStack_2a0 + -0x73dc)" * (pointer_expression "*(int **)(puStack_2a0 + -0x73dc)" * (cast_expression "(int **)(puStack_2a0 + -0x73dc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x73dc)" ( (binary_expression "puStack_2a0 + -0x73dc" identifier + number_literal) ))))) != number_literal) )) (compound_statement "{\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }" { (if_statement "if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }" if (parenthesized_expression "(**(int **)(puStack_2a0 + -0x7abc) != 0)" ( (binary_expression "**(int **)(puStack_2a0 + -0x7abc) != 0" (pointer_expression "**(int **)(puStack_2a0 + -0x7abc)" * (pointer_expression "*(int **)(puStack_2a0 + -0x7abc)" * (cast_expression "(int **)(puStack_2a0 + -0x7abc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7abc)" ( (binary_expression "puStack_2a0 + -0x7abc" identifier + number_literal) ))))) != number_literal) )) (compound_statement "{\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }" { (expression_statement "piVar29 = *(int **)(puStack_2a0 + -0x73d4);" (assignment_expression "piVar29 = *(int **)(puStack_2a0 + -0x73d4)" identifier = (pointer_expression "*(int **)(puStack_2a0 + -0x73d4)" * (cast_expression "(int **)(puStack_2a0 + -0x73d4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x73d4)" ( (binary_expression "puStack_2a0 + -0x73d4" identifier + number_literal) ))))) ;) (expression_statement "puVar30 = puStack_2a0;" (assignment_expression "puVar30 = puStack_2a0" identifier = identifier) ;) (if_statement "if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;" if (parenthesized_expression "(**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))" ( (binary_expression "**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0)" (pointer_expression "**(int **)(puStack_2a0 + -0x7abc)" * (pointer_expression "*(int **)(puStack_2a0 + -0x7abc)" * (cast_expression "(int **)(puStack_2a0 + -0x7abc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7abc)" ( (binary_expression "puStack_2a0 + -0x7abc" identifier + number_literal) ))))) != (pointer_expression "*(int *)(puStack_2a0 + -0x73f0)" * (cast_expression "(int *)(puStack_2a0 + -0x73f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_2a0 + -0x73f0)" ( (binary_expression "puStack_2a0 + -0x73f0" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0006b5a4;" goto statement_identifier ;)) (goto_statement "goto LAB_0006b730;" goto statement_identifier ;) })) })) }))) (expression_statement "piVar31 = (int *)(*pcVar4)();" (assignment_expression "piVar31 = (int *)(*pcVar4)()" identifier = (cast_expression "(int *)(*pcVar4)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "*piVar31 = 0;" (assignment_expression "*piVar31 = 0" (pointer_expression "*piVar31" * identifier) = number_literal) ;) (expression_statement "iVar11 = wait_for(0xffffffff);" (assignment_expression "iVar11 = wait_for(0xffffffff)" identifier = (call_expression "wait_for(0xffffffff)" identifier (argument_list "(0xffffffff)" ( number_literal )))) ;) (if_statement "if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }" if (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) )) (compound_statement "{\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }" { (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x626c);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x626c)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" * (cast_expression "(code **)(puStack_2a0 + -0x626c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x626c)" ( (binary_expression "puStack_2a0 + -0x626c" identifier + number_literal) ))))) ;) (if_statement "if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }" if (parenthesized_expression "((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0))" ( (binary_expression "(*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)" (parenthesized_expression "(*piVar31 == 10)" ( (binary_expression "*piVar31 == 10" (pointer_expression "*piVar31" * identifier) == number_literal) )) && (parenthesized_expression "(*(int *)(puVar5 + 0x18) != 0)" ( (binary_expression "*(int *)(puVar5 + 0x18) != 0" (pointer_expression "*(int *)(puVar5 + 0x18)" * (cast_expression "(int *)(puVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x18)" ( (binary_expression "puVar5 + 0x18" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }" { (expression_statement "(*pcStack_294)();" (call_expression "(*pcStack_294)()" (parenthesized_expression "(*pcStack_294)" ( (pointer_expression "*pcStack_294" * identifier) )) (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0006b5d4;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }" else (compound_statement "{\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }" { (labeled_statement "LAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);" statement_identifier : (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x626c);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x626c)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" * (cast_expression "(code **)(puStack_2a0 + -0x626c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x626c)" ( (binary_expression "puStack_2a0 + -0x626c" identifier + number_literal) ))))) ;)) }))) (expression_statement "(*pcVar4)(puVar6);" (call_expression "(*pcVar4)(puVar6)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(puVar6)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);" (call_expression "(**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x61dc))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x61dc)" * (pointer_expression "*(code **)(puStack_2a0 + -0x61dc)" * (cast_expression "(code **)(puStack_2a0 + -0x61dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x61dc)" ( (binary_expression "puStack_2a0 + -0x61dc" identifier + number_literal) ))))) )) (argument_list "(puVar6,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x626c))(puVar20);" (call_expression "(**(code **)(puStack_2a0 + -0x626c))(puVar20)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x626c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x626c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" * (cast_expression "(code **)(puStack_2a0 + -0x626c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x626c)" ( (binary_expression "puStack_2a0 + -0x626c" identifier + number_literal) ))))) )) (argument_list "(puVar20)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(1,puVar6,puVar20)" ( number_literal , identifier , identifier ))) ;) (if_statement "if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }" if (parenthesized_expression "(0 < (int)*(int **)(puVar5 + 0x18))" ( (binary_expression "0 < (int)*(int **)(puVar5 + 0x18)" number_literal < (cast_expression "(int)*(int **)(puVar5 + 0x18)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(int **)(puVar5 + 0x18)" * (cast_expression "(int **)(puVar5 + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x18)" ( (binary_expression "puVar5 + 0x18" identifier + number_literal) )))))) )) (compound_statement "{\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }" { (expression_statement "piVar17 = (int *)*piVar25;" (assignment_expression "piVar17 = (int *)*piVar25" identifier = (cast_expression "(int *)*piVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar25" * identifier))) ;) (expression_statement "piVar31 = (int *)0x0;" (assignment_expression "piVar31 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar29 = piVar17;" (assignment_expression "piVar29 = piVar17" identifier = identifier) ;) (do_statement "do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);" do (compound_statement "{\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        }" { (if_statement "if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;" if (parenthesized_expression "((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4))" ( (binary_expression "(*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)" (parenthesized_expression "(*piVar29 != 0)" ( (binary_expression "*piVar29 != 0" (pointer_expression "*piVar29" * identifier) != number_literal) )) && (parenthesized_expression "(*(int *)(*piVar29 + 0xc) == 4)" ( (binary_expression "*(int *)(*piVar29 + 0xc) == 4" (pointer_expression "*(int *)(*piVar29 + 0xc)" * (cast_expression "(int *)(*piVar29 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar29 + 0xc)" ( (binary_expression "*piVar29 + 0xc" (pointer_expression "*piVar29" * identifier) + number_literal) )))) == number_literal) ))) )) (goto_statement "goto LAB_0006b3b8;" goto statement_identifier ;)) (expression_statement "piVar31 = (int *)((int)piVar31 + 1);" (assignment_expression "piVar31 = (int *)((int)piVar31 + 1)" identifier = (cast_expression "(int *)((int)piVar31 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar31 + 1)" ( (binary_expression "(int)piVar31 + 1" (cast_expression "(int)piVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar29 = piVar29 + 1;" (assignment_expression "piVar29 = piVar29 + 1" identifier = (binary_expression "piVar29 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(puVar5 + 0x18) != piVar31)" ( (binary_expression "*(int **)(puVar5 + 0x18) != piVar31" (pointer_expression "*(int **)(puVar5 + 0x18)" * (cast_expression "(int **)(puVar5 + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x18)" ( (binary_expression "puVar5 + 0x18" identifier + number_literal) )))) != identifier) )) ;) })) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(3,puVar20,0)" ( number_literal , identifier , number_literal ))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "puVar6 = (undefined1 *)0xffffffff;" (assignment_expression "puVar6 = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0006b430:\n  puVar30 = puStack_2a0;" statement_identifier : (expression_statement "puVar30 = puStack_2a0;" (assignment_expression "puVar30 = puStack_2a0" identifier = identifier) ;)) (if_statement "if (piStack_18c == (int *)*puVar27) {\n    return puVar6;\n  }" if (parenthesized_expression "(piStack_18c == (int *)*puVar27)" ( (binary_expression "piStack_18c == (int *)*puVar27" identifier == (cast_expression "(int *)*puVar27" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar27" * identifier))) )) (compound_statement "{\n    return puVar6;\n  }" { (return_statement "return puVar6;" return identifier ;) })) (expression_statement "piVar29 = piStack_18c;" (assignment_expression "piVar29 = piStack_18c" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x60b8))();" (call_expression "(**(code **)(puStack_2a0 + -0x60b8))()" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x60b8))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x60b8)" * (pointer_expression "*(code **)(puStack_2a0 + -0x60b8)" * (cast_expression "(code **)(puStack_2a0 + -0x60b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x60b8)" ( (binary_expression "puStack_2a0 + -0x60b8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0006b730:\n  pcVar4 = *(code **)(puVar30 + -0x625c);" statement_identifier : (expression_statement "pcVar4 = *(code **)(puVar30 + -0x625c);" (assignment_expression "pcVar4 = *(code **)(puVar30 + -0x625c)" identifier = (pointer_expression "*(code **)(puVar30 + -0x625c)" * (cast_expression "(code **)(puVar30 + -0x625c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x625c)" ( (binary_expression "puVar30 + -0x625c" identifier + number_literal) ))))) ;)) (expression_statement "pcVar32 = start_job;" (assignment_expression "pcVar32 = start_job" identifier = identifier) ;) (expression_statement "puVar13 = (undefined4 *)0x1;" (assignment_expression "puVar13 = (undefined4 *)0x1" identifier = (cast_expression "(undefined4 *)0x1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar17 = *(int **)(pcVar4 + 0xdada0);" (assignment_expression "piVar17 = *(int **)(pcVar4 + 0xdada0)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xdada0)" * (cast_expression "(int **)(pcVar4 + 0xdada0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdada0)" ( (binary_expression "pcVar4 + 0xdada0" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = (int)piVar29 * 4;" (assignment_expression "iVar11 = (int)piVar29 * 4" identifier = (binary_expression "(int)piVar29 * 4" (cast_expression "(int)piVar29" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "iStack_2dc = *piVar17;" (assignment_expression "iStack_2dc = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (expression_statement "piVar22 = *(int **)(pcVar4 + 0xd9720);" (assignment_expression "piVar22 = *(int **)(pcVar4 + 0xd9720)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd9720)" * (cast_expression "(int **)(pcVar4 + 0xd9720)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd9720)" ( (binary_expression "pcVar4 + 0xd9720" identifier + number_literal) ))))) ;) (expression_statement "puStack_2d8 = puVar20;" (assignment_expression "puStack_2d8 = puVar20" identifier = identifier) ;) (expression_statement "puStack_2d4 = puVar6;" (assignment_expression "puStack_2d4 = puVar6" identifier = identifier) ;) (expression_statement "puStack_2d0 = puVar5;" (assignment_expression "puStack_2d0 = puVar5" identifier = identifier) ;) (expression_statement "piStack_2cc = piVar23;" (assignment_expression "piStack_2cc = piVar23" identifier = identifier) ;) (expression_statement "piStack_2c8 = piVar25;" (assignment_expression "piStack_2c8 = piVar25" identifier = identifier) ;) (expression_statement "puStack_2c4 = puVar27;" (assignment_expression "puStack_2c4 = puVar27" identifier = identifier) ;) (expression_statement "piStack_2c0 = piVar28;" (assignment_expression "piStack_2c0 = piVar28" identifier = identifier) ;) (expression_statement "iStack_2bc = iVar3;" (assignment_expression "iStack_2bc = iVar3" identifier = identifier) ;) (expression_statement "piStack_2b8 = piVar31;" (assignment_expression "piStack_2b8 = piVar31" identifier = identifier) ;) (expression_statement "pcStack_2b4 = pcVar32;" (assignment_expression "pcStack_2b4 = pcVar32" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar4 + 0xdab98))(auStack_3dc);" (call_expression "(**(code **)(pcVar4 + 0xdab98))(auStack_3dc)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdab98))" ( (pointer_expression "**(code **)(pcVar4 + 0xdab98)" * (pointer_expression "*(code **)(pcVar4 + 0xdab98)" * (cast_expression "(code **)(pcVar4 + 0xdab98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdab98)" ( (binary_expression "pcVar4 + 0xdab98" identifier + number_literal) ))))) )) (argument_list "(auStack_3dc)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar4 + 0xdac28))(auStack_3dc,0x12);" (call_expression "(**(code **)(pcVar4 + 0xdac28))(auStack_3dc,0x12)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdac28))" ( (pointer_expression "**(code **)(pcVar4 + 0xdac28)" * (pointer_expression "*(code **)(pcVar4 + 0xdac28)" * (cast_expression "(code **)(pcVar4 + 0xdac28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdac28)" ( (binary_expression "pcVar4 + 0xdac28" identifier + number_literal) ))))) )) (argument_list "(auStack_3dc,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar4 + 0xdab98))(auStack_35c);" (call_expression "(**(code **)(pcVar4 + 0xdab98))(auStack_35c)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdab98))" ( (pointer_expression "**(code **)(pcVar4 + 0xdab98)" * (pointer_expression "*(code **)(pcVar4 + 0xdab98)" * (cast_expression "(code **)(pcVar4 + 0xdab98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdab98)" ( (binary_expression "pcVar4 + 0xdab98" identifier + number_literal) ))))) )) (argument_list "(auStack_35c)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar4 + 0xdadd8))(1,auStack_3dc,auStack_35c);" (call_expression "(**(code **)(pcVar4 + 0xdadd8))(1,auStack_3dc,auStack_35c)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdadd8))" ( (pointer_expression "**(code **)(pcVar4 + 0xdadd8)" * (pointer_expression "*(code **)(pcVar4 + 0xdadd8)" * (cast_expression "(code **)(pcVar4 + 0xdadd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdadd8)" ( (binary_expression "pcVar4 + 0xdadd8" identifier + number_literal) ))))) )) (argument_list "(1,auStack_3dc,auStack_35c)" ( number_literal , identifier , identifier ))) ;) (expression_statement "iVar3 = *(int *)(*(int *)(*piVar22 + iVar11) + 0xc);" (assignment_expression "iVar3 = *(int *)(*(int *)(*piVar22 + iVar11) + 0xc)" identifier = (pointer_expression "*(int *)(*(int *)(*piVar22 + iVar11) + 0xc)" * (cast_expression "(int *)(*(int *)(*piVar22 + iVar11) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar22 + iVar11) + 0xc)" ( (binary_expression "*(int *)(*piVar22 + iVar11) + 0xc" (pointer_expression "*(int *)(*piVar22 + iVar11)" * (cast_expression "(int *)(*piVar22 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) )))) + number_literal) ))))) ;) (if_statement "if (iVar3 == 4) {\n    puVar20 = (undefined1 *)0xffffffff;\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec));\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);\nLAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }" if (parenthesized_expression "(iVar3 == 4)" ( (binary_expression "iVar3 == 4" identifier == number_literal) )) (compound_statement "{\n    puVar20 = (undefined1 *)0xffffffff;\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec));\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }" { (expression_statement "puVar20 = (undefined1 *)0xffffffff;" (assignment_expression "puVar20 = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5)" identifier = (call_expression "(**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdad5c))" ( (pointer_expression "**(code **)(pcVar4 + 0xdad5c)" * (pointer_expression "*(code **)(pcVar4 + 0xdad5c)" * (cast_expression "(code **)(pcVar4 + 0xdad5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdad5c)" ( (binary_expression "pcVar4 + 0xdad5c" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" * (cast_expression "(int *)(pcVar4 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e3c)" ( (binary_expression "pcVar4 + 0xd8e3c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec));" (call_expression "internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec))" identifier (argument_list "(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec))" ( identifier , (pointer_expression "**(undefined4 **)(pcVar4 + 0xd8fec)" * (pointer_expression "*(undefined4 **)(pcVar4 + 0xd8fec)" * (cast_expression "(undefined4 **)(pcVar4 + 0xd8fec)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8fec)" ( (binary_expression "pcVar4 + 0xd8fec" identifier + number_literal) ))))) ))) ;) (expression_statement "(**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);" (call_expression "(**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdadd8))" ( (pointer_expression "**(code **)(pcVar4 + 0xdadd8)" * (pointer_expression "*(code **)(pcVar4 + 0xdadd8)" * (cast_expression "(code **)(pcVar4 + 0xdadd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdadd8)" ( (binary_expression "pcVar4 + 0xdadd8" identifier + number_literal) ))))) )) (argument_list "(3,auStack_35c,0)" ( number_literal , identifier , number_literal ))) ;) }) (else_clause "else if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);\nLAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }" else (if_statement "if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);\nLAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);\nLAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }" { (if_statement "if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }" if (parenthesized_expression "(iVar3 != 1)" ( (binary_expression "iVar3 != 1" identifier != number_literal) )) (compound_statement "{\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }" { (expression_statement "uStack_3e4 = FUN_000649c8();" (assignment_expression "uStack_3e4 = FUN_000649c8()" identifier = (call_expression "FUN_000649c8()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = *(int *)(*piVar22 + iVar11);" (assignment_expression "iVar8 = *(int *)(*piVar22 + iVar11)" identifier = (pointer_expression "*(int *)(*piVar22 + iVar11)" * (cast_expression "(int *)(*piVar22 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) ))))) ;) (expression_statement "iVar12 = **(int **)(pcVar4 + 0xd8e50);" (assignment_expression "iVar12 = **(int **)(pcVar4 + 0xd8e50)" identifier = (pointer_expression "**(int **)(pcVar4 + 0xd8e50)" * (pointer_expression "*(int **)(pcVar4 + 0xd8e50)" * (cast_expression "(int **)(pcVar4 + 0xd8e50)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8e50)" ( (binary_expression "pcVar4 + 0xd8e50" identifier + number_literal) )))))) ;) (expression_statement "*(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;" (assignment_expression "*(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd" (pointer_expression "*(uint *)(iVar8 + 0x10)" * (cast_expression "(uint *)(iVar8 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar8 + 0x10) & 0xfffffffd" (pointer_expression "*(uint *)(iVar8 + 0x10)" * (cast_expression "(uint *)(iVar8 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }" { (if_statement "if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }" if (parenthesized_expression "(*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29)" ( (binary_expression "*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29" (pointer_expression "*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c)" * (cast_expression "(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar4 + 0xd971c) + 0x2c)" ( (binary_expression "*(int *)(pcVar4 + 0xd971c) + 0x2c" (pointer_expression "*(int *)(pcVar4 + 0xd971c)" * (cast_expression "(int *)(pcVar4 + 0xd971c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd971c)" ( (binary_expression "pcVar4 + 0xd971c" identifier + number_literal) )))) + number_literal) )))) == identifier) )) (compound_statement "{\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }" { (expression_statement "iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;" (assignment_expression "iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144" identifier = (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7144" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" * (cast_expression "(int *)(pcVar4 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e3c)" ( (binary_expression "pcVar4 + 0xd8e3c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }" else (compound_statement "{\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }" { (if_statement "if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;" if (parenthesized_expression "(*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29)" ( (binary_expression "*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29" (pointer_expression "*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30)" * (cast_expression "(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar4 + 0xd971c) + 0x30)" ( (binary_expression "*(int *)(pcVar4 + 0xd971c) + 0x30" (pointer_expression "*(int *)(pcVar4 + 0xd971c)" * (cast_expression "(int *)(pcVar4 + 0xd971c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd971c)" ( (binary_expression "pcVar4 + 0xd971c" identifier + number_literal) )))) + number_literal) )))) != identifier) )) (goto_statement "goto LAB_0006b860;" goto statement_identifier ;)) (expression_statement "iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;" (assignment_expression "iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98" identifier = (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7d98" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" * (cast_expression "(int *)(pcVar4 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e3c)" ( (binary_expression "pcVar4 + 0xd8e3c" identifier + number_literal) )))) + number_literal)) ;) }))) }) (else_clause "else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }" else (compound_statement "{\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }" { (labeled_statement "LAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;" statement_identifier : (expression_statement "iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;" (assignment_expression "iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04" identifier = (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7b04" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" * (cast_expression "(int *)(pcVar4 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e3c)" ( (binary_expression "pcVar4 + 0xd8e3c" identifier + number_literal) )))) + number_literal)) ;)) }))) (expression_statement "piVar31 = *(int **)(iVar8 + 4);" (assignment_expression "piVar31 = *(int **)(iVar8 + 4)" identifier = (pointer_expression "*(int **)(iVar8 + 4)" * (cast_expression "(int **)(iVar8 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;" (call_expression "(**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdabb0))" ( (pointer_expression "**(code **)(pcVar4 + 0xdabb0)" * (pointer_expression "*(code **)(pcVar4 + 0xdabb0)" * (cast_expression "(code **)(pcVar4 + 0xdabb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdabb0)" ( (binary_expression "pcVar4 + 0xdabb0" identifier + number_literal) ))))) )) (argument_list "(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" * (cast_expression "(int *)(pcVar4 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e3c)" ( (binary_expression "pcVar4 + 0xd8e3c" identifier + number_literal) )))) + number_literal) , (binary_expression "(int)piVar29 + 1" (cast_expression "(int)piVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , identifier ))) ;) (expression_statement "piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);" (assignment_expression "piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4)" identifier = (pointer_expression "*(int **)(*(int *)(*piVar22 + iVar11) + 4)" * (cast_expression "(int **)(*(int *)(*piVar22 + iVar11) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*piVar22 + iVar11) + 4)" ( (binary_expression "*(int *)(*piVar22 + iVar11) + 4" (pointer_expression "*(int *)(*piVar22 + iVar11)" * (cast_expression "(int *)(*piVar22 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_0006b898;" goto statement_identifier ;) })) (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5)" identifier = (call_expression "(**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdad5c))" ( (pointer_expression "**(code **)(pcVar4 + 0xdad5c)" * (pointer_expression "*(code **)(pcVar4 + 0xdad5c)" * (cast_expression "(code **)(pcVar4 + 0xdad5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdad5c)" ( (binary_expression "pcVar4 + 0xdad5c" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7db4" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" * (cast_expression "(int *)(pcVar4 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e3c)" ( (binary_expression "pcVar4 + 0xd8e3c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);" (call_expression "internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1)" identifier (argument_list "(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1)" ( identifier , (pointer_expression "**(undefined4 **)(pcVar4 + 0xd8fec)" * (pointer_expression "*(undefined4 **)(pcVar4 + 0xd8fec)" * (cast_expression "(undefined4 **)(pcVar4 + 0xd8fec)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8fec)" ( (binary_expression "pcVar4 + 0xd8fec" identifier + number_literal) ))))) , (binary_expression "(int)piVar29 + 1" (cast_expression "(int)piVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ;) (labeled_statement "LAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;" statement_identifier : (expression_statement "puVar20 = (undefined1 *)0x0;" (assignment_expression "puVar20 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "(**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);" (call_expression "(**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdadd8))" ( (pointer_expression "**(code **)(pcVar4 + 0xdadd8)" * (pointer_expression "*(code **)(pcVar4 + 0xdadd8)" * (cast_expression "(code **)(pcVar4 + 0xdadd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdadd8)" ( (binary_expression "pcVar4 + 0xdadd8" identifier + number_literal) ))))) )) (argument_list "(3,auStack_35c,0)" ( number_literal , identifier , number_literal ))) ;) }) (else_clause "else {\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }" else (compound_statement "{\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }" { (expression_statement "uStack_3e4 = FUN_000649c8();" (assignment_expression "uStack_3e4 = FUN_000649c8()" identifier = (call_expression "FUN_000649c8()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;" (assignment_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd" (pointer_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" * (cast_expression "(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar22 + iVar11) + 0x10)" ( (binary_expression "*(int *)(*piVar22 + iVar11) + 0x10" (pointer_expression "*(int *)(*piVar22 + iVar11)" * (cast_expression "(int *)(*piVar22 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) )))) + number_literal) )))) = (binary_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd" (pointer_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" * (cast_expression "(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar22 + iVar11) + 0x10)" ( (binary_expression "*(int *)(*piVar22 + iVar11) + 0x10" (pointer_expression "*(int *)(*piVar22 + iVar11)" * (cast_expression "(int *)(*piVar22 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) )))) + number_literal) )))) & number_literal)) ;) (expression_statement "FUN_00064368(piVar29);" (call_expression "FUN_00064368(piVar29)" identifier (argument_list "(piVar29)" ( identifier ))) ;) (expression_statement "iVar8 = *(int *)(*piVar22 + iVar11);" (assignment_expression "iVar8 = *(int *)(*piVar22 + iVar11)" identifier = (pointer_expression "*(int *)(*piVar22 + iVar11)" * (cast_expression "(int *)(*piVar22 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) ))))) ;) (expression_statement "piVar23 = *(int **)(iVar8 + 4);" (assignment_expression "piVar23 = *(int **)(iVar8 + 4)" identifier = (pointer_expression "*(int **)(iVar8 + 4)" * (cast_expression "(int **)(iVar8 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;" (assignment_expression "*(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1" (pointer_expression "*(uint *)(iVar8 + 0x10)" * (cast_expression "(uint *)(iVar8 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar8 + 0x10) | 1" (pointer_expression "*(uint *)(iVar8 + 0x10)" * (cast_expression "(uint *)(iVar8 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "piVar31 = piVar23;" (assignment_expression "piVar31 = piVar23" identifier = identifier) ;) (labeled_statement "LAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);" statement_identifier : (expression_statement "iVar12 = *(int *)(pcVar4 + 0xd8e3c);" (assignment_expression "iVar12 = *(int *)(pcVar4 + 0xd8e3c)" identifier = (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" * (cast_expression "(int *)(pcVar4 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e3c)" ( (binary_expression "pcVar4 + 0xd8e3c" identifier + number_literal) ))))) ;)) (expression_statement "iVar8 = *(int *)(pcVar4 + 0xd8e70);" (assignment_expression "iVar8 = *(int *)(pcVar4 + 0xd8e70)" identifier = (pointer_expression "*(int *)(pcVar4 + 0xd8e70)" * (cast_expression "(int *)(pcVar4 + 0xd8e70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e70)" ( (binary_expression "pcVar4 + 0xd8e70" identifier + number_literal) ))))) ;) (expression_statement "iVar26 = *(int *)(pcVar4 + 0xd8e3c);" (assignment_expression "iVar26 = *(int *)(pcVar4 + 0xd8e3c)" identifier = (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" * (cast_expression "(int *)(pcVar4 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e3c)" ( (binary_expression "pcVar4 + 0xd8e3c" identifier + number_literal) ))))) ;) (do_statement "do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);" do (compound_statement "{\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    }" { (expression_statement "iVar15 = piVar31[4];" (assignment_expression "iVar15 = piVar31[4]" identifier = (subscript_expression "piVar31[4]" identifier [ number_literal ])) ;) (if_statement "if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }" if (parenthesized_expression "(piVar31[4] == 0)" ( (binary_expression "piVar31[4] == 0" (subscript_expression "piVar31[4]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar15 = iVar8 + -0x6800;\n      }" { (expression_statement "iVar15 = iVar8 + -0x6800;" (assignment_expression "iVar15 = iVar8 + -0x6800" identifier = (binary_expression "iVar8 + -0x6800" identifier + number_literal)) ;) })) (expression_statement "iVar18 = iVar26 + 0x6720;" (assignment_expression "iVar18 = iVar26 + 0x6720" identifier = (binary_expression "iVar26 + 0x6720" identifier + number_literal)) ;) (if_statement "if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }" if (parenthesized_expression "((int *)*piVar31 == piVar23)" ( (binary_expression "(int *)*piVar31 == piVar23" (cast_expression "(int *)*piVar31" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar31" * identifier)) == identifier) )) (compound_statement "{\n        iVar18 = iVar8 + -0x6800;\n      }" { (expression_statement "iVar18 = iVar8 + -0x6800;" (assignment_expression "iVar18 = iVar8 + -0x6800" identifier = (binary_expression "iVar8 + -0x6800" identifier + number_literal)) ;) })) (expression_statement "(**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);" (call_expression "(**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdabb0))" ( (pointer_expression "**(code **)(pcVar4 + 0xdabb0)" * (pointer_expression "*(code **)(pcVar4 + 0xdabb0)" * (cast_expression "(code **)(pcVar4 + 0xdabb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdabb0)" ( (binary_expression "pcVar4 + 0xdabb0" identifier + number_literal) ))))) )) (argument_list "(1,iVar12 + 0x6298,iVar15,iVar18)" ( number_literal , (binary_expression "iVar12 + 0x6298" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "piVar31 = (int *)*piVar31;" (assignment_expression "piVar31 = (int *)*piVar31" identifier = (cast_expression "(int *)*piVar31" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar31" * identifier))) ;) (expression_statement "puVar27 = *(undefined4 **)(*piVar22 + iVar11);" (assignment_expression "puVar27 = *(undefined4 **)(*piVar22 + iVar11)" identifier = (pointer_expression "*(undefined4 **)(*piVar22 + iVar11)" * (cast_expression "(undefined4 **)(*piVar22 + iVar11)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) ))))) ;) (expression_statement "piVar23 = (int *)puVar27[1];" (assignment_expression "piVar23 = (int *)puVar27[1]" identifier = (cast_expression "(int *)puVar27[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[1]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(piVar23 != piVar31)" ( (binary_expression "piVar23 != piVar31" identifier != identifier) )) ;) (if_statement "if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }" { (expression_statement "(**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);" (call_expression "(**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdabb0))" ( (pointer_expression "**(code **)(pcVar4 + 0xdabb0)" * (pointer_expression "*(code **)(pcVar4 + 0xdabb0)" * (cast_expression "(code **)(pcVar4 + 0xdabb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdabb0)" ( (binary_expression "pcVar4 + 0xdabb0" identifier + number_literal) ))))) )) (argument_list "(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7b74" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" * (cast_expression "(int *)(pcVar4 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e3c)" ( (binary_expression "pcVar4 + 0xd8e3c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "puVar27 = *(undefined4 **)(*piVar22 + iVar11);" (assignment_expression "puVar27 = *(undefined4 **)(*piVar22 + iVar11)" identifier = (pointer_expression "*(undefined4 **)(*piVar22 + iVar11)" * (cast_expression "(undefined4 **)(*piVar22 + iVar11)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) ))))) ;) })) (expression_statement "uVar19 = *puVar27;" (assignment_expression "uVar19 = *puVar27" identifier = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);" (assignment_expression "iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19)" identifier = (call_expression "(**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdae0c))" ( (pointer_expression "**(code **)(pcVar4 + 0xdae0c)" * (pointer_expression "*(code **)(pcVar4 + 0xdae0c)" * (cast_expression "(code **)(pcVar4 + 0xdae0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdae0c)" ( (binary_expression "pcVar4 + 0xdae0c" identifier + number_literal) ))))) )) (argument_list "(uStack_3e4,uVar19)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }" { (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19)" identifier = (call_expression "(**(code **)(pcVar4 + 0xd9234))(uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xd9234))" ( (pointer_expression "**(code **)(pcVar4 + 0xd9234)" * (pointer_expression "*(code **)(pcVar4 + 0xd9234)" * (cast_expression "(code **)(pcVar4 + 0xd9234)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd9234)" ( (binary_expression "pcVar4 + 0xd9234" identifier + number_literal) ))))) )) (argument_list "(uVar19)" ( identifier )))) ;) (expression_statement "(**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);" (call_expression "(**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdabb0))" ( (pointer_expression "**(code **)(pcVar4 + 0xdabb0)" * (pointer_expression "*(code **)(pcVar4 + 0xdabb0)" * (cast_expression "(code **)(pcVar4 + 0xdabb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdabb0)" ( (binary_expression "pcVar4 + 0xdabb0" identifier + number_literal) ))))) )) (argument_list "(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7de0" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" * (cast_expression "(int *)(pcVar4 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e3c)" ( (binary_expression "pcVar4 + 0xd8e3c" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "(**(code **)(pcVar4 + 0xdac04))(10);" (call_expression "(**(code **)(pcVar4 + 0xdac04))(10)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdac04))" ( (pointer_expression "**(code **)(pcVar4 + 0xdac04)" * (pointer_expression "*(code **)(pcVar4 + 0xdac04)" * (cast_expression "(code **)(pcVar4 + 0xdac04)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdac04)" ( (binary_expression "pcVar4 + 0xdac04" identifier + number_literal) ))))) )) (argument_list "(10)" ( number_literal ))) ;) (if_statement "if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }" { (if_statement "if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }" { (expression_statement "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;" (assignment_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe" (pointer_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" * (cast_expression "(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar22 + iVar11) + 0x10)" ( (binary_expression "*(int *)(*piVar22 + iVar11) + 0x10" (pointer_expression "*(int *)(*piVar22 + iVar11)" * (cast_expression "(int *)(*piVar22 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) )))) + number_literal) )))) = (binary_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe" (pointer_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" * (cast_expression "(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar22 + iVar11) + 0x10)" ( (binary_expression "*(int *)(*piVar22 + iVar11) + 0x10" (pointer_expression "*(int *)(*piVar22 + iVar11)" * (cast_expression "(int *)(*piVar22 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) )))) + number_literal) )))) & number_literal)) ;) (goto_statement "goto LAB_0006b9c8;" goto statement_identifier ;) })) (expression_statement "get_tty_state();" (call_expression "get_tty_state()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar8 = *(int *)(pcVar4 + 0xd9a18);" (assignment_expression "iVar8 = *(int *)(pcVar4 + 0xd9a18)" identifier = (pointer_expression "*(int *)(pcVar4 + 0xd9a18)" * (cast_expression "(int *)(pcVar4 + 0xd9a18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd9a18)" ( (binary_expression "pcVar4 + 0xd9a18" identifier + number_literal) ))))) ;) (expression_statement "puVar24 = (undefined4 *)(iVar8 + -0x70d0);" (assignment_expression "puVar24 = (undefined4 *)(iVar8 + -0x70d0)" identifier = (cast_expression "(undefined4 *)(iVar8 + -0x70d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x70d0)" ( (binary_expression "iVar8 + -0x70d0" identifier + number_literal) )))) ;) (expression_statement "puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);" (assignment_expression "puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8)" ( (binary_expression "*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8" (pointer_expression "*(int *)(pcVar4 + 0xd8e2c)" * (cast_expression "(int *)(pcVar4 + 0xd8e2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e2c)" ( (binary_expression "pcVar4 + 0xd8e2c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar27 = puVar24;" (assignment_expression "puVar27 = puVar24" identifier = identifier) ;) (expression_statement "puVar9 = puVar21;" (assignment_expression "puVar9 = puVar21" identifier = identifier) ;) (do_statement "do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));" do (compound_statement "{\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      }" { (expression_statement "puVar7 = puVar27 + 4;" (assignment_expression "puVar7 = puVar27 + 4" identifier = (binary_expression "puVar27 + 4" identifier + number_literal)) ;) (expression_statement "puVar10 = puVar9 + 4;" (assignment_expression "puVar10 = puVar9 + 4" identifier = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "uVar16 = puVar27[1];" (assignment_expression "uVar16 = puVar27[1]" identifier = (subscript_expression "puVar27[1]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = puVar27[2];" (assignment_expression "uVar14 = puVar27[2]" identifier = (subscript_expression "puVar27[2]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar27[3];" (assignment_expression "uVar19 = puVar27[3]" identifier = (subscript_expression "puVar27[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar9 = *puVar27;" (assignment_expression "*puVar9 = *puVar27" (pointer_expression "*puVar9" * identifier) = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "puVar9[1] = uVar16;" (assignment_expression "puVar9[1] = uVar16" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[2] = uVar14;" (assignment_expression "puVar9[2] = uVar14" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[3] = uVar19;" (assignment_expression "puVar9[3] = uVar19" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27 = puVar7;" (assignment_expression "puVar27 = puVar7" identifier = identifier) ;) (expression_statement "puVar9 = puVar10;" (assignment_expression "puVar9 = puVar10" identifier = identifier) ;) }) while (parenthesized_expression "(puVar7 != (undefined4 *)(iVar8 + -0x70a0))" ( (binary_expression "puVar7 != (undefined4 *)(iVar8 + -0x70a0)" identifier != (cast_expression "(undefined4 *)(iVar8 + -0x70a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x70a0)" ( (binary_expression "iVar8 + -0x70a0" identifier + number_literal) )))) )) ;) (expression_statement "iVar8 = *piVar22;" (assignment_expression "iVar8 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "*puVar10 = *puVar7;" (assignment_expression "*puVar10 = *puVar7" (pointer_expression "*puVar10" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "iVar8 = *(int *)(iVar8 + iVar11);" (assignment_expression "iVar8 = *(int *)(iVar8 + iVar11)" identifier = (pointer_expression "*(int *)(iVar8 + iVar11)" * (cast_expression "(int *)(iVar8 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar11)" ( (binary_expression "iVar8 + iVar11" identifier + identifier) ))))) ;) (if_statement "if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;" if (parenthesized_expression "((*(uint *)(iVar8 + 0x10) & 4) != 0)" ( (binary_expression "(*(uint *)(iVar8 + 0x10) & 4) != 0" (parenthesized_expression "(*(uint *)(iVar8 + 0x10) & 4)" ( (binary_expression "*(uint *)(iVar8 + 0x10) & 4" (pointer_expression "*(uint *)(iVar8 + 0x10)" * (cast_expression "(uint *)(iVar8 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0006bce0;" goto statement_identifier ;)) }) (else_clause "else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }" else (compound_statement "{\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }" { (expression_statement "iVar8 = *(int *)(*piVar22 + iVar11);" (assignment_expression "iVar8 = *(int *)(*piVar22 + iVar11)" identifier = (pointer_expression "*(int *)(*piVar22 + iVar11)" * (cast_expression "(int *)(*piVar22 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) ))))) ;) (expression_statement "piVar23 = *(int **)(iVar8 + 4);" (assignment_expression "piVar23 = *(int **)(iVar8 + 4)" identifier = (pointer_expression "*(int **)(iVar8 + 4)" * (cast_expression "(int **)(iVar8 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "piVar31 = piVar23;" (assignment_expression "piVar31 = piVar23" identifier = identifier) ;) (do_statement "do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);" do (compound_statement "{\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      }" { (if_statement "if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }" if (parenthesized_expression "(*(char *)((int)piVar31 + 0xb) == '\x7f')" ( (binary_expression "*(char *)((int)piVar31 + 0xb) == '\x7f'" (pointer_expression "*(char *)((int)piVar31 + 0xb)" * (cast_expression "(char *)((int)piVar31 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar31 + 0xb)" ( (binary_expression "(int)piVar31 + 0xb" (cast_expression "(int)piVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\x7f'" ' escape_sequence ')) )) (compound_statement "{\n          piVar31[3] = 1;\n        }" { (expression_statement "piVar31[3] = 1;" (assignment_expression "piVar31[3] = 1" (subscript_expression "piVar31[3]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "piVar31 = (int *)*piVar31;" (assignment_expression "piVar31 = (int *)*piVar31" identifier = (cast_expression "(int *)*piVar31" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar31" * identifier))) ;) }) while (parenthesized_expression "(piVar23 != piVar31)" ( (binary_expression "piVar23 != piVar31" identifier != identifier) )) ;) (expression_statement "*(undefined4 *)(iVar8 + 0xc) = 1;" (assignment_expression "*(undefined4 *)(iVar8 + 0xc) = 1" (pointer_expression "*(undefined4 *)(iVar8 + 0xc)" * (cast_expression "(undefined4 *)(iVar8 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }" { (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xdad38);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xdad38)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xdad38)" * (cast_expression "(code **)(pcVar4 + 0xdad38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdad38)" ( (binary_expression "pcVar4 + 0xdad38" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;" (assignment_expression "*(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2" (pointer_expression "*(uint *)(iVar8 + 0x10)" * (cast_expression "(uint *)(iVar8 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar8 + 0x10) & 0xfffffffe | 2" (binary_expression "*(uint *)(iVar8 + 0x10) & 0xfffffffe" (pointer_expression "*(uint *)(iVar8 + 0x10)" * (cast_expression "(uint *)(iVar8 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "(*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);" (call_expression "(*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(*(undefined4 *)(iVar8 + 8),0x19)" ( (pointer_expression "*(undefined4 *)(iVar8 + 8)" * (cast_expression "(undefined4 *)(iVar8 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) , number_literal ))) ;) (labeled_statement "LAB_0006b9c8:\n        FUN_00064490();" statement_identifier : (expression_statement "FUN_00064490();" (call_expression "FUN_00064490()" identifier (argument_list "()" ( ))) ;)) (goto_statement "goto LAB_0006b9dc;" goto statement_identifier ;) })) (expression_statement "get_tty_state();" (call_expression "get_tty_state()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar8 = *(int *)(pcVar4 + 0xd9a18);" (assignment_expression "iVar8 = *(int *)(pcVar4 + 0xd9a18)" identifier = (pointer_expression "*(int *)(pcVar4 + 0xd9a18)" * (cast_expression "(int *)(pcVar4 + 0xd9a18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd9a18)" ( (binary_expression "pcVar4 + 0xd9a18" identifier + number_literal) ))))) ;) (expression_statement "puVar24 = (undefined4 *)(iVar8 + -0x70d0);" (assignment_expression "puVar24 = (undefined4 *)(iVar8 + -0x70d0)" identifier = (cast_expression "(undefined4 *)(iVar8 + -0x70d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x70d0)" ( (binary_expression "iVar8 + -0x70d0" identifier + number_literal) )))) ;) (expression_statement "puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);" (assignment_expression "puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8)" ( (binary_expression "*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8" (pointer_expression "*(int *)(pcVar4 + 0xd8e2c)" * (cast_expression "(int *)(pcVar4 + 0xd8e2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e2c)" ( (binary_expression "pcVar4 + 0xd8e2c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar27 = puVar24;" (assignment_expression "puVar27 = puVar24" identifier = identifier) ;) (expression_statement "puVar9 = puVar21;" (assignment_expression "puVar9 = puVar21" identifier = identifier) ;) (do_statement "do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));" do (compound_statement "{\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      }" { (expression_statement "puVar7 = puVar27 + 4;" (assignment_expression "puVar7 = puVar27 + 4" identifier = (binary_expression "puVar27 + 4" identifier + number_literal)) ;) (expression_statement "puVar10 = puVar9 + 4;" (assignment_expression "puVar10 = puVar9 + 4" identifier = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "uVar16 = puVar27[1];" (assignment_expression "uVar16 = puVar27[1]" identifier = (subscript_expression "puVar27[1]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = puVar27[2];" (assignment_expression "uVar14 = puVar27[2]" identifier = (subscript_expression "puVar27[2]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar27[3];" (assignment_expression "uVar19 = puVar27[3]" identifier = (subscript_expression "puVar27[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar9 = *puVar27;" (assignment_expression "*puVar9 = *puVar27" (pointer_expression "*puVar9" * identifier) = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "puVar9[1] = uVar16;" (assignment_expression "puVar9[1] = uVar16" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[2] = uVar14;" (assignment_expression "puVar9[2] = uVar14" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[3] = uVar19;" (assignment_expression "puVar9[3] = uVar19" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27 = puVar7;" (assignment_expression "puVar27 = puVar7" identifier = identifier) ;) (expression_statement "puVar9 = puVar10;" (assignment_expression "puVar9 = puVar10" identifier = identifier) ;) }) while (parenthesized_expression "(puVar7 != (undefined4 *)(iVar8 + -0x70a0))" ( (binary_expression "puVar7 != (undefined4 *)(iVar8 + -0x70a0)" identifier != (cast_expression "(undefined4 *)(iVar8 + -0x70a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x70a0)" ( (binary_expression "iVar8 + -0x70a0" identifier + number_literal) )))) )) ;) (expression_statement "iVar8 = *piVar22;" (assignment_expression "iVar8 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "*puVar10 = *puVar7;" (assignment_expression "*puVar10 = *puVar7" (pointer_expression "*puVar10" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "iVar8 = *(int *)(iVar8 + iVar11);" (assignment_expression "iVar8 = *(int *)(iVar8 + iVar11)" identifier = (pointer_expression "*(int *)(iVar8 + iVar11)" * (cast_expression "(int *)(iVar8 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar11)" ( (binary_expression "iVar8 + iVar11" identifier + identifier) ))))) ;) (if_statement "if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }" if (parenthesized_expression "((*(uint *)(iVar8 + 0x10) & 4) == 0)" ( (binary_expression "(*(uint *)(iVar8 + 0x10) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar8 + 0x10) & 4)" ( (binary_expression "*(uint *)(iVar8 + 0x10) & 4" (pointer_expression "*(uint *)(iVar8 + 0x10)" * (cast_expression "(uint *)(iVar8 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar3 = *piVar22;\n      }" { (expression_statement "iVar3 = *piVar22;" (assignment_expression "iVar3 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) }) (else_clause "else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }" else (compound_statement "{\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }" { (labeled_statement "LAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);" statement_identifier : (expression_statement "give_terminal_to(*(undefined4 *)(iVar8 + 8),0);" (call_expression "give_terminal_to(*(undefined4 *)(iVar8 + 8),0)" identifier (argument_list "(*(undefined4 *)(iVar8 + 8),0)" ( (pointer_expression "*(undefined4 *)(iVar8 + 8)" * (cast_expression "(undefined4 *)(iVar8 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) , number_literal ))) ;)) (if_statement "if (iVar3 == 1) goto LAB_0006bbc8;" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0006bbc8;" goto statement_identifier ;)) (expression_statement "iVar3 = *piVar22;" (assignment_expression "iVar3 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) }))) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xdad38);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xdad38)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xdad38)" * (cast_expression "(code **)(pcVar4 + 0xdad38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdad38)" ( (binary_expression "pcVar4 + 0xdad38" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(iVar3 + iVar11);" (assignment_expression "iVar3 = *(int *)(iVar3 + iVar11)" identifier = (pointer_expression "*(int *)(iVar3 + iVar11)" * (cast_expression "(int *)(iVar3 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + iVar11)" ( (binary_expression "iVar3 + iVar11" identifier + identifier) ))))) ;) (expression_statement "*(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;" (assignment_expression "*(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2" (pointer_expression "*(uint *)(iVar3 + 0x10)" * (cast_expression "(uint *)(iVar3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar3 + 0x10) | 2" (pointer_expression "*(uint *)(iVar3 + 0x10)" * (cast_expression "(uint *)(iVar3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "(*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);" (call_expression "(*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(*(undefined4 *)(iVar3 + 8),0x19)" ( (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) , number_literal ))) ;) }))) (labeled_statement "LAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);" statement_identifier : (expression_statement "iVar3 = FUN_00065a6c(piVar29);" (assignment_expression "iVar3 = FUN_00065a6c(piVar29)" identifier = (call_expression "FUN_00065a6c(piVar29)" identifier (argument_list "(piVar29)" ( identifier )))) ;)) (expression_statement "uVar19 = *(undefined4 *)(iVar3 + 4);" (assignment_expression "uVar19 = *(undefined4 *)(iVar3 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + 4)" * (cast_expression "(undefined4 *)(iVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);" (call_expression "(**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdadd8))" ( (pointer_expression "**(code **)(pcVar4 + 0xdadd8)" * (pointer_expression "*(code **)(pcVar4 + 0xdadd8)" * (cast_expression "(code **)(pcVar4 + 0xdadd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdadd8)" ( (binary_expression "pcVar4 + 0xdadd8" identifier + number_literal) ))))) )) (argument_list "(3,auStack_35c,0)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "puVar20 = (undefined1 *)wait_for(uVar19);" (assignment_expression "puVar20 = (undefined1 *)wait_for(uVar19)" identifier = (cast_expression "(undefined1 *)wait_for(uVar19)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "wait_for(uVar19)" identifier (argument_list "(uVar19)" ( identifier ))))) ;) (expression_statement "puVar27 = puVar21;" (assignment_expression "puVar27 = puVar21" identifier = identifier) ;) (do_statement "do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);" do (compound_statement "{\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    }" { (expression_statement "puVar7 = puVar27 + 4;" (assignment_expression "puVar7 = puVar27 + 4" identifier = (binary_expression "puVar27 + 4" identifier + number_literal)) ;) (expression_statement "puVar9 = puVar24 + 4;" (assignment_expression "puVar9 = puVar24 + 4" identifier = (binary_expression "puVar24 + 4" identifier + number_literal)) ;) (expression_statement "uVar16 = puVar27[1];" (assignment_expression "uVar16 = puVar27[1]" identifier = (subscript_expression "puVar27[1]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = puVar27[2];" (assignment_expression "uVar14 = puVar27[2]" identifier = (subscript_expression "puVar27[2]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar27[3];" (assignment_expression "uVar19 = puVar27[3]" identifier = (subscript_expression "puVar27[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar24 = *puVar27;" (assignment_expression "*puVar24 = *puVar27" (pointer_expression "*puVar24" * identifier) = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "puVar24[1] = uVar16;" (assignment_expression "puVar24[1] = uVar16" (subscript_expression "puVar24[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar24[2] = uVar14;" (assignment_expression "puVar24[2] = uVar14" (subscript_expression "puVar24[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar24[3] = uVar19;" (assignment_expression "puVar24[3] = uVar19" (subscript_expression "puVar24[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar24 = puVar9;" (assignment_expression "puVar24 = puVar9" identifier = identifier) ;) (expression_statement "puVar27 = puVar7;" (assignment_expression "puVar27 = puVar7" identifier = identifier) ;) }) while (parenthesized_expression "(puVar7 != puVar21 + 0xc)" ( (binary_expression "puVar7 != puVar21 + 0xc" identifier != (binary_expression "puVar21 + 0xc" identifier + number_literal)) )) ;) (expression_statement "*puVar9 = *puVar7;" (assignment_expression "*puVar9 = *puVar7" (pointer_expression "*puVar9" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "set_tty_state();" (call_expression "set_tty_state()" identifier (argument_list "()" ( ))) ;) }))))) (if_statement "if (iStack_2dc == *piVar17) {\n    return puVar20;\n  }" if (parenthesized_expression "(iStack_2dc == *piVar17)" ( (binary_expression "iStack_2dc == *piVar17" identifier == (pointer_expression "*piVar17" * identifier)) )) (compound_statement "{\n    return puVar20;\n  }" { (return_statement "return puVar20;" return identifier ;) })) (expression_statement "pcVar4 = *(code **)(pcVar4 + 0xdad4c);" (assignment_expression "pcVar4 = *(code **)(pcVar4 + 0xdad4c)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xdad4c)" * (cast_expression "(code **)(pcVar4 + 0xdad4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdad4c)" ( (binary_expression "pcVar4 + 0xdad4c" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = iStack_2dc;" (assignment_expression "iVar3 = iStack_2dc" identifier = identifier) ;) (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar31 = *(int **)(pcVar4 + 0xd8b10);" (assignment_expression "piVar31 = *(int **)(pcVar4 + 0xd8b10)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd8b10)" * (cast_expression "(int **)(pcVar4 + 0xd8b10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8b10)" ( (binary_expression "pcVar4 + 0xd8b10" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = (**(code **)(pcVar4 + 0xda6dc))();" (assignment_expression "iVar11 = (**(code **)(pcVar4 + 0xda6dc))()" identifier = (call_expression "(**(code **)(pcVar4 + 0xda6dc))()" (parenthesized_expression "(**(code **)(pcVar4 + 0xda6dc))" ( (pointer_expression "**(code **)(pcVar4 + 0xda6dc)" * (pointer_expression "*(code **)(pcVar4 + 0xda6dc)" * (cast_expression "(code **)(pcVar4 + 0xda6dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda6dc)" ( (binary_expression "pcVar4 + 0xda6dc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*piVar31 = iVar11;" (assignment_expression "*piVar31 = iVar11" (pointer_expression "*piVar31" * identifier) = identifier) ;) (if_statement "if (iVar11 == -1) {\n    uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5);\n    sys_error(uVar19);\n    (**(code **)(pcVar4 + 0xda620))(1);\nLAB_0006c3c8:\n    uVar19 = *puVar13;\nLAB_0006be24:\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);\n    iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19);\n    *piVar22 = iVar3;\n    if (iVar3 != -1) goto LAB_0006bf80;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 == 0) goto LAB_0006bf08;\nLAB_0006be5c:\n    iVar3 = *piVar22;\n  }\n  else {\n    piVar29 = *(int **)(pcVar4 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);\n    uVar19 = *puVar13;\n    if (iVar3 == 0 && *piVar29 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar22 = *(int **)(pcVar4 + 0xd93fc);\n    iVar3 = **(int **)(pcVar4 + 0xd87e4);\n    *piVar22 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }\n    else {\n      iVar3 = *piVar22;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar22 = iVar3;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar32)();\n    pcVar32 = *(code **)(pcVar4 + 0xda4fc);\n    *piVar31 = iVar3;\n    (*pcVar32)(0,iVar3);\n    iVar3 = *piVar22;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }\n  }" if (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) )) (compound_statement "{\n    uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5);\n    sys_error(uVar19);\n    (**(code **)(pcVar4 + 0xda620))(1);\nLAB_0006c3c8:\n    uVar19 = *puVar13;\nLAB_0006be24:\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);\n    iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19);\n    *piVar22 = iVar3;\n    if (iVar3 != -1) goto LAB_0006bf80;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 == 0) goto LAB_0006bf08;\nLAB_0006be5c:\n    iVar3 = *piVar22;\n  }" { (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda6fc))" ( (pointer_expression "**(code **)(pcVar4 + 0xda6fc)" * (pointer_expression "*(code **)(pcVar4 + 0xda6fc)" * (cast_expression "(code **)(pcVar4 + 0xda6fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda6fc)" ( (binary_expression "pcVar4 + 0xda6fc" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0xd87dc) + 0x7dec" (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" * (cast_expression "(int *)(pcVar4 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd87dc)" ( (binary_expression "pcVar4 + 0xd87dc" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "sys_error(uVar19);" (call_expression "sys_error(uVar19)" identifier (argument_list "(uVar19)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar4 + 0xda620))(1);" (call_expression "(**(code **)(pcVar4 + 0xda620))(1)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda620))" ( (pointer_expression "**(code **)(pcVar4 + 0xda620)" * (pointer_expression "*(code **)(pcVar4 + 0xda620)" * (cast_expression "(code **)(pcVar4 + 0xda620)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda620)" ( (binary_expression "pcVar4 + 0xda620" identifier + number_literal) ))))) )) (argument_list "(1)" ( number_literal ))) ;) (labeled_statement "LAB_0006c3c8:\n    uVar19 = *puVar13;" statement_identifier : (expression_statement "uVar19 = *puVar13;" (assignment_expression "uVar19 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;)) (labeled_statement "LAB_0006be24:\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);" statement_identifier : (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda58c))(uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda58c))" ( (pointer_expression "**(code **)(pcVar4 + 0xda58c)" * (pointer_expression "*(code **)(pcVar4 + 0xda58c)" * (cast_expression "(code **)(pcVar4 + 0xda58c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda58c)" ( (binary_expression "pcVar4 + 0xda58c" identifier + number_literal) ))))) )) (argument_list "(uVar19)" ( identifier )))) ;)) (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19);" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda780))(uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda780))" ( (pointer_expression "**(code **)(pcVar4 + 0xda780)" * (pointer_expression "*(code **)(pcVar4 + 0xda780)" * (cast_expression "(code **)(pcVar4 + 0xda780)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda780)" ( (binary_expression "pcVar4 + 0xda780" identifier + number_literal) ))))) )) (argument_list "(uVar19)" ( identifier )))) ;) (expression_statement "*piVar22 = iVar3;" (assignment_expression "*piVar22 = iVar3" (pointer_expression "*piVar22" * identifier) = identifier) ;) (if_statement "if (iVar3 != -1) goto LAB_0006bf80;" if (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0006bf80;" goto statement_identifier ;)) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda670);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda670)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda670)" * (cast_expression "(code **)(pcVar4 + 0xda670)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda670)" ( (binary_expression "pcVar4 + 0xda670" identifier + number_literal) ))))) ;) (if_statement "if (*piVar31 == 0) goto LAB_0006bf08;" if (parenthesized_expression "(*piVar31 == 0)" ( (binary_expression "*piVar31 == 0" (pointer_expression "*piVar31" * identifier) == number_literal) )) (goto_statement "goto LAB_0006bf08;" goto statement_identifier ;)) (labeled_statement "LAB_0006be5c:\n    iVar3 = *piVar22;" statement_identifier : (expression_statement "iVar3 = *piVar22;" (assignment_expression "iVar3 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;)) }) (else_clause "else {\n    piVar29 = *(int **)(pcVar4 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);\n    uVar19 = *puVar13;\n    if (iVar3 == 0 && *piVar29 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar22 = *(int **)(pcVar4 + 0xd93fc);\n    iVar3 = **(int **)(pcVar4 + 0xd87e4);\n    *piVar22 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }\n    else {\n      iVar3 = *piVar22;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar22 = iVar3;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar32)();\n    pcVar32 = *(code **)(pcVar4 + 0xda4fc);\n    *piVar31 = iVar3;\n    (*pcVar32)(0,iVar3);\n    iVar3 = *piVar22;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }\n  }" else (compound_statement "{\n    piVar29 = *(int **)(pcVar4 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);\n    uVar19 = *puVar13;\n    if (iVar3 == 0 && *piVar29 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar22 = *(int **)(pcVar4 + 0xd93fc);\n    iVar3 = **(int **)(pcVar4 + 0xd87e4);\n    *piVar22 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }\n    else {\n      iVar3 = *piVar22;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar22 = iVar3;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar32)();\n    pcVar32 = *(code **)(pcVar4 + 0xda4fc);\n    *piVar31 = iVar3;\n    (*pcVar32)(0,iVar3);\n    iVar3 = *piVar22;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }\n  }" { (expression_statement "piVar29 = *(int **)(pcVar4 + 0xd87f4);" (assignment_expression "piVar29 = *(int **)(pcVar4 + 0xd87f4)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd87f4)" * (cast_expression "(int **)(pcVar4 + 0xd87f4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd87f4)" ( (binary_expression "pcVar4 + 0xd87f4" identifier + number_literal) ))))) ;) (expression_statement "puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);" (assignment_expression "puVar13 = *(undefined4 **)(pcVar4 + 0xda77c)" identifier = (pointer_expression "*(undefined4 **)(pcVar4 + 0xda77c)" * (cast_expression "(undefined4 **)(pcVar4 + 0xda77c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda77c)" ( (binary_expression "pcVar4 + 0xda77c" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = *puVar13;" (assignment_expression "uVar19 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (if_statement "if (iVar3 == 0 && *piVar29 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }" if (parenthesized_expression "(iVar3 == 0 && *piVar29 == 0)" ( (binary_expression "iVar3 == 0 && *piVar29 == 0" (binary_expression "iVar3 == 0" identifier == number_literal) && (binary_expression "*piVar29 == 0" (pointer_expression "*piVar29" * identifier) == number_literal)) )) (compound_statement "{\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }" { (expression_statement "piVar23 = *(int **)(pcVar4 + 0xd8b0c);" (assignment_expression "piVar23 = *(int **)(pcVar4 + 0xd8b0c)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd8b0c)" * (cast_expression "(int **)(pcVar4 + 0xd8b0c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8b0c)" ( (binary_expression "pcVar4 + 0xd8b0c" identifier + number_literal) ))))) ;) (expression_statement "puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);" (assignment_expression "puVar27 = *(undefined4 **)(pcVar4 + 0xd9070)" identifier = (pointer_expression "*(undefined4 **)(pcVar4 + 0xd9070)" * (cast_expression "(undefined4 **)(pcVar4 + 0xd9070)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd9070)" ( (binary_expression "pcVar4 + 0xd9070" identifier + number_literal) ))))) ;) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda58c);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda58c)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda58c)" * (cast_expression "(code **)(pcVar4 + 0xda58c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda58c)" ( (binary_expression "pcVar4 + 0xda58c" identifier + number_literal) ))))) ;) (expression_statement "piVar22 = *(int **)(pcVar4 + 0xd93fc);" (assignment_expression "piVar22 = *(int **)(pcVar4 + 0xd93fc)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd93fc)" * (cast_expression "(int **)(pcVar4 + 0xd93fc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd93fc)" ( (binary_expression "pcVar4 + 0xd93fc" identifier + number_literal) ))))) ;) (expression_statement "*piVar23 = 0;" (assignment_expression "*piVar23 = 0" (pointer_expression "*piVar23" * identifier) = number_literal) ;) (expression_statement "*puVar27 = 0xffffffff;" (assignment_expression "*puVar27 = 0xffffffff" (pointer_expression "*puVar27" * identifier) = number_literal) ;) (expression_statement "iVar3 = (*pcVar32)(uVar19);" (assignment_expression "iVar3 = (*pcVar32)(uVar19)" identifier = (call_expression "(*pcVar32)(uVar19)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(uVar19)" ( identifier )))) ;) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda598);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda598)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda598)" * (cast_expression "(code **)(pcVar4 + 0xda598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda598)" ( (binary_expression "pcVar4 + 0xda598" identifier + number_literal) ))))) ;) (expression_statement "*piVar22 = iVar3;" (assignment_expression "*piVar22 = iVar3" (pointer_expression "*piVar22" * identifier) = identifier) ;) (expression_statement "iVar3 = (*pcVar32)(iVar3);" (assignment_expression "iVar3 = (*pcVar32)(iVar3)" identifier = (call_expression "(*pcVar32)(iVar3)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "iVar11 = *piVar31;" (assignment_expression "iVar11 = *piVar31" identifier = (pointer_expression "*piVar31" * identifier)) ;) (expression_statement "**(int **)(pcVar4 + 0xd9434) = iVar3;" (assignment_expression "**(int **)(pcVar4 + 0xd9434) = iVar3" (pointer_expression "**(int **)(pcVar4 + 0xd9434)" * (pointer_expression "*(int **)(pcVar4 + 0xd9434)" * (cast_expression "(int **)(pcVar4 + 0xd9434)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd9434)" ( (binary_expression "pcVar4 + 0xd9434" identifier + number_literal) ))))) = identifier) ;) (goto_statement "goto LAB_0006bff4;" goto statement_identifier ;) })) (expression_statement "piVar22 = *(int **)(pcVar4 + 0xd93fc);" (assignment_expression "piVar22 = *(int **)(pcVar4 + 0xd93fc)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd93fc)" * (cast_expression "(int **)(pcVar4 + 0xd93fc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd93fc)" ( (binary_expression "pcVar4 + 0xd93fc" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = **(int **)(pcVar4 + 0xd87e4);" (assignment_expression "iVar3 = **(int **)(pcVar4 + 0xd87e4)" identifier = (pointer_expression "**(int **)(pcVar4 + 0xd87e4)" * (pointer_expression "*(int **)(pcVar4 + 0xd87e4)" * (cast_expression "(int **)(pcVar4 + 0xd87e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd87e4)" ( (binary_expression "pcVar4 + 0xd87e4" identifier + number_literal) )))))) ;) (expression_statement "*piVar22 = -1;" (assignment_expression "*piVar22 = -1" (pointer_expression "*piVar22" * identifier) = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_0006be24;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0006be24;" goto statement_identifier ;)) (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda58c))();" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda58c))()" identifier = (call_expression "(**(code **)(pcVar4 + 0xda58c))()" (parenthesized_expression "(**(code **)(pcVar4 + 0xda58c))" ( (pointer_expression "**(code **)(pcVar4 + 0xda58c)" * (pointer_expression "*(code **)(pcVar4 + 0xda58c)" * (cast_expression "(code **)(pcVar4 + 0xda58c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda58c)" ( (binary_expression "pcVar4 + 0xda58c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda4b0))(uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda4b0))" ( (pointer_expression "**(code **)(pcVar4 + 0xda4b0)" * (pointer_expression "*(code **)(pcVar4 + 0xda4b0)" * (cast_expression "(code **)(pcVar4 + 0xda4b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda4b0)" ( (binary_expression "pcVar4 + 0xda4b0" identifier + number_literal) ))))) )) (argument_list "(uVar19)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }\n    else {\n      iVar3 = *piVar22;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }" { (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda5dc))" ( (pointer_expression "**(code **)(pcVar4 + 0xda5dc)" * (pointer_expression "*(code **)(pcVar4 + 0xda5dc)" * (cast_expression "(code **)(pcVar4 + 0xda5dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda5dc)" ( (binary_expression "pcVar4 + 0xda5dc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82)" ( (binary_expression "*(int *)(pcVar4 + 0xd87dc) + 0x62c0" (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" * (cast_expression "(int *)(pcVar4 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd87dc)" ( (binary_expression "pcVar4 + 0xd87dc" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "*piVar22 = iVar3;" (assignment_expression "*piVar22 = iVar3" (pointer_expression "*piVar22" * identifier) = identifier) ;) }) (else_clause "else {\n      iVar3 = *piVar22;\n    }" else (compound_statement "{\n      iVar3 = *piVar22;\n    }" { (expression_statement "iVar3 = *piVar22;" (assignment_expression "iVar3 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) }))) (if_statement "if (iVar3 == -1) goto LAB_0006c3c8;" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0006c3c8;" goto statement_identifier ;)) (labeled_statement "LAB_0006bf80:\n    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);" statement_identifier : (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff)" identifier = (call_expression "(**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff)" (parenthesized_expression "(**(code **)(pcVar4 + 0xd8a0c))" ( (pointer_expression "**(code **)(pcVar4 + 0xd8a0c)" * (pointer_expression "*(code **)(pcVar4 + 0xd8a0c)" * (cast_expression "(code **)(pcVar4 + 0xd8a0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8a0c)" ( (binary_expression "pcVar4 + 0xd8a0c" identifier + number_literal) ))))) )) (argument_list "(iVar3,1,0xffffffff)" ( identifier , number_literal , number_literal )))) ;)) (expression_statement "*piVar22 = iVar3;" (assignment_expression "*piVar22 = iVar3" (pointer_expression "*piVar22" * identifier) = identifier) ;) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda670);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda670)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda670)" * (cast_expression "(code **)(pcVar4 + 0xda670)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda670)" ( (binary_expression "pcVar4 + 0xda670" identifier + number_literal) ))))) ;) (if_statement "if (*piVar31 != 0) goto LAB_0006be5c;" if (parenthesized_expression "(*piVar31 != 0)" ( (binary_expression "*piVar31 != 0" (pointer_expression "*piVar31" * identifier) != number_literal) )) (goto_statement "goto LAB_0006be5c;" goto statement_identifier ;)) (labeled_statement "LAB_0006bf08:\n    iVar3 = (*pcVar32)();" statement_identifier : (expression_statement "iVar3 = (*pcVar32)();" (assignment_expression "iVar3 = (*pcVar32)()" identifier = (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "()" ( )))) ;)) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda4fc);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda4fc)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda4fc)" * (cast_expression "(code **)(pcVar4 + 0xda4fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda4fc)" ( (binary_expression "pcVar4 + 0xda4fc" identifier + number_literal) ))))) ;) (expression_statement "*piVar31 = iVar3;" (assignment_expression "*piVar31 = iVar3" (pointer_expression "*piVar31" * identifier) = identifier) ;) (expression_statement "(*pcVar32)(0,iVar3);" (call_expression "(*pcVar32)(0,iVar3)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(0,iVar3)" ( number_literal , identifier ))) ;) (expression_statement "iVar3 = *piVar22;" (assignment_expression "iVar3 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (if_statement "if (iVar3 != -1) {\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }" if (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }" { (expression_statement "(**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);" (call_expression "(**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda73c))" ( (pointer_expression "**(code **)(pcVar4 + 0xda73c)" * (pointer_expression "*(code **)(pcVar4 + 0xda73c)" * (cast_expression "(code **)(pcVar4 + 0xda73c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda73c)" ( (binary_expression "pcVar4 + 0xda73c" identifier + number_literal) ))))) )) (argument_list "(iVar3,*piVar31)" ( identifier , (pointer_expression "*piVar31" * identifier) ))) ;) (goto_statement "goto LAB_0006be5c;" goto statement_identifier ;) })) }))) (expression_statement "iVar11 = 0x12;" (assignment_expression "iVar11 = 0x12" identifier = number_literal) ;) (expression_statement "piVar25 = *(int **)(pcVar4 + 0xd9434);" (assignment_expression "piVar25 = *(int **)(pcVar4 + 0xd9434)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd9434)" * (cast_expression "(int **)(pcVar4 + 0xd9434)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd9434)" ( (binary_expression "pcVar4 + 0xd9434" identifier + number_literal) ))))) ;) (expression_statement "piVar23 = *(int **)(pcVar4 + 0xd8a98);" (assignment_expression "piVar23 = *(int **)(pcVar4 + 0xd8a98)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd8a98)" * (cast_expression "(int **)(pcVar4 + 0xd8a98)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8a98)" ( (binary_expression "pcVar4 + 0xd8a98" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n    iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3);\n    *piVar25 = iVar3;\n    if (iVar3 == -1) break;\n    if (*piVar31 == iVar3) {\n      iVar8 = -1;\n      goto LAB_0006c118;\n    }\n    pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    if (*piVar23 != 0) {\n      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);\n      pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    }\n    iVar11 = iVar11 + -1;\n    uVar19 = (*pcVar32)(0x1a,0);\n    (**(code **)(pcVar4 + 0xda61c))(0,0x1a);\n    (**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19);\n    if (iVar11 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);\n      sys_error(uVar19);\n      iVar3 = *piVar25;\n      iVar11 = *piVar31;\n      *piVar23 = 0;\n      **(int **)(pcVar4 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }\n    iVar3 = *piVar22;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3);\n    *piVar25 = iVar3;\n    if (iVar3 == -1) break;\n    if (*piVar31 == iVar3) {\n      iVar8 = -1;\n      goto LAB_0006c118;\n    }\n    pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    if (*piVar23 != 0) {\n      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);\n      pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    }\n    iVar11 = iVar11 + -1;\n    uVar19 = (*pcVar32)(0x1a,0);\n    (**(code **)(pcVar4 + 0xda61c))(0,0x1a);\n    (**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19);\n    if (iVar11 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);\n      sys_error(uVar19);\n      iVar3 = *piVar25;\n      iVar11 = *piVar31;\n      *piVar23 = 0;\n      **(int **)(pcVar4 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }\n    iVar3 = *piVar22;\n  }" { (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3);" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda598))(iVar3)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda598))" ( (pointer_expression "**(code **)(pcVar4 + 0xda598)" * (pointer_expression "*(code **)(pcVar4 + 0xda598)" * (cast_expression "(code **)(pcVar4 + 0xda598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda598)" ( (binary_expression "pcVar4 + 0xda598" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "*piVar25 = iVar3;" (assignment_expression "*piVar25 = iVar3" (pointer_expression "*piVar25" * identifier) = identifier) ;) (if_statement "if (iVar3 == -1) break;" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (*piVar31 == iVar3) {\n      iVar8 = -1;\n      goto LAB_0006c118;\n    }" if (parenthesized_expression "(*piVar31 == iVar3)" ( (binary_expression "*piVar31 == iVar3" (pointer_expression "*piVar31" * identifier) == identifier) )) (compound_statement "{\n      iVar8 = -1;\n      goto LAB_0006c118;\n    }" { (expression_statement "iVar8 = -1;" (assignment_expression "iVar8 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_0006c118;" goto statement_identifier ;) })) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xd8aac);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xd8aac)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xd8aac)" * (cast_expression "(code **)(pcVar4 + 0xd8aac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8aac)" ( (binary_expression "pcVar4 + 0xd8aac" identifier + number_literal) ))))) ;) (if_statement "if (*piVar23 != 0) {\n      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);\n      pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    }" if (parenthesized_expression "(*piVar23 != 0)" ( (binary_expression "*piVar23 != 0" (pointer_expression "*piVar23" * identifier) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);\n      pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    }" { (expression_statement "(**(code **)(pcVar4 + 0xd8a9c))(*piVar23);" (call_expression "(**(code **)(pcVar4 + 0xd8a9c))(*piVar23)" (parenthesized_expression "(**(code **)(pcVar4 + 0xd8a9c))" ( (pointer_expression "**(code **)(pcVar4 + 0xd8a9c)" * (pointer_expression "*(code **)(pcVar4 + 0xd8a9c)" * (cast_expression "(code **)(pcVar4 + 0xd8a9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8a9c)" ( (binary_expression "pcVar4 + 0xd8a9c" identifier + number_literal) ))))) )) (argument_list "(*piVar23)" ( (pointer_expression "*piVar23" * identifier) ))) ;) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xd8aac);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xd8aac)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xd8aac)" * (cast_expression "(code **)(pcVar4 + 0xd8aac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8aac)" ( (binary_expression "pcVar4 + 0xd8aac" identifier + number_literal) ))))) ;) })) (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" identifier = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (expression_statement "uVar19 = (*pcVar32)(0x1a,0);" (assignment_expression "uVar19 = (*pcVar32)(0x1a,0)" identifier = (call_expression "(*pcVar32)(0x1a,0)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(0x1a,0)" ( number_literal , number_literal )))) ;) (expression_statement "(**(code **)(pcVar4 + 0xda61c))(0,0x1a);" (call_expression "(**(code **)(pcVar4 + 0xda61c))(0,0x1a)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda61c))" ( (pointer_expression "**(code **)(pcVar4 + 0xda61c)" * (pointer_expression "*(code **)(pcVar4 + 0xda61c)" * (cast_expression "(code **)(pcVar4 + 0xda61c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda61c)" ( (binary_expression "pcVar4 + 0xda61c" identifier + number_literal) ))))) )) (argument_list "(0,0x1a)" ( number_literal , number_literal ))) ;) (expression_statement "(**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19);" (call_expression "(**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xd8aac))" ( (pointer_expression "**(code **)(pcVar4 + 0xd8aac)" * (pointer_expression "*(code **)(pcVar4 + 0xd8aac)" * (cast_expression "(code **)(pcVar4 + 0xd8aac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8aac)" ( (binary_expression "pcVar4 + 0xd8aac" identifier + number_literal) ))))) )) (argument_list "(0x1a,uVar19)" ( number_literal , identifier ))) ;) (if_statement "if (iVar11 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);\n      sys_error(uVar19);\n      iVar3 = *piVar25;\n      iVar11 = *piVar31;\n      *piVar23 = 0;\n      **(int **)(pcVar4 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);\n      sys_error(uVar19);\n      iVar3 = *piVar25;\n      iVar11 = *piVar31;\n      *piVar23 = 0;\n      **(int **)(pcVar4 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }" { (expression_statement "piVar23 = *(int **)(pcVar4 + 0xd8b0c);" (assignment_expression "piVar23 = *(int **)(pcVar4 + 0xd8b0c)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd8b0c)" * (cast_expression "(int **)(pcVar4 + 0xd8b0c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8b0c)" ( (binary_expression "pcVar4 + 0xd8b0c" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda6fc))" ( (pointer_expression "**(code **)(pcVar4 + 0xda6fc)" * (pointer_expression "*(code **)(pcVar4 + 0xda6fc)" * (cast_expression "(code **)(pcVar4 + 0xda6fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda6fc)" ( (binary_expression "pcVar4 + 0xda6fc" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0xd87dc) + 0x7e14" (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" * (cast_expression "(int *)(pcVar4 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd87dc)" ( (binary_expression "pcVar4 + 0xd87dc" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "sys_error(uVar19);" (call_expression "sys_error(uVar19)" identifier (argument_list "(uVar19)" ( identifier ))) ;) (expression_statement "iVar3 = *piVar25;" (assignment_expression "iVar3 = *piVar25" identifier = (pointer_expression "*piVar25" * identifier)) ;) (expression_statement "iVar11 = *piVar31;" (assignment_expression "iVar11 = *piVar31" identifier = (pointer_expression "*piVar31" * identifier)) ;) (expression_statement "*piVar23 = 0;" (assignment_expression "*piVar23 = 0" (pointer_expression "*piVar23" * identifier) = number_literal) ;) (expression_statement "**(int **)(pcVar4 + 0xd9070) = iVar3;" (assignment_expression "**(int **)(pcVar4 + 0xd9070) = iVar3" (pointer_expression "**(int **)(pcVar4 + 0xd9070)" * (pointer_expression "*(int **)(pcVar4 + 0xd9070)" * (cast_expression "(int **)(pcVar4 + 0xd9070)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd9070)" ( (binary_expression "pcVar4 + 0xd9070" identifier + number_literal) ))))) = identifier) ;) (goto_statement "goto LAB_0006bff4;" goto statement_identifier ;) })) (expression_statement "iVar3 = *piVar22;" (assignment_expression "iVar3 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) })) (expression_statement "piVar23 = (int *)(**(code **)(pcVar4 + 0xda5a0))();" (assignment_expression "piVar23 = (int *)(**(code **)(pcVar4 + 0xda5a0))()" identifier = (cast_expression "(int *)(**(code **)(pcVar4 + 0xda5a0))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar4 + 0xda5a0))()" (parenthesized_expression "(**(code **)(pcVar4 + 0xda5a0))" ( (pointer_expression "**(code **)(pcVar4 + 0xda5a0)" * (pointer_expression "*(code **)(pcVar4 + 0xda5a0)" * (cast_expression "(code **)(pcVar4 + 0xda5a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda5a0)" ( (binary_expression "pcVar4 + 0xda5a0" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar8 = *piVar23;" (assignment_expression "iVar8 = *piVar23" identifier = (pointer_expression "*piVar23" * identifier)) ;) (expression_statement "iVar3 = *piVar31;" (assignment_expression "iVar3 = *piVar31" identifier = (pointer_expression "*piVar31" * identifier)) ;) (labeled_statement "LAB_0006c118:\n  piVar28 = *(int **)(pcVar4 + 0xd9070);" statement_identifier : (expression_statement "piVar28 = *(int **)(pcVar4 + 0xd9070);" (assignment_expression "piVar28 = *(int **)(pcVar4 + 0xd9070)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd9070)" * (cast_expression "(int **)(pcVar4 + 0xd9070)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd9070)" ( (binary_expression "pcVar4 + 0xd9070" identifier + number_literal) ))))) ;)) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda670);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda670)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda670)" * (cast_expression "(code **)(pcVar4 + 0xda670)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda670)" ( (binary_expression "pcVar4 + 0xda670" identifier + number_literal) ))))) ;) (expression_statement "*piVar28 = iVar3;" (assignment_expression "*piVar28 = iVar3" (pointer_expression "*piVar28" * identifier) = identifier) ;) (expression_statement "iVar3 = (*pcVar32)();" (assignment_expression "iVar3 = (*pcVar32)()" identifier = (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar11 = *piVar28;" (assignment_expression "iVar11 = *piVar28" identifier = (pointer_expression "*piVar28" * identifier)) ;) (expression_statement "*piVar31 = iVar3;" (assignment_expression "*piVar31 = iVar3" (pointer_expression "*piVar31" * identifier) = identifier) ;) (if_statement "if (iVar3 == iVar11) {\nLAB_0006c138:\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    *piVar23 = 1;\nLAB_0006c144:\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\nLAB_0006c148:\n    iVar11 = (*pcVar32)(*piVar22);\n    if ((iVar11 == -1) || (*piVar31 != iVar11)) {\n      if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);\n      sys_error(uVar19,iVar11);\n      *piVar23 = 0;\n      goto LAB_0006c230;\n    }\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n    if (*piVar23 != 0) {\n      iVar3 = *piVar25;\n      goto LAB_0006bff4;\n    }\n  }\n  else {\n    iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    iVar11 = *piVar31;\n    iVar3 = *piVar28;\n    *piVar23 = 1;\n    if (iVar11 == iVar3) goto LAB_0006c144;\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\n    if (*piVar25 == iVar11) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar11,0);\n    if (iVar3 < 0) {\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }\n    else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n  }" if (parenthesized_expression "(iVar3 == iVar11)" ( (binary_expression "iVar3 == iVar11" identifier == identifier) )) (compound_statement "{\nLAB_0006c138:\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    *piVar23 = 1;\nLAB_0006c144:\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\nLAB_0006c148:\n    iVar11 = (*pcVar32)(*piVar22);\n    if ((iVar11 == -1) || (*piVar31 != iVar11)) {\n      if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);\n      sys_error(uVar19,iVar11);\n      *piVar23 = 0;\n      goto LAB_0006c230;\n    }\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n    if (*piVar23 != 0) {\n      iVar3 = *piVar25;\n      goto LAB_0006bff4;\n    }\n  }" { (labeled_statement "LAB_0006c138:\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);" statement_identifier : (expression_statement "piVar23 = *(int **)(pcVar4 + 0xd8b0c);" (assignment_expression "piVar23 = *(int **)(pcVar4 + 0xd8b0c)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd8b0c)" * (cast_expression "(int **)(pcVar4 + 0xd8b0c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8b0c)" ( (binary_expression "pcVar4 + 0xd8b0c" identifier + number_literal) ))))) ;)) (expression_statement "*piVar23 = 1;" (assignment_expression "*piVar23 = 1" (pointer_expression "*piVar23" * identifier) = number_literal) ;) (labeled_statement "LAB_0006c144:\n    pcVar32 = *(code **)(pcVar4 + 0xda598);" statement_identifier : (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda598);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda598)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda598)" * (cast_expression "(code **)(pcVar4 + 0xda598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda598)" ( (binary_expression "pcVar4 + 0xda598" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0006c148:\n    iVar11 = (*pcVar32)(*piVar22);" statement_identifier : (expression_statement "iVar11 = (*pcVar32)(*piVar22);" (assignment_expression "iVar11 = (*pcVar32)(*piVar22)" identifier = (call_expression "(*pcVar32)(*piVar22)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(*piVar22)" ( (pointer_expression "*piVar22" * identifier) )))) ;)) (if_statement "if ((iVar11 == -1) || (*piVar31 != iVar11)) {\n      if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);\n      sys_error(uVar19,iVar11);\n      *piVar23 = 0;\n      goto LAB_0006c230;\n    }" if (parenthesized_expression "((iVar11 == -1) || (*piVar31 != iVar11))" ( (binary_expression "(iVar11 == -1) || (*piVar31 != iVar11)" (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) )) || (parenthesized_expression "(*piVar31 != iVar11)" ( (binary_expression "*piVar31 != iVar11" (pointer_expression "*piVar31" * identifier) != identifier) ))) )) (compound_statement "{\n      if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);\n      sys_error(uVar19,iVar11);\n      *piVar23 = 0;\n      goto LAB_0006c230;\n    }" { (if_statement "if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }" if (parenthesized_expression "(iVar8 != -1)" ( (binary_expression "iVar8 != -1" identifier != number_literal) )) (compound_statement "{\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }" { (expression_statement "piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();" (assignment_expression "piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))()" identifier = (cast_expression "(int *)(**(code **)(pcVar4 + 0xda5a0))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar4 + 0xda5a0))()" (parenthesized_expression "(**(code **)(pcVar4 + 0xda5a0))" ( (pointer_expression "**(code **)(pcVar4 + 0xda5a0)" * (pointer_expression "*(code **)(pcVar4 + 0xda5a0)" * (cast_expression "(code **)(pcVar4 + 0xda5a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda5a0)" ( (binary_expression "pcVar4 + 0xda5a0" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*piVar28 = iVar8;" (assignment_expression "*piVar28 = iVar8" (pointer_expression "*piVar28" * identifier) = identifier) ;) })) (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda6fc))" ( (pointer_expression "**(code **)(pcVar4 + 0xda6fc)" * (pointer_expression "*(code **)(pcVar4 + 0xda6fc)" * (cast_expression "(code **)(pcVar4 + 0xda6fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda6fc)" ( (binary_expression "pcVar4 + 0xda6fc" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0xd87dc) + 0x7e6c" (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" * (cast_expression "(int *)(pcVar4 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd87dc)" ( (binary_expression "pcVar4 + 0xd87dc" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "sys_error(uVar19,iVar11);" (call_expression "sys_error(uVar19,iVar11)" identifier (argument_list "(uVar19,iVar11)" ( identifier , identifier ))) ;) (expression_statement "*piVar23 = 0;" (assignment_expression "*piVar23 = 0" (pointer_expression "*piVar23" * identifier) = number_literal) ;) (goto_statement "goto LAB_0006c230;" goto statement_identifier ;) })) (expression_statement "iVar3 = *(int *)(pcVar4 + 0xd87dc);" (assignment_expression "iVar3 = *(int *)(pcVar4 + 0xd87dc)" identifier = (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" * (cast_expression "(int *)(pcVar4 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd87dc)" ( (binary_expression "pcVar4 + 0xd87dc" identifier + number_literal) ))))) ;) (if_statement "if (*piVar23 != 0) {\n      iVar3 = *piVar25;\n      goto LAB_0006bff4;\n    }" if (parenthesized_expression "(*piVar23 != 0)" ( (binary_expression "*piVar23 != 0" (pointer_expression "*piVar23" * identifier) != number_literal) )) (compound_statement "{\n      iVar3 = *piVar25;\n      goto LAB_0006bff4;\n    }" { (expression_statement "iVar3 = *piVar25;" (assignment_expression "iVar3 = *piVar25" identifier = (pointer_expression "*piVar25" * identifier)) ;) (goto_statement "goto LAB_0006bff4;" goto statement_identifier ;) })) }) (else_clause "else {\n    iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    iVar11 = *piVar31;\n    iVar3 = *piVar28;\n    *piVar23 = 1;\n    if (iVar11 == iVar3) goto LAB_0006c144;\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\n    if (*piVar25 == iVar11) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar11,0);\n    if (iVar3 < 0) {\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }\n    else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n  }" else (compound_statement "{\n    iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    iVar11 = *piVar31;\n    iVar3 = *piVar28;\n    *piVar23 = 1;\n    if (iVar11 == iVar3) goto LAB_0006c144;\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\n    if (*piVar25 == iVar11) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar11,0);\n    if (iVar3 < 0) {\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }\n    else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n  }" { (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda4fc))(0,iVar3)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda4fc))" ( (pointer_expression "**(code **)(pcVar4 + 0xda4fc)" * (pointer_expression "*(code **)(pcVar4 + 0xda4fc)" * (cast_expression "(code **)(pcVar4 + 0xda4fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda4fc)" ( (binary_expression "pcVar4 + 0xda4fc" identifier + number_literal) ))))) )) (argument_list "(0,iVar3)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 < 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }" { (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda6fc))" ( (pointer_expression "**(code **)(pcVar4 + 0xda6fc)" * (pointer_expression "*(code **)(pcVar4 + 0xda6fc)" * (cast_expression "(code **)(pcVar4 + 0xda6fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda6fc)" ( (binary_expression "pcVar4 + 0xda6fc" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0xd87dc) + 0x7e4c" (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" * (cast_expression "(int *)(pcVar4 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd87dc)" ( (binary_expression "pcVar4 + 0xd87dc" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "sys_error(uVar19);" (call_expression "sys_error(uVar19)" identifier (argument_list "(uVar19)" ( identifier ))) ;) (expression_statement "*piVar31 = *piVar28;" (assignment_expression "*piVar31 = *piVar28" (pointer_expression "*piVar31" * identifier) = (pointer_expression "*piVar28" * identifier)) ;) (goto_statement "goto LAB_0006c138;" goto statement_identifier ;) })) (expression_statement "piVar23 = *(int **)(pcVar4 + 0xd8b0c);" (assignment_expression "piVar23 = *(int **)(pcVar4 + 0xd8b0c)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd8b0c)" * (cast_expression "(int **)(pcVar4 + 0xd8b0c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8b0c)" ( (binary_expression "pcVar4 + 0xd8b0c" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *piVar31;" (assignment_expression "iVar11 = *piVar31" identifier = (pointer_expression "*piVar31" * identifier)) ;) (expression_statement "iVar3 = *piVar28;" (assignment_expression "iVar3 = *piVar28" identifier = (pointer_expression "*piVar28" * identifier)) ;) (expression_statement "*piVar23 = 1;" (assignment_expression "*piVar23 = 1" (pointer_expression "*piVar23" * identifier) = number_literal) ;) (if_statement "if (iVar11 == iVar3) goto LAB_0006c144;" if (parenthesized_expression "(iVar11 == iVar3)" ( (binary_expression "iVar11 == iVar3" identifier == identifier) )) (goto_statement "goto LAB_0006c144;" goto statement_identifier ;)) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda598);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda598)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda598)" * (cast_expression "(code **)(pcVar4 + 0xda598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda598)" ( (binary_expression "pcVar4 + 0xda598" identifier + number_literal) ))))) ;) (if_statement "if (*piVar25 == iVar11) goto LAB_0006c148;" if (parenthesized_expression "(*piVar25 == iVar11)" ( (binary_expression "*piVar25 == iVar11" (pointer_expression "*piVar25" * identifier) == identifier) )) (goto_statement "goto LAB_0006c148;" goto statement_identifier ;)) (expression_statement "iVar3 = give_terminal_to(iVar11,0);" (assignment_expression "iVar3 = give_terminal_to(iVar11,0)" identifier = (call_expression "give_terminal_to(iVar11,0)" identifier (argument_list "(iVar11,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }\n    else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }" { (expression_statement "puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();" (assignment_expression "puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar4 + 0xda5a0))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar4 + 0xda5a0))()" (parenthesized_expression "(**(code **)(pcVar4 + 0xda5a0))" ( (pointer_expression "**(code **)(pcVar4 + 0xda5a0)" * (pointer_expression "*(code **)(pcVar4 + 0xda5a0)" * (cast_expression "(code **)(pcVar4 + 0xda5a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda5a0)" ( (binary_expression "pcVar4 + 0xda5a0" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar19 = *puVar27;" (assignment_expression "uVar19 = *puVar27" identifier = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "(**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);" (call_expression "(**(code **)(pcVar4 + 0xda4fc))(0,*piVar28)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda4fc))" ( (pointer_expression "**(code **)(pcVar4 + 0xda4fc)" * (pointer_expression "*(code **)(pcVar4 + 0xda4fc)" * (cast_expression "(code **)(pcVar4 + 0xda4fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda4fc)" ( (binary_expression "pcVar4 + 0xda4fc" identifier + number_literal) ))))) )) (argument_list "(0,*piVar28)" ( number_literal , (pointer_expression "*piVar28" * identifier) ))) ;) (expression_statement "iVar3 = *(int *)(pcVar4 + 0xd87dc);" (assignment_expression "iVar3 = *(int *)(pcVar4 + 0xd87dc)" identifier = (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" * (cast_expression "(int *)(pcVar4 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd87dc)" ( (binary_expression "pcVar4 + 0xd87dc" identifier + number_literal) ))))) ;) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda6fc);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda6fc)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda6fc)" * (cast_expression "(code **)(pcVar4 + 0xda6fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda6fc)" ( (binary_expression "pcVar4 + 0xda6fc" identifier + number_literal) ))))) ;) (expression_statement "*piVar31 = *piVar28;" (assignment_expression "*piVar31 = *piVar28" (pointer_expression "*piVar31" * identifier) = (pointer_expression "*piVar28" * identifier)) ;) (expression_statement "*puVar27 = uVar19;" (assignment_expression "*puVar27 = uVar19" (pointer_expression "*puVar27" * identifier) = identifier) ;) (expression_statement "uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);" (assignment_expression "uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5)" identifier = (call_expression "(*pcVar32)(0,iVar3 + 0x7e6c,5)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(0,iVar3 + 0x7e6c,5)" ( number_literal , (binary_expression "iVar3 + 0x7e6c" identifier + number_literal) , number_literal )))) ;) (expression_statement "sys_error(uVar19,*piVar31);" (call_expression "sys_error(uVar19,*piVar31)" identifier (argument_list "(uVar19,*piVar31)" ( identifier , (pointer_expression "*piVar31" * identifier) ))) ;) (expression_statement "*piVar23 = 0;" (assignment_expression "*piVar23 = 0" (pointer_expression "*piVar23" * identifier) = number_literal) ;) }) (else_clause "else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }" else (compound_statement "{\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }" { (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda598);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda598)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda598)" * (cast_expression "(code **)(pcVar4 + 0xda598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda598)" ( (binary_expression "pcVar4 + 0xda598" identifier + number_literal) ))))) ;) (if_statement "if (*piVar23 != 0) goto LAB_0006c148;" if (parenthesized_expression "(*piVar23 != 0)" ( (binary_expression "*piVar23 != 0" (pointer_expression "*piVar23" * identifier) != number_literal) )) (goto_statement "goto LAB_0006c148;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0006c230:\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);" statement_identifier : (expression_statement "iVar3 = *(int *)(pcVar4 + 0xd87dc);" (assignment_expression "iVar3 = *(int *)(pcVar4 + 0xd87dc)" identifier = (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" * (cast_expression "(int *)(pcVar4 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd87dc)" ( (binary_expression "pcVar4 + 0xd87dc" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,iVar3 + 0x7e94,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,iVar3 + 0x7e94,5)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda6fc))(0,iVar3 + 0x7e94,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda6fc))" ( (pointer_expression "**(code **)(pcVar4 + 0xda6fc)" * (pointer_expression "*(code **)(pcVar4 + 0xda6fc)" * (cast_expression "(code **)(pcVar4 + 0xda6fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda6fc)" ( (binary_expression "pcVar4 + 0xda6fc" identifier + number_literal) ))))) )) (argument_list "(0,iVar3 + 0x7e94,5)" ( number_literal , (binary_expression "iVar3 + 0x7e94" identifier + number_literal) , number_literal )))) ;) (expression_statement "internal_error(uVar19);" (call_expression "internal_error(uVar19)" identifier (argument_list "(uVar19)" ( identifier ))) ;) (expression_statement "iVar3 = *piVar25;" (assignment_expression "iVar3 = *piVar25" identifier = (pointer_expression "*piVar25" * identifier)) ;) (expression_statement "iVar11 = *piVar31;" (assignment_expression "iVar11 = *piVar31" identifier = (pointer_expression "*piVar31" * identifier)) ;) (labeled_statement "LAB_0006bff4:\n  pcVar32 = *(code **)(pcVar4 + 0xda58c);" statement_identifier : (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda58c);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda58c)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda58c)" * (cast_expression "(code **)(pcVar4 + 0xda58c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda58c)" ( (binary_expression "pcVar4 + 0xda58c" identifier + number_literal) ))))) ;)) (expression_statement "uVar19 = *puVar13;" (assignment_expression "uVar19 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "**(uint **)(pcVar4 + 0xd8954) = (uint)(iVar11 != iVar3);" (assignment_expression "**(uint **)(pcVar4 + 0xd8954) = (uint)(iVar11 != iVar3)" (pointer_expression "**(uint **)(pcVar4 + 0xd8954)" * (pointer_expression "*(uint **)(pcVar4 + 0xd8954)" * (cast_expression "(uint **)(pcVar4 + 0xd8954)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8954)" ( (binary_expression "pcVar4 + 0xd8954" identifier + number_literal) ))))) = (call_expression "(uint)(iVar11 != iVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar11 != iVar3)" ( (binary_expression "iVar11 != iVar3" identifier != identifier) )))) ;) (expression_statement "iVar3 = (*pcVar32)(uVar19);" (assignment_expression "iVar3 = (*pcVar32)(uVar19)" identifier = (call_expression "(*pcVar32)(uVar19)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(uVar19)" ( identifier )))) ;) (if_statement "if (iVar3 != *piVar22) {\n    (**(code **)(pcVar4 + 0xda540))(*piVar22,2,1);\n  }" if (parenthesized_expression "(iVar3 != *piVar22)" ( (binary_expression "iVar3 != *piVar22" identifier != (pointer_expression "*piVar22" * identifier)) )) (compound_statement "{\n    (**(code **)(pcVar4 + 0xda540))(*piVar22,2,1);\n  }" { (expression_statement "(**(code **)(pcVar4 + 0xda540))(*piVar22,2,1);" (call_expression "(**(code **)(pcVar4 + 0xda540))(*piVar22,2,1)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda540))" ( (pointer_expression "**(code **)(pcVar4 + 0xda540)" * (pointer_expression "*(code **)(pcVar4 + 0xda540)" * (cast_expression "(code **)(pcVar4 + 0xda540)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda540)" ( (binary_expression "pcVar4 + 0xda540" identifier + number_literal) ))))) )) (argument_list "(*piVar22,2,1)" ( (pointer_expression "*piVar22" * identifier) , number_literal , number_literal ))) ;) })) (expression_statement "(**(code **)(pcVar4 + 0xd8aac))(0x12,*(int *)(pcVar4 + 0xd942c) + -0x6fbc);" (call_expression "(**(code **)(pcVar4 + 0xd8aac))(0x12,*(int *)(pcVar4 + 0xd942c) + -0x6fbc)" (parenthesized_expression "(**(code **)(pcVar4 + 0xd8aac))" ( (pointer_expression "**(code **)(pcVar4 + 0xd8aac)" * (pointer_expression "*(code **)(pcVar4 + 0xd8aac)" * (cast_expression "(code **)(pcVar4 + 0xd8aac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8aac)" ( (binary_expression "pcVar4 + 0xd8aac" identifier + number_literal) ))))) )) (argument_list "(0x12,*(int *)(pcVar4 + 0xd942c) + -0x6fbc)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0xd942c) + -0x6fbc" (pointer_expression "*(int *)(pcVar4 + 0xd942c)" * (cast_expression "(int *)(pcVar4 + 0xd942c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd942c)" ( (binary_expression "pcVar4 + 0xd942c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar19 = 0x2b;" (assignment_expression "uVar19 = 0x2b" identifier = number_literal) ;) (if_statement "if (*piVar23 != 0) {\n    uVar19 = 0x2d;\n  }" if (parenthesized_expression "(*piVar23 != 0)" ( (binary_expression "*piVar23 != 0" (pointer_expression "*piVar23" * identifier) != number_literal) )) (compound_statement "{\n    uVar19 = 0x2d;\n  }" { (expression_statement "uVar19 = 0x2d;" (assignment_expression "uVar19 = 0x2d" identifier = number_literal) ;) })) (expression_statement "change_flag(0x6d,uVar19);" (call_expression "change_flag(0x6d,uVar19)" identifier (argument_list "(0x6d,uVar19)" ( number_literal , identifier ))) ;) (if_statement "if (*piVar29 != 0) {\n    get_tty_state();\n  }" if (parenthesized_expression "(*piVar29 != 0)" ( (binary_expression "*piVar29 != 0" (pointer_expression "*piVar29" * identifier) != number_literal) )) (compound_statement "{\n    get_tty_state();\n  }" { (expression_statement "get_tty_state();" (call_expression "get_tty_state()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar31 = *(int **)(pcVar4 + 0xd90bc);" (assignment_expression "piVar31 = *(int **)(pcVar4 + 0xd90bc)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd90bc)" * (cast_expression "(int **)(pcVar4 + 0xd90bc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd90bc)" ( (binary_expression "pcVar4 + 0xd90bc" identifier + number_literal) ))))) ;) (if_statement "if (-1 < *piVar31) {\n    return (undefined1 *)*piVar23;\n  }" if (parenthesized_expression "(-1 < *piVar31)" ( (binary_expression "-1 < *piVar31" number_literal < (pointer_expression "*piVar31" * identifier)) )) (compound_statement "{\n    return (undefined1 *)*piVar23;\n  }" { (return_statement "return (undefined1 *)*piVar23;" return (cast_expression "(undefined1 *)*piVar23" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar23" * identifier)) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xd93d8))();" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xd93d8))()" identifier = (call_expression "(**(code **)(pcVar4 + 0xd93d8))()" (parenthesized_expression "(**(code **)(pcVar4 + 0xd93d8))" ( (pointer_expression "**(code **)(pcVar4 + 0xd93d8)" * (pointer_expression "*(code **)(pcVar4 + 0xd93d8)" * (cast_expression "(code **)(pcVar4 + 0xd93d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd93d8)" ( (binary_expression "pcVar4 + 0xd93d8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 < 0) {\n    iVar3 = 0x20;\n  }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar3 = 0x20;\n  }" { (expression_statement "iVar3 = 0x20;" (assignment_expression "iVar3 = 0x20" identifier = number_literal) ;) })) (expression_statement "*piVar31 = iVar3;" (assignment_expression "*piVar31 = iVar3" (pointer_expression "*piVar31" * identifier) = identifier) ;) (return_statement "return (undefined1 *)*piVar23;" return (cast_expression "(undefined1 *)*piVar23" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar23" * identifier)) ;) (labeled_statement "LAB_0006b3b8:\n  puVar6 = (undefined1 *)job_exit_status(piVar31);" statement_identifier : (expression_statement "puVar6 = (undefined1 *)job_exit_status(piVar31);" (assignment_expression "puVar6 = (undefined1 *)job_exit_status(piVar31)" identifier = (cast_expression "(undefined1 *)job_exit_status(piVar31)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "job_exit_status(piVar31)" identifier (argument_list "(piVar31)" ( identifier ))))) ;)) (if_statement "if (((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0)) {\n    FUN_00066b6c(piVar31,0);\n  }" if (parenthesized_expression "(((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0))" ( (binary_expression "((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0)" (parenthesized_expression "((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0))" ( (binary_expression "(piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)" (parenthesized_expression "(piVar17 == (int *)0x0)" ( (binary_expression "piVar17 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)" ( (comma_expression "FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0" (call_expression "FUN_00065dcc()" identifier (argument_list "()" ( ))) , (binary_expression "*(int *)(puVar5 + 0x18) != 0" (pointer_expression "*(int *)(puVar5 + 0x18)" * (cast_expression "(int *)(puVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x18)" ( (binary_expression "puVar5 + 0x18" identifier + number_literal) )))) != number_literal)) ))) )) && (parenthesized_expression "(*(int *)(iVar3 + -0x705c) == 0)" ( (binary_expression "*(int *)(iVar3 + -0x705c) == 0" (pointer_expression "*(int *)(iVar3 + -0x705c)" * (cast_expression "(int *)(iVar3 + -0x705c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -0x705c)" ( (binary_expression "iVar3 + -0x705c" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    FUN_00066b6c(piVar31,0);\n  }" { (expression_statement "FUN_00066b6c(piVar31,0);" (call_expression "FUN_00066b6c(piVar31,0)" identifier (argument_list "(piVar31,0)" ( identifier , number_literal ))) ;) })) (expression_statement "(**(code **)(puStack_2a0 + -0x737c))();" (call_expression "(**(code **)(puStack_2a0 + -0x737c))()" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x737c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x737c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x737c)" * (cast_expression "(code **)(puStack_2a0 + -0x737c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x737c)" ( (binary_expression "puStack_2a0 + -0x737c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(3,puVar20,0)" ( number_literal , identifier , number_literal ))) ;) (goto_statement "goto LAB_0006b430;" goto statement_identifier ;) })))
(translation_unit "int wait_for_job(int job,int flags)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  PROCESS *pPVar4;\n  code *pcVar5;\n  int iVar6;\n  undefined1 *puVar7;\n  int *piVar8;\n  char *pcVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  sigset_t *block;\n  undefined4 *puVar13;\n  int iVar14;\n  int *piVar15;\n  int iVar16;\n  sigset_t *psVar17;\n  undefined4 uVar18;\n  pid_t pid;\n  int *piVar19;\n  int *piVar20;\n  int *piVar21;\n  int iVar22;\n  undefined4 *puVar23;\n  int *piVar24;\n  int *piVar25;\n  undefined *puVar26;\n  int *piVar27;\n  code *pcVar28;\n  char *pcStack_3e4;\n  undefined1 auStack_3dc [128];\n  undefined1 auStack_35c [128];\n  int iStack_2dc;\n  sigset_t *psStack_2d8;\n  undefined1 *puStack_2d4;\n  int iStack_2d0;\n  int *piStack_2cc;\n  int *piStack_2c8;\n  undefined4 *puStack_2c4;\n  int *piStack_2c0;\n  int iStack_2bc;\n  int *piStack_2b8;\n  code *pcStack_2b4;\n  undefined *puStack_2a0;\n  code *pcStack_294;\n  undefined1 auStack_28c [128];\n  sigset_t sStack_20c;\n  int *piStack_18c;\n  sigset_t *psStack_188;\n  sigset_t *psStack_184;\n  int iStack_180;\n  undefined4 uStack_17c;\n  int *piStack_178;\n  int iStack_174;\n  int *piStack_170;\n  int *piStack_16c;\n  undefined *puStack_168;\n  code *pcStack_164;\n  sigset_t set;\n  sigset_t oset;\n  \n  puVar26 = PTR___stack_chk_guard_001464dc;\n  piVar27 = (int *)PTR_jobs_00144e5c;\n  psVar17 = &set;\n  piVar25 = (int *)(job * 4);\n  iVar3 = *(int *)PTR___stack_chk_guard_001464dc;\n  (*(code *)PTR_sigemptyset_001462d4)(psVar17);\n  (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(&oset);\n  block = psVar17;\n  (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n  if (*(int *)(*(int *)(*piVar27 + (int)piVar25) + 0xc) == 2) {\n    pcVar9 = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);\n    block = (sigset_t *)(job + 1);\n    internal_warning(pcVar9);\n  }\n  puVar2 = PTR_js_00144e58;\n  puVar1 = PTR_wait_for_00144d9c;\n  piVar20 = (int *)0xffffffff;\n  piVar21 = (int *)(flags & 2);\n  pPVar4 = find_last_proc(job,(int)block);\n  piVar24 = (int *)pPVar4->pid;\n  (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);\n  pcVar5 = (code *)(PTR_LAB_00144ff0 + 0x4e60);\n  do {\n    iVar6 = (*(code *)puVar1)(piVar24);\n    if (((iVar6 == -1) &&\n        (piVar15 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar15 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar5)();\n    }\n    if (piVar21 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(psVar17);\n      (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(&oset);\n      (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n      if (job == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }\n    (*(code *)PTR_sigemptyset_001462d4)();\n    (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n    (*(code *)PTR_sigemptyset_001462d4)(&oset);\n    (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n    if (job == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);\n      (*(code *)PTR_sigemptyset_001462d4)(psVar17);\n      (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(&oset);\n      (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n      goto LAB_0006b0f4;\n    }\n    if (*(int *)(*piVar27 + (int)piVar25) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);\n      break;\n    }\n    iVar10 = *(int *)(*(int *)(*piVar27 + (int)piVar25) + 0xc);\n    (*(code *)PTR_sigprocmask_00146514)(3,&oset);\n  } while (iVar10 != 4);\n  (*(code *)PTR_sigemptyset_001462d4)(psVar17);\n  (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(&oset);\n  (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\nLAB_0006b0d0:\n  piVar25 = (int *)(*piVar27 + (int)piVar25);\n  iVar10 = *piVar25;\n  if ((iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4)) {\n    *(uint *)(iVar10 + 0x10) = *(uint *)(iVar10 + 0x10) | 2;\n  }\nLAB_0006b0f4:\n  (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);\n  if (iVar3 == *(int *)puVar26) {\n    return iVar6;\n  }\n  pcVar5 = wait_for_any_job;\n  puVar26 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  puStack_2a0 = puVar26 + 0xe1290;\n  iVar3 = *(int *)(puVar26 + 0xd9ea4);\n  puVar23 = *(undefined4 **)(puVar26 + 0xdb22c);\n  puStack_168 = (undefined *)piVar27;\n  uStack_17c = 0xffffffff;\n  piStack_18c = (int *)*puVar23;\n  psStack_188 = psVar17;\n  psStack_184 = &oset;\n  iStack_180 = iVar6;\n  piStack_178 = piVar21;\n  iStack_174 = job;\n  piStack_170 = piVar24;\n  piStack_16c = piVar25;\n  pcStack_164 = pcVar5;\n  if (*(int *)(iVar3 + -0x705c) == 0) {\n    puVar7 = auStack_28c;\n    iVar6 = *(int *)(puVar26 + 0xd9ba8);\n    psVar17 = &sStack_20c;\n    (**(code **)(puVar26 + 0xdb024))(puVar7);\n    (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);\n    (**(code **)(puStack_2a0 + -0x626c))(psVar17);\n    (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);\n    if (0 < (int)*(int **)(iVar6 + 0x18)) {\n      piVar27 = (int *)0x0;\n      piVar15 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar25 = piVar15;\n      do {\n        iVar10 = *piVar25;\n        if (((iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4)) &&\n           ((*(uint *)(iVar10 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar27 = (int *)((int)piVar27 + 1);\n        piVar25 = piVar25 + 1;\n      } while (piVar27 != *(int **)(iVar6 + 0x18));\n    }\n    piVar21 = *(int **)(puStack_2a0 + -0x76e4);\n    piVar20 = *(int **)(puStack_2a0 + -0x7d0c);\n    (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n    piVar27 = *(int **)(puStack_2a0 + -0x7550);\n    piVar24 = *(int **)(puStack_2a0 + -0x7d04);\n    pcStack_294 = (code *)(piVar27 + 0x1398);\n    do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar7);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(psVar17);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);\n      iVar10 = *(int *)(iVar6 + 0x18);\n      if (iVar10 < 1) {\n        pcVar5 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar10 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n          puVar7 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar25 = (int *)*piVar21;\n        iVar12 = 0;\n        while (((iVar22 = *piVar25, iVar22 == 0 || (*(int *)(iVar22 + 0xc) != 1)) ||\n               ((*(uint *)(iVar22 + 0x10) & 1) != 0))) {\n          iVar12 = iVar12 + 1;\n          piVar25 = piVar25 + 1;\n          if (iVar12 == iVar10) goto LAB_0006b680;\n        }\n        pcVar5 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar5)(3,psVar17,0);\n      if (*piVar20 == 0) {\n        pcVar5 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar24 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar5)();\n        if (*piVar20 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar20);\n        if (*piVar24 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar20 != 0) {\nLAB_0006b708:\n          (*pcVar5)(*piVar20);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar5 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar25 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar26 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar27 = (int *)(*pcVar5)();\n      *piVar27 = 0;\n      iVar10 = wait_for(-1);\n      if (iVar10 == -1) {\n        pcVar5 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar27 == 10) && (*(int *)(iVar6 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar5)(puVar7);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(psVar17);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);\n      if (0 < (int)*(int **)(iVar6 + 0x18)) {\n        piVar15 = (int *)*piVar21;\n        piVar27 = (int *)0x0;\n        piVar25 = piVar15;\n        do {\n          if ((*piVar25 != 0) && (*(int *)(*piVar25 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar27 = (int *)((int)piVar27 + 1);\n          piVar25 = piVar25 + 1;\n        } while (*(int **)(iVar6 + 0x18) != piVar27);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n    } while( true );\n  }\n  puVar7 = (undefined1 *)0xffffffff;\nLAB_0006b430:\n  puVar26 = puStack_2a0;\n  if (piStack_18c == (int *)*puVar23) {\n    return (int)puVar7;\n  }\n  piVar25 = piStack_18c;\n  (**(code **)(puStack_2a0 + -0x60b8))();\nLAB_0006b730:\n  pcVar5 = *(code **)(puVar26 + -0x625c);\n  pcVar28 = start_job;\n  puVar13 = (undefined4 *)0x1;\n  (*pcVar5)();\n  piVar15 = *(int **)(pcVar5 + 0xdada0);\n  iVar10 = (int)piVar25 * 4;\n  iStack_2dc = *piVar15;\n  piVar19 = *(int **)(pcVar5 + 0xd9720);\n  psStack_2d8 = psVar17;\n  puStack_2d4 = puVar7;\n  iStack_2d0 = iVar6;\n  piStack_2cc = piVar20;\n  piStack_2c8 = piVar21;\n  puStack_2c4 = puVar23;\n  piStack_2c0 = piVar24;\n  iStack_2bc = iVar3;\n  piStack_2b8 = piVar27;\n  pcStack_2b4 = pcVar28;\n  (**(code **)(pcVar5 + 0xdab98))(auStack_3dc);\n  (**(code **)(pcVar5 + 0xdac28))(auStack_3dc,0x12);\n  (**(code **)(pcVar5 + 0xdab98))(auStack_35c);\n  (**(code **)(pcVar5 + 0xdadd8))(1,auStack_3dc,auStack_35c);\n  iVar3 = *(int *)(*(int *)(*piVar19 + iVar10) + 0xc);\n  if (iVar3 == 4) {\n    iVar3 = -1;\n    pcVar9 = (char *)(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7d9c,5);\n    internal_error(pcVar9,**(undefined4 **)(pcVar5 + 0xd8fec));\n    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      pcStack_3e4 = current_working_directory();\n      iVar6 = *(int *)(*piVar19 + iVar10);\n      iVar12 = **(int **)(pcVar5 + 0xd8e50);\n      *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x2c) == piVar25) {\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x30) != piVar25) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7b04;\n      }\n      piVar27 = *(int **)(iVar6 + 4);\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7dd8,(int)piVar25 + 1,iVar12)\n      ;\n      piVar20 = *(int **)(*(int *)(*piVar19 + iVar10) + 4);\n      goto LAB_0006b898;\n    }\n    pcVar9 = (char *)(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7db4,5);\n    internal_error(pcVar9,**(undefined4 **)(pcVar5 + 0xd8fec),(int)piVar25 + 1);\nLAB_0006b9dc:\n    iVar3 = 0;\n    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    pcStack_3e4 = current_working_directory();\n    *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n         *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffd;\n    set_current_job((int)piVar25);\n    iVar6 = *(int *)(*piVar19 + iVar10);\n    piVar20 = *(int **)(iVar6 + 4);\n    *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) | 1;\n    piVar27 = piVar20;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar5 + 0xd8e3c);\n    iVar6 = *(int *)(pcVar5 + 0xd8e70);\n    iVar22 = *(int *)(pcVar5 + 0xd8e3c);\n    do {\n      iVar14 = piVar27[4];\n      if (piVar27[4] == 0) {\n        iVar14 = iVar6 + -0x6800;\n      }\n      iVar16 = iVar22 + 0x6720;\n      if ((int *)*piVar27 == piVar20) {\n        iVar16 = iVar6 + -0x6800;\n      }\n      (**(code **)(pcVar5 + 0xdabb0))(1,iVar12 + 0x6298,iVar14,iVar16);\n      piVar27 = (int *)*piVar27;\n      puVar23 = *(undefined4 **)(*piVar19 + iVar10);\n      piVar20 = (int *)puVar23[1];\n    } while (piVar20 != piVar27);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7b74);\n      puVar23 = *(undefined4 **)(*piVar19 + iVar10);\n    }\n    uVar18 = *puVar23;\n    iVar6 = (**(code **)(pcVar5 + 0xdae0c))(pcStack_3e4,uVar18);\n    if (iVar6 != 0) {\n      uVar18 = (**(code **)(pcVar5 + 0xd9234))(uVar18);\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7de0,uVar18);\n    }\n    (**(code **)(pcVar5 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n             *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      iVar12 = *piVar8;\n      *piVar11 = iVar12;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar6 = *(int *)(*piVar19 + iVar10);\n      piVar20 = *(int **)(iVar6 + 4);\n      piVar27 = piVar20;\n      do {\n        if (*(char *)((int)piVar27 + 0xb) == '\x7f') {\n          piVar27[3] = 1;\n        }\n        piVar27 = (int *)*piVar27;\n      } while (piVar20 != piVar27);\n      *(undefined4 *)(iVar6 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar28 = *(code **)(pcVar5 + 0xdad38);\n        *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffe | 2;\n        (*pcVar28)(*(undefined4 *)(iVar6 + 8),0x19);\nLAB_0006b9c8:\n        reset_current();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      *piVar11 = *piVar8;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) == 0) {\n        iVar3 = *piVar19;\n      }\n      else {\nLAB_0006bce0:\n        iVar12 = 0;\n        give_terminal_to(*(pid_t *)(iVar6 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar19;\n      }\n      iVar12 = 0x19;\n      pcVar28 = *(code **)(pcVar5 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar10);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar28)(*(undefined4 *)(iVar3 + 8));\n    }\nLAB_0006bbc8:\n    pPVar4 = find_last_proc((int)piVar25,iVar12);\n    pid = pPVar4->pid;\n    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);\n    iVar3 = wait_for(pid);\n    piVar27 = piVar24;\n    do {\n      piVar8 = piVar27 + 4;\n      piVar21 = piVar20 + 4;\n      iVar12 = piVar27[1];\n      iVar10 = piVar27[2];\n      iVar6 = piVar27[3];\n      *piVar20 = *piVar27;\n      piVar20[1] = iVar12;\n      piVar20[2] = iVar10;\n      piVar20[3] = iVar6;\n      piVar20 = piVar21;\n      piVar27 = piVar8;\n    } while (piVar8 != piVar24 + 0xc);\n    *piVar21 = *piVar8;\n    set_tty_state();\n  }\n  if (iStack_2dc == *piVar15) {\n    return iVar3;\n  }\n  pcVar5 = *(code **)(pcVar5 + 0xdad4c);\n  iVar3 = iStack_2dc;\n  (*pcVar5)();\n  piVar27 = *(int **)(pcVar5 + 0xd8b10);\n  iVar6 = (**(code **)(pcVar5 + 0xda6dc))();\n  *piVar27 = iVar6;\n  if (iVar6 == -1) {\n    pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7dec,5);\n    sys_error(pcVar9);\n    (**(code **)(pcVar5 + 0xda620))(1);\nLAB_0006c3c8:\n    uVar18 = *puVar13;\nLAB_0006be24:\n    uVar18 = (**(code **)(pcVar5 + 0xda58c))(uVar18);\n    iVar3 = (**(code **)(pcVar5 + 0xda780))(uVar18);\n    *piVar19 = iVar3;\n    if (iVar3 != -1) goto LAB_0006bf80;\n    pcVar28 = *(code **)(pcVar5 + 0xda670);\n    if (*piVar27 == 0) goto LAB_0006bf08;\nLAB_0006be5c:\n    iVar3 = *piVar19;\n  }\n  else {\n    piVar25 = *(int **)(pcVar5 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar5 + 0xda77c);\n    uVar18 = *puVar13;\n    if (iVar3 == 0 && *piVar25 == 0) {\n      piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n      puVar23 = *(undefined4 **)(pcVar5 + 0xd9070);\n      pcVar28 = *(code **)(pcVar5 + 0xda58c);\n      piVar19 = *(int **)(pcVar5 + 0xd93fc);\n      *piVar20 = 0;\n      *puVar23 = 0xffffffff;\n      iVar3 = (*pcVar28)(uVar18);\n      pcVar28 = *(code **)(pcVar5 + 0xda598);\n      *piVar19 = iVar3;\n      iVar3 = (*pcVar28)(iVar3);\n      iVar6 = *piVar27;\n      **(int **)(pcVar5 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar19 = *(int **)(pcVar5 + 0xd93fc);\n    iVar3 = **(int **)(pcVar5 + 0xd87e4);\n    *piVar19 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar18 = (**(code **)(pcVar5 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar5 + 0xda4b0))(uVar18);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar5 + 0xda5dc))(*(int *)(pcVar5 + 0xd87dc) + 0x62c0,0x82);\n      *piVar19 = iVar3;\n    }\n    else {\n      iVar3 = *piVar19;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar5 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar19 = iVar3;\n    pcVar28 = *(code **)(pcVar5 + 0xda670);\n    if (*piVar27 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar28)();\n    pcVar28 = *(code **)(pcVar5 + 0xda4fc);\n    *piVar27 = iVar3;\n    (*pcVar28)(0,iVar3);\n    iVar3 = *piVar19;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar5 + 0xda73c))(iVar3,*piVar27);\n      goto LAB_0006be5c;\n    }\n  }\n  iVar6 = 0x12;\n  piVar21 = *(int **)(pcVar5 + 0xd9434);\n  piVar20 = *(int **)(pcVar5 + 0xd8a98);\n  while( true ) {\n    iVar3 = (**(code **)(pcVar5 + 0xda598))(iVar3);\n    *piVar21 = iVar3;\n    if (iVar3 == -1) break;\n    if (*piVar27 == iVar3) {\n      iVar10 = -1;\n      goto LAB_0006c118;\n    }\n    pcVar28 = *(code **)(pcVar5 + 0xd8aac);\n    if (*piVar20 != 0) {\n      (**(code **)(pcVar5 + 0xd8a9c))(*piVar20);\n      pcVar28 = *(code **)(pcVar5 + 0xd8aac);\n    }\n    iVar6 = iVar6 + -1;\n    uVar18 = (*pcVar28)(0x1a,0);\n    (**(code **)(pcVar5 + 0xda61c))(0,0x1a);\n    (**(code **)(pcVar5 + 0xd8aac))(0x1a,uVar18);\n    if (iVar6 == 0) {\n      piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e14,5);\n      sys_error(pcVar9);\n      iVar3 = *piVar21;\n      iVar6 = *piVar27;\n      *piVar20 = 0;\n      **(int **)(pcVar5 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }\n    iVar3 = *piVar19;\n  }\n  piVar20 = (int *)(**(code **)(pcVar5 + 0xda5a0))();\n  iVar10 = *piVar20;\n  iVar3 = *piVar27;\nLAB_0006c118:\n  piVar24 = *(int **)(pcVar5 + 0xd9070);\n  pcVar28 = *(code **)(pcVar5 + 0xda670);\n  *piVar24 = iVar3;\n  iVar3 = (*pcVar28)();\n  iVar6 = *piVar24;\n  *piVar27 = iVar3;\n  if (iVar3 == iVar6) {\nLAB_0006c138:\n    piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n    *piVar20 = 1;\nLAB_0006c144:\n    pcVar28 = *(code **)(pcVar5 + 0xda598);\nLAB_0006c148:\n    iVar6 = (*pcVar28)(*piVar19);\n    if ((iVar6 == -1) || (*piVar27 != iVar6)) {\n      if (iVar10 != -1) {\n        piVar24 = (int *)(**(code **)(pcVar5 + 0xda5a0))();\n        *piVar24 = iVar10;\n      }\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e6c,5);\n      sys_error(pcVar9,iVar6);\n      *piVar20 = 0;\n      goto LAB_0006c230;\n    }\n    iVar3 = *(int *)(pcVar5 + 0xd87dc);\n    if (*piVar20 != 0) {\n      iVar3 = *piVar21;\n      goto LAB_0006bff4;\n    }\n  }\n  else {\n    iVar3 = (**(code **)(pcVar5 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e4c,5);\n      sys_error(pcVar9);\n      *piVar27 = *piVar24;\n      goto LAB_0006c138;\n    }\n    piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n    iVar6 = *piVar27;\n    iVar3 = *piVar24;\n    *piVar20 = 1;\n    if (iVar6 == iVar3) goto LAB_0006c144;\n    pcVar28 = *(code **)(pcVar5 + 0xda598);\n    if (*piVar21 == iVar6) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar6,0);\n    if (iVar3 < 0) {\n      puVar23 = (undefined4 *)(**(code **)(pcVar5 + 0xda5a0))();\n      uVar18 = *puVar23;\n      (**(code **)(pcVar5 + 0xda4fc))(0,*piVar24);\n      iVar3 = *(int *)(pcVar5 + 0xd87dc);\n      pcVar28 = *(code **)(pcVar5 + 0xda6fc);\n      *piVar27 = *piVar24;\n      *puVar23 = uVar18;\n      pcVar9 = (char *)(*pcVar28)(0,iVar3 + 0x7e6c,5);\n      sys_error(pcVar9,*piVar27);\n      *piVar20 = 0;\n    }\n    else {\n      pcVar28 = *(code **)(pcVar5 + 0xda598);\n      if (*piVar20 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar5 + 0xd87dc);\n  }\n  pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,iVar3 + 0x7e94,5);\n  internal_error(pcVar9);\n  iVar3 = *piVar21;\n  iVar6 = *piVar27;\nLAB_0006bff4:\n  pcVar28 = *(code **)(pcVar5 + 0xda58c);\n  uVar18 = *puVar13;\n  **(uint **)(pcVar5 + 0xd8954) = (uint)(iVar6 != iVar3);\n  iVar3 = (*pcVar28)(uVar18);\n  if (iVar3 != *piVar19) {\n    (**(code **)(pcVar5 + 0xda540))(*piVar19,2,1);\n  }\n  (**(code **)(pcVar5 + 0xd8aac))(0x12,*(int *)(pcVar5 + 0xd942c) + -0x6fbc);\n  iVar3 = 0x2b;\n  if (*piVar20 != 0) {\n    iVar3 = 0x2d;\n  }\n  change_flag(0x6d,iVar3);\n  if (*piVar25 != 0) {\n    get_tty_state();\n  }\n  piVar27 = *(int **)(pcVar5 + 0xd90bc);\n  if (-1 < *piVar27) {\n    return *piVar20;\n  }\n  iVar3 = (**(code **)(pcVar5 + 0xd93d8))();\n  if (iVar3 < 0) {\n    iVar3 = 0x20;\n  }\n  *piVar27 = iVar3;\n  return *piVar20;\nLAB_0006b3b8:\n  puVar7 = (undefined1 *)job_exit_status((int)piVar27);\n  if (((piVar15 == (int *)0x0) || (notify_of_job_status(), *(int *)(iVar6 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0)) {\n    delete_job((int)piVar27,0);\n  }\n  (**(code **)(puStack_2a0 + -0x737c))();\n  (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n  goto LAB_0006b430;\n}\n\n" (function_definition "int wait_for_job(int job,int flags)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  PROCESS *pPVar4;\n  code *pcVar5;\n  int iVar6;\n  undefined1 *puVar7;\n  int *piVar8;\n  char *pcVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  sigset_t *block;\n  undefined4 *puVar13;\n  int iVar14;\n  int *piVar15;\n  int iVar16;\n  sigset_t *psVar17;\n  undefined4 uVar18;\n  pid_t pid;\n  int *piVar19;\n  int *piVar20;\n  int *piVar21;\n  int iVar22;\n  undefined4 *puVar23;\n  int *piVar24;\n  int *piVar25;\n  undefined *puVar26;\n  int *piVar27;\n  code *pcVar28;\n  char *pcStack_3e4;\n  undefined1 auStack_3dc [128];\n  undefined1 auStack_35c [128];\n  int iStack_2dc;\n  sigset_t *psStack_2d8;\n  undefined1 *puStack_2d4;\n  int iStack_2d0;\n  int *piStack_2cc;\n  int *piStack_2c8;\n  undefined4 *puStack_2c4;\n  int *piStack_2c0;\n  int iStack_2bc;\n  int *piStack_2b8;\n  code *pcStack_2b4;\n  undefined *puStack_2a0;\n  code *pcStack_294;\n  undefined1 auStack_28c [128];\n  sigset_t sStack_20c;\n  int *piStack_18c;\n  sigset_t *psStack_188;\n  sigset_t *psStack_184;\n  int iStack_180;\n  undefined4 uStack_17c;\n  int *piStack_178;\n  int iStack_174;\n  int *piStack_170;\n  int *piStack_16c;\n  undefined *puStack_168;\n  code *pcStack_164;\n  sigset_t set;\n  sigset_t oset;\n  \n  puVar26 = PTR___stack_chk_guard_001464dc;\n  piVar27 = (int *)PTR_jobs_00144e5c;\n  psVar17 = &set;\n  piVar25 = (int *)(job * 4);\n  iVar3 = *(int *)PTR___stack_chk_guard_001464dc;\n  (*(code *)PTR_sigemptyset_001462d4)(psVar17);\n  (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(&oset);\n  block = psVar17;\n  (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n  if (*(int *)(*(int *)(*piVar27 + (int)piVar25) + 0xc) == 2) {\n    pcVar9 = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);\n    block = (sigset_t *)(job + 1);\n    internal_warning(pcVar9);\n  }\n  puVar2 = PTR_js_00144e58;\n  puVar1 = PTR_wait_for_00144d9c;\n  piVar20 = (int *)0xffffffff;\n  piVar21 = (int *)(flags & 2);\n  pPVar4 = find_last_proc(job,(int)block);\n  piVar24 = (int *)pPVar4->pid;\n  (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);\n  pcVar5 = (code *)(PTR_LAB_00144ff0 + 0x4e60);\n  do {\n    iVar6 = (*(code *)puVar1)(piVar24);\n    if (((iVar6 == -1) &&\n        (piVar15 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar15 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar5)();\n    }\n    if (piVar21 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(psVar17);\n      (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(&oset);\n      (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n      if (job == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }\n    (*(code *)PTR_sigemptyset_001462d4)();\n    (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n    (*(code *)PTR_sigemptyset_001462d4)(&oset);\n    (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n    if (job == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);\n      (*(code *)PTR_sigemptyset_001462d4)(psVar17);\n      (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(&oset);\n      (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n      goto LAB_0006b0f4;\n    }\n    if (*(int *)(*piVar27 + (int)piVar25) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);\n      break;\n    }\n    iVar10 = *(int *)(*(int *)(*piVar27 + (int)piVar25) + 0xc);\n    (*(code *)PTR_sigprocmask_00146514)(3,&oset);\n  } while (iVar10 != 4);\n  (*(code *)PTR_sigemptyset_001462d4)(psVar17);\n  (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(&oset);\n  (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\nLAB_0006b0d0:\n  piVar25 = (int *)(*piVar27 + (int)piVar25);\n  iVar10 = *piVar25;\n  if ((iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4)) {\n    *(uint *)(iVar10 + 0x10) = *(uint *)(iVar10 + 0x10) | 2;\n  }\nLAB_0006b0f4:\n  (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);\n  if (iVar3 == *(int *)puVar26) {\n    return iVar6;\n  }\n  pcVar5 = wait_for_any_job;\n  puVar26 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  puStack_2a0 = puVar26 + 0xe1290;\n  iVar3 = *(int *)(puVar26 + 0xd9ea4);\n  puVar23 = *(undefined4 **)(puVar26 + 0xdb22c);\n  puStack_168 = (undefined *)piVar27;\n  uStack_17c = 0xffffffff;\n  piStack_18c = (int *)*puVar23;\n  psStack_188 = psVar17;\n  psStack_184 = &oset;\n  iStack_180 = iVar6;\n  piStack_178 = piVar21;\n  iStack_174 = job;\n  piStack_170 = piVar24;\n  piStack_16c = piVar25;\n  pcStack_164 = pcVar5;\n  if (*(int *)(iVar3 + -0x705c) == 0) {\n    puVar7 = auStack_28c;\n    iVar6 = *(int *)(puVar26 + 0xd9ba8);\n    psVar17 = &sStack_20c;\n    (**(code **)(puVar26 + 0xdb024))(puVar7);\n    (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);\n    (**(code **)(puStack_2a0 + -0x626c))(psVar17);\n    (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);\n    if (0 < (int)*(int **)(iVar6 + 0x18)) {\n      piVar27 = (int *)0x0;\n      piVar15 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar25 = piVar15;\n      do {\n        iVar10 = *piVar25;\n        if (((iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4)) &&\n           ((*(uint *)(iVar10 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar27 = (int *)((int)piVar27 + 1);\n        piVar25 = piVar25 + 1;\n      } while (piVar27 != *(int **)(iVar6 + 0x18));\n    }\n    piVar21 = *(int **)(puStack_2a0 + -0x76e4);\n    piVar20 = *(int **)(puStack_2a0 + -0x7d0c);\n    (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n    piVar27 = *(int **)(puStack_2a0 + -0x7550);\n    piVar24 = *(int **)(puStack_2a0 + -0x7d04);\n    pcStack_294 = (code *)(piVar27 + 0x1398);\n    do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar7);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(psVar17);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);\n      iVar10 = *(int *)(iVar6 + 0x18);\n      if (iVar10 < 1) {\n        pcVar5 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar10 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n          puVar7 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar25 = (int *)*piVar21;\n        iVar12 = 0;\n        while (((iVar22 = *piVar25, iVar22 == 0 || (*(int *)(iVar22 + 0xc) != 1)) ||\n               ((*(uint *)(iVar22 + 0x10) & 1) != 0))) {\n          iVar12 = iVar12 + 1;\n          piVar25 = piVar25 + 1;\n          if (iVar12 == iVar10) goto LAB_0006b680;\n        }\n        pcVar5 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar5)(3,psVar17,0);\n      if (*piVar20 == 0) {\n        pcVar5 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar24 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar5)();\n        if (*piVar20 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar20);\n        if (*piVar24 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar20 != 0) {\nLAB_0006b708:\n          (*pcVar5)(*piVar20);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar5 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar25 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar26 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar27 = (int *)(*pcVar5)();\n      *piVar27 = 0;\n      iVar10 = wait_for(-1);\n      if (iVar10 == -1) {\n        pcVar5 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar27 == 10) && (*(int *)(iVar6 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar5)(puVar7);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(psVar17);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);\n      if (0 < (int)*(int **)(iVar6 + 0x18)) {\n        piVar15 = (int *)*piVar21;\n        piVar27 = (int *)0x0;\n        piVar25 = piVar15;\n        do {\n          if ((*piVar25 != 0) && (*(int *)(*piVar25 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar27 = (int *)((int)piVar27 + 1);\n          piVar25 = piVar25 + 1;\n        } while (*(int **)(iVar6 + 0x18) != piVar27);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n    } while( true );\n  }\n  puVar7 = (undefined1 *)0xffffffff;\nLAB_0006b430:\n  puVar26 = puStack_2a0;\n  if (piStack_18c == (int *)*puVar23) {\n    return (int)puVar7;\n  }\n  piVar25 = piStack_18c;\n  (**(code **)(puStack_2a0 + -0x60b8))();\nLAB_0006b730:\n  pcVar5 = *(code **)(puVar26 + -0x625c);\n  pcVar28 = start_job;\n  puVar13 = (undefined4 *)0x1;\n  (*pcVar5)();\n  piVar15 = *(int **)(pcVar5 + 0xdada0);\n  iVar10 = (int)piVar25 * 4;\n  iStack_2dc = *piVar15;\n  piVar19 = *(int **)(pcVar5 + 0xd9720);\n  psStack_2d8 = psVar17;\n  puStack_2d4 = puVar7;\n  iStack_2d0 = iVar6;\n  piStack_2cc = piVar20;\n  piStack_2c8 = piVar21;\n  puStack_2c4 = puVar23;\n  piStack_2c0 = piVar24;\n  iStack_2bc = iVar3;\n  piStack_2b8 = piVar27;\n  pcStack_2b4 = pcVar28;\n  (**(code **)(pcVar5 + 0xdab98))(auStack_3dc);\n  (**(code **)(pcVar5 + 0xdac28))(auStack_3dc,0x12);\n  (**(code **)(pcVar5 + 0xdab98))(auStack_35c);\n  (**(code **)(pcVar5 + 0xdadd8))(1,auStack_3dc,auStack_35c);\n  iVar3 = *(int *)(*(int *)(*piVar19 + iVar10) + 0xc);\n  if (iVar3 == 4) {\n    iVar3 = -1;\n    pcVar9 = (char *)(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7d9c,5);\n    internal_error(pcVar9,**(undefined4 **)(pcVar5 + 0xd8fec));\n    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      pcStack_3e4 = current_working_directory();\n      iVar6 = *(int *)(*piVar19 + iVar10);\n      iVar12 = **(int **)(pcVar5 + 0xd8e50);\n      *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x2c) == piVar25) {\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x30) != piVar25) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7b04;\n      }\n      piVar27 = *(int **)(iVar6 + 4);\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7dd8,(int)piVar25 + 1,iVar12)\n      ;\n      piVar20 = *(int **)(*(int *)(*piVar19 + iVar10) + 4);\n      goto LAB_0006b898;\n    }\n    pcVar9 = (char *)(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7db4,5);\n    internal_error(pcVar9,**(undefined4 **)(pcVar5 + 0xd8fec),(int)piVar25 + 1);\nLAB_0006b9dc:\n    iVar3 = 0;\n    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    pcStack_3e4 = current_working_directory();\n    *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n         *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffd;\n    set_current_job((int)piVar25);\n    iVar6 = *(int *)(*piVar19 + iVar10);\n    piVar20 = *(int **)(iVar6 + 4);\n    *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) | 1;\n    piVar27 = piVar20;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar5 + 0xd8e3c);\n    iVar6 = *(int *)(pcVar5 + 0xd8e70);\n    iVar22 = *(int *)(pcVar5 + 0xd8e3c);\n    do {\n      iVar14 = piVar27[4];\n      if (piVar27[4] == 0) {\n        iVar14 = iVar6 + -0x6800;\n      }\n      iVar16 = iVar22 + 0x6720;\n      if ((int *)*piVar27 == piVar20) {\n        iVar16 = iVar6 + -0x6800;\n      }\n      (**(code **)(pcVar5 + 0xdabb0))(1,iVar12 + 0x6298,iVar14,iVar16);\n      piVar27 = (int *)*piVar27;\n      puVar23 = *(undefined4 **)(*piVar19 + iVar10);\n      piVar20 = (int *)puVar23[1];\n    } while (piVar20 != piVar27);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7b74);\n      puVar23 = *(undefined4 **)(*piVar19 + iVar10);\n    }\n    uVar18 = *puVar23;\n    iVar6 = (**(code **)(pcVar5 + 0xdae0c))(pcStack_3e4,uVar18);\n    if (iVar6 != 0) {\n      uVar18 = (**(code **)(pcVar5 + 0xd9234))(uVar18);\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7de0,uVar18);\n    }\n    (**(code **)(pcVar5 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n             *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      iVar12 = *piVar8;\n      *piVar11 = iVar12;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar6 = *(int *)(*piVar19 + iVar10);\n      piVar20 = *(int **)(iVar6 + 4);\n      piVar27 = piVar20;\n      do {\n        if (*(char *)((int)piVar27 + 0xb) == '\x7f') {\n          piVar27[3] = 1;\n        }\n        piVar27 = (int *)*piVar27;\n      } while (piVar20 != piVar27);\n      *(undefined4 *)(iVar6 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar28 = *(code **)(pcVar5 + 0xdad38);\n        *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffe | 2;\n        (*pcVar28)(*(undefined4 *)(iVar6 + 8),0x19);\nLAB_0006b9c8:\n        reset_current();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      *piVar11 = *piVar8;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) == 0) {\n        iVar3 = *piVar19;\n      }\n      else {\nLAB_0006bce0:\n        iVar12 = 0;\n        give_terminal_to(*(pid_t *)(iVar6 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar19;\n      }\n      iVar12 = 0x19;\n      pcVar28 = *(code **)(pcVar5 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar10);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar28)(*(undefined4 *)(iVar3 + 8));\n    }\nLAB_0006bbc8:\n    pPVar4 = find_last_proc((int)piVar25,iVar12);\n    pid = pPVar4->pid;\n    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);\n    iVar3 = wait_for(pid);\n    piVar27 = piVar24;\n    do {\n      piVar8 = piVar27 + 4;\n      piVar21 = piVar20 + 4;\n      iVar12 = piVar27[1];\n      iVar10 = piVar27[2];\n      iVar6 = piVar27[3];\n      *piVar20 = *piVar27;\n      piVar20[1] = iVar12;\n      piVar20[2] = iVar10;\n      piVar20[3] = iVar6;\n      piVar20 = piVar21;\n      piVar27 = piVar8;\n    } while (piVar8 != piVar24 + 0xc);\n    *piVar21 = *piVar8;\n    set_tty_state();\n  }\n  if (iStack_2dc == *piVar15) {\n    return iVar3;\n  }\n  pcVar5 = *(code **)(pcVar5 + 0xdad4c);\n  iVar3 = iStack_2dc;\n  (*pcVar5)();\n  piVar27 = *(int **)(pcVar5 + 0xd8b10);\n  iVar6 = (**(code **)(pcVar5 + 0xda6dc))();\n  *piVar27 = iVar6;\n  if (iVar6 == -1) {\n    pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7dec,5);\n    sys_error(pcVar9);\n    (**(code **)(pcVar5 + 0xda620))(1);\nLAB_0006c3c8:\n    uVar18 = *puVar13;\nLAB_0006be24:\n    uVar18 = (**(code **)(pcVar5 + 0xda58c))(uVar18);\n    iVar3 = (**(code **)(pcVar5 + 0xda780))(uVar18);\n    *piVar19 = iVar3;\n    if (iVar3 != -1) goto LAB_0006bf80;\n    pcVar28 = *(code **)(pcVar5 + 0xda670);\n    if (*piVar27 == 0) goto LAB_0006bf08;\nLAB_0006be5c:\n    iVar3 = *piVar19;\n  }\n  else {\n    piVar25 = *(int **)(pcVar5 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar5 + 0xda77c);\n    uVar18 = *puVar13;\n    if (iVar3 == 0 && *piVar25 == 0) {\n      piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n      puVar23 = *(undefined4 **)(pcVar5 + 0xd9070);\n      pcVar28 = *(code **)(pcVar5 + 0xda58c);\n      piVar19 = *(int **)(pcVar5 + 0xd93fc);\n      *piVar20 = 0;\n      *puVar23 = 0xffffffff;\n      iVar3 = (*pcVar28)(uVar18);\n      pcVar28 = *(code **)(pcVar5 + 0xda598);\n      *piVar19 = iVar3;\n      iVar3 = (*pcVar28)(iVar3);\n      iVar6 = *piVar27;\n      **(int **)(pcVar5 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar19 = *(int **)(pcVar5 + 0xd93fc);\n    iVar3 = **(int **)(pcVar5 + 0xd87e4);\n    *piVar19 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar18 = (**(code **)(pcVar5 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar5 + 0xda4b0))(uVar18);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar5 + 0xda5dc))(*(int *)(pcVar5 + 0xd87dc) + 0x62c0,0x82);\n      *piVar19 = iVar3;\n    }\n    else {\n      iVar3 = *piVar19;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar5 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar19 = iVar3;\n    pcVar28 = *(code **)(pcVar5 + 0xda670);\n    if (*piVar27 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar28)();\n    pcVar28 = *(code **)(pcVar5 + 0xda4fc);\n    *piVar27 = iVar3;\n    (*pcVar28)(0,iVar3);\n    iVar3 = *piVar19;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar5 + 0xda73c))(iVar3,*piVar27);\n      goto LAB_0006be5c;\n    }\n  }\n  iVar6 = 0x12;\n  piVar21 = *(int **)(pcVar5 + 0xd9434);\n  piVar20 = *(int **)(pcVar5 + 0xd8a98);\n  while( true ) {\n    iVar3 = (**(code **)(pcVar5 + 0xda598))(iVar3);\n    *piVar21 = iVar3;\n    if (iVar3 == -1) break;\n    if (*piVar27 == iVar3) {\n      iVar10 = -1;\n      goto LAB_0006c118;\n    }\n    pcVar28 = *(code **)(pcVar5 + 0xd8aac);\n    if (*piVar20 != 0) {\n      (**(code **)(pcVar5 + 0xd8a9c))(*piVar20);\n      pcVar28 = *(code **)(pcVar5 + 0xd8aac);\n    }\n    iVar6 = iVar6 + -1;\n    uVar18 = (*pcVar28)(0x1a,0);\n    (**(code **)(pcVar5 + 0xda61c))(0,0x1a);\n    (**(code **)(pcVar5 + 0xd8aac))(0x1a,uVar18);\n    if (iVar6 == 0) {\n      piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e14,5);\n      sys_error(pcVar9);\n      iVar3 = *piVar21;\n      iVar6 = *piVar27;\n      *piVar20 = 0;\n      **(int **)(pcVar5 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }\n    iVar3 = *piVar19;\n  }\n  piVar20 = (int *)(**(code **)(pcVar5 + 0xda5a0))();\n  iVar10 = *piVar20;\n  iVar3 = *piVar27;\nLAB_0006c118:\n  piVar24 = *(int **)(pcVar5 + 0xd9070);\n  pcVar28 = *(code **)(pcVar5 + 0xda670);\n  *piVar24 = iVar3;\n  iVar3 = (*pcVar28)();\n  iVar6 = *piVar24;\n  *piVar27 = iVar3;\n  if (iVar3 == iVar6) {\nLAB_0006c138:\n    piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n    *piVar20 = 1;\nLAB_0006c144:\n    pcVar28 = *(code **)(pcVar5 + 0xda598);\nLAB_0006c148:\n    iVar6 = (*pcVar28)(*piVar19);\n    if ((iVar6 == -1) || (*piVar27 != iVar6)) {\n      if (iVar10 != -1) {\n        piVar24 = (int *)(**(code **)(pcVar5 + 0xda5a0))();\n        *piVar24 = iVar10;\n      }\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e6c,5);\n      sys_error(pcVar9,iVar6);\n      *piVar20 = 0;\n      goto LAB_0006c230;\n    }\n    iVar3 = *(int *)(pcVar5 + 0xd87dc);\n    if (*piVar20 != 0) {\n      iVar3 = *piVar21;\n      goto LAB_0006bff4;\n    }\n  }\n  else {\n    iVar3 = (**(code **)(pcVar5 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e4c,5);\n      sys_error(pcVar9);\n      *piVar27 = *piVar24;\n      goto LAB_0006c138;\n    }\n    piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n    iVar6 = *piVar27;\n    iVar3 = *piVar24;\n    *piVar20 = 1;\n    if (iVar6 == iVar3) goto LAB_0006c144;\n    pcVar28 = *(code **)(pcVar5 + 0xda598);\n    if (*piVar21 == iVar6) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar6,0);\n    if (iVar3 < 0) {\n      puVar23 = (undefined4 *)(**(code **)(pcVar5 + 0xda5a0))();\n      uVar18 = *puVar23;\n      (**(code **)(pcVar5 + 0xda4fc))(0,*piVar24);\n      iVar3 = *(int *)(pcVar5 + 0xd87dc);\n      pcVar28 = *(code **)(pcVar5 + 0xda6fc);\n      *piVar27 = *piVar24;\n      *puVar23 = uVar18;\n      pcVar9 = (char *)(*pcVar28)(0,iVar3 + 0x7e6c,5);\n      sys_error(pcVar9,*piVar27);\n      *piVar20 = 0;\n    }\n    else {\n      pcVar28 = *(code **)(pcVar5 + 0xda598);\n      if (*piVar20 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar5 + 0xd87dc);\n  }\n  pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,iVar3 + 0x7e94,5);\n  internal_error(pcVar9);\n  iVar3 = *piVar21;\n  iVar6 = *piVar27;\nLAB_0006bff4:\n  pcVar28 = *(code **)(pcVar5 + 0xda58c);\n  uVar18 = *puVar13;\n  **(uint **)(pcVar5 + 0xd8954) = (uint)(iVar6 != iVar3);\n  iVar3 = (*pcVar28)(uVar18);\n  if (iVar3 != *piVar19) {\n    (**(code **)(pcVar5 + 0xda540))(*piVar19,2,1);\n  }\n  (**(code **)(pcVar5 + 0xd8aac))(0x12,*(int *)(pcVar5 + 0xd942c) + -0x6fbc);\n  iVar3 = 0x2b;\n  if (*piVar20 != 0) {\n    iVar3 = 0x2d;\n  }\n  change_flag(0x6d,iVar3);\n  if (*piVar25 != 0) {\n    get_tty_state();\n  }\n  piVar27 = *(int **)(pcVar5 + 0xd90bc);\n  if (-1 < *piVar27) {\n    return *piVar20;\n  }\n  iVar3 = (**(code **)(pcVar5 + 0xd93d8))();\n  if (iVar3 < 0) {\n    iVar3 = 0x20;\n  }\n  *piVar27 = iVar3;\n  return *piVar20;\nLAB_0006b3b8:\n  puVar7 = (undefined1 *)job_exit_status((int)piVar27);\n  if (((piVar15 == (int *)0x0) || (notify_of_job_status(), *(int *)(iVar6 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0)) {\n    delete_job((int)piVar27,0);\n  }\n  (**(code **)(puStack_2a0 + -0x737c))();\n  (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n  goto LAB_0006b430;\n}" primitive_type (function_declarator "wait_for_job(int job,int flags)" identifier (parameter_list "(int job,int flags)" ( (parameter_declaration "int job" primitive_type identifier) , (parameter_declaration "int flags" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  PROCESS *pPVar4;\n  code *pcVar5;\n  int iVar6;\n  undefined1 *puVar7;\n  int *piVar8;\n  char *pcVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  sigset_t *block;\n  undefined4 *puVar13;\n  int iVar14;\n  int *piVar15;\n  int iVar16;\n  sigset_t *psVar17;\n  undefined4 uVar18;\n  pid_t pid;\n  int *piVar19;\n  int *piVar20;\n  int *piVar21;\n  int iVar22;\n  undefined4 *puVar23;\n  int *piVar24;\n  int *piVar25;\n  undefined *puVar26;\n  int *piVar27;\n  code *pcVar28;\n  char *pcStack_3e4;\n  undefined1 auStack_3dc [128];\n  undefined1 auStack_35c [128];\n  int iStack_2dc;\n  sigset_t *psStack_2d8;\n  undefined1 *puStack_2d4;\n  int iStack_2d0;\n  int *piStack_2cc;\n  int *piStack_2c8;\n  undefined4 *puStack_2c4;\n  int *piStack_2c0;\n  int iStack_2bc;\n  int *piStack_2b8;\n  code *pcStack_2b4;\n  undefined *puStack_2a0;\n  code *pcStack_294;\n  undefined1 auStack_28c [128];\n  sigset_t sStack_20c;\n  int *piStack_18c;\n  sigset_t *psStack_188;\n  sigset_t *psStack_184;\n  int iStack_180;\n  undefined4 uStack_17c;\n  int *piStack_178;\n  int iStack_174;\n  int *piStack_170;\n  int *piStack_16c;\n  undefined *puStack_168;\n  code *pcStack_164;\n  sigset_t set;\n  sigset_t oset;\n  \n  puVar26 = PTR___stack_chk_guard_001464dc;\n  piVar27 = (int *)PTR_jobs_00144e5c;\n  psVar17 = &set;\n  piVar25 = (int *)(job * 4);\n  iVar3 = *(int *)PTR___stack_chk_guard_001464dc;\n  (*(code *)PTR_sigemptyset_001462d4)(psVar17);\n  (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(&oset);\n  block = psVar17;\n  (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n  if (*(int *)(*(int *)(*piVar27 + (int)piVar25) + 0xc) == 2) {\n    pcVar9 = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);\n    block = (sigset_t *)(job + 1);\n    internal_warning(pcVar9);\n  }\n  puVar2 = PTR_js_00144e58;\n  puVar1 = PTR_wait_for_00144d9c;\n  piVar20 = (int *)0xffffffff;\n  piVar21 = (int *)(flags & 2);\n  pPVar4 = find_last_proc(job,(int)block);\n  piVar24 = (int *)pPVar4->pid;\n  (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);\n  pcVar5 = (code *)(PTR_LAB_00144ff0 + 0x4e60);\n  do {\n    iVar6 = (*(code *)puVar1)(piVar24);\n    if (((iVar6 == -1) &&\n        (piVar15 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar15 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar5)();\n    }\n    if (piVar21 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(psVar17);\n      (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(&oset);\n      (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n      if (job == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }\n    (*(code *)PTR_sigemptyset_001462d4)();\n    (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n    (*(code *)PTR_sigemptyset_001462d4)(&oset);\n    (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n    if (job == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);\n      (*(code *)PTR_sigemptyset_001462d4)(psVar17);\n      (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(&oset);\n      (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n      goto LAB_0006b0f4;\n    }\n    if (*(int *)(*piVar27 + (int)piVar25) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);\n      break;\n    }\n    iVar10 = *(int *)(*(int *)(*piVar27 + (int)piVar25) + 0xc);\n    (*(code *)PTR_sigprocmask_00146514)(3,&oset);\n  } while (iVar10 != 4);\n  (*(code *)PTR_sigemptyset_001462d4)(psVar17);\n  (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(&oset);\n  (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\nLAB_0006b0d0:\n  piVar25 = (int *)(*piVar27 + (int)piVar25);\n  iVar10 = *piVar25;\n  if ((iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4)) {\n    *(uint *)(iVar10 + 0x10) = *(uint *)(iVar10 + 0x10) | 2;\n  }\nLAB_0006b0f4:\n  (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);\n  if (iVar3 == *(int *)puVar26) {\n    return iVar6;\n  }\n  pcVar5 = wait_for_any_job;\n  puVar26 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  puStack_2a0 = puVar26 + 0xe1290;\n  iVar3 = *(int *)(puVar26 + 0xd9ea4);\n  puVar23 = *(undefined4 **)(puVar26 + 0xdb22c);\n  puStack_168 = (undefined *)piVar27;\n  uStack_17c = 0xffffffff;\n  piStack_18c = (int *)*puVar23;\n  psStack_188 = psVar17;\n  psStack_184 = &oset;\n  iStack_180 = iVar6;\n  piStack_178 = piVar21;\n  iStack_174 = job;\n  piStack_170 = piVar24;\n  piStack_16c = piVar25;\n  pcStack_164 = pcVar5;\n  if (*(int *)(iVar3 + -0x705c) == 0) {\n    puVar7 = auStack_28c;\n    iVar6 = *(int *)(puVar26 + 0xd9ba8);\n    psVar17 = &sStack_20c;\n    (**(code **)(puVar26 + 0xdb024))(puVar7);\n    (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);\n    (**(code **)(puStack_2a0 + -0x626c))(psVar17);\n    (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);\n    if (0 < (int)*(int **)(iVar6 + 0x18)) {\n      piVar27 = (int *)0x0;\n      piVar15 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar25 = piVar15;\n      do {\n        iVar10 = *piVar25;\n        if (((iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4)) &&\n           ((*(uint *)(iVar10 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar27 = (int *)((int)piVar27 + 1);\n        piVar25 = piVar25 + 1;\n      } while (piVar27 != *(int **)(iVar6 + 0x18));\n    }\n    piVar21 = *(int **)(puStack_2a0 + -0x76e4);\n    piVar20 = *(int **)(puStack_2a0 + -0x7d0c);\n    (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n    piVar27 = *(int **)(puStack_2a0 + -0x7550);\n    piVar24 = *(int **)(puStack_2a0 + -0x7d04);\n    pcStack_294 = (code *)(piVar27 + 0x1398);\n    do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar7);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(psVar17);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);\n      iVar10 = *(int *)(iVar6 + 0x18);\n      if (iVar10 < 1) {\n        pcVar5 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar10 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n          puVar7 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar25 = (int *)*piVar21;\n        iVar12 = 0;\n        while (((iVar22 = *piVar25, iVar22 == 0 || (*(int *)(iVar22 + 0xc) != 1)) ||\n               ((*(uint *)(iVar22 + 0x10) & 1) != 0))) {\n          iVar12 = iVar12 + 1;\n          piVar25 = piVar25 + 1;\n          if (iVar12 == iVar10) goto LAB_0006b680;\n        }\n        pcVar5 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar5)(3,psVar17,0);\n      if (*piVar20 == 0) {\n        pcVar5 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar24 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar5)();\n        if (*piVar20 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar20);\n        if (*piVar24 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar20 != 0) {\nLAB_0006b708:\n          (*pcVar5)(*piVar20);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar5 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar25 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar26 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar27 = (int *)(*pcVar5)();\n      *piVar27 = 0;\n      iVar10 = wait_for(-1);\n      if (iVar10 == -1) {\n        pcVar5 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar27 == 10) && (*(int *)(iVar6 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar5)(puVar7);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(psVar17);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);\n      if (0 < (int)*(int **)(iVar6 + 0x18)) {\n        piVar15 = (int *)*piVar21;\n        piVar27 = (int *)0x0;\n        piVar25 = piVar15;\n        do {\n          if ((*piVar25 != 0) && (*(int *)(*piVar25 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar27 = (int *)((int)piVar27 + 1);\n          piVar25 = piVar25 + 1;\n        } while (*(int **)(iVar6 + 0x18) != piVar27);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n    } while( true );\n  }\n  puVar7 = (undefined1 *)0xffffffff;\nLAB_0006b430:\n  puVar26 = puStack_2a0;\n  if (piStack_18c == (int *)*puVar23) {\n    return (int)puVar7;\n  }\n  piVar25 = piStack_18c;\n  (**(code **)(puStack_2a0 + -0x60b8))();\nLAB_0006b730:\n  pcVar5 = *(code **)(puVar26 + -0x625c);\n  pcVar28 = start_job;\n  puVar13 = (undefined4 *)0x1;\n  (*pcVar5)();\n  piVar15 = *(int **)(pcVar5 + 0xdada0);\n  iVar10 = (int)piVar25 * 4;\n  iStack_2dc = *piVar15;\n  piVar19 = *(int **)(pcVar5 + 0xd9720);\n  psStack_2d8 = psVar17;\n  puStack_2d4 = puVar7;\n  iStack_2d0 = iVar6;\n  piStack_2cc = piVar20;\n  piStack_2c8 = piVar21;\n  puStack_2c4 = puVar23;\n  piStack_2c0 = piVar24;\n  iStack_2bc = iVar3;\n  piStack_2b8 = piVar27;\n  pcStack_2b4 = pcVar28;\n  (**(code **)(pcVar5 + 0xdab98))(auStack_3dc);\n  (**(code **)(pcVar5 + 0xdac28))(auStack_3dc,0x12);\n  (**(code **)(pcVar5 + 0xdab98))(auStack_35c);\n  (**(code **)(pcVar5 + 0xdadd8))(1,auStack_3dc,auStack_35c);\n  iVar3 = *(int *)(*(int *)(*piVar19 + iVar10) + 0xc);\n  if (iVar3 == 4) {\n    iVar3 = -1;\n    pcVar9 = (char *)(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7d9c,5);\n    internal_error(pcVar9,**(undefined4 **)(pcVar5 + 0xd8fec));\n    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      pcStack_3e4 = current_working_directory();\n      iVar6 = *(int *)(*piVar19 + iVar10);\n      iVar12 = **(int **)(pcVar5 + 0xd8e50);\n      *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x2c) == piVar25) {\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x30) != piVar25) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7b04;\n      }\n      piVar27 = *(int **)(iVar6 + 4);\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7dd8,(int)piVar25 + 1,iVar12)\n      ;\n      piVar20 = *(int **)(*(int *)(*piVar19 + iVar10) + 4);\n      goto LAB_0006b898;\n    }\n    pcVar9 = (char *)(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7db4,5);\n    internal_error(pcVar9,**(undefined4 **)(pcVar5 + 0xd8fec),(int)piVar25 + 1);\nLAB_0006b9dc:\n    iVar3 = 0;\n    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    pcStack_3e4 = current_working_directory();\n    *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n         *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffd;\n    set_current_job((int)piVar25);\n    iVar6 = *(int *)(*piVar19 + iVar10);\n    piVar20 = *(int **)(iVar6 + 4);\n    *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) | 1;\n    piVar27 = piVar20;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar5 + 0xd8e3c);\n    iVar6 = *(int *)(pcVar5 + 0xd8e70);\n    iVar22 = *(int *)(pcVar5 + 0xd8e3c);\n    do {\n      iVar14 = piVar27[4];\n      if (piVar27[4] == 0) {\n        iVar14 = iVar6 + -0x6800;\n      }\n      iVar16 = iVar22 + 0x6720;\n      if ((int *)*piVar27 == piVar20) {\n        iVar16 = iVar6 + -0x6800;\n      }\n      (**(code **)(pcVar5 + 0xdabb0))(1,iVar12 + 0x6298,iVar14,iVar16);\n      piVar27 = (int *)*piVar27;\n      puVar23 = *(undefined4 **)(*piVar19 + iVar10);\n      piVar20 = (int *)puVar23[1];\n    } while (piVar20 != piVar27);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7b74);\n      puVar23 = *(undefined4 **)(*piVar19 + iVar10);\n    }\n    uVar18 = *puVar23;\n    iVar6 = (**(code **)(pcVar5 + 0xdae0c))(pcStack_3e4,uVar18);\n    if (iVar6 != 0) {\n      uVar18 = (**(code **)(pcVar5 + 0xd9234))(uVar18);\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7de0,uVar18);\n    }\n    (**(code **)(pcVar5 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n             *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      iVar12 = *piVar8;\n      *piVar11 = iVar12;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar6 = *(int *)(*piVar19 + iVar10);\n      piVar20 = *(int **)(iVar6 + 4);\n      piVar27 = piVar20;\n      do {\n        if (*(char *)((int)piVar27 + 0xb) == '\x7f') {\n          piVar27[3] = 1;\n        }\n        piVar27 = (int *)*piVar27;\n      } while (piVar20 != piVar27);\n      *(undefined4 *)(iVar6 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar28 = *(code **)(pcVar5 + 0xdad38);\n        *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffe | 2;\n        (*pcVar28)(*(undefined4 *)(iVar6 + 8),0x19);\nLAB_0006b9c8:\n        reset_current();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      *piVar11 = *piVar8;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) == 0) {\n        iVar3 = *piVar19;\n      }\n      else {\nLAB_0006bce0:\n        iVar12 = 0;\n        give_terminal_to(*(pid_t *)(iVar6 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar19;\n      }\n      iVar12 = 0x19;\n      pcVar28 = *(code **)(pcVar5 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar10);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar28)(*(undefined4 *)(iVar3 + 8));\n    }\nLAB_0006bbc8:\n    pPVar4 = find_last_proc((int)piVar25,iVar12);\n    pid = pPVar4->pid;\n    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);\n    iVar3 = wait_for(pid);\n    piVar27 = piVar24;\n    do {\n      piVar8 = piVar27 + 4;\n      piVar21 = piVar20 + 4;\n      iVar12 = piVar27[1];\n      iVar10 = piVar27[2];\n      iVar6 = piVar27[3];\n      *piVar20 = *piVar27;\n      piVar20[1] = iVar12;\n      piVar20[2] = iVar10;\n      piVar20[3] = iVar6;\n      piVar20 = piVar21;\n      piVar27 = piVar8;\n    } while (piVar8 != piVar24 + 0xc);\n    *piVar21 = *piVar8;\n    set_tty_state();\n  }\n  if (iStack_2dc == *piVar15) {\n    return iVar3;\n  }\n  pcVar5 = *(code **)(pcVar5 + 0xdad4c);\n  iVar3 = iStack_2dc;\n  (*pcVar5)();\n  piVar27 = *(int **)(pcVar5 + 0xd8b10);\n  iVar6 = (**(code **)(pcVar5 + 0xda6dc))();\n  *piVar27 = iVar6;\n  if (iVar6 == -1) {\n    pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7dec,5);\n    sys_error(pcVar9);\n    (**(code **)(pcVar5 + 0xda620))(1);\nLAB_0006c3c8:\n    uVar18 = *puVar13;\nLAB_0006be24:\n    uVar18 = (**(code **)(pcVar5 + 0xda58c))(uVar18);\n    iVar3 = (**(code **)(pcVar5 + 0xda780))(uVar18);\n    *piVar19 = iVar3;\n    if (iVar3 != -1) goto LAB_0006bf80;\n    pcVar28 = *(code **)(pcVar5 + 0xda670);\n    if (*piVar27 == 0) goto LAB_0006bf08;\nLAB_0006be5c:\n    iVar3 = *piVar19;\n  }\n  else {\n    piVar25 = *(int **)(pcVar5 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar5 + 0xda77c);\n    uVar18 = *puVar13;\n    if (iVar3 == 0 && *piVar25 == 0) {\n      piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n      puVar23 = *(undefined4 **)(pcVar5 + 0xd9070);\n      pcVar28 = *(code **)(pcVar5 + 0xda58c);\n      piVar19 = *(int **)(pcVar5 + 0xd93fc);\n      *piVar20 = 0;\n      *puVar23 = 0xffffffff;\n      iVar3 = (*pcVar28)(uVar18);\n      pcVar28 = *(code **)(pcVar5 + 0xda598);\n      *piVar19 = iVar3;\n      iVar3 = (*pcVar28)(iVar3);\n      iVar6 = *piVar27;\n      **(int **)(pcVar5 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar19 = *(int **)(pcVar5 + 0xd93fc);\n    iVar3 = **(int **)(pcVar5 + 0xd87e4);\n    *piVar19 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar18 = (**(code **)(pcVar5 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar5 + 0xda4b0))(uVar18);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar5 + 0xda5dc))(*(int *)(pcVar5 + 0xd87dc) + 0x62c0,0x82);\n      *piVar19 = iVar3;\n    }\n    else {\n      iVar3 = *piVar19;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar5 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar19 = iVar3;\n    pcVar28 = *(code **)(pcVar5 + 0xda670);\n    if (*piVar27 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar28)();\n    pcVar28 = *(code **)(pcVar5 + 0xda4fc);\n    *piVar27 = iVar3;\n    (*pcVar28)(0,iVar3);\n    iVar3 = *piVar19;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar5 + 0xda73c))(iVar3,*piVar27);\n      goto LAB_0006be5c;\n    }\n  }\n  iVar6 = 0x12;\n  piVar21 = *(int **)(pcVar5 + 0xd9434);\n  piVar20 = *(int **)(pcVar5 + 0xd8a98);\n  while( true ) {\n    iVar3 = (**(code **)(pcVar5 + 0xda598))(iVar3);\n    *piVar21 = iVar3;\n    if (iVar3 == -1) break;\n    if (*piVar27 == iVar3) {\n      iVar10 = -1;\n      goto LAB_0006c118;\n    }\n    pcVar28 = *(code **)(pcVar5 + 0xd8aac);\n    if (*piVar20 != 0) {\n      (**(code **)(pcVar5 + 0xd8a9c))(*piVar20);\n      pcVar28 = *(code **)(pcVar5 + 0xd8aac);\n    }\n    iVar6 = iVar6 + -1;\n    uVar18 = (*pcVar28)(0x1a,0);\n    (**(code **)(pcVar5 + 0xda61c))(0,0x1a);\n    (**(code **)(pcVar5 + 0xd8aac))(0x1a,uVar18);\n    if (iVar6 == 0) {\n      piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e14,5);\n      sys_error(pcVar9);\n      iVar3 = *piVar21;\n      iVar6 = *piVar27;\n      *piVar20 = 0;\n      **(int **)(pcVar5 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }\n    iVar3 = *piVar19;\n  }\n  piVar20 = (int *)(**(code **)(pcVar5 + 0xda5a0))();\n  iVar10 = *piVar20;\n  iVar3 = *piVar27;\nLAB_0006c118:\n  piVar24 = *(int **)(pcVar5 + 0xd9070);\n  pcVar28 = *(code **)(pcVar5 + 0xda670);\n  *piVar24 = iVar3;\n  iVar3 = (*pcVar28)();\n  iVar6 = *piVar24;\n  *piVar27 = iVar3;\n  if (iVar3 == iVar6) {\nLAB_0006c138:\n    piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n    *piVar20 = 1;\nLAB_0006c144:\n    pcVar28 = *(code **)(pcVar5 + 0xda598);\nLAB_0006c148:\n    iVar6 = (*pcVar28)(*piVar19);\n    if ((iVar6 == -1) || (*piVar27 != iVar6)) {\n      if (iVar10 != -1) {\n        piVar24 = (int *)(**(code **)(pcVar5 + 0xda5a0))();\n        *piVar24 = iVar10;\n      }\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e6c,5);\n      sys_error(pcVar9,iVar6);\n      *piVar20 = 0;\n      goto LAB_0006c230;\n    }\n    iVar3 = *(int *)(pcVar5 + 0xd87dc);\n    if (*piVar20 != 0) {\n      iVar3 = *piVar21;\n      goto LAB_0006bff4;\n    }\n  }\n  else {\n    iVar3 = (**(code **)(pcVar5 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e4c,5);\n      sys_error(pcVar9);\n      *piVar27 = *piVar24;\n      goto LAB_0006c138;\n    }\n    piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n    iVar6 = *piVar27;\n    iVar3 = *piVar24;\n    *piVar20 = 1;\n    if (iVar6 == iVar3) goto LAB_0006c144;\n    pcVar28 = *(code **)(pcVar5 + 0xda598);\n    if (*piVar21 == iVar6) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar6,0);\n    if (iVar3 < 0) {\n      puVar23 = (undefined4 *)(**(code **)(pcVar5 + 0xda5a0))();\n      uVar18 = *puVar23;\n      (**(code **)(pcVar5 + 0xda4fc))(0,*piVar24);\n      iVar3 = *(int *)(pcVar5 + 0xd87dc);\n      pcVar28 = *(code **)(pcVar5 + 0xda6fc);\n      *piVar27 = *piVar24;\n      *puVar23 = uVar18;\n      pcVar9 = (char *)(*pcVar28)(0,iVar3 + 0x7e6c,5);\n      sys_error(pcVar9,*piVar27);\n      *piVar20 = 0;\n    }\n    else {\n      pcVar28 = *(code **)(pcVar5 + 0xda598);\n      if (*piVar20 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar5 + 0xd87dc);\n  }\n  pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,iVar3 + 0x7e94,5);\n  internal_error(pcVar9);\n  iVar3 = *piVar21;\n  iVar6 = *piVar27;\nLAB_0006bff4:\n  pcVar28 = *(code **)(pcVar5 + 0xda58c);\n  uVar18 = *puVar13;\n  **(uint **)(pcVar5 + 0xd8954) = (uint)(iVar6 != iVar3);\n  iVar3 = (*pcVar28)(uVar18);\n  if (iVar3 != *piVar19) {\n    (**(code **)(pcVar5 + 0xda540))(*piVar19,2,1);\n  }\n  (**(code **)(pcVar5 + 0xd8aac))(0x12,*(int *)(pcVar5 + 0xd942c) + -0x6fbc);\n  iVar3 = 0x2b;\n  if (*piVar20 != 0) {\n    iVar3 = 0x2d;\n  }\n  change_flag(0x6d,iVar3);\n  if (*piVar25 != 0) {\n    get_tty_state();\n  }\n  piVar27 = *(int **)(pcVar5 + 0xd90bc);\n  if (-1 < *piVar27) {\n    return *piVar20;\n  }\n  iVar3 = (**(code **)(pcVar5 + 0xd93d8))();\n  if (iVar3 < 0) {\n    iVar3 = 0x20;\n  }\n  *piVar27 = iVar3;\n  return *piVar20;\nLAB_0006b3b8:\n  puVar7 = (undefined1 *)job_exit_status((int)piVar27);\n  if (((piVar15 == (int *)0x0) || (notify_of_job_status(), *(int *)(iVar6 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0)) {\n    delete_job((int)piVar27,0);\n  }\n  (**(code **)(puStack_2a0 + -0x737c))();\n  (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n  goto LAB_0006b430;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "PROCESS *pPVar4;" type_identifier (pointer_declarator "*pPVar4" * identifier) ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "sigset_t *block;" type_identifier (pointer_declarator "*block" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "sigset_t *psVar17;" type_identifier (pointer_declarator "*psVar17" * identifier) ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "pid_t pid;" type_identifier identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "int *piVar25;" primitive_type (pointer_declarator "*piVar25" * identifier) ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "int *piVar27;" primitive_type (pointer_declarator "*piVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "char *pcStack_3e4;" primitive_type (pointer_declarator "*pcStack_3e4" * identifier) ;) (declaration "undefined1 auStack_3dc [128];" type_identifier (array_declarator "auStack_3dc [128]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_35c [128];" type_identifier (array_declarator "auStack_35c [128]" identifier [ number_literal ]) ;) (declaration "int iStack_2dc;" primitive_type identifier ;) (declaration "sigset_t *psStack_2d8;" type_identifier (pointer_declarator "*psStack_2d8" * identifier) ;) (declaration "undefined1 *puStack_2d4;" type_identifier (pointer_declarator "*puStack_2d4" * identifier) ;) (declaration "int iStack_2d0;" primitive_type identifier ;) (declaration "int *piStack_2cc;" primitive_type (pointer_declarator "*piStack_2cc" * identifier) ;) (declaration "int *piStack_2c8;" primitive_type (pointer_declarator "*piStack_2c8" * identifier) ;) (declaration "undefined4 *puStack_2c4;" type_identifier (pointer_declarator "*puStack_2c4" * identifier) ;) (declaration "int *piStack_2c0;" primitive_type (pointer_declarator "*piStack_2c0" * identifier) ;) (declaration "int iStack_2bc;" primitive_type identifier ;) (declaration "int *piStack_2b8;" primitive_type (pointer_declarator "*piStack_2b8" * identifier) ;) (declaration "code *pcStack_2b4;" type_identifier (pointer_declarator "*pcStack_2b4" * identifier) ;) (declaration "undefined *puStack_2a0;" type_identifier (pointer_declarator "*puStack_2a0" * identifier) ;) (declaration "code *pcStack_294;" type_identifier (pointer_declarator "*pcStack_294" * identifier) ;) (declaration "undefined1 auStack_28c [128];" type_identifier (array_declarator "auStack_28c [128]" identifier [ number_literal ]) ;) (declaration "sigset_t sStack_20c;" type_identifier identifier ;) (declaration "int *piStack_18c;" primitive_type (pointer_declarator "*piStack_18c" * identifier) ;) (declaration "sigset_t *psStack_188;" type_identifier (pointer_declarator "*psStack_188" * identifier) ;) (declaration "sigset_t *psStack_184;" type_identifier (pointer_declarator "*psStack_184" * identifier) ;) (declaration "int iStack_180;" primitive_type identifier ;) (declaration "undefined4 uStack_17c;" type_identifier identifier ;) (declaration "int *piStack_178;" primitive_type (pointer_declarator "*piStack_178" * identifier) ;) (declaration "int iStack_174;" primitive_type identifier ;) (declaration "int *piStack_170;" primitive_type (pointer_declarator "*piStack_170" * identifier) ;) (declaration "int *piStack_16c;" primitive_type (pointer_declarator "*piStack_16c" * identifier) ;) (declaration "undefined *puStack_168;" type_identifier (pointer_declarator "*puStack_168" * identifier) ;) (declaration "code *pcStack_164;" type_identifier (pointer_declarator "*pcStack_164" * identifier) ;) (declaration "sigset_t set;" type_identifier identifier ;) (declaration "sigset_t oset;" type_identifier identifier ;) (expression_statement "puVar26 = PTR___stack_chk_guard_001464dc;" (assignment_expression "puVar26 = PTR___stack_chk_guard_001464dc" identifier = identifier) ;) (expression_statement "piVar27 = (int *)PTR_jobs_00144e5c;" (assignment_expression "piVar27 = (int *)PTR_jobs_00144e5c" identifier = (cast_expression "(int *)PTR_jobs_00144e5c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "psVar17 = &set;" (assignment_expression "psVar17 = &set" identifier = (pointer_expression "&set" & identifier)) ;) (expression_statement "piVar25 = (int *)(job * 4);" (assignment_expression "piVar25 = (int *)(job * 4)" identifier = (cast_expression "(int *)(job * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(job * 4)" ( (binary_expression "job * 4" identifier * number_literal) )))) ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_001464dc;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_001464dc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_001464dc" * (cast_expression "(int *)PTR___stack_chk_guard_001464dc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(psVar17);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(psVar17)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(psVar17)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigaddset_00146364)(psVar17,0x12);" (call_expression "(*(code *)PTR_sigaddset_00146364)(psVar17,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00146364)" ( (pointer_expression "*(code *)PTR_sigaddset_00146364" * (cast_expression "(code *)PTR_sigaddset_00146364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(psVar17,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(&oset);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(&oset)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&oset)" ( (pointer_expression "&oset" & identifier) ))) ;) (expression_statement "block = psVar17;" (assignment_expression "block = psVar17" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,psVar17,&oset)" ( number_literal , identifier , (pointer_expression "&oset" & identifier) ))) ;) (if_statement "if (*(int *)(*(int *)(*piVar27 + (int)piVar25) + 0xc) == 2) {\n    pcVar9 = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);\n    block = (sigset_t *)(job + 1);\n    internal_warning(pcVar9);\n  }" if (parenthesized_expression "(*(int *)(*(int *)(*piVar27 + (int)piVar25) + 0xc) == 2)" ( (binary_expression "*(int *)(*(int *)(*piVar27 + (int)piVar25) + 0xc) == 2" (pointer_expression "*(int *)(*(int *)(*piVar27 + (int)piVar25) + 0xc)" * (cast_expression "(int *)(*(int *)(*piVar27 + (int)piVar25) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar27 + (int)piVar25) + 0xc)" ( (binary_expression "*(int *)(*piVar27 + (int)piVar25) + 0xc" (pointer_expression "*(int *)(*piVar27 + (int)piVar25)" * (cast_expression "(int *)(*piVar27 + (int)piVar25)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar27 + (int)piVar25)" ( (binary_expression "*piVar27 + (int)piVar25" (pointer_expression "*piVar27" * identifier) + (cast_expression "(int)piVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    pcVar9 = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);\n    block = (sigset_t *)(job + 1);\n    internal_warning(pcVar9);\n  }" { (expression_statement "pcVar9 = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);" (assignment_expression "pcVar9 = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5)" identifier = (cast_expression "(char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00146498)" ( (pointer_expression "*(code *)PTR_dcgettext_00146498" * (cast_expression "(code *)PTR_dcgettext_00146498" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_00144578 + 0x7d78,5)" ( number_literal , (binary_expression "PTR_LAB_00144578 + 0x7d78" identifier + number_literal) , number_literal ))))) ;) (expression_statement "block = (sigset_t *)(job + 1);" (assignment_expression "block = (sigset_t *)(job + 1)" identifier = (cast_expression "(sigset_t *)(job + 1)" ( (type_descriptor "sigset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(job + 1)" ( (binary_expression "job + 1" identifier + number_literal) )))) ;) (expression_statement "internal_warning(pcVar9);" (call_expression "internal_warning(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) })) (expression_statement "puVar2 = PTR_js_00144e58;" (assignment_expression "puVar2 = PTR_js_00144e58" identifier = identifier) ;) (expression_statement "puVar1 = PTR_wait_for_00144d9c;" (assignment_expression "puVar1 = PTR_wait_for_00144d9c" identifier = identifier) ;) (expression_statement "piVar20 = (int *)0xffffffff;" (assignment_expression "piVar20 = (int *)0xffffffff" identifier = (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar21 = (int *)(flags & 2);" (assignment_expression "piVar21 = (int *)(flags & 2)" identifier = (cast_expression "(int *)(flags & 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(flags & 2)" ( (binary_expression "flags & 2" identifier & number_literal) )))) ;) (expression_statement "pPVar4 = find_last_proc(job,(int)block);" (assignment_expression "pPVar4 = find_last_proc(job,(int)block)" identifier = (call_expression "find_last_proc(job,(int)block)" identifier (argument_list "(job,(int)block)" ( identifier , (cast_expression "(int)block" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "piVar24 = (int *)pPVar4->pid;" (assignment_expression "piVar24 = (int *)pPVar4->pid" identifier = (cast_expression "(int *)pPVar4->pid" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "pPVar4->pid" identifier -> field_identifier))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,&oset,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,&oset,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,&oset,0)" ( number_literal , (pointer_expression "&oset" & identifier) , number_literal ))) ;) (expression_statement "pcVar5 = (code *)(PTR_LAB_00144ff0 + 0x4e60);" (assignment_expression "pcVar5 = (code *)(PTR_LAB_00144ff0 + 0x4e60)" identifier = (cast_expression "(code *)(PTR_LAB_00144ff0 + 0x4e60)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00144ff0 + 0x4e60)" ( (binary_expression "PTR_LAB_00144ff0 + 0x4e60" identifier + number_literal) )))) ;) (do_statement "do {\n    iVar6 = (*(code *)puVar1)(piVar24);\n    if (((iVar6 == -1) &&\n        (piVar15 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar15 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar5)();\n    }\n    if (piVar21 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(psVar17);\n      (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(&oset);\n      (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n      if (job == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }\n    (*(code *)PTR_sigemptyset_001462d4)();\n    (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n    (*(code *)PTR_sigemptyset_001462d4)(&oset);\n    (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n    if (job == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);\n      (*(code *)PTR_sigemptyset_001462d4)(psVar17);\n      (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(&oset);\n      (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n      goto LAB_0006b0f4;\n    }\n    if (*(int *)(*piVar27 + (int)piVar25) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);\n      break;\n    }\n    iVar10 = *(int *)(*(int *)(*piVar27 + (int)piVar25) + 0xc);\n    (*(code *)PTR_sigprocmask_00146514)(3,&oset);\n  } while (iVar10 != 4);" do (compound_statement "{\n    iVar6 = (*(code *)puVar1)(piVar24);\n    if (((iVar6 == -1) &&\n        (piVar15 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar15 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar5)();\n    }\n    if (piVar21 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(psVar17);\n      (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(&oset);\n      (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n      if (job == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }\n    (*(code *)PTR_sigemptyset_001462d4)();\n    (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n    (*(code *)PTR_sigemptyset_001462d4)(&oset);\n    (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n    if (job == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);\n      (*(code *)PTR_sigemptyset_001462d4)(psVar17);\n      (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(&oset);\n      (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n      goto LAB_0006b0f4;\n    }\n    if (*(int *)(*piVar27 + (int)piVar25) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);\n      break;\n    }\n    iVar10 = *(int *)(*(int *)(*piVar27 + (int)piVar25) + 0xc);\n    (*(code *)PTR_sigprocmask_00146514)(3,&oset);\n  }" { (expression_statement "iVar6 = (*(code *)puVar1)(piVar24);" (assignment_expression "iVar6 = (*(code *)puVar1)(piVar24)" identifier = (call_expression "(*(code *)puVar1)(piVar24)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar24)" ( identifier )))) ;) (if_statement "if (((iVar6 == -1) &&\n        (piVar15 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar15 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar5)();\n    }" if (parenthesized_expression "(((iVar6 == -1) &&\n        (piVar15 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar15 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0))" ( (binary_expression "((iVar6 == -1) &&\n        (piVar15 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar15 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)" (parenthesized_expression "((iVar6 == -1) &&\n        (piVar15 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar15 == 10))" ( (binary_expression "(iVar6 == -1) &&\n        (piVar15 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar15 == 10)" (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) && (parenthesized_expression "(piVar15 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar15 == 10)" ( (comma_expression "piVar15 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar15 == 10" (assignment_expression "piVar15 = (int *)(*(code *)PTR___errno_location_0014633c)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0014633c)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0014633c)()" (parenthesized_expression "(*(code *)PTR___errno_location_0014633c)" ( (pointer_expression "*(code *)PTR___errno_location_0014633c" * (cast_expression "(code *)PTR___errno_location_0014633c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) , (binary_expression "*piVar15 == 10" (pointer_expression "*piVar15" * identifier) == number_literal)) ))) )) && (parenthesized_expression "(*(int *)(puVar2 + 0x18) != 0)" ( (binary_expression "*(int *)(puVar2 + 0x18) != 0" (pointer_expression "*(int *)(puVar2 + 0x18)" * (cast_expression "(int *)(puVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x18)" ( (binary_expression "puVar2 + 0x18" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n      (*pcVar5)();\n    }" { (expression_statement "(*pcVar5)();" (call_expression "(*pcVar5)()" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "()" ( ))) ;) })) (if_statement "if (piVar21 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(psVar17);\n      (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(&oset);\n      (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n      if (job == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }" if (parenthesized_expression "(piVar21 == (int *)0x0)" ( (binary_expression "piVar21 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_sigemptyset_001462d4)(psVar17);\n      (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(&oset);\n      (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n      if (job == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }" { (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(psVar17);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(psVar17)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(psVar17)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigaddset_00146364)(psVar17,0x12);" (call_expression "(*(code *)PTR_sigaddset_00146364)(psVar17,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00146364)" ( (pointer_expression "*(code *)PTR_sigaddset_00146364" * (cast_expression "(code *)PTR_sigaddset_00146364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(psVar17,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(&oset);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(&oset)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&oset)" ( (pointer_expression "&oset" & identifier) ))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,psVar17,&oset)" ( number_literal , identifier , (pointer_expression "&oset" & identifier) ))) ;) (if_statement "if (job == -1) goto LAB_0006b0f4;" if (parenthesized_expression "(job == -1)" ( (binary_expression "job == -1" identifier == number_literal) )) (goto_statement "goto LAB_0006b0f4;" goto statement_identifier ;)) (goto_statement "goto LAB_0006b0d0;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)();" (call_expression "(*(code *)PTR_sigemptyset_001462d4)()" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(*(code *)PTR_sigaddset_00146364)(psVar17,0x12);" (call_expression "(*(code *)PTR_sigaddset_00146364)(psVar17,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00146364)" ( (pointer_expression "*(code *)PTR_sigaddset_00146364" * (cast_expression "(code *)PTR_sigaddset_00146364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(psVar17,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(&oset);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(&oset)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&oset)" ( (pointer_expression "&oset" & identifier) ))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,psVar17,&oset)" ( number_literal , identifier , (pointer_expression "&oset" & identifier) ))) ;) (if_statement "if (job == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);\n      (*(code *)PTR_sigemptyset_001462d4)(psVar17);\n      (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(&oset);\n      (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n      goto LAB_0006b0f4;\n    }" if (parenthesized_expression "(job == -1)" ( (binary_expression "job == -1" identifier == number_literal) )) (compound_statement "{\n      (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);\n      (*(code *)PTR_sigemptyset_001462d4)(psVar17);\n      (*(code *)PTR_sigaddset_00146364)(psVar17,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(&oset);\n      (*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);\n      goto LAB_0006b0f4;\n    }" { (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,&oset,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,&oset,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,&oset,0)" ( number_literal , (pointer_expression "&oset" & identifier) , number_literal ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(psVar17);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(psVar17)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(psVar17)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigaddset_00146364)(psVar17,0x12);" (call_expression "(*(code *)PTR_sigaddset_00146364)(psVar17,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00146364)" ( (pointer_expression "*(code *)PTR_sigaddset_00146364" * (cast_expression "(code *)PTR_sigaddset_00146364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(psVar17,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(&oset);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(&oset)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&oset)" ( (pointer_expression "&oset" & identifier) ))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,psVar17,&oset)" ( number_literal , identifier , (pointer_expression "&oset" & identifier) ))) ;) (goto_statement "goto LAB_0006b0f4;" goto statement_identifier ;) })) (if_statement "if (*(int *)(*piVar27 + (int)piVar25) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);\n      break;\n    }" if (parenthesized_expression "(*(int *)(*piVar27 + (int)piVar25) == 0)" ( (binary_expression "*(int *)(*piVar27 + (int)piVar25) == 0" (pointer_expression "*(int *)(*piVar27 + (int)piVar25)" * (cast_expression "(int *)(*piVar27 + (int)piVar25)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar27 + (int)piVar25)" ( (binary_expression "*piVar27 + (int)piVar25" (pointer_expression "*piVar27" * identifier) + (cast_expression "(int)piVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == number_literal) )) (compound_statement "{\n      (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);\n      break;\n    }" { (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,&oset,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,&oset,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,&oset,0)" ( number_literal , (pointer_expression "&oset" & identifier) , number_literal ))) ;) (break_statement "break;" break ;) })) (expression_statement "iVar10 = *(int *)(*(int *)(*piVar27 + (int)piVar25) + 0xc);" (assignment_expression "iVar10 = *(int *)(*(int *)(*piVar27 + (int)piVar25) + 0xc)" identifier = (pointer_expression "*(int *)(*(int *)(*piVar27 + (int)piVar25) + 0xc)" * (cast_expression "(int *)(*(int *)(*piVar27 + (int)piVar25) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar27 + (int)piVar25) + 0xc)" ( (binary_expression "*(int *)(*piVar27 + (int)piVar25) + 0xc" (pointer_expression "*(int *)(*piVar27 + (int)piVar25)" * (cast_expression "(int *)(*piVar27 + (int)piVar25)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar27 + (int)piVar25)" ( (binary_expression "*piVar27 + (int)piVar25" (pointer_expression "*piVar27" * identifier) + (cast_expression "(int)piVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )))) + number_literal) ))))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,&oset);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,&oset)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,&oset)" ( number_literal , (pointer_expression "&oset" & identifier) ))) ;) }) while (parenthesized_expression "(iVar10 != 4)" ( (binary_expression "iVar10 != 4" identifier != number_literal) )) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(psVar17);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(psVar17)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(psVar17)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigaddset_00146364)(psVar17,0x12);" (call_expression "(*(code *)PTR_sigaddset_00146364)(psVar17,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00146364)" ( (pointer_expression "*(code *)PTR_sigaddset_00146364" * (cast_expression "(code *)PTR_sigaddset_00146364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(psVar17,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(&oset);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(&oset)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&oset)" ( (pointer_expression "&oset" & identifier) ))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,psVar17,&oset)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,psVar17,&oset)" ( number_literal , identifier , (pointer_expression "&oset" & identifier) ))) ;) (labeled_statement "LAB_0006b0d0:\n  piVar25 = (int *)(*piVar27 + (int)piVar25);" statement_identifier : (expression_statement "piVar25 = (int *)(*piVar27 + (int)piVar25);" (assignment_expression "piVar25 = (int *)(*piVar27 + (int)piVar25)" identifier = (cast_expression "(int *)(*piVar27 + (int)piVar25)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar27 + (int)piVar25)" ( (binary_expression "*piVar27 + (int)piVar25" (pointer_expression "*piVar27" * identifier) + (cast_expression "(int)piVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "iVar10 = *piVar25;" (assignment_expression "iVar10 = *piVar25" identifier = (pointer_expression "*piVar25" * identifier)) ;) (if_statement "if ((iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4)) {\n    *(uint *)(iVar10 + 0x10) = *(uint *)(iVar10 + 0x10) | 2;\n  }" if (parenthesized_expression "((iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4))" ( (binary_expression "(iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4)" (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(iVar10 + 0xc) == 4)" ( (binary_expression "*(int *)(iVar10 + 0xc) == 4" (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    *(uint *)(iVar10 + 0x10) = *(uint *)(iVar10 + 0x10) | 2;\n  }" { (expression_statement "*(uint *)(iVar10 + 0x10) = *(uint *)(iVar10 + 0x10) | 2;" (assignment_expression "*(uint *)(iVar10 + 0x10) = *(uint *)(iVar10 + 0x10) | 2" (pointer_expression "*(uint *)(iVar10 + 0x10)" * (cast_expression "(uint *)(iVar10 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar10 + 0x10) | 2" (pointer_expression "*(uint *)(iVar10 + 0x10)" * (cast_expression "(uint *)(iVar10 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) )))) | number_literal)) ;) })) (labeled_statement "LAB_0006b0f4:\n  (*(code *)PTR_sigprocmask_00146514)(3,&oset,0);" statement_identifier : (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,&oset,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,&oset,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,&oset,0)" ( number_literal , (pointer_expression "&oset" & identifier) , number_literal ))) ;)) (if_statement "if (iVar3 == *(int *)puVar26) {\n    return iVar6;\n  }" if (parenthesized_expression "(iVar3 == *(int *)puVar26)" ( (binary_expression "iVar3 == *(int *)puVar26" identifier == (pointer_expression "*(int *)puVar26" * (cast_expression "(int *)puVar26" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) })) (expression_statement "pcVar5 = wait_for_any_job;" (assignment_expression "pcVar5 = wait_for_any_job" identifier = identifier) ;) (expression_statement "puVar26 = PTR___stack_chk_fail_00146488;" (assignment_expression "puVar26 = PTR___stack_chk_fail_00146488" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00146488)();" (call_expression "(*(code *)PTR___stack_chk_fail_00146488)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00146488)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00146488" * (cast_expression "(code *)PTR___stack_chk_fail_00146488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_2a0 = puVar26 + 0xe1290;" (assignment_expression "puStack_2a0 = puVar26 + 0xe1290" identifier = (binary_expression "puVar26 + 0xe1290" identifier + number_literal)) ;) (expression_statement "iVar3 = *(int *)(puVar26 + 0xd9ea4);" (assignment_expression "iVar3 = *(int *)(puVar26 + 0xd9ea4)" identifier = (pointer_expression "*(int *)(puVar26 + 0xd9ea4)" * (cast_expression "(int *)(puVar26 + 0xd9ea4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xd9ea4)" ( (binary_expression "puVar26 + 0xd9ea4" identifier + number_literal) ))))) ;) (expression_statement "puVar23 = *(undefined4 **)(puVar26 + 0xdb22c);" (assignment_expression "puVar23 = *(undefined4 **)(puVar26 + 0xdb22c)" identifier = (pointer_expression "*(undefined4 **)(puVar26 + 0xdb22c)" * (cast_expression "(undefined4 **)(puVar26 + 0xdb22c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0xdb22c)" ( (binary_expression "puVar26 + 0xdb22c" identifier + number_literal) ))))) ;) (expression_statement "puStack_168 = (undefined *)piVar27;" (assignment_expression "puStack_168 = (undefined *)piVar27" identifier = (cast_expression "(undefined *)piVar27" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uStack_17c = 0xffffffff;" (assignment_expression "uStack_17c = 0xffffffff" identifier = number_literal) ;) (expression_statement "piStack_18c = (int *)*puVar23;" (assignment_expression "piStack_18c = (int *)*puVar23" identifier = (cast_expression "(int *)*puVar23" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar23" * identifier))) ;) (expression_statement "psStack_188 = psVar17;" (assignment_expression "psStack_188 = psVar17" identifier = identifier) ;) (expression_statement "psStack_184 = &oset;" (assignment_expression "psStack_184 = &oset" identifier = (pointer_expression "&oset" & identifier)) ;) (expression_statement "iStack_180 = iVar6;" (assignment_expression "iStack_180 = iVar6" identifier = identifier) ;) (expression_statement "piStack_178 = piVar21;" (assignment_expression "piStack_178 = piVar21" identifier = identifier) ;) (expression_statement "iStack_174 = job;" (assignment_expression "iStack_174 = job" identifier = identifier) ;) (expression_statement "piStack_170 = piVar24;" (assignment_expression "piStack_170 = piVar24" identifier = identifier) ;) (expression_statement "piStack_16c = piVar25;" (assignment_expression "piStack_16c = piVar25" identifier = identifier) ;) (expression_statement "pcStack_164 = pcVar5;" (assignment_expression "pcStack_164 = pcVar5" identifier = identifier) ;) (if_statement "if (*(int *)(iVar3 + -0x705c) == 0) {\n    puVar7 = auStack_28c;\n    iVar6 = *(int *)(puVar26 + 0xd9ba8);\n    psVar17 = &sStack_20c;\n    (**(code **)(puVar26 + 0xdb024))(puVar7);\n    (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);\n    (**(code **)(puStack_2a0 + -0x626c))(psVar17);\n    (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);\n    if (0 < (int)*(int **)(iVar6 + 0x18)) {\n      piVar27 = (int *)0x0;\n      piVar15 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar25 = piVar15;\n      do {\n        iVar10 = *piVar25;\n        if (((iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4)) &&\n           ((*(uint *)(iVar10 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar27 = (int *)((int)piVar27 + 1);\n        piVar25 = piVar25 + 1;\n      } while (piVar27 != *(int **)(iVar6 + 0x18));\n    }\n    piVar21 = *(int **)(puStack_2a0 + -0x76e4);\n    piVar20 = *(int **)(puStack_2a0 + -0x7d0c);\n    (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n    piVar27 = *(int **)(puStack_2a0 + -0x7550);\n    piVar24 = *(int **)(puStack_2a0 + -0x7d04);\n    pcStack_294 = (code *)(piVar27 + 0x1398);\n    do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar7);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(psVar17);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);\n      iVar10 = *(int *)(iVar6 + 0x18);\n      if (iVar10 < 1) {\n        pcVar5 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar10 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n          puVar7 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar25 = (int *)*piVar21;\n        iVar12 = 0;\n        while (((iVar22 = *piVar25, iVar22 == 0 || (*(int *)(iVar22 + 0xc) != 1)) ||\n               ((*(uint *)(iVar22 + 0x10) & 1) != 0))) {\n          iVar12 = iVar12 + 1;\n          piVar25 = piVar25 + 1;\n          if (iVar12 == iVar10) goto LAB_0006b680;\n        }\n        pcVar5 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar5)(3,psVar17,0);\n      if (*piVar20 == 0) {\n        pcVar5 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar24 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar5)();\n        if (*piVar20 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar20);\n        if (*piVar24 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar20 != 0) {\nLAB_0006b708:\n          (*pcVar5)(*piVar20);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar5 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar25 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar26 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar27 = (int *)(*pcVar5)();\n      *piVar27 = 0;\n      iVar10 = wait_for(-1);\n      if (iVar10 == -1) {\n        pcVar5 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar27 == 10) && (*(int *)(iVar6 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar5)(puVar7);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(psVar17);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);\n      if (0 < (int)*(int **)(iVar6 + 0x18)) {\n        piVar15 = (int *)*piVar21;\n        piVar27 = (int *)0x0;\n        piVar25 = piVar15;\n        do {\n          if ((*piVar25 != 0) && (*(int *)(*piVar25 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar27 = (int *)((int)piVar27 + 1);\n          piVar25 = piVar25 + 1;\n        } while (*(int **)(iVar6 + 0x18) != piVar27);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n    } while( true );\n  }" if (parenthesized_expression "(*(int *)(iVar3 + -0x705c) == 0)" ( (binary_expression "*(int *)(iVar3 + -0x705c) == 0" (pointer_expression "*(int *)(iVar3 + -0x705c)" * (cast_expression "(int *)(iVar3 + -0x705c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -0x705c)" ( (binary_expression "iVar3 + -0x705c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    puVar7 = auStack_28c;\n    iVar6 = *(int *)(puVar26 + 0xd9ba8);\n    psVar17 = &sStack_20c;\n    (**(code **)(puVar26 + 0xdb024))(puVar7);\n    (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);\n    (**(code **)(puStack_2a0 + -0x626c))(psVar17);\n    (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);\n    if (0 < (int)*(int **)(iVar6 + 0x18)) {\n      piVar27 = (int *)0x0;\n      piVar15 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar25 = piVar15;\n      do {\n        iVar10 = *piVar25;\n        if (((iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4)) &&\n           ((*(uint *)(iVar10 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar27 = (int *)((int)piVar27 + 1);\n        piVar25 = piVar25 + 1;\n      } while (piVar27 != *(int **)(iVar6 + 0x18));\n    }\n    piVar21 = *(int **)(puStack_2a0 + -0x76e4);\n    piVar20 = *(int **)(puStack_2a0 + -0x7d0c);\n    (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n    piVar27 = *(int **)(puStack_2a0 + -0x7550);\n    piVar24 = *(int **)(puStack_2a0 + -0x7d04);\n    pcStack_294 = (code *)(piVar27 + 0x1398);\n    do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar7);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(psVar17);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);\n      iVar10 = *(int *)(iVar6 + 0x18);\n      if (iVar10 < 1) {\n        pcVar5 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar10 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n          puVar7 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar25 = (int *)*piVar21;\n        iVar12 = 0;\n        while (((iVar22 = *piVar25, iVar22 == 0 || (*(int *)(iVar22 + 0xc) != 1)) ||\n               ((*(uint *)(iVar22 + 0x10) & 1) != 0))) {\n          iVar12 = iVar12 + 1;\n          piVar25 = piVar25 + 1;\n          if (iVar12 == iVar10) goto LAB_0006b680;\n        }\n        pcVar5 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar5)(3,psVar17,0);\n      if (*piVar20 == 0) {\n        pcVar5 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar24 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar5)();\n        if (*piVar20 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar20);\n        if (*piVar24 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar20 != 0) {\nLAB_0006b708:\n          (*pcVar5)(*piVar20);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar5 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar25 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar26 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar27 = (int *)(*pcVar5)();\n      *piVar27 = 0;\n      iVar10 = wait_for(-1);\n      if (iVar10 == -1) {\n        pcVar5 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar27 == 10) && (*(int *)(iVar6 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar5)(puVar7);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(psVar17);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);\n      if (0 < (int)*(int **)(iVar6 + 0x18)) {\n        piVar15 = (int *)*piVar21;\n        piVar27 = (int *)0x0;\n        piVar25 = piVar15;\n        do {\n          if ((*piVar25 != 0) && (*(int *)(*piVar25 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar27 = (int *)((int)piVar27 + 1);\n          piVar25 = piVar25 + 1;\n        } while (*(int **)(iVar6 + 0x18) != piVar27);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n    } while( true );\n  }" { (expression_statement "puVar7 = auStack_28c;" (assignment_expression "puVar7 = auStack_28c" identifier = identifier) ;) (expression_statement "iVar6 = *(int *)(puVar26 + 0xd9ba8);" (assignment_expression "iVar6 = *(int *)(puVar26 + 0xd9ba8)" identifier = (pointer_expression "*(int *)(puVar26 + 0xd9ba8)" * (cast_expression "(int *)(puVar26 + 0xd9ba8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xd9ba8)" ( (binary_expression "puVar26 + 0xd9ba8" identifier + number_literal) ))))) ;) (expression_statement "psVar17 = &sStack_20c;" (assignment_expression "psVar17 = &sStack_20c" identifier = (pointer_expression "&sStack_20c" & identifier)) ;) (expression_statement "(**(code **)(puVar26 + 0xdb024))(puVar7);" (call_expression "(**(code **)(puVar26 + 0xdb024))(puVar7)" (parenthesized_expression "(**(code **)(puVar26 + 0xdb024))" ( (pointer_expression "**(code **)(puVar26 + 0xdb024)" * (pointer_expression "*(code **)(puVar26 + 0xdb024)" * (cast_expression "(code **)(puVar26 + 0xdb024)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0xdb024)" ( (binary_expression "puVar26 + 0xdb024" identifier + number_literal) ))))) )) (argument_list "(puVar7)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);" (call_expression "(**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x61dc))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x61dc)" * (pointer_expression "*(code **)(puStack_2a0 + -0x61dc)" * (cast_expression "(code **)(puStack_2a0 + -0x61dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x61dc)" ( (binary_expression "puStack_2a0 + -0x61dc" identifier + number_literal) ))))) )) (argument_list "(puVar7,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x626c))(psVar17);" (call_expression "(**(code **)(puStack_2a0 + -0x626c))(psVar17)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x626c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x626c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" * (cast_expression "(code **)(puStack_2a0 + -0x626c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x626c)" ( (binary_expression "puStack_2a0 + -0x626c" identifier + number_literal) ))))) )) (argument_list "(psVar17)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(1,puVar7,psVar17)" ( number_literal , identifier , identifier ))) ;) (if_statement "if (0 < (int)*(int **)(iVar6 + 0x18)) {\n      piVar27 = (int *)0x0;\n      piVar15 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar25 = piVar15;\n      do {\n        iVar10 = *piVar25;\n        if (((iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4)) &&\n           ((*(uint *)(iVar10 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar27 = (int *)((int)piVar27 + 1);\n        piVar25 = piVar25 + 1;\n      } while (piVar27 != *(int **)(iVar6 + 0x18));\n    }" if (parenthesized_expression "(0 < (int)*(int **)(iVar6 + 0x18))" ( (binary_expression "0 < (int)*(int **)(iVar6 + 0x18)" number_literal < (cast_expression "(int)*(int **)(iVar6 + 0x18)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(int **)(iVar6 + 0x18)" * (cast_expression "(int **)(iVar6 + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))))) )) (compound_statement "{\n      piVar27 = (int *)0x0;\n      piVar15 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar25 = piVar15;\n      do {\n        iVar10 = *piVar25;\n        if (((iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4)) &&\n           ((*(uint *)(iVar10 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar27 = (int *)((int)piVar27 + 1);\n        piVar25 = piVar25 + 1;\n      } while (piVar27 != *(int **)(iVar6 + 0x18));\n    }" { (expression_statement "piVar27 = (int *)0x0;" (assignment_expression "piVar27 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar15 = (int *)**(int **)(puStack_2a0 + -0x76e4);" (assignment_expression "piVar15 = (int *)**(int **)(puStack_2a0 + -0x76e4)" identifier = (cast_expression "(int *)**(int **)(puStack_2a0 + -0x76e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(puStack_2a0 + -0x76e4)" * (pointer_expression "*(int **)(puStack_2a0 + -0x76e4)" * (cast_expression "(int **)(puStack_2a0 + -0x76e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x76e4)" ( (binary_expression "puStack_2a0 + -0x76e4" identifier + number_literal) ))))))) ;) (expression_statement "piVar25 = piVar15;" (assignment_expression "piVar25 = piVar15" identifier = identifier) ;) (do_statement "do {\n        iVar10 = *piVar25;\n        if (((iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4)) &&\n           ((*(uint *)(iVar10 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar27 = (int *)((int)piVar27 + 1);\n        piVar25 = piVar25 + 1;\n      } while (piVar27 != *(int **)(iVar6 + 0x18));" do (compound_statement "{\n        iVar10 = *piVar25;\n        if (((iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4)) &&\n           ((*(uint *)(iVar10 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar27 = (int *)((int)piVar27 + 1);\n        piVar25 = piVar25 + 1;\n      }" { (expression_statement "iVar10 = *piVar25;" (assignment_expression "iVar10 = *piVar25" identifier = (pointer_expression "*piVar25" * identifier)) ;) (if_statement "if (((iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4)) &&\n           ((*(uint *)(iVar10 + 0x10) & 2) == 0)) goto LAB_0006b3b8;" if (parenthesized_expression "(((iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4)) &&\n           ((*(uint *)(iVar10 + 0x10) & 2) == 0))" ( (binary_expression "((iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4)) &&\n           ((*(uint *)(iVar10 + 0x10) & 2) == 0)" (parenthesized_expression "((iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4))" ( (binary_expression "(iVar10 != 0) && (*(int *)(iVar10 + 0xc) == 4)" (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(iVar10 + 0xc) == 4)" ( (binary_expression "*(int *)(iVar10 + 0xc) == 4" (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "((*(uint *)(iVar10 + 0x10) & 2) == 0)" ( (binary_expression "(*(uint *)(iVar10 + 0x10) & 2) == 0" (parenthesized_expression "(*(uint *)(iVar10 + 0x10) & 2)" ( (binary_expression "*(uint *)(iVar10 + 0x10) & 2" (pointer_expression "*(uint *)(iVar10 + 0x10)" * (cast_expression "(uint *)(iVar10 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_0006b3b8;" goto statement_identifier ;)) (expression_statement "piVar27 = (int *)((int)piVar27 + 1);" (assignment_expression "piVar27 = (int *)((int)piVar27 + 1)" identifier = (cast_expression "(int *)((int)piVar27 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + 1)" ( (binary_expression "(int)piVar27 + 1" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar25 = piVar25 + 1;" (assignment_expression "piVar25 = piVar25 + 1" identifier = (binary_expression "piVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar27 != *(int **)(iVar6 + 0x18))" ( (binary_expression "piVar27 != *(int **)(iVar6 + 0x18)" identifier != (pointer_expression "*(int **)(iVar6 + 0x18)" * (cast_expression "(int **)(iVar6 + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "piVar21 = *(int **)(puStack_2a0 + -0x76e4);" (assignment_expression "piVar21 = *(int **)(puStack_2a0 + -0x76e4)" identifier = (pointer_expression "*(int **)(puStack_2a0 + -0x76e4)" * (cast_expression "(int **)(puStack_2a0 + -0x76e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x76e4)" ( (binary_expression "puStack_2a0 + -0x76e4" identifier + number_literal) ))))) ;) (expression_statement "piVar20 = *(int **)(puStack_2a0 + -0x7d0c);" (assignment_expression "piVar20 = *(int **)(puStack_2a0 + -0x7d0c)" identifier = (pointer_expression "*(int **)(puStack_2a0 + -0x7d0c)" * (cast_expression "(int **)(puStack_2a0 + -0x7d0c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7d0c)" ( (binary_expression "puStack_2a0 + -0x7d0c" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(3,psVar17,0)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "piVar27 = *(int **)(puStack_2a0 + -0x7550);" (assignment_expression "piVar27 = *(int **)(puStack_2a0 + -0x7550)" identifier = (pointer_expression "*(int **)(puStack_2a0 + -0x7550)" * (cast_expression "(int **)(puStack_2a0 + -0x7550)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7550)" ( (binary_expression "puStack_2a0 + -0x7550" identifier + number_literal) ))))) ;) (expression_statement "piVar24 = *(int **)(puStack_2a0 + -0x7d04);" (assignment_expression "piVar24 = *(int **)(puStack_2a0 + -0x7d04)" identifier = (pointer_expression "*(int **)(puStack_2a0 + -0x7d04)" * (cast_expression "(int **)(puStack_2a0 + -0x7d04)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7d04)" ( (binary_expression "puStack_2a0 + -0x7d04" identifier + number_literal) ))))) ;) (expression_statement "pcStack_294 = (code *)(piVar27 + 0x1398);" (assignment_expression "pcStack_294 = (code *)(piVar27 + 0x1398)" identifier = (cast_expression "(code *)(piVar27 + 0x1398)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar27 + 0x1398)" ( (binary_expression "piVar27 + 0x1398" identifier + number_literal) )))) ;) (do_statement "do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar7);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(psVar17);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);\n      iVar10 = *(int *)(iVar6 + 0x18);\n      if (iVar10 < 1) {\n        pcVar5 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar10 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n          puVar7 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar25 = (int *)*piVar21;\n        iVar12 = 0;\n        while (((iVar22 = *piVar25, iVar22 == 0 || (*(int *)(iVar22 + 0xc) != 1)) ||\n               ((*(uint *)(iVar22 + 0x10) & 1) != 0))) {\n          iVar12 = iVar12 + 1;\n          piVar25 = piVar25 + 1;\n          if (iVar12 == iVar10) goto LAB_0006b680;\n        }\n        pcVar5 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar5)(3,psVar17,0);\n      if (*piVar20 == 0) {\n        pcVar5 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar24 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar5)();\n        if (*piVar20 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar20);\n        if (*piVar24 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar20 != 0) {\nLAB_0006b708:\n          (*pcVar5)(*piVar20);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar5 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar25 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar26 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar27 = (int *)(*pcVar5)();\n      *piVar27 = 0;\n      iVar10 = wait_for(-1);\n      if (iVar10 == -1) {\n        pcVar5 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar27 == 10) && (*(int *)(iVar6 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar5)(puVar7);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(psVar17);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);\n      if (0 < (int)*(int **)(iVar6 + 0x18)) {\n        piVar15 = (int *)*piVar21;\n        piVar27 = (int *)0x0;\n        piVar25 = piVar15;\n        do {\n          if ((*piVar25 != 0) && (*(int *)(*piVar25 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar27 = (int *)((int)piVar27 + 1);\n          piVar25 = piVar25 + 1;\n        } while (*(int **)(iVar6 + 0x18) != piVar27);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n    } while( true );" do (compound_statement "{\n      (**(code **)(puStack_2a0 + -0x626c))(puVar7);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(psVar17);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);\n      iVar10 = *(int *)(iVar6 + 0x18);\n      if (iVar10 < 1) {\n        pcVar5 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar10 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n          puVar7 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar25 = (int *)*piVar21;\n        iVar12 = 0;\n        while (((iVar22 = *piVar25, iVar22 == 0 || (*(int *)(iVar22 + 0xc) != 1)) ||\n               ((*(uint *)(iVar22 + 0x10) & 1) != 0))) {\n          iVar12 = iVar12 + 1;\n          piVar25 = piVar25 + 1;\n          if (iVar12 == iVar10) goto LAB_0006b680;\n        }\n        pcVar5 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar5)(3,psVar17,0);\n      if (*piVar20 == 0) {\n        pcVar5 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar24 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar5)();\n        if (*piVar20 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar20);\n        if (*piVar24 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar20 != 0) {\nLAB_0006b708:\n          (*pcVar5)(*piVar20);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar5 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar25 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar26 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar27 = (int *)(*pcVar5)();\n      *piVar27 = 0;\n      iVar10 = wait_for(-1);\n      if (iVar10 == -1) {\n        pcVar5 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar27 == 10) && (*(int *)(iVar6 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar5)(puVar7);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(psVar17);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);\n      if (0 < (int)*(int **)(iVar6 + 0x18)) {\n        piVar15 = (int *)*piVar21;\n        piVar27 = (int *)0x0;\n        piVar25 = piVar15;\n        do {\n          if ((*piVar25 != 0) && (*(int *)(*piVar25 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar27 = (int *)((int)piVar27 + 1);\n          piVar25 = piVar25 + 1;\n        } while (*(int **)(iVar6 + 0x18) != piVar27);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n    }" { (expression_statement "(**(code **)(puStack_2a0 + -0x626c))(puVar7);" (call_expression "(**(code **)(puStack_2a0 + -0x626c))(puVar7)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x626c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x626c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" * (cast_expression "(code **)(puStack_2a0 + -0x626c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x626c)" ( (binary_expression "puStack_2a0 + -0x626c" identifier + number_literal) ))))) )) (argument_list "(puVar7)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);" (call_expression "(**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x61dc))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x61dc)" * (pointer_expression "*(code **)(puStack_2a0 + -0x61dc)" * (cast_expression "(code **)(puStack_2a0 + -0x61dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x61dc)" ( (binary_expression "puStack_2a0 + -0x61dc" identifier + number_literal) ))))) )) (argument_list "(puVar7,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x626c))(psVar17);" (call_expression "(**(code **)(puStack_2a0 + -0x626c))(psVar17)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x626c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x626c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" * (cast_expression "(code **)(puStack_2a0 + -0x626c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x626c)" ( (binary_expression "puStack_2a0 + -0x626c" identifier + number_literal) ))))) )) (argument_list "(psVar17)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(1,puVar7,psVar17)" ( number_literal , identifier , identifier ))) ;) (expression_statement "iVar10 = *(int *)(iVar6 + 0x18);" (assignment_expression "iVar10 = *(int *)(iVar6 + 0x18)" identifier = (pointer_expression "*(int *)(iVar6 + 0x18)" * (cast_expression "(int *)(iVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 < 1) {\n        pcVar5 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar10 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n          puVar7 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar25 = (int *)*piVar21;\n        iVar12 = 0;\n        while (((iVar22 = *piVar25, iVar22 == 0 || (*(int *)(iVar22 + 0xc) != 1)) ||\n               ((*(uint *)(iVar22 + 0x10) & 1) != 0))) {\n          iVar12 = iVar12 + 1;\n          piVar25 = piVar25 + 1;\n          if (iVar12 == iVar10) goto LAB_0006b680;\n        }\n        pcVar5 = *(code **)(puStack_2a0 + -0x602c);\n      }" if (parenthesized_expression "(iVar10 < 1)" ( (binary_expression "iVar10 < 1" identifier < number_literal) )) (compound_statement "{\n        pcVar5 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar10 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n          puVar7 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }" { (expression_statement "pcVar5 = *(code **)(puStack_2a0 + -0x602c);" (assignment_expression "pcVar5 = *(code **)(puStack_2a0 + -0x602c)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n          puVar7 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);\n          puVar7 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }" { (labeled_statement "LAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);" statement_identifier : (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(3,psVar17,0)" ( number_literal , identifier , number_literal ))) ;)) (expression_statement "puVar7 = (undefined1 *)0xffffffff;" (assignment_expression "puVar7 = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0006b430;" goto statement_identifier ;) })) }) (else_clause "else {\n        piVar25 = (int *)*piVar21;\n        iVar12 = 0;\n        while (((iVar22 = *piVar25, iVar22 == 0 || (*(int *)(iVar22 + 0xc) != 1)) ||\n               ((*(uint *)(iVar22 + 0x10) & 1) != 0))) {\n          iVar12 = iVar12 + 1;\n          piVar25 = piVar25 + 1;\n          if (iVar12 == iVar10) goto LAB_0006b680;\n        }\n        pcVar5 = *(code **)(puStack_2a0 + -0x602c);\n      }" else (compound_statement "{\n        piVar25 = (int *)*piVar21;\n        iVar12 = 0;\n        while (((iVar22 = *piVar25, iVar22 == 0 || (*(int *)(iVar22 + 0xc) != 1)) ||\n               ((*(uint *)(iVar22 + 0x10) & 1) != 0))) {\n          iVar12 = iVar12 + 1;\n          piVar25 = piVar25 + 1;\n          if (iVar12 == iVar10) goto LAB_0006b680;\n        }\n        pcVar5 = *(code **)(puStack_2a0 + -0x602c);\n      }" { (expression_statement "piVar25 = (int *)*piVar21;" (assignment_expression "piVar25 = (int *)*piVar21" identifier = (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (while_statement "while (((iVar22 = *piVar25, iVar22 == 0 || (*(int *)(iVar22 + 0xc) != 1)) ||\n               ((*(uint *)(iVar22 + 0x10) & 1) != 0))) {\n          iVar12 = iVar12 + 1;\n          piVar25 = piVar25 + 1;\n          if (iVar12 == iVar10) goto LAB_0006b680;\n        }" while (parenthesized_expression "(((iVar22 = *piVar25, iVar22 == 0 || (*(int *)(iVar22 + 0xc) != 1)) ||\n               ((*(uint *)(iVar22 + 0x10) & 1) != 0)))" ( (parenthesized_expression "((iVar22 = *piVar25, iVar22 == 0 || (*(int *)(iVar22 + 0xc) != 1)) ||\n               ((*(uint *)(iVar22 + 0x10) & 1) != 0))" ( (binary_expression "(iVar22 = *piVar25, iVar22 == 0 || (*(int *)(iVar22 + 0xc) != 1)) ||\n               ((*(uint *)(iVar22 + 0x10) & 1) != 0)" (parenthesized_expression "(iVar22 = *piVar25, iVar22 == 0 || (*(int *)(iVar22 + 0xc) != 1))" ( (comma_expression "iVar22 = *piVar25, iVar22 == 0 || (*(int *)(iVar22 + 0xc) != 1)" (assignment_expression "iVar22 = *piVar25" identifier = (pointer_expression "*piVar25" * identifier)) , (binary_expression "iVar22 == 0 || (*(int *)(iVar22 + 0xc) != 1)" (binary_expression "iVar22 == 0" identifier == number_literal) || (parenthesized_expression "(*(int *)(iVar22 + 0xc) != 1)" ( (binary_expression "*(int *)(iVar22 + 0xc) != 1" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) != number_literal) )))) )) || (parenthesized_expression "((*(uint *)(iVar22 + 0x10) & 1) != 0)" ( (binary_expression "(*(uint *)(iVar22 + 0x10) & 1) != 0" (parenthesized_expression "(*(uint *)(iVar22 + 0x10) & 1)" ( (binary_expression "*(uint *)(iVar22 + 0x10) & 1" (pointer_expression "*(uint *)(iVar22 + 0x10)" * (cast_expression "(uint *)(iVar22 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x10)" ( (binary_expression "iVar22 + 0x10" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) )) (compound_statement "{\n          iVar12 = iVar12 + 1;\n          piVar25 = piVar25 + 1;\n          if (iVar12 == iVar10) goto LAB_0006b680;\n        }" { (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "piVar25 = piVar25 + 1;" (assignment_expression "piVar25 = piVar25 + 1" identifier = (binary_expression "piVar25 + 1" identifier + number_literal)) ;) (if_statement "if (iVar12 == iVar10) goto LAB_0006b680;" if (parenthesized_expression "(iVar12 == iVar10)" ( (binary_expression "iVar12 == iVar10" identifier == identifier) )) (goto_statement "goto LAB_0006b680;" goto statement_identifier ;)) })) (expression_statement "pcVar5 = *(code **)(puStack_2a0 + -0x602c);" (assignment_expression "pcVar5 = *(code **)(puStack_2a0 + -0x602c)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) ;) }))) (expression_statement "(*pcVar5)(3,psVar17,0);" (call_expression "(*pcVar5)(3,psVar17,0)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(3,psVar17,0)" ( number_literal , identifier , number_literal ))) ;) (if_statement "if (*piVar20 == 0) {\n        pcVar5 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar24 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar5)();\n        if (*piVar20 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar20);\n        if (*piVar24 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar20 != 0) {\nLAB_0006b708:\n          (*pcVar5)(*piVar20);\n        }\n      }" if (parenthesized_expression "(*piVar20 == 0)" ( (binary_expression "*piVar20 == 0" (pointer_expression "*piVar20" * identifier) == number_literal) )) (compound_statement "{\n        pcVar5 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar24 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar5)();\n        if (*piVar20 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }" { (expression_statement "pcVar5 = *(code **)(puStack_2a0 + -32000);" (assignment_expression "pcVar5 = *(code **)(puStack_2a0 + -32000)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -32000)" * (cast_expression "(code **)(puStack_2a0 + -32000)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -32000)" ( (binary_expression "puStack_2a0 + -32000" identifier + number_literal) ))))) ;) (if_statement "if (*piVar24 == 0) goto LAB_0006b564;" if (parenthesized_expression "(*piVar24 == 0)" ( (binary_expression "*piVar24 == 0" (pointer_expression "*piVar24" * identifier) == number_literal) )) (goto_statement "goto LAB_0006b564;" goto statement_identifier ;)) (labeled_statement "LAB_0006b6f0:\n        (*pcVar5)();" statement_identifier : (expression_statement "(*pcVar5)();" (call_expression "(*pcVar5)()" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "()" ( ))) ;)) (if_statement "if (*piVar20 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }" if (parenthesized_expression "(*piVar20 != 0)" ( (binary_expression "*piVar20 != 0" (pointer_expression "*piVar20" * identifier) != number_literal) )) (compound_statement "{\n          pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }" { (expression_statement "pcVar5 = *(code **)(puStack_2a0 + -0x7d08);" (assignment_expression "pcVar5 = *(code **)(puStack_2a0 + -0x7d08)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x7d08)" * (cast_expression "(code **)(puStack_2a0 + -0x7d08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7d08)" ( (binary_expression "puStack_2a0 + -0x7d08" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0006b708;" goto statement_identifier ;) })) }) (else_clause "else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar20);\n        if (*piVar24 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar20 != 0) {\nLAB_0006b708:\n          (*pcVar5)(*piVar20);\n        }\n      }" else (compound_statement "{\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar20);\n        if (*piVar24 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar5 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar20 != 0) {\nLAB_0006b708:\n          (*pcVar5)(*piVar20);\n        }\n      }" { (expression_statement "(**(code **)(puStack_2a0 + -0x7d08))(*piVar20);" (call_expression "(**(code **)(puStack_2a0 + -0x7d08))(*piVar20)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x7d08))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x7d08)" * (pointer_expression "*(code **)(puStack_2a0 + -0x7d08)" * (cast_expression "(code **)(puStack_2a0 + -0x7d08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7d08)" ( (binary_expression "puStack_2a0 + -0x7d08" identifier + number_literal) ))))) )) (argument_list "(*piVar20)" ( (pointer_expression "*piVar20" * identifier) ))) ;) (if_statement "if (*piVar24 != 0) {\n          pcVar5 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }" if (parenthesized_expression "(*piVar24 != 0)" ( (binary_expression "*piVar24 != 0" (pointer_expression "*piVar24" * identifier) != number_literal) )) (compound_statement "{\n          pcVar5 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }" { (expression_statement "pcVar5 = *(code **)(puStack_2a0 + -32000);" (assignment_expression "pcVar5 = *(code **)(puStack_2a0 + -32000)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -32000)" * (cast_expression "(code **)(puStack_2a0 + -32000)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -32000)" ( (binary_expression "puStack_2a0 + -32000" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0006b6f0;" goto statement_identifier ;) })) (labeled_statement "LAB_0006b564:\n        pcVar5 = *(code **)(puStack_2a0 + -0x7d08);" statement_identifier : (expression_statement "pcVar5 = *(code **)(puStack_2a0 + -0x7d08);" (assignment_expression "pcVar5 = *(code **)(puStack_2a0 + -0x7d08)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x7d08)" * (cast_expression "(code **)(puStack_2a0 + -0x7d08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7d08)" ( (binary_expression "puStack_2a0 + -0x7d08" identifier + number_literal) ))))) ;)) (if_statement "if (*piVar20 != 0) {\nLAB_0006b708:\n          (*pcVar5)(*piVar20);\n        }" if (parenthesized_expression "(*piVar20 != 0)" ( (binary_expression "*piVar20 != 0" (pointer_expression "*piVar20" * identifier) != number_literal) )) (compound_statement "{\nLAB_0006b708:\n          (*pcVar5)(*piVar20);\n        }" { (labeled_statement "LAB_0006b708:\n          (*pcVar5)(*piVar20);" statement_identifier : (expression_statement "(*pcVar5)(*piVar20);" (call_expression "(*pcVar5)(*piVar20)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(*piVar20)" ( (pointer_expression "*piVar20" * identifier) ))) ;)) })) }))) (if_statement "if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar5 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar25 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar26 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }" if (parenthesized_expression "(**(int **)(puStack_2a0 + -0x73d8) == 0)" ( (binary_expression "**(int **)(puStack_2a0 + -0x73d8) == 0" (pointer_expression "**(int **)(puStack_2a0 + -0x73d8)" * (pointer_expression "*(int **)(puStack_2a0 + -0x73d8)" * (cast_expression "(int **)(puStack_2a0 + -0x73d8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x73d8)" ( (binary_expression "puStack_2a0 + -0x73d8" identifier + number_literal) ))))) == number_literal) )) (compound_statement "{\nLAB_0006b5a4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x6204);\n      }" { (labeled_statement "LAB_0006b5a4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x6204);" statement_identifier : (expression_statement "pcVar5 = *(code **)(puStack_2a0 + -0x6204);" (assignment_expression "pcVar5 = *(code **)(puStack_2a0 + -0x6204)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x6204)" * (cast_expression "(code **)(puStack_2a0 + -0x6204)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x6204)" ( (binary_expression "puStack_2a0 + -0x6204" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n        pcVar5 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar25 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar26 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }" else (compound_statement "{\n        pcVar5 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar25 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar26 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }" { (expression_statement "pcVar5 = *(code **)(puStack_2a0 + -0x6204);" (assignment_expression "pcVar5 = *(code **)(puStack_2a0 + -0x6204)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x6204)" * (cast_expression "(code **)(puStack_2a0 + -0x6204)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x6204)" ( (binary_expression "puStack_2a0 + -0x6204" identifier + number_literal) ))))) ;) (if_statement "if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar25 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar26 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }" if (parenthesized_expression "(**(int **)(puStack_2a0 + -0x73dc) != 0)" ( (binary_expression "**(int **)(puStack_2a0 + -0x73dc) != 0" (pointer_expression "**(int **)(puStack_2a0 + -0x73dc)" * (pointer_expression "*(int **)(puStack_2a0 + -0x73dc)" * (cast_expression "(int **)(puStack_2a0 + -0x73dc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x73dc)" ( (binary_expression "puStack_2a0 + -0x73dc" identifier + number_literal) ))))) != number_literal) )) (compound_statement "{\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar25 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar26 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }" { (if_statement "if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar25 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar26 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }" if (parenthesized_expression "(**(int **)(puStack_2a0 + -0x7abc) != 0)" ( (binary_expression "**(int **)(puStack_2a0 + -0x7abc) != 0" (pointer_expression "**(int **)(puStack_2a0 + -0x7abc)" * (pointer_expression "*(int **)(puStack_2a0 + -0x7abc)" * (cast_expression "(int **)(puStack_2a0 + -0x7abc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7abc)" ( (binary_expression "puStack_2a0 + -0x7abc" identifier + number_literal) ))))) != number_literal) )) (compound_statement "{\n            piVar25 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar26 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }" { (expression_statement "piVar25 = *(int **)(puStack_2a0 + -0x73d4);" (assignment_expression "piVar25 = *(int **)(puStack_2a0 + -0x73d4)" identifier = (pointer_expression "*(int **)(puStack_2a0 + -0x73d4)" * (cast_expression "(int **)(puStack_2a0 + -0x73d4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x73d4)" ( (binary_expression "puStack_2a0 + -0x73d4" identifier + number_literal) ))))) ;) (expression_statement "puVar26 = puStack_2a0;" (assignment_expression "puVar26 = puStack_2a0" identifier = identifier) ;) (if_statement "if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;" if (parenthesized_expression "(**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))" ( (binary_expression "**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0)" (pointer_expression "**(int **)(puStack_2a0 + -0x7abc)" * (pointer_expression "*(int **)(puStack_2a0 + -0x7abc)" * (cast_expression "(int **)(puStack_2a0 + -0x7abc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7abc)" ( (binary_expression "puStack_2a0 + -0x7abc" identifier + number_literal) ))))) != (pointer_expression "*(int *)(puStack_2a0 + -0x73f0)" * (cast_expression "(int *)(puStack_2a0 + -0x73f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_2a0 + -0x73f0)" ( (binary_expression "puStack_2a0 + -0x73f0" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0006b5a4;" goto statement_identifier ;)) (goto_statement "goto LAB_0006b730;" goto statement_identifier ;) })) })) }))) (expression_statement "piVar27 = (int *)(*pcVar5)();" (assignment_expression "piVar27 = (int *)(*pcVar5)()" identifier = (cast_expression "(int *)(*pcVar5)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar5)()" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "*piVar27 = 0;" (assignment_expression "*piVar27 = 0" (pointer_expression "*piVar27" * identifier) = number_literal) ;) (expression_statement "iVar10 = wait_for(-1);" (assignment_expression "iVar10 = wait_for(-1)" identifier = (call_expression "wait_for(-1)" identifier (argument_list "(-1)" ( number_literal )))) ;) (if_statement "if (iVar10 == -1) {\n        pcVar5 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar27 == 10) && (*(int *)(iVar6 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x626c);\n      }" if (parenthesized_expression "(iVar10 == -1)" ( (binary_expression "iVar10 == -1" identifier == number_literal) )) (compound_statement "{\n        pcVar5 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar27 == 10) && (*(int *)(iVar6 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }" { (expression_statement "pcVar5 = *(code **)(puStack_2a0 + -0x626c);" (assignment_expression "pcVar5 = *(code **)(puStack_2a0 + -0x626c)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" * (cast_expression "(code **)(puStack_2a0 + -0x626c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x626c)" ( (binary_expression "puStack_2a0 + -0x626c" identifier + number_literal) ))))) ;) (if_statement "if ((*piVar27 == 10) && (*(int *)(iVar6 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }" if (parenthesized_expression "((*piVar27 == 10) && (*(int *)(iVar6 + 0x18) != 0))" ( (binary_expression "(*piVar27 == 10) && (*(int *)(iVar6 + 0x18) != 0)" (parenthesized_expression "(*piVar27 == 10)" ( (binary_expression "*piVar27 == 10" (pointer_expression "*piVar27" * identifier) == number_literal) )) && (parenthesized_expression "(*(int *)(iVar6 + 0x18) != 0)" ( (binary_expression "*(int *)(iVar6 + 0x18) != 0" (pointer_expression "*(int *)(iVar6 + 0x18)" * (cast_expression "(int *)(iVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }" { (expression_statement "(*pcStack_294)();" (call_expression "(*pcStack_294)()" (parenthesized_expression "(*pcStack_294)" ( (pointer_expression "*pcStack_294" * identifier) )) (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0006b5d4;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0006b5d4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x626c);\n      }" else (compound_statement "{\nLAB_0006b5d4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x626c);\n      }" { (labeled_statement "LAB_0006b5d4:\n        pcVar5 = *(code **)(puStack_2a0 + -0x626c);" statement_identifier : (expression_statement "pcVar5 = *(code **)(puStack_2a0 + -0x626c);" (assignment_expression "pcVar5 = *(code **)(puStack_2a0 + -0x626c)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" * (cast_expression "(code **)(puStack_2a0 + -0x626c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x626c)" ( (binary_expression "puStack_2a0 + -0x626c" identifier + number_literal) ))))) ;)) }))) (expression_statement "(*pcVar5)(puVar7);" (call_expression "(*pcVar5)(puVar7)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(puVar7)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12);" (call_expression "(**(code **)(puStack_2a0 + -0x61dc))(puVar7,0x12)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x61dc))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x61dc)" * (pointer_expression "*(code **)(puStack_2a0 + -0x61dc)" * (cast_expression "(code **)(puStack_2a0 + -0x61dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x61dc)" ( (binary_expression "puStack_2a0 + -0x61dc" identifier + number_literal) ))))) )) (argument_list "(puVar7,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x626c))(psVar17);" (call_expression "(**(code **)(puStack_2a0 + -0x626c))(psVar17)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x626c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x626c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" * (cast_expression "(code **)(puStack_2a0 + -0x626c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x626c)" ( (binary_expression "puStack_2a0 + -0x626c" identifier + number_literal) ))))) )) (argument_list "(psVar17)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(1,puVar7,psVar17)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(1,puVar7,psVar17)" ( number_literal , identifier , identifier ))) ;) (if_statement "if (0 < (int)*(int **)(iVar6 + 0x18)) {\n        piVar15 = (int *)*piVar21;\n        piVar27 = (int *)0x0;\n        piVar25 = piVar15;\n        do {\n          if ((*piVar25 != 0) && (*(int *)(*piVar25 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar27 = (int *)((int)piVar27 + 1);\n          piVar25 = piVar25 + 1;\n        } while (*(int **)(iVar6 + 0x18) != piVar27);\n      }" if (parenthesized_expression "(0 < (int)*(int **)(iVar6 + 0x18))" ( (binary_expression "0 < (int)*(int **)(iVar6 + 0x18)" number_literal < (cast_expression "(int)*(int **)(iVar6 + 0x18)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(int **)(iVar6 + 0x18)" * (cast_expression "(int **)(iVar6 + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))))) )) (compound_statement "{\n        piVar15 = (int *)*piVar21;\n        piVar27 = (int *)0x0;\n        piVar25 = piVar15;\n        do {\n          if ((*piVar25 != 0) && (*(int *)(*piVar25 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar27 = (int *)((int)piVar27 + 1);\n          piVar25 = piVar25 + 1;\n        } while (*(int **)(iVar6 + 0x18) != piVar27);\n      }" { (expression_statement "piVar15 = (int *)*piVar21;" (assignment_expression "piVar15 = (int *)*piVar21" identifier = (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (expression_statement "piVar27 = (int *)0x0;" (assignment_expression "piVar27 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar25 = piVar15;" (assignment_expression "piVar25 = piVar15" identifier = identifier) ;) (do_statement "do {\n          if ((*piVar25 != 0) && (*(int *)(*piVar25 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar27 = (int *)((int)piVar27 + 1);\n          piVar25 = piVar25 + 1;\n        } while (*(int **)(iVar6 + 0x18) != piVar27);" do (compound_statement "{\n          if ((*piVar25 != 0) && (*(int *)(*piVar25 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar27 = (int *)((int)piVar27 + 1);\n          piVar25 = piVar25 + 1;\n        }" { (if_statement "if ((*piVar25 != 0) && (*(int *)(*piVar25 + 0xc) == 4)) goto LAB_0006b3b8;" if (parenthesized_expression "((*piVar25 != 0) && (*(int *)(*piVar25 + 0xc) == 4))" ( (binary_expression "(*piVar25 != 0) && (*(int *)(*piVar25 + 0xc) == 4)" (parenthesized_expression "(*piVar25 != 0)" ( (binary_expression "*piVar25 != 0" (pointer_expression "*piVar25" * identifier) != number_literal) )) && (parenthesized_expression "(*(int *)(*piVar25 + 0xc) == 4)" ( (binary_expression "*(int *)(*piVar25 + 0xc) == 4" (pointer_expression "*(int *)(*piVar25 + 0xc)" * (cast_expression "(int *)(*piVar25 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar25 + 0xc)" ( (binary_expression "*piVar25 + 0xc" (pointer_expression "*piVar25" * identifier) + number_literal) )))) == number_literal) ))) )) (goto_statement "goto LAB_0006b3b8;" goto statement_identifier ;)) (expression_statement "piVar27 = (int *)((int)piVar27 + 1);" (assignment_expression "piVar27 = (int *)((int)piVar27 + 1)" identifier = (cast_expression "(int *)((int)piVar27 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + 1)" ( (binary_expression "(int)piVar27 + 1" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar25 = piVar25 + 1;" (assignment_expression "piVar25 = piVar25 + 1" identifier = (binary_expression "piVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(iVar6 + 0x18) != piVar27)" ( (binary_expression "*(int **)(iVar6 + 0x18) != piVar27" (pointer_expression "*(int **)(iVar6 + 0x18)" * (cast_expression "(int **)(iVar6 + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) != identifier) )) ;) })) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(3,psVar17,0)" ( number_literal , identifier , number_literal ))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "puVar7 = (undefined1 *)0xffffffff;" (assignment_expression "puVar7 = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0006b430:\n  puVar26 = puStack_2a0;" statement_identifier : (expression_statement "puVar26 = puStack_2a0;" (assignment_expression "puVar26 = puStack_2a0" identifier = identifier) ;)) (if_statement "if (piStack_18c == (int *)*puVar23) {\n    return (int)puVar7;\n  }" if (parenthesized_expression "(piStack_18c == (int *)*puVar23)" ( (binary_expression "piStack_18c == (int *)*puVar23" identifier == (cast_expression "(int *)*puVar23" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar23" * identifier))) )) (compound_statement "{\n    return (int)puVar7;\n  }" { (return_statement "return (int)puVar7;" return (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) (expression_statement "piVar25 = piStack_18c;" (assignment_expression "piVar25 = piStack_18c" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x60b8))();" (call_expression "(**(code **)(puStack_2a0 + -0x60b8))()" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x60b8))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x60b8)" * (pointer_expression "*(code **)(puStack_2a0 + -0x60b8)" * (cast_expression "(code **)(puStack_2a0 + -0x60b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x60b8)" ( (binary_expression "puStack_2a0 + -0x60b8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0006b730:\n  pcVar5 = *(code **)(puVar26 + -0x625c);" statement_identifier : (expression_statement "pcVar5 = *(code **)(puVar26 + -0x625c);" (assignment_expression "pcVar5 = *(code **)(puVar26 + -0x625c)" identifier = (pointer_expression "*(code **)(puVar26 + -0x625c)" * (cast_expression "(code **)(puVar26 + -0x625c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x625c)" ( (binary_expression "puVar26 + -0x625c" identifier + number_literal) ))))) ;)) (expression_statement "pcVar28 = start_job;" (assignment_expression "pcVar28 = start_job" identifier = identifier) ;) (expression_statement "puVar13 = (undefined4 *)0x1;" (assignment_expression "puVar13 = (undefined4 *)0x1" identifier = (cast_expression "(undefined4 *)0x1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*pcVar5)();" (call_expression "(*pcVar5)()" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar15 = *(int **)(pcVar5 + 0xdada0);" (assignment_expression "piVar15 = *(int **)(pcVar5 + 0xdada0)" identifier = (pointer_expression "*(int **)(pcVar5 + 0xdada0)" * (cast_expression "(int **)(pcVar5 + 0xdada0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xdada0)" ( (binary_expression "pcVar5 + 0xdada0" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = (int)piVar25 * 4;" (assignment_expression "iVar10 = (int)piVar25 * 4" identifier = (binary_expression "(int)piVar25 * 4" (cast_expression "(int)piVar25" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "iStack_2dc = *piVar15;" (assignment_expression "iStack_2dc = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "piVar19 = *(int **)(pcVar5 + 0xd9720);" (assignment_expression "piVar19 = *(int **)(pcVar5 + 0xd9720)" identifier = (pointer_expression "*(int **)(pcVar5 + 0xd9720)" * (cast_expression "(int **)(pcVar5 + 0xd9720)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd9720)" ( (binary_expression "pcVar5 + 0xd9720" identifier + number_literal) ))))) ;) (expression_statement "psStack_2d8 = psVar17;" (assignment_expression "psStack_2d8 = psVar17" identifier = identifier) ;) (expression_statement "puStack_2d4 = puVar7;" (assignment_expression "puStack_2d4 = puVar7" identifier = identifier) ;) (expression_statement "iStack_2d0 = iVar6;" (assignment_expression "iStack_2d0 = iVar6" identifier = identifier) ;) (expression_statement "piStack_2cc = piVar20;" (assignment_expression "piStack_2cc = piVar20" identifier = identifier) ;) (expression_statement "piStack_2c8 = piVar21;" (assignment_expression "piStack_2c8 = piVar21" identifier = identifier) ;) (expression_statement "puStack_2c4 = puVar23;" (assignment_expression "puStack_2c4 = puVar23" identifier = identifier) ;) (expression_statement "piStack_2c0 = piVar24;" (assignment_expression "piStack_2c0 = piVar24" identifier = identifier) ;) (expression_statement "iStack_2bc = iVar3;" (assignment_expression "iStack_2bc = iVar3" identifier = identifier) ;) (expression_statement "piStack_2b8 = piVar27;" (assignment_expression "piStack_2b8 = piVar27" identifier = identifier) ;) (expression_statement "pcStack_2b4 = pcVar28;" (assignment_expression "pcStack_2b4 = pcVar28" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar5 + 0xdab98))(auStack_3dc);" (call_expression "(**(code **)(pcVar5 + 0xdab98))(auStack_3dc)" (parenthesized_expression "(**(code **)(pcVar5 + 0xdab98))" ( (pointer_expression "**(code **)(pcVar5 + 0xdab98)" * (pointer_expression "*(code **)(pcVar5 + 0xdab98)" * (cast_expression "(code **)(pcVar5 + 0xdab98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xdab98)" ( (binary_expression "pcVar5 + 0xdab98" identifier + number_literal) ))))) )) (argument_list "(auStack_3dc)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar5 + 0xdac28))(auStack_3dc,0x12);" (call_expression "(**(code **)(pcVar5 + 0xdac28))(auStack_3dc,0x12)" (parenthesized_expression "(**(code **)(pcVar5 + 0xdac28))" ( (pointer_expression "**(code **)(pcVar5 + 0xdac28)" * (pointer_expression "*(code **)(pcVar5 + 0xdac28)" * (cast_expression "(code **)(pcVar5 + 0xdac28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xdac28)" ( (binary_expression "pcVar5 + 0xdac28" identifier + number_literal) ))))) )) (argument_list "(auStack_3dc,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar5 + 0xdab98))(auStack_35c);" (call_expression "(**(code **)(pcVar5 + 0xdab98))(auStack_35c)" (parenthesized_expression "(**(code **)(pcVar5 + 0xdab98))" ( (pointer_expression "**(code **)(pcVar5 + 0xdab98)" * (pointer_expression "*(code **)(pcVar5 + 0xdab98)" * (cast_expression "(code **)(pcVar5 + 0xdab98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xdab98)" ( (binary_expression "pcVar5 + 0xdab98" identifier + number_literal) ))))) )) (argument_list "(auStack_35c)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar5 + 0xdadd8))(1,auStack_3dc,auStack_35c);" (call_expression "(**(code **)(pcVar5 + 0xdadd8))(1,auStack_3dc,auStack_35c)" (parenthesized_expression "(**(code **)(pcVar5 + 0xdadd8))" ( (pointer_expression "**(code **)(pcVar5 + 0xdadd8)" * (pointer_expression "*(code **)(pcVar5 + 0xdadd8)" * (cast_expression "(code **)(pcVar5 + 0xdadd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xdadd8)" ( (binary_expression "pcVar5 + 0xdadd8" identifier + number_literal) ))))) )) (argument_list "(1,auStack_3dc,auStack_35c)" ( number_literal , identifier , identifier ))) ;) (expression_statement "iVar3 = *(int *)(*(int *)(*piVar19 + iVar10) + 0xc);" (assignment_expression "iVar3 = *(int *)(*(int *)(*piVar19 + iVar10) + 0xc)" identifier = (pointer_expression "*(int *)(*(int *)(*piVar19 + iVar10) + 0xc)" * (cast_expression "(int *)(*(int *)(*piVar19 + iVar10) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar19 + iVar10) + 0xc)" ( (binary_expression "*(int *)(*piVar19 + iVar10) + 0xc" (pointer_expression "*(int *)(*piVar19 + iVar10)" * (cast_expression "(int *)(*piVar19 + iVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar19 + iVar10)" ( (binary_expression "*piVar19 + iVar10" (pointer_expression "*piVar19" * identifier) + identifier) )))) + number_literal) ))))) ;) (if_statement "if (iVar3 == 4) {\n    iVar3 = -1;\n    pcVar9 = (char *)(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7d9c,5);\n    internal_error(pcVar9,**(undefined4 **)(pcVar5 + 0xd8fec));\n    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      pcStack_3e4 = current_working_directory();\n      iVar6 = *(int *)(*piVar19 + iVar10);\n      iVar12 = **(int **)(pcVar5 + 0xd8e50);\n      *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x2c) == piVar25) {\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x30) != piVar25) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7b04;\n      }\n      piVar27 = *(int **)(iVar6 + 4);\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7dd8,(int)piVar25 + 1,iVar12)\n      ;\n      piVar20 = *(int **)(*(int *)(*piVar19 + iVar10) + 4);\n      goto LAB_0006b898;\n    }\n    pcVar9 = (char *)(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7db4,5);\n    internal_error(pcVar9,**(undefined4 **)(pcVar5 + 0xd8fec),(int)piVar25 + 1);\nLAB_0006b9dc:\n    iVar3 = 0;\n    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    pcStack_3e4 = current_working_directory();\n    *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n         *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffd;\n    set_current_job((int)piVar25);\n    iVar6 = *(int *)(*piVar19 + iVar10);\n    piVar20 = *(int **)(iVar6 + 4);\n    *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) | 1;\n    piVar27 = piVar20;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar5 + 0xd8e3c);\n    iVar6 = *(int *)(pcVar5 + 0xd8e70);\n    iVar22 = *(int *)(pcVar5 + 0xd8e3c);\n    do {\n      iVar14 = piVar27[4];\n      if (piVar27[4] == 0) {\n        iVar14 = iVar6 + -0x6800;\n      }\n      iVar16 = iVar22 + 0x6720;\n      if ((int *)*piVar27 == piVar20) {\n        iVar16 = iVar6 + -0x6800;\n      }\n      (**(code **)(pcVar5 + 0xdabb0))(1,iVar12 + 0x6298,iVar14,iVar16);\n      piVar27 = (int *)*piVar27;\n      puVar23 = *(undefined4 **)(*piVar19 + iVar10);\n      piVar20 = (int *)puVar23[1];\n    } while (piVar20 != piVar27);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7b74);\n      puVar23 = *(undefined4 **)(*piVar19 + iVar10);\n    }\n    uVar18 = *puVar23;\n    iVar6 = (**(code **)(pcVar5 + 0xdae0c))(pcStack_3e4,uVar18);\n    if (iVar6 != 0) {\n      uVar18 = (**(code **)(pcVar5 + 0xd9234))(uVar18);\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7de0,uVar18);\n    }\n    (**(code **)(pcVar5 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n             *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      iVar12 = *piVar8;\n      *piVar11 = iVar12;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar6 = *(int *)(*piVar19 + iVar10);\n      piVar20 = *(int **)(iVar6 + 4);\n      piVar27 = piVar20;\n      do {\n        if (*(char *)((int)piVar27 + 0xb) == '\x7f') {\n          piVar27[3] = 1;\n        }\n        piVar27 = (int *)*piVar27;\n      } while (piVar20 != piVar27);\n      *(undefined4 *)(iVar6 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar28 = *(code **)(pcVar5 + 0xdad38);\n        *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffe | 2;\n        (*pcVar28)(*(undefined4 *)(iVar6 + 8),0x19);\nLAB_0006b9c8:\n        reset_current();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      *piVar11 = *piVar8;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) == 0) {\n        iVar3 = *piVar19;\n      }\n      else {\nLAB_0006bce0:\n        iVar12 = 0;\n        give_terminal_to(*(pid_t *)(iVar6 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar19;\n      }\n      iVar12 = 0x19;\n      pcVar28 = *(code **)(pcVar5 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar10);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar28)(*(undefined4 *)(iVar3 + 8));\n    }\nLAB_0006bbc8:\n    pPVar4 = find_last_proc((int)piVar25,iVar12);\n    pid = pPVar4->pid;\n    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);\n    iVar3 = wait_for(pid);\n    piVar27 = piVar24;\n    do {\n      piVar8 = piVar27 + 4;\n      piVar21 = piVar20 + 4;\n      iVar12 = piVar27[1];\n      iVar10 = piVar27[2];\n      iVar6 = piVar27[3];\n      *piVar20 = *piVar27;\n      piVar20[1] = iVar12;\n      piVar20[2] = iVar10;\n      piVar20[3] = iVar6;\n      piVar20 = piVar21;\n      piVar27 = piVar8;\n    } while (piVar8 != piVar24 + 0xc);\n    *piVar21 = *piVar8;\n    set_tty_state();\n  }" if (parenthesized_expression "(iVar3 == 4)" ( (binary_expression "iVar3 == 4" identifier == number_literal) )) (compound_statement "{\n    iVar3 = -1;\n    pcVar9 = (char *)(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7d9c,5);\n    internal_error(pcVar9,**(undefined4 **)(pcVar5 + 0xd8fec));\n    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);\n  }" { (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;) (expression_statement "pcVar9 = (char *)(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7d9c,5);" (assignment_expression "pcVar9 = (char *)(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7d9c,5)" identifier = (cast_expression "(char *)(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7d9c,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7d9c,5)" (parenthesized_expression "(**(code **)(pcVar5 + 0xdad5c))" ( (pointer_expression "**(code **)(pcVar5 + 0xdad5c)" * (pointer_expression "*(code **)(pcVar5 + 0xdad5c)" * (cast_expression "(code **)(pcVar5 + 0xdad5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xdad5c)" ( (binary_expression "pcVar5 + 0xdad5c" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7d9c,5)" ( number_literal , (binary_expression "*(int *)(pcVar5 + 0xd8e3c) + 0x7d9c" (pointer_expression "*(int *)(pcVar5 + 0xd8e3c)" * (cast_expression "(int *)(pcVar5 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd8e3c)" ( (binary_expression "pcVar5 + 0xd8e3c" identifier + number_literal) )))) + number_literal) , number_literal ))))) ;) (expression_statement "internal_error(pcVar9,**(undefined4 **)(pcVar5 + 0xd8fec));" (call_expression "internal_error(pcVar9,**(undefined4 **)(pcVar5 + 0xd8fec))" identifier (argument_list "(pcVar9,**(undefined4 **)(pcVar5 + 0xd8fec))" ( identifier , (pointer_expression "**(undefined4 **)(pcVar5 + 0xd8fec)" * (pointer_expression "*(undefined4 **)(pcVar5 + 0xd8fec)" * (cast_expression "(undefined4 **)(pcVar5 + 0xd8fec)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd8fec)" ( (binary_expression "pcVar5 + 0xd8fec" identifier + number_literal) ))))) ))) ;) (expression_statement "(**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);" (call_expression "(**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0)" (parenthesized_expression "(**(code **)(pcVar5 + 0xdadd8))" ( (pointer_expression "**(code **)(pcVar5 + 0xdadd8)" * (pointer_expression "*(code **)(pcVar5 + 0xdadd8)" * (cast_expression "(code **)(pcVar5 + 0xdadd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xdadd8)" ( (binary_expression "pcVar5 + 0xdadd8" identifier + number_literal) ))))) )) (argument_list "(3,auStack_35c,0)" ( number_literal , identifier , number_literal ))) ;) }) (else_clause "else if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      pcStack_3e4 = current_working_directory();\n      iVar6 = *(int *)(*piVar19 + iVar10);\n      iVar12 = **(int **)(pcVar5 + 0xd8e50);\n      *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x2c) == piVar25) {\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x30) != piVar25) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7b04;\n      }\n      piVar27 = *(int **)(iVar6 + 4);\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7dd8,(int)piVar25 + 1,iVar12)\n      ;\n      piVar20 = *(int **)(*(int *)(*piVar19 + iVar10) + 4);\n      goto LAB_0006b898;\n    }\n    pcVar9 = (char *)(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7db4,5);\n    internal_error(pcVar9,**(undefined4 **)(pcVar5 + 0xd8fec),(int)piVar25 + 1);\nLAB_0006b9dc:\n    iVar3 = 0;\n    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    pcStack_3e4 = current_working_directory();\n    *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n         *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffd;\n    set_current_job((int)piVar25);\n    iVar6 = *(int *)(*piVar19 + iVar10);\n    piVar20 = *(int **)(iVar6 + 4);\n    *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) | 1;\n    piVar27 = piVar20;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar5 + 0xd8e3c);\n    iVar6 = *(int *)(pcVar5 + 0xd8e70);\n    iVar22 = *(int *)(pcVar5 + 0xd8e3c);\n    do {\n      iVar14 = piVar27[4];\n      if (piVar27[4] == 0) {\n        iVar14 = iVar6 + -0x6800;\n      }\n      iVar16 = iVar22 + 0x6720;\n      if ((int *)*piVar27 == piVar20) {\n        iVar16 = iVar6 + -0x6800;\n      }\n      (**(code **)(pcVar5 + 0xdabb0))(1,iVar12 + 0x6298,iVar14,iVar16);\n      piVar27 = (int *)*piVar27;\n      puVar23 = *(undefined4 **)(*piVar19 + iVar10);\n      piVar20 = (int *)puVar23[1];\n    } while (piVar20 != piVar27);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7b74);\n      puVar23 = *(undefined4 **)(*piVar19 + iVar10);\n    }\n    uVar18 = *puVar23;\n    iVar6 = (**(code **)(pcVar5 + 0xdae0c))(pcStack_3e4,uVar18);\n    if (iVar6 != 0) {\n      uVar18 = (**(code **)(pcVar5 + 0xd9234))(uVar18);\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7de0,uVar18);\n    }\n    (**(code **)(pcVar5 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n             *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      iVar12 = *piVar8;\n      *piVar11 = iVar12;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar6 = *(int *)(*piVar19 + iVar10);\n      piVar20 = *(int **)(iVar6 + 4);\n      piVar27 = piVar20;\n      do {\n        if (*(char *)((int)piVar27 + 0xb) == '\x7f') {\n          piVar27[3] = 1;\n        }\n        piVar27 = (int *)*piVar27;\n      } while (piVar20 != piVar27);\n      *(undefined4 *)(iVar6 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar28 = *(code **)(pcVar5 + 0xdad38);\n        *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffe | 2;\n        (*pcVar28)(*(undefined4 *)(iVar6 + 8),0x19);\nLAB_0006b9c8:\n        reset_current();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      *piVar11 = *piVar8;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) == 0) {\n        iVar3 = *piVar19;\n      }\n      else {\nLAB_0006bce0:\n        iVar12 = 0;\n        give_terminal_to(*(pid_t *)(iVar6 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar19;\n      }\n      iVar12 = 0x19;\n      pcVar28 = *(code **)(pcVar5 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar10);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar28)(*(undefined4 *)(iVar3 + 8));\n    }\nLAB_0006bbc8:\n    pPVar4 = find_last_proc((int)piVar25,iVar12);\n    pid = pPVar4->pid;\n    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);\n    iVar3 = wait_for(pid);\n    piVar27 = piVar24;\n    do {\n      piVar8 = piVar27 + 4;\n      piVar21 = piVar20 + 4;\n      iVar12 = piVar27[1];\n      iVar10 = piVar27[2];\n      iVar6 = piVar27[3];\n      *piVar20 = *piVar27;\n      piVar20[1] = iVar12;\n      piVar20[2] = iVar10;\n      piVar20[3] = iVar6;\n      piVar20 = piVar21;\n      piVar27 = piVar8;\n    } while (piVar8 != piVar24 + 0xc);\n    *piVar21 = *piVar8;\n    set_tty_state();\n  }" else (if_statement "if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      pcStack_3e4 = current_working_directory();\n      iVar6 = *(int *)(*piVar19 + iVar10);\n      iVar12 = **(int **)(pcVar5 + 0xd8e50);\n      *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x2c) == piVar25) {\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x30) != piVar25) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7b04;\n      }\n      piVar27 = *(int **)(iVar6 + 4);\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7dd8,(int)piVar25 + 1,iVar12)\n      ;\n      piVar20 = *(int **)(*(int *)(*piVar19 + iVar10) + 4);\n      goto LAB_0006b898;\n    }\n    pcVar9 = (char *)(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7db4,5);\n    internal_error(pcVar9,**(undefined4 **)(pcVar5 + 0xd8fec),(int)piVar25 + 1);\nLAB_0006b9dc:\n    iVar3 = 0;\n    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    pcStack_3e4 = current_working_directory();\n    *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n         *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffd;\n    set_current_job((int)piVar25);\n    iVar6 = *(int *)(*piVar19 + iVar10);\n    piVar20 = *(int **)(iVar6 + 4);\n    *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) | 1;\n    piVar27 = piVar20;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar5 + 0xd8e3c);\n    iVar6 = *(int *)(pcVar5 + 0xd8e70);\n    iVar22 = *(int *)(pcVar5 + 0xd8e3c);\n    do {\n      iVar14 = piVar27[4];\n      if (piVar27[4] == 0) {\n        iVar14 = iVar6 + -0x6800;\n      }\n      iVar16 = iVar22 + 0x6720;\n      if ((int *)*piVar27 == piVar20) {\n        iVar16 = iVar6 + -0x6800;\n      }\n      (**(code **)(pcVar5 + 0xdabb0))(1,iVar12 + 0x6298,iVar14,iVar16);\n      piVar27 = (int *)*piVar27;\n      puVar23 = *(undefined4 **)(*piVar19 + iVar10);\n      piVar20 = (int *)puVar23[1];\n    } while (piVar20 != piVar27);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7b74);\n      puVar23 = *(undefined4 **)(*piVar19 + iVar10);\n    }\n    uVar18 = *puVar23;\n    iVar6 = (**(code **)(pcVar5 + 0xdae0c))(pcStack_3e4,uVar18);\n    if (iVar6 != 0) {\n      uVar18 = (**(code **)(pcVar5 + 0xd9234))(uVar18);\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7de0,uVar18);\n    }\n    (**(code **)(pcVar5 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n             *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      iVar12 = *piVar8;\n      *piVar11 = iVar12;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar6 = *(int *)(*piVar19 + iVar10);\n      piVar20 = *(int **)(iVar6 + 4);\n      piVar27 = piVar20;\n      do {\n        if (*(char *)((int)piVar27 + 0xb) == '\x7f') {\n          piVar27[3] = 1;\n        }\n        piVar27 = (int *)*piVar27;\n      } while (piVar20 != piVar27);\n      *(undefined4 *)(iVar6 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar28 = *(code **)(pcVar5 + 0xdad38);\n        *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffe | 2;\n        (*pcVar28)(*(undefined4 *)(iVar6 + 8),0x19);\nLAB_0006b9c8:\n        reset_current();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      *piVar11 = *piVar8;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) == 0) {\n        iVar3 = *piVar19;\n      }\n      else {\nLAB_0006bce0:\n        iVar12 = 0;\n        give_terminal_to(*(pid_t *)(iVar6 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar19;\n      }\n      iVar12 = 0x19;\n      pcVar28 = *(code **)(pcVar5 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar10);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar28)(*(undefined4 *)(iVar3 + 8));\n    }\nLAB_0006bbc8:\n    pPVar4 = find_last_proc((int)piVar25,iVar12);\n    pid = pPVar4->pid;\n    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);\n    iVar3 = wait_for(pid);\n    piVar27 = piVar24;\n    do {\n      piVar8 = piVar27 + 4;\n      piVar21 = piVar20 + 4;\n      iVar12 = piVar27[1];\n      iVar10 = piVar27[2];\n      iVar6 = piVar27[3];\n      *piVar20 = *piVar27;\n      piVar20[1] = iVar12;\n      piVar20[2] = iVar10;\n      piVar20[3] = iVar6;\n      piVar20 = piVar21;\n      piVar27 = piVar8;\n    } while (piVar8 != piVar24 + 0xc);\n    *piVar21 = *piVar8;\n    set_tty_state();\n  }" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (iVar3 != 1) {\n      pcStack_3e4 = current_working_directory();\n      iVar6 = *(int *)(*piVar19 + iVar10);\n      iVar12 = **(int **)(pcVar5 + 0xd8e50);\n      *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x2c) == piVar25) {\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x30) != piVar25) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7b04;\n      }\n      piVar27 = *(int **)(iVar6 + 4);\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7dd8,(int)piVar25 + 1,iVar12)\n      ;\n      piVar20 = *(int **)(*(int *)(*piVar19 + iVar10) + 4);\n      goto LAB_0006b898;\n    }\n    pcVar9 = (char *)(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7db4,5);\n    internal_error(pcVar9,**(undefined4 **)(pcVar5 + 0xd8fec),(int)piVar25 + 1);\nLAB_0006b9dc:\n    iVar3 = 0;\n    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);\n  }" { (if_statement "if (iVar3 != 1) {\n      pcStack_3e4 = current_working_directory();\n      iVar6 = *(int *)(*piVar19 + iVar10);\n      iVar12 = **(int **)(pcVar5 + 0xd8e50);\n      *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x2c) == piVar25) {\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x30) != piVar25) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7b04;\n      }\n      piVar27 = *(int **)(iVar6 + 4);\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7dd8,(int)piVar25 + 1,iVar12)\n      ;\n      piVar20 = *(int **)(*(int *)(*piVar19 + iVar10) + 4);\n      goto LAB_0006b898;\n    }" if (parenthesized_expression "(iVar3 != 1)" ( (binary_expression "iVar3 != 1" identifier != number_literal) )) (compound_statement "{\n      pcStack_3e4 = current_working_directory();\n      iVar6 = *(int *)(*piVar19 + iVar10);\n      iVar12 = **(int **)(pcVar5 + 0xd8e50);\n      *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x2c) == piVar25) {\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x30) != piVar25) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7b04;\n      }\n      piVar27 = *(int **)(iVar6 + 4);\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7dd8,(int)piVar25 + 1,iVar12)\n      ;\n      piVar20 = *(int **)(*(int *)(*piVar19 + iVar10) + 4);\n      goto LAB_0006b898;\n    }" { (expression_statement "pcStack_3e4 = current_working_directory();" (assignment_expression "pcStack_3e4 = current_working_directory()" identifier = (call_expression "current_working_directory()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar6 = *(int *)(*piVar19 + iVar10);" (assignment_expression "iVar6 = *(int *)(*piVar19 + iVar10)" identifier = (pointer_expression "*(int *)(*piVar19 + iVar10)" * (cast_expression "(int *)(*piVar19 + iVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar19 + iVar10)" ( (binary_expression "*piVar19 + iVar10" (pointer_expression "*piVar19" * identifier) + identifier) ))))) ;) (expression_statement "iVar12 = **(int **)(pcVar5 + 0xd8e50);" (assignment_expression "iVar12 = **(int **)(pcVar5 + 0xd8e50)" identifier = (pointer_expression "**(int **)(pcVar5 + 0xd8e50)" * (pointer_expression "*(int **)(pcVar5 + 0xd8e50)" * (cast_expression "(int **)(pcVar5 + 0xd8e50)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd8e50)" ( (binary_expression "pcVar5 + 0xd8e50" identifier + number_literal) )))))) ;) (expression_statement "*(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffd;" (assignment_expression "*(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffd" (pointer_expression "*(uint *)(iVar6 + 0x10)" * (cast_expression "(uint *)(iVar6 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar6 + 0x10) & 0xfffffffd" (pointer_expression "*(uint *)(iVar6 + 0x10)" * (cast_expression "(uint *)(iVar6 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x2c) == piVar25) {\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x30) != piVar25) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7b04;\n      }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x2c) == piVar25) {\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x30) != piVar25) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7d98;\n        }\n      }" { (if_statement "if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x2c) == piVar25) {\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x30) != piVar25) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7d98;\n        }" if (parenthesized_expression "(*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x2c) == piVar25)" ( (binary_expression "*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x2c) == piVar25" (pointer_expression "*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x2c)" * (cast_expression "(int **)(*(int *)(pcVar5 + 0xd971c) + 0x2c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar5 + 0xd971c) + 0x2c)" ( (binary_expression "*(int *)(pcVar5 + 0xd971c) + 0x2c" (pointer_expression "*(int *)(pcVar5 + 0xd971c)" * (cast_expression "(int *)(pcVar5 + 0xd971c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd971c)" ( (binary_expression "pcVar5 + 0xd971c" identifier + number_literal) )))) + number_literal) )))) == identifier) )) (compound_statement "{\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7144;\n        }" { (expression_statement "iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7144;" (assignment_expression "iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7144" identifier = (binary_expression "*(int *)(pcVar5 + 0xd8e3c) + 0x7144" (pointer_expression "*(int *)(pcVar5 + 0xd8e3c)" * (cast_expression "(int *)(pcVar5 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd8e3c)" ( (binary_expression "pcVar5 + 0xd8e3c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n          if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x30) != piVar25) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7d98;\n        }" else (compound_statement "{\n          if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x30) != piVar25) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7d98;\n        }" { (if_statement "if (*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x30) != piVar25) goto LAB_0006b860;" if (parenthesized_expression "(*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x30) != piVar25)" ( (binary_expression "*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x30) != piVar25" (pointer_expression "*(int **)(*(int *)(pcVar5 + 0xd971c) + 0x30)" * (cast_expression "(int **)(*(int *)(pcVar5 + 0xd971c) + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar5 + 0xd971c) + 0x30)" ( (binary_expression "*(int *)(pcVar5 + 0xd971c) + 0x30" (pointer_expression "*(int *)(pcVar5 + 0xd971c)" * (cast_expression "(int *)(pcVar5 + 0xd971c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd971c)" ( (binary_expression "pcVar5 + 0xd971c" identifier + number_literal) )))) + number_literal) )))) != identifier) )) (goto_statement "goto LAB_0006b860;" goto statement_identifier ;)) (expression_statement "iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7d98;" (assignment_expression "iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7d98" identifier = (binary_expression "*(int *)(pcVar5 + 0xd8e3c) + 0x7d98" (pointer_expression "*(int *)(pcVar5 + 0xd8e3c)" * (cast_expression "(int *)(pcVar5 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd8e3c)" ( (binary_expression "pcVar5 + 0xd8e3c" identifier + number_literal) )))) + number_literal)) ;) }))) }) (else_clause "else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7b04;\n      }" else (compound_statement "{\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7b04;\n      }" { (labeled_statement "LAB_0006b860:\n        iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7b04;" statement_identifier : (expression_statement "iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7b04;" (assignment_expression "iVar12 = *(int *)(pcVar5 + 0xd8e3c) + 0x7b04" identifier = (binary_expression "*(int *)(pcVar5 + 0xd8e3c) + 0x7b04" (pointer_expression "*(int *)(pcVar5 + 0xd8e3c)" * (cast_expression "(int *)(pcVar5 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd8e3c)" ( (binary_expression "pcVar5 + 0xd8e3c" identifier + number_literal) )))) + number_literal)) ;)) }))) (expression_statement "piVar27 = *(int **)(iVar6 + 4);" (assignment_expression "piVar27 = *(int **)(iVar6 + 4)" identifier = (pointer_expression "*(int **)(iVar6 + 4)" * (cast_expression "(int **)(iVar6 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7dd8,(int)piVar25 + 1,iVar12)\n      ;" (call_expression "(**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7dd8,(int)piVar25 + 1,iVar12)" (parenthesized_expression "(**(code **)(pcVar5 + 0xdabb0))" ( (pointer_expression "**(code **)(pcVar5 + 0xdabb0)" * (pointer_expression "*(code **)(pcVar5 + 0xdabb0)" * (cast_expression "(code **)(pcVar5 + 0xdabb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xdabb0)" ( (binary_expression "pcVar5 + 0xdabb0" identifier + number_literal) ))))) )) (argument_list "(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7dd8,(int)piVar25 + 1,iVar12)" ( number_literal , (binary_expression "*(int *)(pcVar5 + 0xd8e3c) + 0x7dd8" (pointer_expression "*(int *)(pcVar5 + 0xd8e3c)" * (cast_expression "(int *)(pcVar5 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd8e3c)" ( (binary_expression "pcVar5 + 0xd8e3c" identifier + number_literal) )))) + number_literal) , (binary_expression "(int)piVar25 + 1" (cast_expression "(int)piVar25" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , identifier ))) ;) (expression_statement "piVar20 = *(int **)(*(int *)(*piVar19 + iVar10) + 4);" (assignment_expression "piVar20 = *(int **)(*(int *)(*piVar19 + iVar10) + 4)" identifier = (pointer_expression "*(int **)(*(int *)(*piVar19 + iVar10) + 4)" * (cast_expression "(int **)(*(int *)(*piVar19 + iVar10) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*piVar19 + iVar10) + 4)" ( (binary_expression "*(int *)(*piVar19 + iVar10) + 4" (pointer_expression "*(int *)(*piVar19 + iVar10)" * (cast_expression "(int *)(*piVar19 + iVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar19 + iVar10)" ( (binary_expression "*piVar19 + iVar10" (pointer_expression "*piVar19" * identifier) + identifier) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_0006b898;" goto statement_identifier ;) })) (expression_statement "pcVar9 = (char *)(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7db4,5);" (assignment_expression "pcVar9 = (char *)(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7db4,5)" identifier = (cast_expression "(char *)(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7db4,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar5 + 0xdad5c))(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7db4,5)" (parenthesized_expression "(**(code **)(pcVar5 + 0xdad5c))" ( (pointer_expression "**(code **)(pcVar5 + 0xdad5c)" * (pointer_expression "*(code **)(pcVar5 + 0xdad5c)" * (cast_expression "(code **)(pcVar5 + 0xdad5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xdad5c)" ( (binary_expression "pcVar5 + 0xdad5c" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar5 + 0xd8e3c) + 0x7db4,5)" ( number_literal , (binary_expression "*(int *)(pcVar5 + 0xd8e3c) + 0x7db4" (pointer_expression "*(int *)(pcVar5 + 0xd8e3c)" * (cast_expression "(int *)(pcVar5 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd8e3c)" ( (binary_expression "pcVar5 + 0xd8e3c" identifier + number_literal) )))) + number_literal) , number_literal ))))) ;) (expression_statement "internal_error(pcVar9,**(undefined4 **)(pcVar5 + 0xd8fec),(int)piVar25 + 1);" (call_expression "internal_error(pcVar9,**(undefined4 **)(pcVar5 + 0xd8fec),(int)piVar25 + 1)" identifier (argument_list "(pcVar9,**(undefined4 **)(pcVar5 + 0xd8fec),(int)piVar25 + 1)" ( identifier , (pointer_expression "**(undefined4 **)(pcVar5 + 0xd8fec)" * (pointer_expression "*(undefined4 **)(pcVar5 + 0xd8fec)" * (cast_expression "(undefined4 **)(pcVar5 + 0xd8fec)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd8fec)" ( (binary_expression "pcVar5 + 0xd8fec" identifier + number_literal) ))))) , (binary_expression "(int)piVar25 + 1" (cast_expression "(int)piVar25" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ;) (labeled_statement "LAB_0006b9dc:\n    iVar3 = 0;" statement_identifier : (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;)) (expression_statement "(**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);" (call_expression "(**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0)" (parenthesized_expression "(**(code **)(pcVar5 + 0xdadd8))" ( (pointer_expression "**(code **)(pcVar5 + 0xdadd8)" * (pointer_expression "*(code **)(pcVar5 + 0xdadd8)" * (cast_expression "(code **)(pcVar5 + 0xdadd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xdadd8)" ( (binary_expression "pcVar5 + 0xdadd8" identifier + number_literal) ))))) )) (argument_list "(3,auStack_35c,0)" ( number_literal , identifier , number_literal ))) ;) }) (else_clause "else {\n    pcStack_3e4 = current_working_directory();\n    *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n         *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffd;\n    set_current_job((int)piVar25);\n    iVar6 = *(int *)(*piVar19 + iVar10);\n    piVar20 = *(int **)(iVar6 + 4);\n    *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) | 1;\n    piVar27 = piVar20;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar5 + 0xd8e3c);\n    iVar6 = *(int *)(pcVar5 + 0xd8e70);\n    iVar22 = *(int *)(pcVar5 + 0xd8e3c);\n    do {\n      iVar14 = piVar27[4];\n      if (piVar27[4] == 0) {\n        iVar14 = iVar6 + -0x6800;\n      }\n      iVar16 = iVar22 + 0x6720;\n      if ((int *)*piVar27 == piVar20) {\n        iVar16 = iVar6 + -0x6800;\n      }\n      (**(code **)(pcVar5 + 0xdabb0))(1,iVar12 + 0x6298,iVar14,iVar16);\n      piVar27 = (int *)*piVar27;\n      puVar23 = *(undefined4 **)(*piVar19 + iVar10);\n      piVar20 = (int *)puVar23[1];\n    } while (piVar20 != piVar27);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7b74);\n      puVar23 = *(undefined4 **)(*piVar19 + iVar10);\n    }\n    uVar18 = *puVar23;\n    iVar6 = (**(code **)(pcVar5 + 0xdae0c))(pcStack_3e4,uVar18);\n    if (iVar6 != 0) {\n      uVar18 = (**(code **)(pcVar5 + 0xd9234))(uVar18);\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7de0,uVar18);\n    }\n    (**(code **)(pcVar5 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n             *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      iVar12 = *piVar8;\n      *piVar11 = iVar12;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar6 = *(int *)(*piVar19 + iVar10);\n      piVar20 = *(int **)(iVar6 + 4);\n      piVar27 = piVar20;\n      do {\n        if (*(char *)((int)piVar27 + 0xb) == '\x7f') {\n          piVar27[3] = 1;\n        }\n        piVar27 = (int *)*piVar27;\n      } while (piVar20 != piVar27);\n      *(undefined4 *)(iVar6 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar28 = *(code **)(pcVar5 + 0xdad38);\n        *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffe | 2;\n        (*pcVar28)(*(undefined4 *)(iVar6 + 8),0x19);\nLAB_0006b9c8:\n        reset_current();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      *piVar11 = *piVar8;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) == 0) {\n        iVar3 = *piVar19;\n      }\n      else {\nLAB_0006bce0:\n        iVar12 = 0;\n        give_terminal_to(*(pid_t *)(iVar6 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar19;\n      }\n      iVar12 = 0x19;\n      pcVar28 = *(code **)(pcVar5 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar10);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar28)(*(undefined4 *)(iVar3 + 8));\n    }\nLAB_0006bbc8:\n    pPVar4 = find_last_proc((int)piVar25,iVar12);\n    pid = pPVar4->pid;\n    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);\n    iVar3 = wait_for(pid);\n    piVar27 = piVar24;\n    do {\n      piVar8 = piVar27 + 4;\n      piVar21 = piVar20 + 4;\n      iVar12 = piVar27[1];\n      iVar10 = piVar27[2];\n      iVar6 = piVar27[3];\n      *piVar20 = *piVar27;\n      piVar20[1] = iVar12;\n      piVar20[2] = iVar10;\n      piVar20[3] = iVar6;\n      piVar20 = piVar21;\n      piVar27 = piVar8;\n    } while (piVar8 != piVar24 + 0xc);\n    *piVar21 = *piVar8;\n    set_tty_state();\n  }" else (compound_statement "{\n    pcStack_3e4 = current_working_directory();\n    *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n         *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffd;\n    set_current_job((int)piVar25);\n    iVar6 = *(int *)(*piVar19 + iVar10);\n    piVar20 = *(int **)(iVar6 + 4);\n    *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) | 1;\n    piVar27 = piVar20;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar5 + 0xd8e3c);\n    iVar6 = *(int *)(pcVar5 + 0xd8e70);\n    iVar22 = *(int *)(pcVar5 + 0xd8e3c);\n    do {\n      iVar14 = piVar27[4];\n      if (piVar27[4] == 0) {\n        iVar14 = iVar6 + -0x6800;\n      }\n      iVar16 = iVar22 + 0x6720;\n      if ((int *)*piVar27 == piVar20) {\n        iVar16 = iVar6 + -0x6800;\n      }\n      (**(code **)(pcVar5 + 0xdabb0))(1,iVar12 + 0x6298,iVar14,iVar16);\n      piVar27 = (int *)*piVar27;\n      puVar23 = *(undefined4 **)(*piVar19 + iVar10);\n      piVar20 = (int *)puVar23[1];\n    } while (piVar20 != piVar27);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7b74);\n      puVar23 = *(undefined4 **)(*piVar19 + iVar10);\n    }\n    uVar18 = *puVar23;\n    iVar6 = (**(code **)(pcVar5 + 0xdae0c))(pcStack_3e4,uVar18);\n    if (iVar6 != 0) {\n      uVar18 = (**(code **)(pcVar5 + 0xd9234))(uVar18);\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7de0,uVar18);\n    }\n    (**(code **)(pcVar5 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n             *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      iVar12 = *piVar8;\n      *piVar11 = iVar12;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar6 = *(int *)(*piVar19 + iVar10);\n      piVar20 = *(int **)(iVar6 + 4);\n      piVar27 = piVar20;\n      do {\n        if (*(char *)((int)piVar27 + 0xb) == '\x7f') {\n          piVar27[3] = 1;\n        }\n        piVar27 = (int *)*piVar27;\n      } while (piVar20 != piVar27);\n      *(undefined4 *)(iVar6 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar28 = *(code **)(pcVar5 + 0xdad38);\n        *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffe | 2;\n        (*pcVar28)(*(undefined4 *)(iVar6 + 8),0x19);\nLAB_0006b9c8:\n        reset_current();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      *piVar11 = *piVar8;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) == 0) {\n        iVar3 = *piVar19;\n      }\n      else {\nLAB_0006bce0:\n        iVar12 = 0;\n        give_terminal_to(*(pid_t *)(iVar6 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar19;\n      }\n      iVar12 = 0x19;\n      pcVar28 = *(code **)(pcVar5 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar10);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar28)(*(undefined4 *)(iVar3 + 8));\n    }\nLAB_0006bbc8:\n    pPVar4 = find_last_proc((int)piVar25,iVar12);\n    pid = pPVar4->pid;\n    (**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);\n    iVar3 = wait_for(pid);\n    piVar27 = piVar24;\n    do {\n      piVar8 = piVar27 + 4;\n      piVar21 = piVar20 + 4;\n      iVar12 = piVar27[1];\n      iVar10 = piVar27[2];\n      iVar6 = piVar27[3];\n      *piVar20 = *piVar27;\n      piVar20[1] = iVar12;\n      piVar20[2] = iVar10;\n      piVar20[3] = iVar6;\n      piVar20 = piVar21;\n      piVar27 = piVar8;\n    } while (piVar8 != piVar24 + 0xc);\n    *piVar21 = *piVar8;\n    set_tty_state();\n  }" { (expression_statement "pcStack_3e4 = current_working_directory();" (assignment_expression "pcStack_3e4 = current_working_directory()" identifier = (call_expression "current_working_directory()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n         *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffd;" (assignment_expression "*(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n         *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffd" (pointer_expression "*(uint *)(*(int *)(*piVar19 + iVar10) + 0x10)" * (cast_expression "(uint *)(*(int *)(*piVar19 + iVar10) + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar19 + iVar10) + 0x10)" ( (binary_expression "*(int *)(*piVar19 + iVar10) + 0x10" (pointer_expression "*(int *)(*piVar19 + iVar10)" * (cast_expression "(int *)(*piVar19 + iVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar19 + iVar10)" ( (binary_expression "*piVar19 + iVar10" (pointer_expression "*piVar19" * identifier) + identifier) )))) + number_literal) )))) = (binary_expression "*(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffd" (pointer_expression "*(uint *)(*(int *)(*piVar19 + iVar10) + 0x10)" * (cast_expression "(uint *)(*(int *)(*piVar19 + iVar10) + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar19 + iVar10) + 0x10)" ( (binary_expression "*(int *)(*piVar19 + iVar10) + 0x10" (pointer_expression "*(int *)(*piVar19 + iVar10)" * (cast_expression "(int *)(*piVar19 + iVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar19 + iVar10)" ( (binary_expression "*piVar19 + iVar10" (pointer_expression "*piVar19" * identifier) + identifier) )))) + number_literal) )))) & number_literal)) ;) (expression_statement "set_current_job((int)piVar25);" (call_expression "set_current_job((int)piVar25)" identifier (argument_list "((int)piVar25)" ( (cast_expression "(int)piVar25" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "iVar6 = *(int *)(*piVar19 + iVar10);" (assignment_expression "iVar6 = *(int *)(*piVar19 + iVar10)" identifier = (pointer_expression "*(int *)(*piVar19 + iVar10)" * (cast_expression "(int *)(*piVar19 + iVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar19 + iVar10)" ( (binary_expression "*piVar19 + iVar10" (pointer_expression "*piVar19" * identifier) + identifier) ))))) ;) (expression_statement "piVar20 = *(int **)(iVar6 + 4);" (assignment_expression "piVar20 = *(int **)(iVar6 + 4)" identifier = (pointer_expression "*(int **)(iVar6 + 4)" * (cast_expression "(int **)(iVar6 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) | 1;" (assignment_expression "*(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) | 1" (pointer_expression "*(uint *)(iVar6 + 0x10)" * (cast_expression "(uint *)(iVar6 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar6 + 0x10) | 1" (pointer_expression "*(uint *)(iVar6 + 0x10)" * (cast_expression "(uint *)(iVar6 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "piVar27 = piVar20;" (assignment_expression "piVar27 = piVar20" identifier = identifier) ;) (labeled_statement "LAB_0006b898:\n    iVar12 = *(int *)(pcVar5 + 0xd8e3c);" statement_identifier : (expression_statement "iVar12 = *(int *)(pcVar5 + 0xd8e3c);" (assignment_expression "iVar12 = *(int *)(pcVar5 + 0xd8e3c)" identifier = (pointer_expression "*(int *)(pcVar5 + 0xd8e3c)" * (cast_expression "(int *)(pcVar5 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd8e3c)" ( (binary_expression "pcVar5 + 0xd8e3c" identifier + number_literal) ))))) ;)) (expression_statement "iVar6 = *(int *)(pcVar5 + 0xd8e70);" (assignment_expression "iVar6 = *(int *)(pcVar5 + 0xd8e70)" identifier = (pointer_expression "*(int *)(pcVar5 + 0xd8e70)" * (cast_expression "(int *)(pcVar5 + 0xd8e70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd8e70)" ( (binary_expression "pcVar5 + 0xd8e70" identifier + number_literal) ))))) ;) (expression_statement "iVar22 = *(int *)(pcVar5 + 0xd8e3c);" (assignment_expression "iVar22 = *(int *)(pcVar5 + 0xd8e3c)" identifier = (pointer_expression "*(int *)(pcVar5 + 0xd8e3c)" * (cast_expression "(int *)(pcVar5 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd8e3c)" ( (binary_expression "pcVar5 + 0xd8e3c" identifier + number_literal) ))))) ;) (do_statement "do {\n      iVar14 = piVar27[4];\n      if (piVar27[4] == 0) {\n        iVar14 = iVar6 + -0x6800;\n      }\n      iVar16 = iVar22 + 0x6720;\n      if ((int *)*piVar27 == piVar20) {\n        iVar16 = iVar6 + -0x6800;\n      }\n      (**(code **)(pcVar5 + 0xdabb0))(1,iVar12 + 0x6298,iVar14,iVar16);\n      piVar27 = (int *)*piVar27;\n      puVar23 = *(undefined4 **)(*piVar19 + iVar10);\n      piVar20 = (int *)puVar23[1];\n    } while (piVar20 != piVar27);" do (compound_statement "{\n      iVar14 = piVar27[4];\n      if (piVar27[4] == 0) {\n        iVar14 = iVar6 + -0x6800;\n      }\n      iVar16 = iVar22 + 0x6720;\n      if ((int *)*piVar27 == piVar20) {\n        iVar16 = iVar6 + -0x6800;\n      }\n      (**(code **)(pcVar5 + 0xdabb0))(1,iVar12 + 0x6298,iVar14,iVar16);\n      piVar27 = (int *)*piVar27;\n      puVar23 = *(undefined4 **)(*piVar19 + iVar10);\n      piVar20 = (int *)puVar23[1];\n    }" { (expression_statement "iVar14 = piVar27[4];" (assignment_expression "iVar14 = piVar27[4]" identifier = (subscript_expression "piVar27[4]" identifier [ number_literal ])) ;) (if_statement "if (piVar27[4] == 0) {\n        iVar14 = iVar6 + -0x6800;\n      }" if (parenthesized_expression "(piVar27[4] == 0)" ( (binary_expression "piVar27[4] == 0" (subscript_expression "piVar27[4]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar14 = iVar6 + -0x6800;\n      }" { (expression_statement "iVar14 = iVar6 + -0x6800;" (assignment_expression "iVar14 = iVar6 + -0x6800" identifier = (binary_expression "iVar6 + -0x6800" identifier + number_literal)) ;) })) (expression_statement "iVar16 = iVar22 + 0x6720;" (assignment_expression "iVar16 = iVar22 + 0x6720" identifier = (binary_expression "iVar22 + 0x6720" identifier + number_literal)) ;) (if_statement "if ((int *)*piVar27 == piVar20) {\n        iVar16 = iVar6 + -0x6800;\n      }" if (parenthesized_expression "((int *)*piVar27 == piVar20)" ( (binary_expression "(int *)*piVar27 == piVar20" (cast_expression "(int *)*piVar27" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar27" * identifier)) == identifier) )) (compound_statement "{\n        iVar16 = iVar6 + -0x6800;\n      }" { (expression_statement "iVar16 = iVar6 + -0x6800;" (assignment_expression "iVar16 = iVar6 + -0x6800" identifier = (binary_expression "iVar6 + -0x6800" identifier + number_literal)) ;) })) (expression_statement "(**(code **)(pcVar5 + 0xdabb0))(1,iVar12 + 0x6298,iVar14,iVar16);" (call_expression "(**(code **)(pcVar5 + 0xdabb0))(1,iVar12 + 0x6298,iVar14,iVar16)" (parenthesized_expression "(**(code **)(pcVar5 + 0xdabb0))" ( (pointer_expression "**(code **)(pcVar5 + 0xdabb0)" * (pointer_expression "*(code **)(pcVar5 + 0xdabb0)" * (cast_expression "(code **)(pcVar5 + 0xdabb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xdabb0)" ( (binary_expression "pcVar5 + 0xdabb0" identifier + number_literal) ))))) )) (argument_list "(1,iVar12 + 0x6298,iVar14,iVar16)" ( number_literal , (binary_expression "iVar12 + 0x6298" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "piVar27 = (int *)*piVar27;" (assignment_expression "piVar27 = (int *)*piVar27" identifier = (cast_expression "(int *)*piVar27" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar27" * identifier))) ;) (expression_statement "puVar23 = *(undefined4 **)(*piVar19 + iVar10);" (assignment_expression "puVar23 = *(undefined4 **)(*piVar19 + iVar10)" identifier = (pointer_expression "*(undefined4 **)(*piVar19 + iVar10)" * (cast_expression "(undefined4 **)(*piVar19 + iVar10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar19 + iVar10)" ( (binary_expression "*piVar19 + iVar10" (pointer_expression "*piVar19" * identifier) + identifier) ))))) ;) (expression_statement "piVar20 = (int *)puVar23[1];" (assignment_expression "piVar20 = (int *)puVar23[1]" identifier = (cast_expression "(int *)puVar23[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar23[1]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(piVar20 != piVar27)" ( (binary_expression "piVar20 != piVar27" identifier != identifier) )) ;) (if_statement "if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7b74);\n      puVar23 = *(undefined4 **)(*piVar19 + iVar10);\n    }" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7b74);\n      puVar23 = *(undefined4 **)(*piVar19 + iVar10);\n    }" { (expression_statement "(**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7b74);" (call_expression "(**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7b74)" (parenthesized_expression "(**(code **)(pcVar5 + 0xdabb0))" ( (pointer_expression "**(code **)(pcVar5 + 0xdabb0)" * (pointer_expression "*(code **)(pcVar5 + 0xdabb0)" * (cast_expression "(code **)(pcVar5 + 0xdabb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xdabb0)" ( (binary_expression "pcVar5 + 0xdabb0" identifier + number_literal) ))))) )) (argument_list "(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7b74)" ( number_literal , (binary_expression "*(int *)(pcVar5 + 0xd8e3c) + 0x7b74" (pointer_expression "*(int *)(pcVar5 + 0xd8e3c)" * (cast_expression "(int *)(pcVar5 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd8e3c)" ( (binary_expression "pcVar5 + 0xd8e3c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "puVar23 = *(undefined4 **)(*piVar19 + iVar10);" (assignment_expression "puVar23 = *(undefined4 **)(*piVar19 + iVar10)" identifier = (pointer_expression "*(undefined4 **)(*piVar19 + iVar10)" * (cast_expression "(undefined4 **)(*piVar19 + iVar10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar19 + iVar10)" ( (binary_expression "*piVar19 + iVar10" (pointer_expression "*piVar19" * identifier) + identifier) ))))) ;) })) (expression_statement "uVar18 = *puVar23;" (assignment_expression "uVar18 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "iVar6 = (**(code **)(pcVar5 + 0xdae0c))(pcStack_3e4,uVar18);" (assignment_expression "iVar6 = (**(code **)(pcVar5 + 0xdae0c))(pcStack_3e4,uVar18)" identifier = (call_expression "(**(code **)(pcVar5 + 0xdae0c))(pcStack_3e4,uVar18)" (parenthesized_expression "(**(code **)(pcVar5 + 0xdae0c))" ( (pointer_expression "**(code **)(pcVar5 + 0xdae0c)" * (pointer_expression "*(code **)(pcVar5 + 0xdae0c)" * (cast_expression "(code **)(pcVar5 + 0xdae0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xdae0c)" ( (binary_expression "pcVar5 + 0xdae0c" identifier + number_literal) ))))) )) (argument_list "(pcStack_3e4,uVar18)" ( identifier , identifier )))) ;) (if_statement "if (iVar6 != 0) {\n      uVar18 = (**(code **)(pcVar5 + 0xd9234))(uVar18);\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7de0,uVar18);\n    }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar18 = (**(code **)(pcVar5 + 0xd9234))(uVar18);\n      (**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7de0,uVar18);\n    }" { (expression_statement "uVar18 = (**(code **)(pcVar5 + 0xd9234))(uVar18);" (assignment_expression "uVar18 = (**(code **)(pcVar5 + 0xd9234))(uVar18)" identifier = (call_expression "(**(code **)(pcVar5 + 0xd9234))(uVar18)" (parenthesized_expression "(**(code **)(pcVar5 + 0xd9234))" ( (pointer_expression "**(code **)(pcVar5 + 0xd9234)" * (pointer_expression "*(code **)(pcVar5 + 0xd9234)" * (cast_expression "(code **)(pcVar5 + 0xd9234)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd9234)" ( (binary_expression "pcVar5 + 0xd9234" identifier + number_literal) ))))) )) (argument_list "(uVar18)" ( identifier )))) ;) (expression_statement "(**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7de0,uVar18);" (call_expression "(**(code **)(pcVar5 + 0xdabb0))(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7de0,uVar18)" (parenthesized_expression "(**(code **)(pcVar5 + 0xdabb0))" ( (pointer_expression "**(code **)(pcVar5 + 0xdabb0)" * (pointer_expression "*(code **)(pcVar5 + 0xdabb0)" * (cast_expression "(code **)(pcVar5 + 0xdabb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xdabb0)" ( (binary_expression "pcVar5 + 0xdabb0" identifier + number_literal) ))))) )) (argument_list "(1,*(int *)(pcVar5 + 0xd8e3c) + 0x7de0,uVar18)" ( number_literal , (binary_expression "*(int *)(pcVar5 + 0xd8e3c) + 0x7de0" (pointer_expression "*(int *)(pcVar5 + 0xd8e3c)" * (cast_expression "(int *)(pcVar5 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd8e3c)" ( (binary_expression "pcVar5 + 0xd8e3c" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "(**(code **)(pcVar5 + 0xdac04))(10);" (call_expression "(**(code **)(pcVar5 + 0xdac04))(10)" (parenthesized_expression "(**(code **)(pcVar5 + 0xdac04))" ( (pointer_expression "**(code **)(pcVar5 + 0xdac04)" * (pointer_expression "*(code **)(pcVar5 + 0xdac04)" * (cast_expression "(code **)(pcVar5 + 0xdac04)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xdac04)" ( (binary_expression "pcVar5 + 0xdac04" identifier + number_literal) ))))) )) (argument_list "(10)" ( number_literal ))) ;) (if_statement "if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n             *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      iVar12 = *piVar8;\n      *piVar11 = iVar12;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar6 = *(int *)(*piVar19 + iVar10);\n      piVar20 = *(int **)(iVar6 + 4);\n      piVar27 = piVar20;\n      do {\n        if (*(char *)((int)piVar27 + 0xb) == '\x7f') {\n          piVar27[3] = 1;\n        }\n        piVar27 = (int *)*piVar27;\n      } while (piVar20 != piVar27);\n      *(undefined4 *)(iVar6 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar28 = *(code **)(pcVar5 + 0xdad38);\n        *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffe | 2;\n        (*pcVar28)(*(undefined4 *)(iVar6 + 8),0x19);\nLAB_0006b9c8:\n        reset_current();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      *piVar11 = *piVar8;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) == 0) {\n        iVar3 = *piVar19;\n      }\n      else {\nLAB_0006bce0:\n        iVar12 = 0;\n        give_terminal_to(*(pid_t *)(iVar6 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar19;\n      }\n      iVar12 = 0x19;\n      pcVar28 = *(code **)(pcVar5 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar10);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar28)(*(undefined4 *)(iVar3 + 8));\n    }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n             *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      iVar12 = *piVar8;\n      *piVar11 = iVar12;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }" { (if_statement "if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n             *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n             *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }" { (expression_statement "*(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n             *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffe;" (assignment_expression "*(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) =\n             *(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffe" (pointer_expression "*(uint *)(*(int *)(*piVar19 + iVar10) + 0x10)" * (cast_expression "(uint *)(*(int *)(*piVar19 + iVar10) + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar19 + iVar10) + 0x10)" ( (binary_expression "*(int *)(*piVar19 + iVar10) + 0x10" (pointer_expression "*(int *)(*piVar19 + iVar10)" * (cast_expression "(int *)(*piVar19 + iVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar19 + iVar10)" ( (binary_expression "*piVar19 + iVar10" (pointer_expression "*piVar19" * identifier) + identifier) )))) + number_literal) )))) = (binary_expression "*(uint *)(*(int *)(*piVar19 + iVar10) + 0x10) & 0xfffffffe" (pointer_expression "*(uint *)(*(int *)(*piVar19 + iVar10) + 0x10)" * (cast_expression "(uint *)(*(int *)(*piVar19 + iVar10) + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar19 + iVar10) + 0x10)" ( (binary_expression "*(int *)(*piVar19 + iVar10) + 0x10" (pointer_expression "*(int *)(*piVar19 + iVar10)" * (cast_expression "(int *)(*piVar19 + iVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar19 + iVar10)" ( (binary_expression "*piVar19 + iVar10" (pointer_expression "*piVar19" * identifier) + identifier) )))) + number_literal) )))) & number_literal)) ;) (goto_statement "goto LAB_0006b9c8;" goto statement_identifier ;) })) (expression_statement "get_tty_state();" (call_expression "get_tty_state()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar6 = *(int *)(pcVar5 + 0xd9a18);" (assignment_expression "iVar6 = *(int *)(pcVar5 + 0xd9a18)" identifier = (pointer_expression "*(int *)(pcVar5 + 0xd9a18)" * (cast_expression "(int *)(pcVar5 + 0xd9a18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd9a18)" ( (binary_expression "pcVar5 + 0xd9a18" identifier + number_literal) ))))) ;) (expression_statement "piVar20 = (int *)(iVar6 + -0x70d0);" (assignment_expression "piVar20 = (int *)(iVar6 + -0x70d0)" identifier = (cast_expression "(int *)(iVar6 + -0x70d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + -0x70d0)" ( (binary_expression "iVar6 + -0x70d0" identifier + number_literal) )))) ;) (expression_statement "piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);" (assignment_expression "piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8)" identifier = (cast_expression "(int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8)" ( (binary_expression "*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8" (pointer_expression "*(int *)(pcVar5 + 0xd8e2c)" * (cast_expression "(int *)(pcVar5 + 0xd8e2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd8e2c)" ( (binary_expression "pcVar5 + 0xd8e2c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "piVar27 = piVar20;" (assignment_expression "piVar27 = piVar20" identifier = identifier) ;) (expression_statement "piVar21 = piVar24;" (assignment_expression "piVar21 = piVar24" identifier = identifier) ;) (do_statement "do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));" do (compound_statement "{\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      }" { (expression_statement "piVar8 = piVar27 + 4;" (assignment_expression "piVar8 = piVar27 + 4" identifier = (binary_expression "piVar27 + 4" identifier + number_literal)) ;) (expression_statement "piVar11 = piVar21 + 4;" (assignment_expression "piVar11 = piVar21 + 4" identifier = (binary_expression "piVar21 + 4" identifier + number_literal)) ;) (expression_statement "iVar14 = piVar27[1];" (assignment_expression "iVar14 = piVar27[1]" identifier = (subscript_expression "piVar27[1]" identifier [ number_literal ])) ;) (expression_statement "iVar22 = piVar27[2];" (assignment_expression "iVar22 = piVar27[2]" identifier = (subscript_expression "piVar27[2]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = piVar27[3];" (assignment_expression "iVar12 = piVar27[3]" identifier = (subscript_expression "piVar27[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar21 = *piVar27;" (assignment_expression "*piVar21 = *piVar27" (pointer_expression "*piVar21" * identifier) = (pointer_expression "*piVar27" * identifier)) ;) (expression_statement "piVar21[1] = iVar14;" (assignment_expression "piVar21[1] = iVar14" (subscript_expression "piVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar21[2] = iVar22;" (assignment_expression "piVar21[2] = iVar22" (subscript_expression "piVar21[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar21[3] = iVar12;" (assignment_expression "piVar21[3] = iVar12" (subscript_expression "piVar21[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar27 = piVar8;" (assignment_expression "piVar27 = piVar8" identifier = identifier) ;) (expression_statement "piVar21 = piVar11;" (assignment_expression "piVar21 = piVar11" identifier = identifier) ;) }) while (parenthesized_expression "(piVar8 != (int *)(iVar6 + -0x70a0))" ( (binary_expression "piVar8 != (int *)(iVar6 + -0x70a0)" identifier != (cast_expression "(int *)(iVar6 + -0x70a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + -0x70a0)" ( (binary_expression "iVar6 + -0x70a0" identifier + number_literal) )))) )) ;) (expression_statement "iVar6 = *piVar19;" (assignment_expression "iVar6 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "iVar12 = *piVar8;" (assignment_expression "iVar12 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "*piVar11 = iVar12;" (assignment_expression "*piVar11 = iVar12" (pointer_expression "*piVar11" * identifier) = identifier) ;) (expression_statement "iVar6 = *(int *)(iVar6 + iVar10);" (assignment_expression "iVar6 = *(int *)(iVar6 + iVar10)" identifier = (pointer_expression "*(int *)(iVar6 + iVar10)" * (cast_expression "(int *)(iVar6 + iVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar10)" ( (binary_expression "iVar6 + iVar10" identifier + identifier) ))))) ;) (if_statement "if ((*(uint *)(iVar6 + 0x10) & 4) != 0) goto LAB_0006bce0;" if (parenthesized_expression "((*(uint *)(iVar6 + 0x10) & 4) != 0)" ( (binary_expression "(*(uint *)(iVar6 + 0x10) & 4) != 0" (parenthesized_expression "(*(uint *)(iVar6 + 0x10) & 4)" ( (binary_expression "*(uint *)(iVar6 + 0x10) & 4" (pointer_expression "*(uint *)(iVar6 + 0x10)" * (cast_expression "(uint *)(iVar6 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0006bce0;" goto statement_identifier ;)) }) (else_clause "else {\n      iVar6 = *(int *)(*piVar19 + iVar10);\n      piVar20 = *(int **)(iVar6 + 4);\n      piVar27 = piVar20;\n      do {\n        if (*(char *)((int)piVar27 + 0xb) == '\x7f') {\n          piVar27[3] = 1;\n        }\n        piVar27 = (int *)*piVar27;\n      } while (piVar20 != piVar27);\n      *(undefined4 *)(iVar6 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar28 = *(code **)(pcVar5 + 0xdad38);\n        *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffe | 2;\n        (*pcVar28)(*(undefined4 *)(iVar6 + 8),0x19);\nLAB_0006b9c8:\n        reset_current();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      *piVar11 = *piVar8;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) == 0) {\n        iVar3 = *piVar19;\n      }\n      else {\nLAB_0006bce0:\n        iVar12 = 0;\n        give_terminal_to(*(pid_t *)(iVar6 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar19;\n      }\n      iVar12 = 0x19;\n      pcVar28 = *(code **)(pcVar5 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar10);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar28)(*(undefined4 *)(iVar3 + 8));\n    }" else (compound_statement "{\n      iVar6 = *(int *)(*piVar19 + iVar10);\n      piVar20 = *(int **)(iVar6 + 4);\n      piVar27 = piVar20;\n      do {\n        if (*(char *)((int)piVar27 + 0xb) == '\x7f') {\n          piVar27[3] = 1;\n        }\n        piVar27 = (int *)*piVar27;\n      } while (piVar20 != piVar27);\n      *(undefined4 *)(iVar6 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar28 = *(code **)(pcVar5 + 0xdad38);\n        *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffe | 2;\n        (*pcVar28)(*(undefined4 *)(iVar6 + 8),0x19);\nLAB_0006b9c8:\n        reset_current();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar6 = *(int *)(pcVar5 + 0xd9a18);\n      piVar20 = (int *)(iVar6 + -0x70d0);\n      piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);\n      piVar27 = piVar20;\n      piVar21 = piVar24;\n      do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));\n      iVar6 = *piVar19;\n      *piVar11 = *piVar8;\n      iVar6 = *(int *)(iVar6 + iVar10);\n      if ((*(uint *)(iVar6 + 0x10) & 4) == 0) {\n        iVar3 = *piVar19;\n      }\n      else {\nLAB_0006bce0:\n        iVar12 = 0;\n        give_terminal_to(*(pid_t *)(iVar6 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar19;\n      }\n      iVar12 = 0x19;\n      pcVar28 = *(code **)(pcVar5 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar10);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar28)(*(undefined4 *)(iVar3 + 8));\n    }" { (expression_statement "iVar6 = *(int *)(*piVar19 + iVar10);" (assignment_expression "iVar6 = *(int *)(*piVar19 + iVar10)" identifier = (pointer_expression "*(int *)(*piVar19 + iVar10)" * (cast_expression "(int *)(*piVar19 + iVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar19 + iVar10)" ( (binary_expression "*piVar19 + iVar10" (pointer_expression "*piVar19" * identifier) + identifier) ))))) ;) (expression_statement "piVar20 = *(int **)(iVar6 + 4);" (assignment_expression "piVar20 = *(int **)(iVar6 + 4)" identifier = (pointer_expression "*(int **)(iVar6 + 4)" * (cast_expression "(int **)(iVar6 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "piVar27 = piVar20;" (assignment_expression "piVar27 = piVar20" identifier = identifier) ;) (do_statement "do {\n        if (*(char *)((int)piVar27 + 0xb) == '\x7f') {\n          piVar27[3] = 1;\n        }\n        piVar27 = (int *)*piVar27;\n      } while (piVar20 != piVar27);" do (compound_statement "{\n        if (*(char *)((int)piVar27 + 0xb) == '\x7f') {\n          piVar27[3] = 1;\n        }\n        piVar27 = (int *)*piVar27;\n      }" { (if_statement "if (*(char *)((int)piVar27 + 0xb) == '\x7f') {\n          piVar27[3] = 1;\n        }" if (parenthesized_expression "(*(char *)((int)piVar27 + 0xb) == '\x7f')" ( (binary_expression "*(char *)((int)piVar27 + 0xb) == '\x7f'" (pointer_expression "*(char *)((int)piVar27 + 0xb)" * (cast_expression "(char *)((int)piVar27 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + 0xb)" ( (binary_expression "(int)piVar27 + 0xb" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\x7f'" ' escape_sequence ')) )) (compound_statement "{\n          piVar27[3] = 1;\n        }" { (expression_statement "piVar27[3] = 1;" (assignment_expression "piVar27[3] = 1" (subscript_expression "piVar27[3]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "piVar27 = (int *)*piVar27;" (assignment_expression "piVar27 = (int *)*piVar27" identifier = (cast_expression "(int *)*piVar27" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar27" * identifier))) ;) }) while (parenthesized_expression "(piVar20 != piVar27)" ( (binary_expression "piVar20 != piVar27" identifier != identifier) )) ;) (expression_statement "*(undefined4 *)(iVar6 + 0xc) = 1;" (assignment_expression "*(undefined4 *)(iVar6 + 0xc) = 1" (pointer_expression "*(undefined4 *)(iVar6 + 0xc)" * (cast_expression "(undefined4 *)(iVar6 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (puVar13 == (undefined4 *)0x0) {\n        pcVar28 = *(code **)(pcVar5 + 0xdad38);\n        *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffe | 2;\n        (*pcVar28)(*(undefined4 *)(iVar6 + 8),0x19);\nLAB_0006b9c8:\n        reset_current();\n        goto LAB_0006b9dc;\n      }" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar28 = *(code **)(pcVar5 + 0xdad38);\n        *(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffe | 2;\n        (*pcVar28)(*(undefined4 *)(iVar6 + 8),0x19);\nLAB_0006b9c8:\n        reset_current();\n        goto LAB_0006b9dc;\n      }" { (expression_statement "pcVar28 = *(code **)(pcVar5 + 0xdad38);" (assignment_expression "pcVar28 = *(code **)(pcVar5 + 0xdad38)" identifier = (pointer_expression "*(code **)(pcVar5 + 0xdad38)" * (cast_expression "(code **)(pcVar5 + 0xdad38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xdad38)" ( (binary_expression "pcVar5 + 0xdad38" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffe | 2;" (assignment_expression "*(uint *)(iVar6 + 0x10) = *(uint *)(iVar6 + 0x10) & 0xfffffffe | 2" (pointer_expression "*(uint *)(iVar6 + 0x10)" * (cast_expression "(uint *)(iVar6 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar6 + 0x10) & 0xfffffffe | 2" (binary_expression "*(uint *)(iVar6 + 0x10) & 0xfffffffe" (pointer_expression "*(uint *)(iVar6 + 0x10)" * (cast_expression "(uint *)(iVar6 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "(*pcVar28)(*(undefined4 *)(iVar6 + 8),0x19);" (call_expression "(*pcVar28)(*(undefined4 *)(iVar6 + 8),0x19)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(*(undefined4 *)(iVar6 + 8),0x19)" ( (pointer_expression "*(undefined4 *)(iVar6 + 8)" * (cast_expression "(undefined4 *)(iVar6 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) , number_literal ))) ;) (labeled_statement "LAB_0006b9c8:\n        reset_current();" statement_identifier : (expression_statement "reset_current();" (call_expression "reset_current()" identifier (argument_list "()" ( ))) ;)) (goto_statement "goto LAB_0006b9dc;" goto statement_identifier ;) })) (expression_statement "get_tty_state();" (call_expression "get_tty_state()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar6 = *(int *)(pcVar5 + 0xd9a18);" (assignment_expression "iVar6 = *(int *)(pcVar5 + 0xd9a18)" identifier = (pointer_expression "*(int *)(pcVar5 + 0xd9a18)" * (cast_expression "(int *)(pcVar5 + 0xd9a18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd9a18)" ( (binary_expression "pcVar5 + 0xd9a18" identifier + number_literal) ))))) ;) (expression_statement "piVar20 = (int *)(iVar6 + -0x70d0);" (assignment_expression "piVar20 = (int *)(iVar6 + -0x70d0)" identifier = (cast_expression "(int *)(iVar6 + -0x70d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + -0x70d0)" ( (binary_expression "iVar6 + -0x70d0" identifier + number_literal) )))) ;) (expression_statement "piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8);" (assignment_expression "piVar24 = (int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8)" identifier = (cast_expression "(int *)(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8)" ( (binary_expression "*(int *)(pcVar5 + 0xd8e2c) + 0x7ee8" (pointer_expression "*(int *)(pcVar5 + 0xd8e2c)" * (cast_expression "(int *)(pcVar5 + 0xd8e2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd8e2c)" ( (binary_expression "pcVar5 + 0xd8e2c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "piVar27 = piVar20;" (assignment_expression "piVar27 = piVar20" identifier = identifier) ;) (expression_statement "piVar21 = piVar24;" (assignment_expression "piVar21 = piVar24" identifier = identifier) ;) (do_statement "do {\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      } while (piVar8 != (int *)(iVar6 + -0x70a0));" do (compound_statement "{\n        piVar8 = piVar27 + 4;\n        piVar11 = piVar21 + 4;\n        iVar14 = piVar27[1];\n        iVar22 = piVar27[2];\n        iVar12 = piVar27[3];\n        *piVar21 = *piVar27;\n        piVar21[1] = iVar14;\n        piVar21[2] = iVar22;\n        piVar21[3] = iVar12;\n        piVar27 = piVar8;\n        piVar21 = piVar11;\n      }" { (expression_statement "piVar8 = piVar27 + 4;" (assignment_expression "piVar8 = piVar27 + 4" identifier = (binary_expression "piVar27 + 4" identifier + number_literal)) ;) (expression_statement "piVar11 = piVar21 + 4;" (assignment_expression "piVar11 = piVar21 + 4" identifier = (binary_expression "piVar21 + 4" identifier + number_literal)) ;) (expression_statement "iVar14 = piVar27[1];" (assignment_expression "iVar14 = piVar27[1]" identifier = (subscript_expression "piVar27[1]" identifier [ number_literal ])) ;) (expression_statement "iVar22 = piVar27[2];" (assignment_expression "iVar22 = piVar27[2]" identifier = (subscript_expression "piVar27[2]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = piVar27[3];" (assignment_expression "iVar12 = piVar27[3]" identifier = (subscript_expression "piVar27[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar21 = *piVar27;" (assignment_expression "*piVar21 = *piVar27" (pointer_expression "*piVar21" * identifier) = (pointer_expression "*piVar27" * identifier)) ;) (expression_statement "piVar21[1] = iVar14;" (assignment_expression "piVar21[1] = iVar14" (subscript_expression "piVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar21[2] = iVar22;" (assignment_expression "piVar21[2] = iVar22" (subscript_expression "piVar21[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar21[3] = iVar12;" (assignment_expression "piVar21[3] = iVar12" (subscript_expression "piVar21[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar27 = piVar8;" (assignment_expression "piVar27 = piVar8" identifier = identifier) ;) (expression_statement "piVar21 = piVar11;" (assignment_expression "piVar21 = piVar11" identifier = identifier) ;) }) while (parenthesized_expression "(piVar8 != (int *)(iVar6 + -0x70a0))" ( (binary_expression "piVar8 != (int *)(iVar6 + -0x70a0)" identifier != (cast_expression "(int *)(iVar6 + -0x70a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + -0x70a0)" ( (binary_expression "iVar6 + -0x70a0" identifier + number_literal) )))) )) ;) (expression_statement "iVar6 = *piVar19;" (assignment_expression "iVar6 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "*piVar11 = *piVar8;" (assignment_expression "*piVar11 = *piVar8" (pointer_expression "*piVar11" * identifier) = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "iVar6 = *(int *)(iVar6 + iVar10);" (assignment_expression "iVar6 = *(int *)(iVar6 + iVar10)" identifier = (pointer_expression "*(int *)(iVar6 + iVar10)" * (cast_expression "(int *)(iVar6 + iVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar10)" ( (binary_expression "iVar6 + iVar10" identifier + identifier) ))))) ;) (if_statement "if ((*(uint *)(iVar6 + 0x10) & 4) == 0) {\n        iVar3 = *piVar19;\n      }\n      else {\nLAB_0006bce0:\n        iVar12 = 0;\n        give_terminal_to(*(pid_t *)(iVar6 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar19;\n      }" if (parenthesized_expression "((*(uint *)(iVar6 + 0x10) & 4) == 0)" ( (binary_expression "(*(uint *)(iVar6 + 0x10) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar6 + 0x10) & 4)" ( (binary_expression "*(uint *)(iVar6 + 0x10) & 4" (pointer_expression "*(uint *)(iVar6 + 0x10)" * (cast_expression "(uint *)(iVar6 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar3 = *piVar19;\n      }" { (expression_statement "iVar3 = *piVar19;" (assignment_expression "iVar3 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) }) (else_clause "else {\nLAB_0006bce0:\n        iVar12 = 0;\n        give_terminal_to(*(pid_t *)(iVar6 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar19;\n      }" else (compound_statement "{\nLAB_0006bce0:\n        iVar12 = 0;\n        give_terminal_to(*(pid_t *)(iVar6 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar19;\n      }" { (labeled_statement "LAB_0006bce0:\n        iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (expression_statement "give_terminal_to(*(pid_t *)(iVar6 + 8),0);" (call_expression "give_terminal_to(*(pid_t *)(iVar6 + 8),0)" identifier (argument_list "(*(pid_t *)(iVar6 + 8),0)" ( (pointer_expression "*(pid_t *)(iVar6 + 8)" * (cast_expression "(pid_t *)(iVar6 + 8)" ( (type_descriptor "pid_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) , number_literal ))) ;) (if_statement "if (iVar3 == 1) goto LAB_0006bbc8;" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0006bbc8;" goto statement_identifier ;)) (expression_statement "iVar3 = *piVar19;" (assignment_expression "iVar3 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) }))) (expression_statement "iVar12 = 0x19;" (assignment_expression "iVar12 = 0x19" identifier = number_literal) ;) (expression_statement "pcVar28 = *(code **)(pcVar5 + 0xdad38);" (assignment_expression "pcVar28 = *(code **)(pcVar5 + 0xdad38)" identifier = (pointer_expression "*(code **)(pcVar5 + 0xdad38)" * (cast_expression "(code **)(pcVar5 + 0xdad38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xdad38)" ( (binary_expression "pcVar5 + 0xdad38" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(iVar3 + iVar10);" (assignment_expression "iVar3 = *(int *)(iVar3 + iVar10)" identifier = (pointer_expression "*(int *)(iVar3 + iVar10)" * (cast_expression "(int *)(iVar3 + iVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + iVar10)" ( (binary_expression "iVar3 + iVar10" identifier + identifier) ))))) ;) (expression_statement "*(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;" (assignment_expression "*(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2" (pointer_expression "*(uint *)(iVar3 + 0x10)" * (cast_expression "(uint *)(iVar3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar3 + 0x10) | 2" (pointer_expression "*(uint *)(iVar3 + 0x10)" * (cast_expression "(uint *)(iVar3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "(*pcVar28)(*(undefined4 *)(iVar3 + 8));" (call_expression "(*pcVar28)(*(undefined4 *)(iVar3 + 8))" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(*(undefined4 *)(iVar3 + 8))" ( (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) ))) ;) }))) (labeled_statement "LAB_0006bbc8:\n    pPVar4 = find_last_proc((int)piVar25,iVar12);" statement_identifier : (expression_statement "pPVar4 = find_last_proc((int)piVar25,iVar12);" (assignment_expression "pPVar4 = find_last_proc((int)piVar25,iVar12)" identifier = (call_expression "find_last_proc((int)piVar25,iVar12)" identifier (argument_list "((int)piVar25,iVar12)" ( (cast_expression "(int)piVar25" ( (type_descriptor "int" primitive_type) ) identifier) , identifier )))) ;)) (expression_statement "pid = pPVar4->pid;" (assignment_expression "pid = pPVar4->pid" identifier = (field_expression "pPVar4->pid" identifier -> field_identifier)) ;) (expression_statement "(**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0);" (call_expression "(**(code **)(pcVar5 + 0xdadd8))(3,auStack_35c,0)" (parenthesized_expression "(**(code **)(pcVar5 + 0xdadd8))" ( (pointer_expression "**(code **)(pcVar5 + 0xdadd8)" * (pointer_expression "*(code **)(pcVar5 + 0xdadd8)" * (cast_expression "(code **)(pcVar5 + 0xdadd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xdadd8)" ( (binary_expression "pcVar5 + 0xdadd8" identifier + number_literal) ))))) )) (argument_list "(3,auStack_35c,0)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "iVar3 = wait_for(pid);" (assignment_expression "iVar3 = wait_for(pid)" identifier = (call_expression "wait_for(pid)" identifier (argument_list "(pid)" ( identifier )))) ;) (expression_statement "piVar27 = piVar24;" (assignment_expression "piVar27 = piVar24" identifier = identifier) ;) (do_statement "do {\n      piVar8 = piVar27 + 4;\n      piVar21 = piVar20 + 4;\n      iVar12 = piVar27[1];\n      iVar10 = piVar27[2];\n      iVar6 = piVar27[3];\n      *piVar20 = *piVar27;\n      piVar20[1] = iVar12;\n      piVar20[2] = iVar10;\n      piVar20[3] = iVar6;\n      piVar20 = piVar21;\n      piVar27 = piVar8;\n    } while (piVar8 != piVar24 + 0xc);" do (compound_statement "{\n      piVar8 = piVar27 + 4;\n      piVar21 = piVar20 + 4;\n      iVar12 = piVar27[1];\n      iVar10 = piVar27[2];\n      iVar6 = piVar27[3];\n      *piVar20 = *piVar27;\n      piVar20[1] = iVar12;\n      piVar20[2] = iVar10;\n      piVar20[3] = iVar6;\n      piVar20 = piVar21;\n      piVar27 = piVar8;\n    }" { (expression_statement "piVar8 = piVar27 + 4;" (assignment_expression "piVar8 = piVar27 + 4" identifier = (binary_expression "piVar27 + 4" identifier + number_literal)) ;) (expression_statement "piVar21 = piVar20 + 4;" (assignment_expression "piVar21 = piVar20 + 4" identifier = (binary_expression "piVar20 + 4" identifier + number_literal)) ;) (expression_statement "iVar12 = piVar27[1];" (assignment_expression "iVar12 = piVar27[1]" identifier = (subscript_expression "piVar27[1]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = piVar27[2];" (assignment_expression "iVar10 = piVar27[2]" identifier = (subscript_expression "piVar27[2]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = piVar27[3];" (assignment_expression "iVar6 = piVar27[3]" identifier = (subscript_expression "piVar27[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar20 = *piVar27;" (assignment_expression "*piVar20 = *piVar27" (pointer_expression "*piVar20" * identifier) = (pointer_expression "*piVar27" * identifier)) ;) (expression_statement "piVar20[1] = iVar12;" (assignment_expression "piVar20[1] = iVar12" (subscript_expression "piVar20[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar20[2] = iVar10;" (assignment_expression "piVar20[2] = iVar10" (subscript_expression "piVar20[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar20[3] = iVar6;" (assignment_expression "piVar20[3] = iVar6" (subscript_expression "piVar20[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar20 = piVar21;" (assignment_expression "piVar20 = piVar21" identifier = identifier) ;) (expression_statement "piVar27 = piVar8;" (assignment_expression "piVar27 = piVar8" identifier = identifier) ;) }) while (parenthesized_expression "(piVar8 != piVar24 + 0xc)" ( (binary_expression "piVar8 != piVar24 + 0xc" identifier != (binary_expression "piVar24 + 0xc" identifier + number_literal)) )) ;) (expression_statement "*piVar21 = *piVar8;" (assignment_expression "*piVar21 = *piVar8" (pointer_expression "*piVar21" * identifier) = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "set_tty_state();" (call_expression "set_tty_state()" identifier (argument_list "()" ( ))) ;) }))))) (if_statement "if (iStack_2dc == *piVar15) {\n    return iVar3;\n  }" if (parenthesized_expression "(iStack_2dc == *piVar15)" ( (binary_expression "iStack_2dc == *piVar15" identifier == (pointer_expression "*piVar15" * identifier)) )) (compound_statement "{\n    return iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) })) (expression_statement "pcVar5 = *(code **)(pcVar5 + 0xdad4c);" (assignment_expression "pcVar5 = *(code **)(pcVar5 + 0xdad4c)" identifier = (pointer_expression "*(code **)(pcVar5 + 0xdad4c)" * (cast_expression "(code **)(pcVar5 + 0xdad4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xdad4c)" ( (binary_expression "pcVar5 + 0xdad4c" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = iStack_2dc;" (assignment_expression "iVar3 = iStack_2dc" identifier = identifier) ;) (expression_statement "(*pcVar5)();" (call_expression "(*pcVar5)()" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar27 = *(int **)(pcVar5 + 0xd8b10);" (assignment_expression "piVar27 = *(int **)(pcVar5 + 0xd8b10)" identifier = (pointer_expression "*(int **)(pcVar5 + 0xd8b10)" * (cast_expression "(int **)(pcVar5 + 0xd8b10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd8b10)" ( (binary_expression "pcVar5 + 0xd8b10" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = (**(code **)(pcVar5 + 0xda6dc))();" (assignment_expression "iVar6 = (**(code **)(pcVar5 + 0xda6dc))()" identifier = (call_expression "(**(code **)(pcVar5 + 0xda6dc))()" (parenthesized_expression "(**(code **)(pcVar5 + 0xda6dc))" ( (pointer_expression "**(code **)(pcVar5 + 0xda6dc)" * (pointer_expression "*(code **)(pcVar5 + 0xda6dc)" * (cast_expression "(code **)(pcVar5 + 0xda6dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda6dc)" ( (binary_expression "pcVar5 + 0xda6dc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*piVar27 = iVar6;" (assignment_expression "*piVar27 = iVar6" (pointer_expression "*piVar27" * identifier) = identifier) ;) (if_statement "if (iVar6 == -1) {\n    pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7dec,5);\n    sys_error(pcVar9);\n    (**(code **)(pcVar5 + 0xda620))(1);\nLAB_0006c3c8:\n    uVar18 = *puVar13;\nLAB_0006be24:\n    uVar18 = (**(code **)(pcVar5 + 0xda58c))(uVar18);\n    iVar3 = (**(code **)(pcVar5 + 0xda780))(uVar18);\n    *piVar19 = iVar3;\n    if (iVar3 != -1) goto LAB_0006bf80;\n    pcVar28 = *(code **)(pcVar5 + 0xda670);\n    if (*piVar27 == 0) goto LAB_0006bf08;\nLAB_0006be5c:\n    iVar3 = *piVar19;\n  }\n  else {\n    piVar25 = *(int **)(pcVar5 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar5 + 0xda77c);\n    uVar18 = *puVar13;\n    if (iVar3 == 0 && *piVar25 == 0) {\n      piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n      puVar23 = *(undefined4 **)(pcVar5 + 0xd9070);\n      pcVar28 = *(code **)(pcVar5 + 0xda58c);\n      piVar19 = *(int **)(pcVar5 + 0xd93fc);\n      *piVar20 = 0;\n      *puVar23 = 0xffffffff;\n      iVar3 = (*pcVar28)(uVar18);\n      pcVar28 = *(code **)(pcVar5 + 0xda598);\n      *piVar19 = iVar3;\n      iVar3 = (*pcVar28)(iVar3);\n      iVar6 = *piVar27;\n      **(int **)(pcVar5 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar19 = *(int **)(pcVar5 + 0xd93fc);\n    iVar3 = **(int **)(pcVar5 + 0xd87e4);\n    *piVar19 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar18 = (**(code **)(pcVar5 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar5 + 0xda4b0))(uVar18);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar5 + 0xda5dc))(*(int *)(pcVar5 + 0xd87dc) + 0x62c0,0x82);\n      *piVar19 = iVar3;\n    }\n    else {\n      iVar3 = *piVar19;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar5 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar19 = iVar3;\n    pcVar28 = *(code **)(pcVar5 + 0xda670);\n    if (*piVar27 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar28)();\n    pcVar28 = *(code **)(pcVar5 + 0xda4fc);\n    *piVar27 = iVar3;\n    (*pcVar28)(0,iVar3);\n    iVar3 = *piVar19;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar5 + 0xda73c))(iVar3,*piVar27);\n      goto LAB_0006be5c;\n    }\n  }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n    pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7dec,5);\n    sys_error(pcVar9);\n    (**(code **)(pcVar5 + 0xda620))(1);\nLAB_0006c3c8:\n    uVar18 = *puVar13;\nLAB_0006be24:\n    uVar18 = (**(code **)(pcVar5 + 0xda58c))(uVar18);\n    iVar3 = (**(code **)(pcVar5 + 0xda780))(uVar18);\n    *piVar19 = iVar3;\n    if (iVar3 != -1) goto LAB_0006bf80;\n    pcVar28 = *(code **)(pcVar5 + 0xda670);\n    if (*piVar27 == 0) goto LAB_0006bf08;\nLAB_0006be5c:\n    iVar3 = *piVar19;\n  }" { (expression_statement "pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7dec,5);" (assignment_expression "pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7dec,5)" identifier = (cast_expression "(char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7dec,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7dec,5)" (parenthesized_expression "(**(code **)(pcVar5 + 0xda6fc))" ( (pointer_expression "**(code **)(pcVar5 + 0xda6fc)" * (pointer_expression "*(code **)(pcVar5 + 0xda6fc)" * (cast_expression "(code **)(pcVar5 + 0xda6fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda6fc)" ( (binary_expression "pcVar5 + 0xda6fc" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar5 + 0xd87dc) + 0x7dec,5)" ( number_literal , (binary_expression "*(int *)(pcVar5 + 0xd87dc) + 0x7dec" (pointer_expression "*(int *)(pcVar5 + 0xd87dc)" * (cast_expression "(int *)(pcVar5 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd87dc)" ( (binary_expression "pcVar5 + 0xd87dc" identifier + number_literal) )))) + number_literal) , number_literal ))))) ;) (expression_statement "sys_error(pcVar9);" (call_expression "sys_error(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar5 + 0xda620))(1);" (call_expression "(**(code **)(pcVar5 + 0xda620))(1)" (parenthesized_expression "(**(code **)(pcVar5 + 0xda620))" ( (pointer_expression "**(code **)(pcVar5 + 0xda620)" * (pointer_expression "*(code **)(pcVar5 + 0xda620)" * (cast_expression "(code **)(pcVar5 + 0xda620)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda620)" ( (binary_expression "pcVar5 + 0xda620" identifier + number_literal) ))))) )) (argument_list "(1)" ( number_literal ))) ;) (labeled_statement "LAB_0006c3c8:\n    uVar18 = *puVar13;" statement_identifier : (expression_statement "uVar18 = *puVar13;" (assignment_expression "uVar18 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;)) (labeled_statement "LAB_0006be24:\n    uVar18 = (**(code **)(pcVar5 + 0xda58c))(uVar18);" statement_identifier : (expression_statement "uVar18 = (**(code **)(pcVar5 + 0xda58c))(uVar18);" (assignment_expression "uVar18 = (**(code **)(pcVar5 + 0xda58c))(uVar18)" identifier = (call_expression "(**(code **)(pcVar5 + 0xda58c))(uVar18)" (parenthesized_expression "(**(code **)(pcVar5 + 0xda58c))" ( (pointer_expression "**(code **)(pcVar5 + 0xda58c)" * (pointer_expression "*(code **)(pcVar5 + 0xda58c)" * (cast_expression "(code **)(pcVar5 + 0xda58c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda58c)" ( (binary_expression "pcVar5 + 0xda58c" identifier + number_literal) ))))) )) (argument_list "(uVar18)" ( identifier )))) ;)) (expression_statement "iVar3 = (**(code **)(pcVar5 + 0xda780))(uVar18);" (assignment_expression "iVar3 = (**(code **)(pcVar5 + 0xda780))(uVar18)" identifier = (call_expression "(**(code **)(pcVar5 + 0xda780))(uVar18)" (parenthesized_expression "(**(code **)(pcVar5 + 0xda780))" ( (pointer_expression "**(code **)(pcVar5 + 0xda780)" * (pointer_expression "*(code **)(pcVar5 + 0xda780)" * (cast_expression "(code **)(pcVar5 + 0xda780)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda780)" ( (binary_expression "pcVar5 + 0xda780" identifier + number_literal) ))))) )) (argument_list "(uVar18)" ( identifier )))) ;) (expression_statement "*piVar19 = iVar3;" (assignment_expression "*piVar19 = iVar3" (pointer_expression "*piVar19" * identifier) = identifier) ;) (if_statement "if (iVar3 != -1) goto LAB_0006bf80;" if (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0006bf80;" goto statement_identifier ;)) (expression_statement "pcVar28 = *(code **)(pcVar5 + 0xda670);" (assignment_expression "pcVar28 = *(code **)(pcVar5 + 0xda670)" identifier = (pointer_expression "*(code **)(pcVar5 + 0xda670)" * (cast_expression "(code **)(pcVar5 + 0xda670)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda670)" ( (binary_expression "pcVar5 + 0xda670" identifier + number_literal) ))))) ;) (if_statement "if (*piVar27 == 0) goto LAB_0006bf08;" if (parenthesized_expression "(*piVar27 == 0)" ( (binary_expression "*piVar27 == 0" (pointer_expression "*piVar27" * identifier) == number_literal) )) (goto_statement "goto LAB_0006bf08;" goto statement_identifier ;)) (labeled_statement "LAB_0006be5c:\n    iVar3 = *piVar19;" statement_identifier : (expression_statement "iVar3 = *piVar19;" (assignment_expression "iVar3 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;)) }) (else_clause "else {\n    piVar25 = *(int **)(pcVar5 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar5 + 0xda77c);\n    uVar18 = *puVar13;\n    if (iVar3 == 0 && *piVar25 == 0) {\n      piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n      puVar23 = *(undefined4 **)(pcVar5 + 0xd9070);\n      pcVar28 = *(code **)(pcVar5 + 0xda58c);\n      piVar19 = *(int **)(pcVar5 + 0xd93fc);\n      *piVar20 = 0;\n      *puVar23 = 0xffffffff;\n      iVar3 = (*pcVar28)(uVar18);\n      pcVar28 = *(code **)(pcVar5 + 0xda598);\n      *piVar19 = iVar3;\n      iVar3 = (*pcVar28)(iVar3);\n      iVar6 = *piVar27;\n      **(int **)(pcVar5 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar19 = *(int **)(pcVar5 + 0xd93fc);\n    iVar3 = **(int **)(pcVar5 + 0xd87e4);\n    *piVar19 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar18 = (**(code **)(pcVar5 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar5 + 0xda4b0))(uVar18);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar5 + 0xda5dc))(*(int *)(pcVar5 + 0xd87dc) + 0x62c0,0x82);\n      *piVar19 = iVar3;\n    }\n    else {\n      iVar3 = *piVar19;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar5 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar19 = iVar3;\n    pcVar28 = *(code **)(pcVar5 + 0xda670);\n    if (*piVar27 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar28)();\n    pcVar28 = *(code **)(pcVar5 + 0xda4fc);\n    *piVar27 = iVar3;\n    (*pcVar28)(0,iVar3);\n    iVar3 = *piVar19;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar5 + 0xda73c))(iVar3,*piVar27);\n      goto LAB_0006be5c;\n    }\n  }" else (compound_statement "{\n    piVar25 = *(int **)(pcVar5 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar5 + 0xda77c);\n    uVar18 = *puVar13;\n    if (iVar3 == 0 && *piVar25 == 0) {\n      piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n      puVar23 = *(undefined4 **)(pcVar5 + 0xd9070);\n      pcVar28 = *(code **)(pcVar5 + 0xda58c);\n      piVar19 = *(int **)(pcVar5 + 0xd93fc);\n      *piVar20 = 0;\n      *puVar23 = 0xffffffff;\n      iVar3 = (*pcVar28)(uVar18);\n      pcVar28 = *(code **)(pcVar5 + 0xda598);\n      *piVar19 = iVar3;\n      iVar3 = (*pcVar28)(iVar3);\n      iVar6 = *piVar27;\n      **(int **)(pcVar5 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar19 = *(int **)(pcVar5 + 0xd93fc);\n    iVar3 = **(int **)(pcVar5 + 0xd87e4);\n    *piVar19 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar18 = (**(code **)(pcVar5 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar5 + 0xda4b0))(uVar18);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar5 + 0xda5dc))(*(int *)(pcVar5 + 0xd87dc) + 0x62c0,0x82);\n      *piVar19 = iVar3;\n    }\n    else {\n      iVar3 = *piVar19;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar5 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar19 = iVar3;\n    pcVar28 = *(code **)(pcVar5 + 0xda670);\n    if (*piVar27 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar28)();\n    pcVar28 = *(code **)(pcVar5 + 0xda4fc);\n    *piVar27 = iVar3;\n    (*pcVar28)(0,iVar3);\n    iVar3 = *piVar19;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar5 + 0xda73c))(iVar3,*piVar27);\n      goto LAB_0006be5c;\n    }\n  }" { (expression_statement "piVar25 = *(int **)(pcVar5 + 0xd87f4);" (assignment_expression "piVar25 = *(int **)(pcVar5 + 0xd87f4)" identifier = (pointer_expression "*(int **)(pcVar5 + 0xd87f4)" * (cast_expression "(int **)(pcVar5 + 0xd87f4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd87f4)" ( (binary_expression "pcVar5 + 0xd87f4" identifier + number_literal) ))))) ;) (expression_statement "puVar13 = *(undefined4 **)(pcVar5 + 0xda77c);" (assignment_expression "puVar13 = *(undefined4 **)(pcVar5 + 0xda77c)" identifier = (pointer_expression "*(undefined4 **)(pcVar5 + 0xda77c)" * (cast_expression "(undefined4 **)(pcVar5 + 0xda77c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda77c)" ( (binary_expression "pcVar5 + 0xda77c" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = *puVar13;" (assignment_expression "uVar18 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (if_statement "if (iVar3 == 0 && *piVar25 == 0) {\n      piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n      puVar23 = *(undefined4 **)(pcVar5 + 0xd9070);\n      pcVar28 = *(code **)(pcVar5 + 0xda58c);\n      piVar19 = *(int **)(pcVar5 + 0xd93fc);\n      *piVar20 = 0;\n      *puVar23 = 0xffffffff;\n      iVar3 = (*pcVar28)(uVar18);\n      pcVar28 = *(code **)(pcVar5 + 0xda598);\n      *piVar19 = iVar3;\n      iVar3 = (*pcVar28)(iVar3);\n      iVar6 = *piVar27;\n      **(int **)(pcVar5 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }" if (parenthesized_expression "(iVar3 == 0 && *piVar25 == 0)" ( (binary_expression "iVar3 == 0 && *piVar25 == 0" (binary_expression "iVar3 == 0" identifier == number_literal) && (binary_expression "*piVar25 == 0" (pointer_expression "*piVar25" * identifier) == number_literal)) )) (compound_statement "{\n      piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n      puVar23 = *(undefined4 **)(pcVar5 + 0xd9070);\n      pcVar28 = *(code **)(pcVar5 + 0xda58c);\n      piVar19 = *(int **)(pcVar5 + 0xd93fc);\n      *piVar20 = 0;\n      *puVar23 = 0xffffffff;\n      iVar3 = (*pcVar28)(uVar18);\n      pcVar28 = *(code **)(pcVar5 + 0xda598);\n      *piVar19 = iVar3;\n      iVar3 = (*pcVar28)(iVar3);\n      iVar6 = *piVar27;\n      **(int **)(pcVar5 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }" { (expression_statement "piVar20 = *(int **)(pcVar5 + 0xd8b0c);" (assignment_expression "piVar20 = *(int **)(pcVar5 + 0xd8b0c)" identifier = (pointer_expression "*(int **)(pcVar5 + 0xd8b0c)" * (cast_expression "(int **)(pcVar5 + 0xd8b0c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd8b0c)" ( (binary_expression "pcVar5 + 0xd8b0c" identifier + number_literal) ))))) ;) (expression_statement "puVar23 = *(undefined4 **)(pcVar5 + 0xd9070);" (assignment_expression "puVar23 = *(undefined4 **)(pcVar5 + 0xd9070)" identifier = (pointer_expression "*(undefined4 **)(pcVar5 + 0xd9070)" * (cast_expression "(undefined4 **)(pcVar5 + 0xd9070)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd9070)" ( (binary_expression "pcVar5 + 0xd9070" identifier + number_literal) ))))) ;) (expression_statement "pcVar28 = *(code **)(pcVar5 + 0xda58c);" (assignment_expression "pcVar28 = *(code **)(pcVar5 + 0xda58c)" identifier = (pointer_expression "*(code **)(pcVar5 + 0xda58c)" * (cast_expression "(code **)(pcVar5 + 0xda58c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda58c)" ( (binary_expression "pcVar5 + 0xda58c" identifier + number_literal) ))))) ;) (expression_statement "piVar19 = *(int **)(pcVar5 + 0xd93fc);" (assignment_expression "piVar19 = *(int **)(pcVar5 + 0xd93fc)" identifier = (pointer_expression "*(int **)(pcVar5 + 0xd93fc)" * (cast_expression "(int **)(pcVar5 + 0xd93fc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd93fc)" ( (binary_expression "pcVar5 + 0xd93fc" identifier + number_literal) ))))) ;) (expression_statement "*piVar20 = 0;" (assignment_expression "*piVar20 = 0" (pointer_expression "*piVar20" * identifier) = number_literal) ;) (expression_statement "*puVar23 = 0xffffffff;" (assignment_expression "*puVar23 = 0xffffffff" (pointer_expression "*puVar23" * identifier) = number_literal) ;) (expression_statement "iVar3 = (*pcVar28)(uVar18);" (assignment_expression "iVar3 = (*pcVar28)(uVar18)" identifier = (call_expression "(*pcVar28)(uVar18)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(uVar18)" ( identifier )))) ;) (expression_statement "pcVar28 = *(code **)(pcVar5 + 0xda598);" (assignment_expression "pcVar28 = *(code **)(pcVar5 + 0xda598)" identifier = (pointer_expression "*(code **)(pcVar5 + 0xda598)" * (cast_expression "(code **)(pcVar5 + 0xda598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda598)" ( (binary_expression "pcVar5 + 0xda598" identifier + number_literal) ))))) ;) (expression_statement "*piVar19 = iVar3;" (assignment_expression "*piVar19 = iVar3" (pointer_expression "*piVar19" * identifier) = identifier) ;) (expression_statement "iVar3 = (*pcVar28)(iVar3);" (assignment_expression "iVar3 = (*pcVar28)(iVar3)" identifier = (call_expression "(*pcVar28)(iVar3)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "iVar6 = *piVar27;" (assignment_expression "iVar6 = *piVar27" identifier = (pointer_expression "*piVar27" * identifier)) ;) (expression_statement "**(int **)(pcVar5 + 0xd9434) = iVar3;" (assignment_expression "**(int **)(pcVar5 + 0xd9434) = iVar3" (pointer_expression "**(int **)(pcVar5 + 0xd9434)" * (pointer_expression "*(int **)(pcVar5 + 0xd9434)" * (cast_expression "(int **)(pcVar5 + 0xd9434)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd9434)" ( (binary_expression "pcVar5 + 0xd9434" identifier + number_literal) ))))) = identifier) ;) (goto_statement "goto LAB_0006bff4;" goto statement_identifier ;) })) (expression_statement "piVar19 = *(int **)(pcVar5 + 0xd93fc);" (assignment_expression "piVar19 = *(int **)(pcVar5 + 0xd93fc)" identifier = (pointer_expression "*(int **)(pcVar5 + 0xd93fc)" * (cast_expression "(int **)(pcVar5 + 0xd93fc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd93fc)" ( (binary_expression "pcVar5 + 0xd93fc" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = **(int **)(pcVar5 + 0xd87e4);" (assignment_expression "iVar3 = **(int **)(pcVar5 + 0xd87e4)" identifier = (pointer_expression "**(int **)(pcVar5 + 0xd87e4)" * (pointer_expression "*(int **)(pcVar5 + 0xd87e4)" * (cast_expression "(int **)(pcVar5 + 0xd87e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd87e4)" ( (binary_expression "pcVar5 + 0xd87e4" identifier + number_literal) )))))) ;) (expression_statement "*piVar19 = -1;" (assignment_expression "*piVar19 = -1" (pointer_expression "*piVar19" * identifier) = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_0006be24;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0006be24;" goto statement_identifier ;)) (expression_statement "uVar18 = (**(code **)(pcVar5 + 0xda58c))();" (assignment_expression "uVar18 = (**(code **)(pcVar5 + 0xda58c))()" identifier = (call_expression "(**(code **)(pcVar5 + 0xda58c))()" (parenthesized_expression "(**(code **)(pcVar5 + 0xda58c))" ( (pointer_expression "**(code **)(pcVar5 + 0xda58c)" * (pointer_expression "*(code **)(pcVar5 + 0xda58c)" * (cast_expression "(code **)(pcVar5 + 0xda58c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda58c)" ( (binary_expression "pcVar5 + 0xda58c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar3 = (**(code **)(pcVar5 + 0xda4b0))(uVar18);" (assignment_expression "iVar3 = (**(code **)(pcVar5 + 0xda4b0))(uVar18)" identifier = (call_expression "(**(code **)(pcVar5 + 0xda4b0))(uVar18)" (parenthesized_expression "(**(code **)(pcVar5 + 0xda4b0))" ( (pointer_expression "**(code **)(pcVar5 + 0xda4b0)" * (pointer_expression "*(code **)(pcVar5 + 0xda4b0)" * (cast_expression "(code **)(pcVar5 + 0xda4b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda4b0)" ( (binary_expression "pcVar5 + 0xda4b0" identifier + number_literal) ))))) )) (argument_list "(uVar18)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar5 + 0xda5dc))(*(int *)(pcVar5 + 0xd87dc) + 0x62c0,0x82);\n      *piVar19 = iVar3;\n    }\n    else {\n      iVar3 = *piVar19;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = (**(code **)(pcVar5 + 0xda5dc))(*(int *)(pcVar5 + 0xd87dc) + 0x62c0,0x82);\n      *piVar19 = iVar3;\n    }" { (expression_statement "iVar3 = (**(code **)(pcVar5 + 0xda5dc))(*(int *)(pcVar5 + 0xd87dc) + 0x62c0,0x82);" (assignment_expression "iVar3 = (**(code **)(pcVar5 + 0xda5dc))(*(int *)(pcVar5 + 0xd87dc) + 0x62c0,0x82)" identifier = (call_expression "(**(code **)(pcVar5 + 0xda5dc))(*(int *)(pcVar5 + 0xd87dc) + 0x62c0,0x82)" (parenthesized_expression "(**(code **)(pcVar5 + 0xda5dc))" ( (pointer_expression "**(code **)(pcVar5 + 0xda5dc)" * (pointer_expression "*(code **)(pcVar5 + 0xda5dc)" * (cast_expression "(code **)(pcVar5 + 0xda5dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda5dc)" ( (binary_expression "pcVar5 + 0xda5dc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar5 + 0xd87dc) + 0x62c0,0x82)" ( (binary_expression "*(int *)(pcVar5 + 0xd87dc) + 0x62c0" (pointer_expression "*(int *)(pcVar5 + 0xd87dc)" * (cast_expression "(int *)(pcVar5 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd87dc)" ( (binary_expression "pcVar5 + 0xd87dc" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "*piVar19 = iVar3;" (assignment_expression "*piVar19 = iVar3" (pointer_expression "*piVar19" * identifier) = identifier) ;) }) (else_clause "else {\n      iVar3 = *piVar19;\n    }" else (compound_statement "{\n      iVar3 = *piVar19;\n    }" { (expression_statement "iVar3 = *piVar19;" (assignment_expression "iVar3 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) }))) (if_statement "if (iVar3 == -1) goto LAB_0006c3c8;" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0006c3c8;" goto statement_identifier ;)) (labeled_statement "LAB_0006bf80:\n    iVar3 = (**(code **)(pcVar5 + 0xd8a0c))(iVar3,1,0xffffffff);" statement_identifier : (expression_statement "iVar3 = (**(code **)(pcVar5 + 0xd8a0c))(iVar3,1,0xffffffff);" (assignment_expression "iVar3 = (**(code **)(pcVar5 + 0xd8a0c))(iVar3,1,0xffffffff)" identifier = (call_expression "(**(code **)(pcVar5 + 0xd8a0c))(iVar3,1,0xffffffff)" (parenthesized_expression "(**(code **)(pcVar5 + 0xd8a0c))" ( (pointer_expression "**(code **)(pcVar5 + 0xd8a0c)" * (pointer_expression "*(code **)(pcVar5 + 0xd8a0c)" * (cast_expression "(code **)(pcVar5 + 0xd8a0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd8a0c)" ( (binary_expression "pcVar5 + 0xd8a0c" identifier + number_literal) ))))) )) (argument_list "(iVar3,1,0xffffffff)" ( identifier , number_literal , number_literal )))) ;)) (expression_statement "*piVar19 = iVar3;" (assignment_expression "*piVar19 = iVar3" (pointer_expression "*piVar19" * identifier) = identifier) ;) (expression_statement "pcVar28 = *(code **)(pcVar5 + 0xda670);" (assignment_expression "pcVar28 = *(code **)(pcVar5 + 0xda670)" identifier = (pointer_expression "*(code **)(pcVar5 + 0xda670)" * (cast_expression "(code **)(pcVar5 + 0xda670)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda670)" ( (binary_expression "pcVar5 + 0xda670" identifier + number_literal) ))))) ;) (if_statement "if (*piVar27 != 0) goto LAB_0006be5c;" if (parenthesized_expression "(*piVar27 != 0)" ( (binary_expression "*piVar27 != 0" (pointer_expression "*piVar27" * identifier) != number_literal) )) (goto_statement "goto LAB_0006be5c;" goto statement_identifier ;)) (labeled_statement "LAB_0006bf08:\n    iVar3 = (*pcVar28)();" statement_identifier : (expression_statement "iVar3 = (*pcVar28)();" (assignment_expression "iVar3 = (*pcVar28)()" identifier = (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( )))) ;)) (expression_statement "pcVar28 = *(code **)(pcVar5 + 0xda4fc);" (assignment_expression "pcVar28 = *(code **)(pcVar5 + 0xda4fc)" identifier = (pointer_expression "*(code **)(pcVar5 + 0xda4fc)" * (cast_expression "(code **)(pcVar5 + 0xda4fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda4fc)" ( (binary_expression "pcVar5 + 0xda4fc" identifier + number_literal) ))))) ;) (expression_statement "*piVar27 = iVar3;" (assignment_expression "*piVar27 = iVar3" (pointer_expression "*piVar27" * identifier) = identifier) ;) (expression_statement "(*pcVar28)(0,iVar3);" (call_expression "(*pcVar28)(0,iVar3)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(0,iVar3)" ( number_literal , identifier ))) ;) (expression_statement "iVar3 = *piVar19;" (assignment_expression "iVar3 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (if_statement "if (iVar3 != -1) {\n      (**(code **)(pcVar5 + 0xda73c))(iVar3,*piVar27);\n      goto LAB_0006be5c;\n    }" if (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar5 + 0xda73c))(iVar3,*piVar27);\n      goto LAB_0006be5c;\n    }" { (expression_statement "(**(code **)(pcVar5 + 0xda73c))(iVar3,*piVar27);" (call_expression "(**(code **)(pcVar5 + 0xda73c))(iVar3,*piVar27)" (parenthesized_expression "(**(code **)(pcVar5 + 0xda73c))" ( (pointer_expression "**(code **)(pcVar5 + 0xda73c)" * (pointer_expression "*(code **)(pcVar5 + 0xda73c)" * (cast_expression "(code **)(pcVar5 + 0xda73c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda73c)" ( (binary_expression "pcVar5 + 0xda73c" identifier + number_literal) ))))) )) (argument_list "(iVar3,*piVar27)" ( identifier , (pointer_expression "*piVar27" * identifier) ))) ;) (goto_statement "goto LAB_0006be5c;" goto statement_identifier ;) })) }))) (expression_statement "iVar6 = 0x12;" (assignment_expression "iVar6 = 0x12" identifier = number_literal) ;) (expression_statement "piVar21 = *(int **)(pcVar5 + 0xd9434);" (assignment_expression "piVar21 = *(int **)(pcVar5 + 0xd9434)" identifier = (pointer_expression "*(int **)(pcVar5 + 0xd9434)" * (cast_expression "(int **)(pcVar5 + 0xd9434)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd9434)" ( (binary_expression "pcVar5 + 0xd9434" identifier + number_literal) ))))) ;) (expression_statement "piVar20 = *(int **)(pcVar5 + 0xd8a98);" (assignment_expression "piVar20 = *(int **)(pcVar5 + 0xd8a98)" identifier = (pointer_expression "*(int **)(pcVar5 + 0xd8a98)" * (cast_expression "(int **)(pcVar5 + 0xd8a98)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd8a98)" ( (binary_expression "pcVar5 + 0xd8a98" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n    iVar3 = (**(code **)(pcVar5 + 0xda598))(iVar3);\n    *piVar21 = iVar3;\n    if (iVar3 == -1) break;\n    if (*piVar27 == iVar3) {\n      iVar10 = -1;\n      goto LAB_0006c118;\n    }\n    pcVar28 = *(code **)(pcVar5 + 0xd8aac);\n    if (*piVar20 != 0) {\n      (**(code **)(pcVar5 + 0xd8a9c))(*piVar20);\n      pcVar28 = *(code **)(pcVar5 + 0xd8aac);\n    }\n    iVar6 = iVar6 + -1;\n    uVar18 = (*pcVar28)(0x1a,0);\n    (**(code **)(pcVar5 + 0xda61c))(0,0x1a);\n    (**(code **)(pcVar5 + 0xd8aac))(0x1a,uVar18);\n    if (iVar6 == 0) {\n      piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e14,5);\n      sys_error(pcVar9);\n      iVar3 = *piVar21;\n      iVar6 = *piVar27;\n      *piVar20 = 0;\n      **(int **)(pcVar5 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }\n    iVar3 = *piVar19;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar3 = (**(code **)(pcVar5 + 0xda598))(iVar3);\n    *piVar21 = iVar3;\n    if (iVar3 == -1) break;\n    if (*piVar27 == iVar3) {\n      iVar10 = -1;\n      goto LAB_0006c118;\n    }\n    pcVar28 = *(code **)(pcVar5 + 0xd8aac);\n    if (*piVar20 != 0) {\n      (**(code **)(pcVar5 + 0xd8a9c))(*piVar20);\n      pcVar28 = *(code **)(pcVar5 + 0xd8aac);\n    }\n    iVar6 = iVar6 + -1;\n    uVar18 = (*pcVar28)(0x1a,0);\n    (**(code **)(pcVar5 + 0xda61c))(0,0x1a);\n    (**(code **)(pcVar5 + 0xd8aac))(0x1a,uVar18);\n    if (iVar6 == 0) {\n      piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e14,5);\n      sys_error(pcVar9);\n      iVar3 = *piVar21;\n      iVar6 = *piVar27;\n      *piVar20 = 0;\n      **(int **)(pcVar5 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }\n    iVar3 = *piVar19;\n  }" { (expression_statement "iVar3 = (**(code **)(pcVar5 + 0xda598))(iVar3);" (assignment_expression "iVar3 = (**(code **)(pcVar5 + 0xda598))(iVar3)" identifier = (call_expression "(**(code **)(pcVar5 + 0xda598))(iVar3)" (parenthesized_expression "(**(code **)(pcVar5 + 0xda598))" ( (pointer_expression "**(code **)(pcVar5 + 0xda598)" * (pointer_expression "*(code **)(pcVar5 + 0xda598)" * (cast_expression "(code **)(pcVar5 + 0xda598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda598)" ( (binary_expression "pcVar5 + 0xda598" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "*piVar21 = iVar3;" (assignment_expression "*piVar21 = iVar3" (pointer_expression "*piVar21" * identifier) = identifier) ;) (if_statement "if (iVar3 == -1) break;" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (*piVar27 == iVar3) {\n      iVar10 = -1;\n      goto LAB_0006c118;\n    }" if (parenthesized_expression "(*piVar27 == iVar3)" ( (binary_expression "*piVar27 == iVar3" (pointer_expression "*piVar27" * identifier) == identifier) )) (compound_statement "{\n      iVar10 = -1;\n      goto LAB_0006c118;\n    }" { (expression_statement "iVar10 = -1;" (assignment_expression "iVar10 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_0006c118;" goto statement_identifier ;) })) (expression_statement "pcVar28 = *(code **)(pcVar5 + 0xd8aac);" (assignment_expression "pcVar28 = *(code **)(pcVar5 + 0xd8aac)" identifier = (pointer_expression "*(code **)(pcVar5 + 0xd8aac)" * (cast_expression "(code **)(pcVar5 + 0xd8aac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd8aac)" ( (binary_expression "pcVar5 + 0xd8aac" identifier + number_literal) ))))) ;) (if_statement "if (*piVar20 != 0) {\n      (**(code **)(pcVar5 + 0xd8a9c))(*piVar20);\n      pcVar28 = *(code **)(pcVar5 + 0xd8aac);\n    }" if (parenthesized_expression "(*piVar20 != 0)" ( (binary_expression "*piVar20 != 0" (pointer_expression "*piVar20" * identifier) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar5 + 0xd8a9c))(*piVar20);\n      pcVar28 = *(code **)(pcVar5 + 0xd8aac);\n    }" { (expression_statement "(**(code **)(pcVar5 + 0xd8a9c))(*piVar20);" (call_expression "(**(code **)(pcVar5 + 0xd8a9c))(*piVar20)" (parenthesized_expression "(**(code **)(pcVar5 + 0xd8a9c))" ( (pointer_expression "**(code **)(pcVar5 + 0xd8a9c)" * (pointer_expression "*(code **)(pcVar5 + 0xd8a9c)" * (cast_expression "(code **)(pcVar5 + 0xd8a9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd8a9c)" ( (binary_expression "pcVar5 + 0xd8a9c" identifier + number_literal) ))))) )) (argument_list "(*piVar20)" ( (pointer_expression "*piVar20" * identifier) ))) ;) (expression_statement "pcVar28 = *(code **)(pcVar5 + 0xd8aac);" (assignment_expression "pcVar28 = *(code **)(pcVar5 + 0xd8aac)" identifier = (pointer_expression "*(code **)(pcVar5 + 0xd8aac)" * (cast_expression "(code **)(pcVar5 + 0xd8aac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd8aac)" ( (binary_expression "pcVar5 + 0xd8aac" identifier + number_literal) ))))) ;) })) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "uVar18 = (*pcVar28)(0x1a,0);" (assignment_expression "uVar18 = (*pcVar28)(0x1a,0)" identifier = (call_expression "(*pcVar28)(0x1a,0)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(0x1a,0)" ( number_literal , number_literal )))) ;) (expression_statement "(**(code **)(pcVar5 + 0xda61c))(0,0x1a);" (call_expression "(**(code **)(pcVar5 + 0xda61c))(0,0x1a)" (parenthesized_expression "(**(code **)(pcVar5 + 0xda61c))" ( (pointer_expression "**(code **)(pcVar5 + 0xda61c)" * (pointer_expression "*(code **)(pcVar5 + 0xda61c)" * (cast_expression "(code **)(pcVar5 + 0xda61c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda61c)" ( (binary_expression "pcVar5 + 0xda61c" identifier + number_literal) ))))) )) (argument_list "(0,0x1a)" ( number_literal , number_literal ))) ;) (expression_statement "(**(code **)(pcVar5 + 0xd8aac))(0x1a,uVar18);" (call_expression "(**(code **)(pcVar5 + 0xd8aac))(0x1a,uVar18)" (parenthesized_expression "(**(code **)(pcVar5 + 0xd8aac))" ( (pointer_expression "**(code **)(pcVar5 + 0xd8aac)" * (pointer_expression "*(code **)(pcVar5 + 0xd8aac)" * (cast_expression "(code **)(pcVar5 + 0xd8aac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd8aac)" ( (binary_expression "pcVar5 + 0xd8aac" identifier + number_literal) ))))) )) (argument_list "(0x1a,uVar18)" ( number_literal , identifier ))) ;) (if_statement "if (iVar6 == 0) {\n      piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e14,5);\n      sys_error(pcVar9);\n      iVar3 = *piVar21;\n      iVar6 = *piVar27;\n      *piVar20 = 0;\n      **(int **)(pcVar5 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e14,5);\n      sys_error(pcVar9);\n      iVar3 = *piVar21;\n      iVar6 = *piVar27;\n      *piVar20 = 0;\n      **(int **)(pcVar5 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }" { (expression_statement "piVar20 = *(int **)(pcVar5 + 0xd8b0c);" (assignment_expression "piVar20 = *(int **)(pcVar5 + 0xd8b0c)" identifier = (pointer_expression "*(int **)(pcVar5 + 0xd8b0c)" * (cast_expression "(int **)(pcVar5 + 0xd8b0c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd8b0c)" ( (binary_expression "pcVar5 + 0xd8b0c" identifier + number_literal) ))))) ;) (expression_statement "pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e14,5);" (assignment_expression "pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e14,5)" identifier = (cast_expression "(char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e14,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e14,5)" (parenthesized_expression "(**(code **)(pcVar5 + 0xda6fc))" ( (pointer_expression "**(code **)(pcVar5 + 0xda6fc)" * (pointer_expression "*(code **)(pcVar5 + 0xda6fc)" * (cast_expression "(code **)(pcVar5 + 0xda6fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda6fc)" ( (binary_expression "pcVar5 + 0xda6fc" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e14,5)" ( number_literal , (binary_expression "*(int *)(pcVar5 + 0xd87dc) + 0x7e14" (pointer_expression "*(int *)(pcVar5 + 0xd87dc)" * (cast_expression "(int *)(pcVar5 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd87dc)" ( (binary_expression "pcVar5 + 0xd87dc" identifier + number_literal) )))) + number_literal) , number_literal ))))) ;) (expression_statement "sys_error(pcVar9);" (call_expression "sys_error(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "iVar3 = *piVar21;" (assignment_expression "iVar3 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "iVar6 = *piVar27;" (assignment_expression "iVar6 = *piVar27" identifier = (pointer_expression "*piVar27" * identifier)) ;) (expression_statement "*piVar20 = 0;" (assignment_expression "*piVar20 = 0" (pointer_expression "*piVar20" * identifier) = number_literal) ;) (expression_statement "**(int **)(pcVar5 + 0xd9070) = iVar3;" (assignment_expression "**(int **)(pcVar5 + 0xd9070) = iVar3" (pointer_expression "**(int **)(pcVar5 + 0xd9070)" * (pointer_expression "*(int **)(pcVar5 + 0xd9070)" * (cast_expression "(int **)(pcVar5 + 0xd9070)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd9070)" ( (binary_expression "pcVar5 + 0xd9070" identifier + number_literal) ))))) = identifier) ;) (goto_statement "goto LAB_0006bff4;" goto statement_identifier ;) })) (expression_statement "iVar3 = *piVar19;" (assignment_expression "iVar3 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) })) (expression_statement "piVar20 = (int *)(**(code **)(pcVar5 + 0xda5a0))();" (assignment_expression "piVar20 = (int *)(**(code **)(pcVar5 + 0xda5a0))()" identifier = (cast_expression "(int *)(**(code **)(pcVar5 + 0xda5a0))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar5 + 0xda5a0))()" (parenthesized_expression "(**(code **)(pcVar5 + 0xda5a0))" ( (pointer_expression "**(code **)(pcVar5 + 0xda5a0)" * (pointer_expression "*(code **)(pcVar5 + 0xda5a0)" * (cast_expression "(code **)(pcVar5 + 0xda5a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda5a0)" ( (binary_expression "pcVar5 + 0xda5a0" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar10 = *piVar20;" (assignment_expression "iVar10 = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (expression_statement "iVar3 = *piVar27;" (assignment_expression "iVar3 = *piVar27" identifier = (pointer_expression "*piVar27" * identifier)) ;) (labeled_statement "LAB_0006c118:\n  piVar24 = *(int **)(pcVar5 + 0xd9070);" statement_identifier : (expression_statement "piVar24 = *(int **)(pcVar5 + 0xd9070);" (assignment_expression "piVar24 = *(int **)(pcVar5 + 0xd9070)" identifier = (pointer_expression "*(int **)(pcVar5 + 0xd9070)" * (cast_expression "(int **)(pcVar5 + 0xd9070)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd9070)" ( (binary_expression "pcVar5 + 0xd9070" identifier + number_literal) ))))) ;)) (expression_statement "pcVar28 = *(code **)(pcVar5 + 0xda670);" (assignment_expression "pcVar28 = *(code **)(pcVar5 + 0xda670)" identifier = (pointer_expression "*(code **)(pcVar5 + 0xda670)" * (cast_expression "(code **)(pcVar5 + 0xda670)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda670)" ( (binary_expression "pcVar5 + 0xda670" identifier + number_literal) ))))) ;) (expression_statement "*piVar24 = iVar3;" (assignment_expression "*piVar24 = iVar3" (pointer_expression "*piVar24" * identifier) = identifier) ;) (expression_statement "iVar3 = (*pcVar28)();" (assignment_expression "iVar3 = (*pcVar28)()" identifier = (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar6 = *piVar24;" (assignment_expression "iVar6 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ;) (expression_statement "*piVar27 = iVar3;" (assignment_expression "*piVar27 = iVar3" (pointer_expression "*piVar27" * identifier) = identifier) ;) (if_statement "if (iVar3 == iVar6) {\nLAB_0006c138:\n    piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n    *piVar20 = 1;\nLAB_0006c144:\n    pcVar28 = *(code **)(pcVar5 + 0xda598);\nLAB_0006c148:\n    iVar6 = (*pcVar28)(*piVar19);\n    if ((iVar6 == -1) || (*piVar27 != iVar6)) {\n      if (iVar10 != -1) {\n        piVar24 = (int *)(**(code **)(pcVar5 + 0xda5a0))();\n        *piVar24 = iVar10;\n      }\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e6c,5);\n      sys_error(pcVar9,iVar6);\n      *piVar20 = 0;\n      goto LAB_0006c230;\n    }\n    iVar3 = *(int *)(pcVar5 + 0xd87dc);\n    if (*piVar20 != 0) {\n      iVar3 = *piVar21;\n      goto LAB_0006bff4;\n    }\n  }\n  else {\n    iVar3 = (**(code **)(pcVar5 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e4c,5);\n      sys_error(pcVar9);\n      *piVar27 = *piVar24;\n      goto LAB_0006c138;\n    }\n    piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n    iVar6 = *piVar27;\n    iVar3 = *piVar24;\n    *piVar20 = 1;\n    if (iVar6 == iVar3) goto LAB_0006c144;\n    pcVar28 = *(code **)(pcVar5 + 0xda598);\n    if (*piVar21 == iVar6) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar6,0);\n    if (iVar3 < 0) {\n      puVar23 = (undefined4 *)(**(code **)(pcVar5 + 0xda5a0))();\n      uVar18 = *puVar23;\n      (**(code **)(pcVar5 + 0xda4fc))(0,*piVar24);\n      iVar3 = *(int *)(pcVar5 + 0xd87dc);\n      pcVar28 = *(code **)(pcVar5 + 0xda6fc);\n      *piVar27 = *piVar24;\n      *puVar23 = uVar18;\n      pcVar9 = (char *)(*pcVar28)(0,iVar3 + 0x7e6c,5);\n      sys_error(pcVar9,*piVar27);\n      *piVar20 = 0;\n    }\n    else {\n      pcVar28 = *(code **)(pcVar5 + 0xda598);\n      if (*piVar20 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar5 + 0xd87dc);\n  }" if (parenthesized_expression "(iVar3 == iVar6)" ( (binary_expression "iVar3 == iVar6" identifier == identifier) )) (compound_statement "{\nLAB_0006c138:\n    piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n    *piVar20 = 1;\nLAB_0006c144:\n    pcVar28 = *(code **)(pcVar5 + 0xda598);\nLAB_0006c148:\n    iVar6 = (*pcVar28)(*piVar19);\n    if ((iVar6 == -1) || (*piVar27 != iVar6)) {\n      if (iVar10 != -1) {\n        piVar24 = (int *)(**(code **)(pcVar5 + 0xda5a0))();\n        *piVar24 = iVar10;\n      }\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e6c,5);\n      sys_error(pcVar9,iVar6);\n      *piVar20 = 0;\n      goto LAB_0006c230;\n    }\n    iVar3 = *(int *)(pcVar5 + 0xd87dc);\n    if (*piVar20 != 0) {\n      iVar3 = *piVar21;\n      goto LAB_0006bff4;\n    }\n  }" { (labeled_statement "LAB_0006c138:\n    piVar20 = *(int **)(pcVar5 + 0xd8b0c);" statement_identifier : (expression_statement "piVar20 = *(int **)(pcVar5 + 0xd8b0c);" (assignment_expression "piVar20 = *(int **)(pcVar5 + 0xd8b0c)" identifier = (pointer_expression "*(int **)(pcVar5 + 0xd8b0c)" * (cast_expression "(int **)(pcVar5 + 0xd8b0c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd8b0c)" ( (binary_expression "pcVar5 + 0xd8b0c" identifier + number_literal) ))))) ;)) (expression_statement "*piVar20 = 1;" (assignment_expression "*piVar20 = 1" (pointer_expression "*piVar20" * identifier) = number_literal) ;) (labeled_statement "LAB_0006c144:\n    pcVar28 = *(code **)(pcVar5 + 0xda598);" statement_identifier : (expression_statement "pcVar28 = *(code **)(pcVar5 + 0xda598);" (assignment_expression "pcVar28 = *(code **)(pcVar5 + 0xda598)" identifier = (pointer_expression "*(code **)(pcVar5 + 0xda598)" * (cast_expression "(code **)(pcVar5 + 0xda598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda598)" ( (binary_expression "pcVar5 + 0xda598" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0006c148:\n    iVar6 = (*pcVar28)(*piVar19);" statement_identifier : (expression_statement "iVar6 = (*pcVar28)(*piVar19);" (assignment_expression "iVar6 = (*pcVar28)(*piVar19)" identifier = (call_expression "(*pcVar28)(*piVar19)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(*piVar19)" ( (pointer_expression "*piVar19" * identifier) )))) ;)) (if_statement "if ((iVar6 == -1) || (*piVar27 != iVar6)) {\n      if (iVar10 != -1) {\n        piVar24 = (int *)(**(code **)(pcVar5 + 0xda5a0))();\n        *piVar24 = iVar10;\n      }\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e6c,5);\n      sys_error(pcVar9,iVar6);\n      *piVar20 = 0;\n      goto LAB_0006c230;\n    }" if (parenthesized_expression "((iVar6 == -1) || (*piVar27 != iVar6))" ( (binary_expression "(iVar6 == -1) || (*piVar27 != iVar6)" (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) || (parenthesized_expression "(*piVar27 != iVar6)" ( (binary_expression "*piVar27 != iVar6" (pointer_expression "*piVar27" * identifier) != identifier) ))) )) (compound_statement "{\n      if (iVar10 != -1) {\n        piVar24 = (int *)(**(code **)(pcVar5 + 0xda5a0))();\n        *piVar24 = iVar10;\n      }\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e6c,5);\n      sys_error(pcVar9,iVar6);\n      *piVar20 = 0;\n      goto LAB_0006c230;\n    }" { (if_statement "if (iVar10 != -1) {\n        piVar24 = (int *)(**(code **)(pcVar5 + 0xda5a0))();\n        *piVar24 = iVar10;\n      }" if (parenthesized_expression "(iVar10 != -1)" ( (binary_expression "iVar10 != -1" identifier != number_literal) )) (compound_statement "{\n        piVar24 = (int *)(**(code **)(pcVar5 + 0xda5a0))();\n        *piVar24 = iVar10;\n      }" { (expression_statement "piVar24 = (int *)(**(code **)(pcVar5 + 0xda5a0))();" (assignment_expression "piVar24 = (int *)(**(code **)(pcVar5 + 0xda5a0))()" identifier = (cast_expression "(int *)(**(code **)(pcVar5 + 0xda5a0))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar5 + 0xda5a0))()" (parenthesized_expression "(**(code **)(pcVar5 + 0xda5a0))" ( (pointer_expression "**(code **)(pcVar5 + 0xda5a0)" * (pointer_expression "*(code **)(pcVar5 + 0xda5a0)" * (cast_expression "(code **)(pcVar5 + 0xda5a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda5a0)" ( (binary_expression "pcVar5 + 0xda5a0" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*piVar24 = iVar10;" (assignment_expression "*piVar24 = iVar10" (pointer_expression "*piVar24" * identifier) = identifier) ;) })) (expression_statement "pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e6c,5);" (assignment_expression "pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e6c,5)" identifier = (cast_expression "(char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e6c,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e6c,5)" (parenthesized_expression "(**(code **)(pcVar5 + 0xda6fc))" ( (pointer_expression "**(code **)(pcVar5 + 0xda6fc)" * (pointer_expression "*(code **)(pcVar5 + 0xda6fc)" * (cast_expression "(code **)(pcVar5 + 0xda6fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda6fc)" ( (binary_expression "pcVar5 + 0xda6fc" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e6c,5)" ( number_literal , (binary_expression "*(int *)(pcVar5 + 0xd87dc) + 0x7e6c" (pointer_expression "*(int *)(pcVar5 + 0xd87dc)" * (cast_expression "(int *)(pcVar5 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd87dc)" ( (binary_expression "pcVar5 + 0xd87dc" identifier + number_literal) )))) + number_literal) , number_literal ))))) ;) (expression_statement "sys_error(pcVar9,iVar6);" (call_expression "sys_error(pcVar9,iVar6)" identifier (argument_list "(pcVar9,iVar6)" ( identifier , identifier ))) ;) (expression_statement "*piVar20 = 0;" (assignment_expression "*piVar20 = 0" (pointer_expression "*piVar20" * identifier) = number_literal) ;) (goto_statement "goto LAB_0006c230;" goto statement_identifier ;) })) (expression_statement "iVar3 = *(int *)(pcVar5 + 0xd87dc);" (assignment_expression "iVar3 = *(int *)(pcVar5 + 0xd87dc)" identifier = (pointer_expression "*(int *)(pcVar5 + 0xd87dc)" * (cast_expression "(int *)(pcVar5 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd87dc)" ( (binary_expression "pcVar5 + 0xd87dc" identifier + number_literal) ))))) ;) (if_statement "if (*piVar20 != 0) {\n      iVar3 = *piVar21;\n      goto LAB_0006bff4;\n    }" if (parenthesized_expression "(*piVar20 != 0)" ( (binary_expression "*piVar20 != 0" (pointer_expression "*piVar20" * identifier) != number_literal) )) (compound_statement "{\n      iVar3 = *piVar21;\n      goto LAB_0006bff4;\n    }" { (expression_statement "iVar3 = *piVar21;" (assignment_expression "iVar3 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (goto_statement "goto LAB_0006bff4;" goto statement_identifier ;) })) }) (else_clause "else {\n    iVar3 = (**(code **)(pcVar5 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e4c,5);\n      sys_error(pcVar9);\n      *piVar27 = *piVar24;\n      goto LAB_0006c138;\n    }\n    piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n    iVar6 = *piVar27;\n    iVar3 = *piVar24;\n    *piVar20 = 1;\n    if (iVar6 == iVar3) goto LAB_0006c144;\n    pcVar28 = *(code **)(pcVar5 + 0xda598);\n    if (*piVar21 == iVar6) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar6,0);\n    if (iVar3 < 0) {\n      puVar23 = (undefined4 *)(**(code **)(pcVar5 + 0xda5a0))();\n      uVar18 = *puVar23;\n      (**(code **)(pcVar5 + 0xda4fc))(0,*piVar24);\n      iVar3 = *(int *)(pcVar5 + 0xd87dc);\n      pcVar28 = *(code **)(pcVar5 + 0xda6fc);\n      *piVar27 = *piVar24;\n      *puVar23 = uVar18;\n      pcVar9 = (char *)(*pcVar28)(0,iVar3 + 0x7e6c,5);\n      sys_error(pcVar9,*piVar27);\n      *piVar20 = 0;\n    }\n    else {\n      pcVar28 = *(code **)(pcVar5 + 0xda598);\n      if (*piVar20 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar5 + 0xd87dc);\n  }" else (compound_statement "{\n    iVar3 = (**(code **)(pcVar5 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e4c,5);\n      sys_error(pcVar9);\n      *piVar27 = *piVar24;\n      goto LAB_0006c138;\n    }\n    piVar20 = *(int **)(pcVar5 + 0xd8b0c);\n    iVar6 = *piVar27;\n    iVar3 = *piVar24;\n    *piVar20 = 1;\n    if (iVar6 == iVar3) goto LAB_0006c144;\n    pcVar28 = *(code **)(pcVar5 + 0xda598);\n    if (*piVar21 == iVar6) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar6,0);\n    if (iVar3 < 0) {\n      puVar23 = (undefined4 *)(**(code **)(pcVar5 + 0xda5a0))();\n      uVar18 = *puVar23;\n      (**(code **)(pcVar5 + 0xda4fc))(0,*piVar24);\n      iVar3 = *(int *)(pcVar5 + 0xd87dc);\n      pcVar28 = *(code **)(pcVar5 + 0xda6fc);\n      *piVar27 = *piVar24;\n      *puVar23 = uVar18;\n      pcVar9 = (char *)(*pcVar28)(0,iVar3 + 0x7e6c,5);\n      sys_error(pcVar9,*piVar27);\n      *piVar20 = 0;\n    }\n    else {\n      pcVar28 = *(code **)(pcVar5 + 0xda598);\n      if (*piVar20 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar5 + 0xd87dc);\n  }" { (expression_statement "iVar3 = (**(code **)(pcVar5 + 0xda4fc))(0,iVar3);" (assignment_expression "iVar3 = (**(code **)(pcVar5 + 0xda4fc))(0,iVar3)" identifier = (call_expression "(**(code **)(pcVar5 + 0xda4fc))(0,iVar3)" (parenthesized_expression "(**(code **)(pcVar5 + 0xda4fc))" ( (pointer_expression "**(code **)(pcVar5 + 0xda4fc)" * (pointer_expression "*(code **)(pcVar5 + 0xda4fc)" * (cast_expression "(code **)(pcVar5 + 0xda4fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda4fc)" ( (binary_expression "pcVar5 + 0xda4fc" identifier + number_literal) ))))) )) (argument_list "(0,iVar3)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 < 0) {\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e4c,5);\n      sys_error(pcVar9);\n      *piVar27 = *piVar24;\n      goto LAB_0006c138;\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e4c,5);\n      sys_error(pcVar9);\n      *piVar27 = *piVar24;\n      goto LAB_0006c138;\n    }" { (expression_statement "pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e4c,5);" (assignment_expression "pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e4c,5)" identifier = (cast_expression "(char *)(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e4c,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar5 + 0xda6fc))(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e4c,5)" (parenthesized_expression "(**(code **)(pcVar5 + 0xda6fc))" ( (pointer_expression "**(code **)(pcVar5 + 0xda6fc)" * (pointer_expression "*(code **)(pcVar5 + 0xda6fc)" * (cast_expression "(code **)(pcVar5 + 0xda6fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda6fc)" ( (binary_expression "pcVar5 + 0xda6fc" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar5 + 0xd87dc) + 0x7e4c,5)" ( number_literal , (binary_expression "*(int *)(pcVar5 + 0xd87dc) + 0x7e4c" (pointer_expression "*(int *)(pcVar5 + 0xd87dc)" * (cast_expression "(int *)(pcVar5 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd87dc)" ( (binary_expression "pcVar5 + 0xd87dc" identifier + number_literal) )))) + number_literal) , number_literal ))))) ;) (expression_statement "sys_error(pcVar9);" (call_expression "sys_error(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "*piVar27 = *piVar24;" (assignment_expression "*piVar27 = *piVar24" (pointer_expression "*piVar27" * identifier) = (pointer_expression "*piVar24" * identifier)) ;) (goto_statement "goto LAB_0006c138;" goto statement_identifier ;) })) (expression_statement "piVar20 = *(int **)(pcVar5 + 0xd8b0c);" (assignment_expression "piVar20 = *(int **)(pcVar5 + 0xd8b0c)" identifier = (pointer_expression "*(int **)(pcVar5 + 0xd8b0c)" * (cast_expression "(int **)(pcVar5 + 0xd8b0c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd8b0c)" ( (binary_expression "pcVar5 + 0xd8b0c" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *piVar27;" (assignment_expression "iVar6 = *piVar27" identifier = (pointer_expression "*piVar27" * identifier)) ;) (expression_statement "iVar3 = *piVar24;" (assignment_expression "iVar3 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ;) (expression_statement "*piVar20 = 1;" (assignment_expression "*piVar20 = 1" (pointer_expression "*piVar20" * identifier) = number_literal) ;) (if_statement "if (iVar6 == iVar3) goto LAB_0006c144;" if (parenthesized_expression "(iVar6 == iVar3)" ( (binary_expression "iVar6 == iVar3" identifier == identifier) )) (goto_statement "goto LAB_0006c144;" goto statement_identifier ;)) (expression_statement "pcVar28 = *(code **)(pcVar5 + 0xda598);" (assignment_expression "pcVar28 = *(code **)(pcVar5 + 0xda598)" identifier = (pointer_expression "*(code **)(pcVar5 + 0xda598)" * (cast_expression "(code **)(pcVar5 + 0xda598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda598)" ( (binary_expression "pcVar5 + 0xda598" identifier + number_literal) ))))) ;) (if_statement "if (*piVar21 == iVar6) goto LAB_0006c148;" if (parenthesized_expression "(*piVar21 == iVar6)" ( (binary_expression "*piVar21 == iVar6" (pointer_expression "*piVar21" * identifier) == identifier) )) (goto_statement "goto LAB_0006c148;" goto statement_identifier ;)) (expression_statement "iVar3 = give_terminal_to(iVar6,0);" (assignment_expression "iVar3 = give_terminal_to(iVar6,0)" identifier = (call_expression "give_terminal_to(iVar6,0)" identifier (argument_list "(iVar6,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n      puVar23 = (undefined4 *)(**(code **)(pcVar5 + 0xda5a0))();\n      uVar18 = *puVar23;\n      (**(code **)(pcVar5 + 0xda4fc))(0,*piVar24);\n      iVar3 = *(int *)(pcVar5 + 0xd87dc);\n      pcVar28 = *(code **)(pcVar5 + 0xda6fc);\n      *piVar27 = *piVar24;\n      *puVar23 = uVar18;\n      pcVar9 = (char *)(*pcVar28)(0,iVar3 + 0x7e6c,5);\n      sys_error(pcVar9,*piVar27);\n      *piVar20 = 0;\n    }\n    else {\n      pcVar28 = *(code **)(pcVar5 + 0xda598);\n      if (*piVar20 != 0) goto LAB_0006c148;\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      puVar23 = (undefined4 *)(**(code **)(pcVar5 + 0xda5a0))();\n      uVar18 = *puVar23;\n      (**(code **)(pcVar5 + 0xda4fc))(0,*piVar24);\n      iVar3 = *(int *)(pcVar5 + 0xd87dc);\n      pcVar28 = *(code **)(pcVar5 + 0xda6fc);\n      *piVar27 = *piVar24;\n      *puVar23 = uVar18;\n      pcVar9 = (char *)(*pcVar28)(0,iVar3 + 0x7e6c,5);\n      sys_error(pcVar9,*piVar27);\n      *piVar20 = 0;\n    }" { (expression_statement "puVar23 = (undefined4 *)(**(code **)(pcVar5 + 0xda5a0))();" (assignment_expression "puVar23 = (undefined4 *)(**(code **)(pcVar5 + 0xda5a0))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar5 + 0xda5a0))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar5 + 0xda5a0))()" (parenthesized_expression "(**(code **)(pcVar5 + 0xda5a0))" ( (pointer_expression "**(code **)(pcVar5 + 0xda5a0)" * (pointer_expression "*(code **)(pcVar5 + 0xda5a0)" * (cast_expression "(code **)(pcVar5 + 0xda5a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda5a0)" ( (binary_expression "pcVar5 + 0xda5a0" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar18 = *puVar23;" (assignment_expression "uVar18 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "(**(code **)(pcVar5 + 0xda4fc))(0,*piVar24);" (call_expression "(**(code **)(pcVar5 + 0xda4fc))(0,*piVar24)" (parenthesized_expression "(**(code **)(pcVar5 + 0xda4fc))" ( (pointer_expression "**(code **)(pcVar5 + 0xda4fc)" * (pointer_expression "*(code **)(pcVar5 + 0xda4fc)" * (cast_expression "(code **)(pcVar5 + 0xda4fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda4fc)" ( (binary_expression "pcVar5 + 0xda4fc" identifier + number_literal) ))))) )) (argument_list "(0,*piVar24)" ( number_literal , (pointer_expression "*piVar24" * identifier) ))) ;) (expression_statement "iVar3 = *(int *)(pcVar5 + 0xd87dc);" (assignment_expression "iVar3 = *(int *)(pcVar5 + 0xd87dc)" identifier = (pointer_expression "*(int *)(pcVar5 + 0xd87dc)" * (cast_expression "(int *)(pcVar5 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd87dc)" ( (binary_expression "pcVar5 + 0xd87dc" identifier + number_literal) ))))) ;) (expression_statement "pcVar28 = *(code **)(pcVar5 + 0xda6fc);" (assignment_expression "pcVar28 = *(code **)(pcVar5 + 0xda6fc)" identifier = (pointer_expression "*(code **)(pcVar5 + 0xda6fc)" * (cast_expression "(code **)(pcVar5 + 0xda6fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda6fc)" ( (binary_expression "pcVar5 + 0xda6fc" identifier + number_literal) ))))) ;) (expression_statement "*piVar27 = *piVar24;" (assignment_expression "*piVar27 = *piVar24" (pointer_expression "*piVar27" * identifier) = (pointer_expression "*piVar24" * identifier)) ;) (expression_statement "*puVar23 = uVar18;" (assignment_expression "*puVar23 = uVar18" (pointer_expression "*puVar23" * identifier) = identifier) ;) (expression_statement "pcVar9 = (char *)(*pcVar28)(0,iVar3 + 0x7e6c,5);" (assignment_expression "pcVar9 = (char *)(*pcVar28)(0,iVar3 + 0x7e6c,5)" identifier = (cast_expression "(char *)(*pcVar28)(0,iVar3 + 0x7e6c,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar28)(0,iVar3 + 0x7e6c,5)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(0,iVar3 + 0x7e6c,5)" ( number_literal , (binary_expression "iVar3 + 0x7e6c" identifier + number_literal) , number_literal ))))) ;) (expression_statement "sys_error(pcVar9,*piVar27);" (call_expression "sys_error(pcVar9,*piVar27)" identifier (argument_list "(pcVar9,*piVar27)" ( identifier , (pointer_expression "*piVar27" * identifier) ))) ;) (expression_statement "*piVar20 = 0;" (assignment_expression "*piVar20 = 0" (pointer_expression "*piVar20" * identifier) = number_literal) ;) }) (else_clause "else {\n      pcVar28 = *(code **)(pcVar5 + 0xda598);\n      if (*piVar20 != 0) goto LAB_0006c148;\n    }" else (compound_statement "{\n      pcVar28 = *(code **)(pcVar5 + 0xda598);\n      if (*piVar20 != 0) goto LAB_0006c148;\n    }" { (expression_statement "pcVar28 = *(code **)(pcVar5 + 0xda598);" (assignment_expression "pcVar28 = *(code **)(pcVar5 + 0xda598)" identifier = (pointer_expression "*(code **)(pcVar5 + 0xda598)" * (cast_expression "(code **)(pcVar5 + 0xda598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda598)" ( (binary_expression "pcVar5 + 0xda598" identifier + number_literal) ))))) ;) (if_statement "if (*piVar20 != 0) goto LAB_0006c148;" if (parenthesized_expression "(*piVar20 != 0)" ( (binary_expression "*piVar20 != 0" (pointer_expression "*piVar20" * identifier) != number_literal) )) (goto_statement "goto LAB_0006c148;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0006c230:\n    iVar3 = *(int *)(pcVar5 + 0xd87dc);" statement_identifier : (expression_statement "iVar3 = *(int *)(pcVar5 + 0xd87dc);" (assignment_expression "iVar3 = *(int *)(pcVar5 + 0xd87dc)" identifier = (pointer_expression "*(int *)(pcVar5 + 0xd87dc)" * (cast_expression "(int *)(pcVar5 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd87dc)" ( (binary_expression "pcVar5 + 0xd87dc" identifier + number_literal) ))))) ;)) }))) (expression_statement "pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,iVar3 + 0x7e94,5);" (assignment_expression "pcVar9 = (char *)(**(code **)(pcVar5 + 0xda6fc))(0,iVar3 + 0x7e94,5)" identifier = (cast_expression "(char *)(**(code **)(pcVar5 + 0xda6fc))(0,iVar3 + 0x7e94,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar5 + 0xda6fc))(0,iVar3 + 0x7e94,5)" (parenthesized_expression "(**(code **)(pcVar5 + 0xda6fc))" ( (pointer_expression "**(code **)(pcVar5 + 0xda6fc)" * (pointer_expression "*(code **)(pcVar5 + 0xda6fc)" * (cast_expression "(code **)(pcVar5 + 0xda6fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda6fc)" ( (binary_expression "pcVar5 + 0xda6fc" identifier + number_literal) ))))) )) (argument_list "(0,iVar3 + 0x7e94,5)" ( number_literal , (binary_expression "iVar3 + 0x7e94" identifier + number_literal) , number_literal ))))) ;) (expression_statement "internal_error(pcVar9);" (call_expression "internal_error(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "iVar3 = *piVar21;" (assignment_expression "iVar3 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "iVar6 = *piVar27;" (assignment_expression "iVar6 = *piVar27" identifier = (pointer_expression "*piVar27" * identifier)) ;) (labeled_statement "LAB_0006bff4:\n  pcVar28 = *(code **)(pcVar5 + 0xda58c);" statement_identifier : (expression_statement "pcVar28 = *(code **)(pcVar5 + 0xda58c);" (assignment_expression "pcVar28 = *(code **)(pcVar5 + 0xda58c)" identifier = (pointer_expression "*(code **)(pcVar5 + 0xda58c)" * (cast_expression "(code **)(pcVar5 + 0xda58c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda58c)" ( (binary_expression "pcVar5 + 0xda58c" identifier + number_literal) ))))) ;)) (expression_statement "uVar18 = *puVar13;" (assignment_expression "uVar18 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "**(uint **)(pcVar5 + 0xd8954) = (uint)(iVar6 != iVar3);" (assignment_expression "**(uint **)(pcVar5 + 0xd8954) = (uint)(iVar6 != iVar3)" (pointer_expression "**(uint **)(pcVar5 + 0xd8954)" * (pointer_expression "*(uint **)(pcVar5 + 0xd8954)" * (cast_expression "(uint **)(pcVar5 + 0xd8954)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd8954)" ( (binary_expression "pcVar5 + 0xd8954" identifier + number_literal) ))))) = (call_expression "(uint)(iVar6 != iVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 != iVar3)" ( (binary_expression "iVar6 != iVar3" identifier != identifier) )))) ;) (expression_statement "iVar3 = (*pcVar28)(uVar18);" (assignment_expression "iVar3 = (*pcVar28)(uVar18)" identifier = (call_expression "(*pcVar28)(uVar18)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(uVar18)" ( identifier )))) ;) (if_statement "if (iVar3 != *piVar19) {\n    (**(code **)(pcVar5 + 0xda540))(*piVar19,2,1);\n  }" if (parenthesized_expression "(iVar3 != *piVar19)" ( (binary_expression "iVar3 != *piVar19" identifier != (pointer_expression "*piVar19" * identifier)) )) (compound_statement "{\n    (**(code **)(pcVar5 + 0xda540))(*piVar19,2,1);\n  }" { (expression_statement "(**(code **)(pcVar5 + 0xda540))(*piVar19,2,1);" (call_expression "(**(code **)(pcVar5 + 0xda540))(*piVar19,2,1)" (parenthesized_expression "(**(code **)(pcVar5 + 0xda540))" ( (pointer_expression "**(code **)(pcVar5 + 0xda540)" * (pointer_expression "*(code **)(pcVar5 + 0xda540)" * (cast_expression "(code **)(pcVar5 + 0xda540)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xda540)" ( (binary_expression "pcVar5 + 0xda540" identifier + number_literal) ))))) )) (argument_list "(*piVar19,2,1)" ( (pointer_expression "*piVar19" * identifier) , number_literal , number_literal ))) ;) })) (expression_statement "(**(code **)(pcVar5 + 0xd8aac))(0x12,*(int *)(pcVar5 + 0xd942c) + -0x6fbc);" (call_expression "(**(code **)(pcVar5 + 0xd8aac))(0x12,*(int *)(pcVar5 + 0xd942c) + -0x6fbc)" (parenthesized_expression "(**(code **)(pcVar5 + 0xd8aac))" ( (pointer_expression "**(code **)(pcVar5 + 0xd8aac)" * (pointer_expression "*(code **)(pcVar5 + 0xd8aac)" * (cast_expression "(code **)(pcVar5 + 0xd8aac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd8aac)" ( (binary_expression "pcVar5 + 0xd8aac" identifier + number_literal) ))))) )) (argument_list "(0x12,*(int *)(pcVar5 + 0xd942c) + -0x6fbc)" ( number_literal , (binary_expression "*(int *)(pcVar5 + 0xd942c) + -0x6fbc" (pointer_expression "*(int *)(pcVar5 + 0xd942c)" * (cast_expression "(int *)(pcVar5 + 0xd942c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0xd942c)" ( (binary_expression "pcVar5 + 0xd942c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar3 = 0x2b;" (assignment_expression "iVar3 = 0x2b" identifier = number_literal) ;) (if_statement "if (*piVar20 != 0) {\n    iVar3 = 0x2d;\n  }" if (parenthesized_expression "(*piVar20 != 0)" ( (binary_expression "*piVar20 != 0" (pointer_expression "*piVar20" * identifier) != number_literal) )) (compound_statement "{\n    iVar3 = 0x2d;\n  }" { (expression_statement "iVar3 = 0x2d;" (assignment_expression "iVar3 = 0x2d" identifier = number_literal) ;) })) (expression_statement "change_flag(0x6d,iVar3);" (call_expression "change_flag(0x6d,iVar3)" identifier (argument_list "(0x6d,iVar3)" ( number_literal , identifier ))) ;) (if_statement "if (*piVar25 != 0) {\n    get_tty_state();\n  }" if (parenthesized_expression "(*piVar25 != 0)" ( (binary_expression "*piVar25 != 0" (pointer_expression "*piVar25" * identifier) != number_literal) )) (compound_statement "{\n    get_tty_state();\n  }" { (expression_statement "get_tty_state();" (call_expression "get_tty_state()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar27 = *(int **)(pcVar5 + 0xd90bc);" (assignment_expression "piVar27 = *(int **)(pcVar5 + 0xd90bc)" identifier = (pointer_expression "*(int **)(pcVar5 + 0xd90bc)" * (cast_expression "(int **)(pcVar5 + 0xd90bc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd90bc)" ( (binary_expression "pcVar5 + 0xd90bc" identifier + number_literal) ))))) ;) (if_statement "if (-1 < *piVar27) {\n    return *piVar20;\n  }" if (parenthesized_expression "(-1 < *piVar27)" ( (binary_expression "-1 < *piVar27" number_literal < (pointer_expression "*piVar27" * identifier)) )) (compound_statement "{\n    return *piVar20;\n  }" { (return_statement "return *piVar20;" return (pointer_expression "*piVar20" * identifier) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar5 + 0xd93d8))();" (assignment_expression "iVar3 = (**(code **)(pcVar5 + 0xd93d8))()" identifier = (call_expression "(**(code **)(pcVar5 + 0xd93d8))()" (parenthesized_expression "(**(code **)(pcVar5 + 0xd93d8))" ( (pointer_expression "**(code **)(pcVar5 + 0xd93d8)" * (pointer_expression "*(code **)(pcVar5 + 0xd93d8)" * (cast_expression "(code **)(pcVar5 + 0xd93d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xd93d8)" ( (binary_expression "pcVar5 + 0xd93d8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 < 0) {\n    iVar3 = 0x20;\n  }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar3 = 0x20;\n  }" { (expression_statement "iVar3 = 0x20;" (assignment_expression "iVar3 = 0x20" identifier = number_literal) ;) })) (expression_statement "*piVar27 = iVar3;" (assignment_expression "*piVar27 = iVar3" (pointer_expression "*piVar27" * identifier) = identifier) ;) (return_statement "return *piVar20;" return (pointer_expression "*piVar20" * identifier) ;) (labeled_statement "LAB_0006b3b8:\n  puVar7 = (undefined1 *)job_exit_status((int)piVar27);" statement_identifier : (expression_statement "puVar7 = (undefined1 *)job_exit_status((int)piVar27);" (assignment_expression "puVar7 = (undefined1 *)job_exit_status((int)piVar27)" identifier = (cast_expression "(undefined1 *)job_exit_status((int)piVar27)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "job_exit_status((int)piVar27)" identifier (argument_list "((int)piVar27)" ( (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;)) (if_statement "if (((piVar15 == (int *)0x0) || (notify_of_job_status(), *(int *)(iVar6 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0)) {\n    delete_job((int)piVar27,0);\n  }" if (parenthesized_expression "(((piVar15 == (int *)0x0) || (notify_of_job_status(), *(int *)(iVar6 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0))" ( (binary_expression "((piVar15 == (int *)0x0) || (notify_of_job_status(), *(int *)(iVar6 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0)" (parenthesized_expression "((piVar15 == (int *)0x0) || (notify_of_job_status(), *(int *)(iVar6 + 0x18) != 0))" ( (binary_expression "(piVar15 == (int *)0x0) || (notify_of_job_status(), *(int *)(iVar6 + 0x18) != 0)" (parenthesized_expression "(piVar15 == (int *)0x0)" ( (binary_expression "piVar15 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(notify_of_job_status(), *(int *)(iVar6 + 0x18) != 0)" ( (comma_expression "notify_of_job_status(), *(int *)(iVar6 + 0x18) != 0" (call_expression "notify_of_job_status()" identifier (argument_list "()" ( ))) , (binary_expression "*(int *)(iVar6 + 0x18) != 0" (pointer_expression "*(int *)(iVar6 + 0x18)" * (cast_expression "(int *)(iVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) != number_literal)) ))) )) && (parenthesized_expression "(*(int *)(iVar3 + -0x705c) == 0)" ( (binary_expression "*(int *)(iVar3 + -0x705c) == 0" (pointer_expression "*(int *)(iVar3 + -0x705c)" * (cast_expression "(int *)(iVar3 + -0x705c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -0x705c)" ( (binary_expression "iVar3 + -0x705c" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    delete_job((int)piVar27,0);\n  }" { (expression_statement "delete_job((int)piVar27,0);" (call_expression "delete_job((int)piVar27,0)" identifier (argument_list "((int)piVar27,0)" ( (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal ))) ;) })) (expression_statement "(**(code **)(puStack_2a0 + -0x737c))();" (call_expression "(**(code **)(puStack_2a0 + -0x737c))()" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x737c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x737c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x737c)" * (cast_expression "(code **)(puStack_2a0 + -0x737c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x737c)" ( (binary_expression "puStack_2a0 + -0x737c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(3,psVar17,0)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(3,psVar17,0)" ( number_literal , identifier , number_literal ))) ;) (goto_statement "goto LAB_0006b430;" goto statement_identifier ;) })))
(translation_unit "undefined1 * wait_for_job(int param_1,uint param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  code *pcVar4;\n  undefined1 *puVar5;\n  undefined1 *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  undefined4 uVar14;\n  int iVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int iVar18;\n  undefined4 uVar19;\n  undefined1 *puVar20;\n  undefined4 *puVar21;\n  int *piVar22;\n  int *piVar23;\n  undefined4 *puVar24;\n  int *piVar25;\n  int iVar26;\n  undefined4 *puVar27;\n  int *piVar28;\n  int *piVar29;\n  undefined *puVar30;\n  int *piVar31;\n  code *pcVar32;\n  undefined4 uStack_3e4;\n  undefined1 auStack_3dc [128];\n  undefined1 auStack_35c [128];\n  int iStack_2dc;\n  undefined1 *puStack_2d8;\n  undefined1 *puStack_2d4;\n  undefined1 *puStack_2d0;\n  int *piStack_2cc;\n  int *piStack_2c8;\n  undefined4 *puStack_2c4;\n  int *piStack_2c0;\n  int iStack_2bc;\n  int *piStack_2b8;\n  code *pcStack_2b4;\n  undefined *puStack_2a0;\n  code *pcStack_294;\n  undefined1 auStack_28c [128];\n  undefined1 auStack_20c [128];\n  int *piStack_18c;\n  undefined1 *puStack_188;\n  undefined1 *puStack_184;\n  undefined1 *puStack_180;\n  undefined4 uStack_17c;\n  int *piStack_178;\n  int iStack_174;\n  int *piStack_170;\n  int *piStack_16c;\n  undefined *puStack_168;\n  code *pcStack_164;\n  undefined1 auStack_12c [128];\n  undefined1 auStack_ac [128];\n  int local_2c;\n  \n  puVar30 = PTR___stack_chk_guard_001464dc;\n  piVar31 = (int *)PTR_jobs_00144e5c;\n  puVar20 = auStack_12c;\n  piVar29 = (int *)(param_1 * 4);\n  local_2c = *(int *)PTR___stack_chk_guard_001464dc;\n  (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n  (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n  (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n  if (*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc) == 2) {\n    uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);\n    internal_warning(uVar19,param_1 + 1);\n  }\n  puVar2 = PTR_js_00144e58;\n  puVar1 = PTR_wait_for_00144d9c;\n  piVar23 = (int *)0xffffffff;\n  piVar25 = (int *)(param_2 & 2);\n  iVar3 = FUN_00065a6c(param_1);\n  piVar28 = *(int **)(iVar3 + 4);\n  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n  pcVar4 = (code *)(PTR_LAB_00144ff0 + 0x4e60);\n  do {\n    puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28);\n    if (((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar4)();\n    }\n    if (piVar25 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      if (param_1 == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }\n    (*(code *)PTR_sigemptyset_001462d4)();\n    (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n    (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n    (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n    if (param_1 == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      goto LAB_0006b0f4;\n    }\n    if (*(int *)(*piVar31 + (int)piVar29) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      break;\n    }\n    iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc);\n    (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac);\n  } while (iVar3 != 4);\n  (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n  (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n  (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\nLAB_0006b0d0:\n  piVar29 = (int *)(*piVar31 + (int)piVar29);\n  iVar3 = *piVar29;\n  if ((iVar3 != 0) && (*(int *)(iVar3 + 0xc) == 4)) {\n    *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n  }\nLAB_0006b0f4:\n  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n  if (local_2c == *(int *)puVar30) {\n    return puVar5;\n  }\n  pcVar4 = wait_for_any_job;\n  puVar30 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  puStack_2a0 = puVar30 + 0xe1290;\n  iVar3 = *(int *)(puVar30 + 0xd9ea4);\n  puVar27 = *(undefined4 **)(puVar30 + 0xdb22c);\n  puStack_168 = (undefined *)piVar31;\n  uStack_17c = 0xffffffff;\n  piStack_18c = (int *)*puVar27;\n  puStack_188 = puVar20;\n  puStack_184 = auStack_ac;\n  puStack_180 = puVar5;\n  piStack_178 = piVar25;\n  iStack_174 = param_1;\n  piStack_170 = piVar28;\n  piStack_16c = piVar29;\n  pcStack_164 = pcVar4;\n  if (*(int *)(iVar3 + -0x705c) == 0) {\n    puVar6 = auStack_28c;\n    puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8);\n    puVar20 = auStack_20c;\n    (**(code **)(puVar30 + 0xdb024))(puVar6);\n    (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n    (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n    (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n    if (0 < (int)*(int **)(puVar5 + 0x18)) {\n      piVar31 = (int *)0x0;\n      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar29 = piVar17;\n      do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));\n    }\n    piVar25 = *(int **)(puStack_2a0 + -0x76e4);\n    piVar23 = *(int **)(puStack_2a0 + -0x7d0c);\n    (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    piVar31 = *(int **)(puStack_2a0 + -0x7550);\n    piVar28 = *(int **)(puStack_2a0 + -0x7d04);\n    pcStack_294 = (code *)(piVar31 + 0x1398);\n    do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      iVar11 = *(int *)(puVar5 + 0x18);\n      if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar4)(3,puVar20,0);\n      if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar31 = (int *)(*pcVar4)();\n      *piVar31 = 0;\n      iVar11 = wait_for(0xffffffff);\n      if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar4)(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    } while( true );\n  }\n  puVar6 = (undefined1 *)0xffffffff;\nLAB_0006b430:\n  puVar30 = puStack_2a0;\n  if (piStack_18c == (int *)*puVar27) {\n    return puVar6;\n  }\n  piVar29 = piStack_18c;\n  (**(code **)(puStack_2a0 + -0x60b8))();\nLAB_0006b730:\n  pcVar4 = *(code **)(puVar30 + -0x625c);\n  pcVar32 = start_job;\n  puVar13 = (undefined4 *)0x1;\n  (*pcVar4)();\n  piVar17 = *(int **)(pcVar4 + 0xdada0);\n  iVar11 = (int)piVar29 * 4;\n  iStack_2dc = *piVar17;\n  piVar22 = *(int **)(pcVar4 + 0xd9720);\n  puStack_2d8 = puVar20;\n  puStack_2d4 = puVar6;\n  puStack_2d0 = puVar5;\n  piStack_2cc = piVar23;\n  piStack_2c8 = piVar25;\n  puStack_2c4 = puVar27;\n  piStack_2c0 = piVar28;\n  iStack_2bc = iVar3;\n  piStack_2b8 = piVar31;\n  pcStack_2b4 = pcVar32;\n  (**(code **)(pcVar4 + 0xdab98))(auStack_3dc);\n  (**(code **)(pcVar4 + 0xdac28))(auStack_3dc,0x12);\n  (**(code **)(pcVar4 + 0xdab98))(auStack_35c);\n  (**(code **)(pcVar4 + 0xdadd8))(1,auStack_3dc,auStack_35c);\n  iVar3 = *(int *)(*(int *)(*piVar22 + iVar11) + 0xc);\n  if (iVar3 == 4) {\n    puVar20 = (undefined1 *)0xffffffff;\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec));\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);\nLAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }\n  if (iStack_2dc == *piVar17) {\n    return puVar20;\n  }\n  pcVar4 = *(code **)(pcVar4 + 0xdad4c);\n  iVar3 = iStack_2dc;\n  (*pcVar4)();\n  piVar31 = *(int **)(pcVar4 + 0xd8b10);\n  iVar11 = (**(code **)(pcVar4 + 0xda6dc))();\n  *piVar31 = iVar11;\n  if (iVar11 == -1) {\n    uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5);\n    sys_error(uVar19);\n    (**(code **)(pcVar4 + 0xda620))(1);\nLAB_0006c3c8:\n    uVar19 = *puVar13;\nLAB_0006be24:\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);\n    iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19);\n    *piVar22 = iVar3;\n    if (iVar3 != -1) goto LAB_0006bf80;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 == 0) goto LAB_0006bf08;\nLAB_0006be5c:\n    iVar3 = *piVar22;\n  }\n  else {\n    piVar29 = *(int **)(pcVar4 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);\n    uVar19 = *puVar13;\n    if (iVar3 == 0 && *piVar29 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar22 = *(int **)(pcVar4 + 0xd93fc);\n    iVar3 = **(int **)(pcVar4 + 0xd87e4);\n    *piVar22 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }\n    else {\n      iVar3 = *piVar22;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar22 = iVar3;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar32)();\n    pcVar32 = *(code **)(pcVar4 + 0xda4fc);\n    *piVar31 = iVar3;\n    (*pcVar32)(0,iVar3);\n    iVar3 = *piVar22;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }\n  }\n  iVar11 = 0x12;\n  piVar25 = *(int **)(pcVar4 + 0xd9434);\n  piVar23 = *(int **)(pcVar4 + 0xd8a98);\n  while( true ) {\n    iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3);\n    *piVar25 = iVar3;\n    if (iVar3 == -1) break;\n    if (*piVar31 == iVar3) {\n      iVar8 = -1;\n      goto LAB_0006c118;\n    }\n    pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    if (*piVar23 != 0) {\n      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);\n      pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    }\n    iVar11 = iVar11 + -1;\n    uVar19 = (*pcVar32)(0x1a,0);\n    (**(code **)(pcVar4 + 0xda61c))(0,0x1a);\n    (**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19);\n    if (iVar11 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);\n      sys_error(uVar19);\n      iVar3 = *piVar25;\n      iVar11 = *piVar31;\n      *piVar23 = 0;\n      **(int **)(pcVar4 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }\n    iVar3 = *piVar22;\n  }\n  piVar23 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n  iVar8 = *piVar23;\n  iVar3 = *piVar31;\nLAB_0006c118:\n  piVar28 = *(int **)(pcVar4 + 0xd9070);\n  pcVar32 = *(code **)(pcVar4 + 0xda670);\n  *piVar28 = iVar3;\n  iVar3 = (*pcVar32)();\n  iVar11 = *piVar28;\n  *piVar31 = iVar3;\n  if (iVar3 == iVar11) {\nLAB_0006c138:\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    *piVar23 = 1;\nLAB_0006c144:\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\nLAB_0006c148:\n    iVar11 = (*pcVar32)(*piVar22);\n    if ((iVar11 == -1) || (*piVar31 != iVar11)) {\n      if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);\n      sys_error(uVar19,iVar11);\n      *piVar23 = 0;\n      goto LAB_0006c230;\n    }\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n    if (*piVar23 != 0) {\n      iVar3 = *piVar25;\n      goto LAB_0006bff4;\n    }\n  }\n  else {\n    iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    iVar11 = *piVar31;\n    iVar3 = *piVar28;\n    *piVar23 = 1;\n    if (iVar11 == iVar3) goto LAB_0006c144;\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\n    if (*piVar25 == iVar11) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar11,0);\n    if (iVar3 < 0) {\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }\n    else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n  }\n  uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,iVar3 + 0x7e94,5);\n  internal_error(uVar19);\n  iVar3 = *piVar25;\n  iVar11 = *piVar31;\nLAB_0006bff4:\n  pcVar32 = *(code **)(pcVar4 + 0xda58c);\n  uVar19 = *puVar13;\n  **(uint **)(pcVar4 + 0xd8954) = (uint)(iVar11 != iVar3);\n  iVar3 = (*pcVar32)(uVar19);\n  if (iVar3 != *piVar22) {\n    (**(code **)(pcVar4 + 0xda540))(*piVar22,2,1);\n  }\n  (**(code **)(pcVar4 + 0xd8aac))(0x12,*(int *)(pcVar4 + 0xd942c) + -0x6fbc);\n  uVar19 = 0x2b;\n  if (*piVar23 != 0) {\n    uVar19 = 0x2d;\n  }\n  change_flag(0x6d,uVar19);\n  if (*piVar29 != 0) {\n    get_tty_state();\n  }\n  piVar31 = *(int **)(pcVar4 + 0xd90bc);\n  if (-1 < *piVar31) {\n    return (undefined1 *)*piVar23;\n  }\n  iVar3 = (**(code **)(pcVar4 + 0xd93d8))();\n  if (iVar3 < 0) {\n    iVar3 = 0x20;\n  }\n  *piVar31 = iVar3;\n  return (undefined1 *)*piVar23;\nLAB_0006b3b8:\n  puVar6 = (undefined1 *)job_exit_status(piVar31);\n  if (((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0)) {\n    FUN_00066b6c(piVar31,0);\n  }\n  (**(code **)(puStack_2a0 + -0x737c))();\n  (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n  goto LAB_0006b430;\n}\n\n" (function_definition "undefined1 * wait_for_job(int param_1,uint param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  code *pcVar4;\n  undefined1 *puVar5;\n  undefined1 *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  undefined4 uVar14;\n  int iVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int iVar18;\n  undefined4 uVar19;\n  undefined1 *puVar20;\n  undefined4 *puVar21;\n  int *piVar22;\n  int *piVar23;\n  undefined4 *puVar24;\n  int *piVar25;\n  int iVar26;\n  undefined4 *puVar27;\n  int *piVar28;\n  int *piVar29;\n  undefined *puVar30;\n  int *piVar31;\n  code *pcVar32;\n  undefined4 uStack_3e4;\n  undefined1 auStack_3dc [128];\n  undefined1 auStack_35c [128];\n  int iStack_2dc;\n  undefined1 *puStack_2d8;\n  undefined1 *puStack_2d4;\n  undefined1 *puStack_2d0;\n  int *piStack_2cc;\n  int *piStack_2c8;\n  undefined4 *puStack_2c4;\n  int *piStack_2c0;\n  int iStack_2bc;\n  int *piStack_2b8;\n  code *pcStack_2b4;\n  undefined *puStack_2a0;\n  code *pcStack_294;\n  undefined1 auStack_28c [128];\n  undefined1 auStack_20c [128];\n  int *piStack_18c;\n  undefined1 *puStack_188;\n  undefined1 *puStack_184;\n  undefined1 *puStack_180;\n  undefined4 uStack_17c;\n  int *piStack_178;\n  int iStack_174;\n  int *piStack_170;\n  int *piStack_16c;\n  undefined *puStack_168;\n  code *pcStack_164;\n  undefined1 auStack_12c [128];\n  undefined1 auStack_ac [128];\n  int local_2c;\n  \n  puVar30 = PTR___stack_chk_guard_001464dc;\n  piVar31 = (int *)PTR_jobs_00144e5c;\n  puVar20 = auStack_12c;\n  piVar29 = (int *)(param_1 * 4);\n  local_2c = *(int *)PTR___stack_chk_guard_001464dc;\n  (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n  (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n  (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n  if (*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc) == 2) {\n    uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);\n    internal_warning(uVar19,param_1 + 1);\n  }\n  puVar2 = PTR_js_00144e58;\n  puVar1 = PTR_wait_for_00144d9c;\n  piVar23 = (int *)0xffffffff;\n  piVar25 = (int *)(param_2 & 2);\n  iVar3 = FUN_00065a6c(param_1);\n  piVar28 = *(int **)(iVar3 + 4);\n  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n  pcVar4 = (code *)(PTR_LAB_00144ff0 + 0x4e60);\n  do {\n    puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28);\n    if (((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar4)();\n    }\n    if (piVar25 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      if (param_1 == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }\n    (*(code *)PTR_sigemptyset_001462d4)();\n    (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n    (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n    (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n    if (param_1 == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      goto LAB_0006b0f4;\n    }\n    if (*(int *)(*piVar31 + (int)piVar29) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      break;\n    }\n    iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc);\n    (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac);\n  } while (iVar3 != 4);\n  (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n  (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n  (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\nLAB_0006b0d0:\n  piVar29 = (int *)(*piVar31 + (int)piVar29);\n  iVar3 = *piVar29;\n  if ((iVar3 != 0) && (*(int *)(iVar3 + 0xc) == 4)) {\n    *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n  }\nLAB_0006b0f4:\n  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n  if (local_2c == *(int *)puVar30) {\n    return puVar5;\n  }\n  pcVar4 = wait_for_any_job;\n  puVar30 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  puStack_2a0 = puVar30 + 0xe1290;\n  iVar3 = *(int *)(puVar30 + 0xd9ea4);\n  puVar27 = *(undefined4 **)(puVar30 + 0xdb22c);\n  puStack_168 = (undefined *)piVar31;\n  uStack_17c = 0xffffffff;\n  piStack_18c = (int *)*puVar27;\n  puStack_188 = puVar20;\n  puStack_184 = auStack_ac;\n  puStack_180 = puVar5;\n  piStack_178 = piVar25;\n  iStack_174 = param_1;\n  piStack_170 = piVar28;\n  piStack_16c = piVar29;\n  pcStack_164 = pcVar4;\n  if (*(int *)(iVar3 + -0x705c) == 0) {\n    puVar6 = auStack_28c;\n    puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8);\n    puVar20 = auStack_20c;\n    (**(code **)(puVar30 + 0xdb024))(puVar6);\n    (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n    (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n    (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n    if (0 < (int)*(int **)(puVar5 + 0x18)) {\n      piVar31 = (int *)0x0;\n      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar29 = piVar17;\n      do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));\n    }\n    piVar25 = *(int **)(puStack_2a0 + -0x76e4);\n    piVar23 = *(int **)(puStack_2a0 + -0x7d0c);\n    (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    piVar31 = *(int **)(puStack_2a0 + -0x7550);\n    piVar28 = *(int **)(puStack_2a0 + -0x7d04);\n    pcStack_294 = (code *)(piVar31 + 0x1398);\n    do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      iVar11 = *(int *)(puVar5 + 0x18);\n      if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar4)(3,puVar20,0);\n      if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar31 = (int *)(*pcVar4)();\n      *piVar31 = 0;\n      iVar11 = wait_for(0xffffffff);\n      if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar4)(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    } while( true );\n  }\n  puVar6 = (undefined1 *)0xffffffff;\nLAB_0006b430:\n  puVar30 = puStack_2a0;\n  if (piStack_18c == (int *)*puVar27) {\n    return puVar6;\n  }\n  piVar29 = piStack_18c;\n  (**(code **)(puStack_2a0 + -0x60b8))();\nLAB_0006b730:\n  pcVar4 = *(code **)(puVar30 + -0x625c);\n  pcVar32 = start_job;\n  puVar13 = (undefined4 *)0x1;\n  (*pcVar4)();\n  piVar17 = *(int **)(pcVar4 + 0xdada0);\n  iVar11 = (int)piVar29 * 4;\n  iStack_2dc = *piVar17;\n  piVar22 = *(int **)(pcVar4 + 0xd9720);\n  puStack_2d8 = puVar20;\n  puStack_2d4 = puVar6;\n  puStack_2d0 = puVar5;\n  piStack_2cc = piVar23;\n  piStack_2c8 = piVar25;\n  puStack_2c4 = puVar27;\n  piStack_2c0 = piVar28;\n  iStack_2bc = iVar3;\n  piStack_2b8 = piVar31;\n  pcStack_2b4 = pcVar32;\n  (**(code **)(pcVar4 + 0xdab98))(auStack_3dc);\n  (**(code **)(pcVar4 + 0xdac28))(auStack_3dc,0x12);\n  (**(code **)(pcVar4 + 0xdab98))(auStack_35c);\n  (**(code **)(pcVar4 + 0xdadd8))(1,auStack_3dc,auStack_35c);\n  iVar3 = *(int *)(*(int *)(*piVar22 + iVar11) + 0xc);\n  if (iVar3 == 4) {\n    puVar20 = (undefined1 *)0xffffffff;\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec));\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);\nLAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }\n  if (iStack_2dc == *piVar17) {\n    return puVar20;\n  }\n  pcVar4 = *(code **)(pcVar4 + 0xdad4c);\n  iVar3 = iStack_2dc;\n  (*pcVar4)();\n  piVar31 = *(int **)(pcVar4 + 0xd8b10);\n  iVar11 = (**(code **)(pcVar4 + 0xda6dc))();\n  *piVar31 = iVar11;\n  if (iVar11 == -1) {\n    uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5);\n    sys_error(uVar19);\n    (**(code **)(pcVar4 + 0xda620))(1);\nLAB_0006c3c8:\n    uVar19 = *puVar13;\nLAB_0006be24:\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);\n    iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19);\n    *piVar22 = iVar3;\n    if (iVar3 != -1) goto LAB_0006bf80;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 == 0) goto LAB_0006bf08;\nLAB_0006be5c:\n    iVar3 = *piVar22;\n  }\n  else {\n    piVar29 = *(int **)(pcVar4 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);\n    uVar19 = *puVar13;\n    if (iVar3 == 0 && *piVar29 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar22 = *(int **)(pcVar4 + 0xd93fc);\n    iVar3 = **(int **)(pcVar4 + 0xd87e4);\n    *piVar22 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }\n    else {\n      iVar3 = *piVar22;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar22 = iVar3;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar32)();\n    pcVar32 = *(code **)(pcVar4 + 0xda4fc);\n    *piVar31 = iVar3;\n    (*pcVar32)(0,iVar3);\n    iVar3 = *piVar22;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }\n  }\n  iVar11 = 0x12;\n  piVar25 = *(int **)(pcVar4 + 0xd9434);\n  piVar23 = *(int **)(pcVar4 + 0xd8a98);\n  while( true ) {\n    iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3);\n    *piVar25 = iVar3;\n    if (iVar3 == -1) break;\n    if (*piVar31 == iVar3) {\n      iVar8 = -1;\n      goto LAB_0006c118;\n    }\n    pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    if (*piVar23 != 0) {\n      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);\n      pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    }\n    iVar11 = iVar11 + -1;\n    uVar19 = (*pcVar32)(0x1a,0);\n    (**(code **)(pcVar4 + 0xda61c))(0,0x1a);\n    (**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19);\n    if (iVar11 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);\n      sys_error(uVar19);\n      iVar3 = *piVar25;\n      iVar11 = *piVar31;\n      *piVar23 = 0;\n      **(int **)(pcVar4 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }\n    iVar3 = *piVar22;\n  }\n  piVar23 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n  iVar8 = *piVar23;\n  iVar3 = *piVar31;\nLAB_0006c118:\n  piVar28 = *(int **)(pcVar4 + 0xd9070);\n  pcVar32 = *(code **)(pcVar4 + 0xda670);\n  *piVar28 = iVar3;\n  iVar3 = (*pcVar32)();\n  iVar11 = *piVar28;\n  *piVar31 = iVar3;\n  if (iVar3 == iVar11) {\nLAB_0006c138:\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    *piVar23 = 1;\nLAB_0006c144:\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\nLAB_0006c148:\n    iVar11 = (*pcVar32)(*piVar22);\n    if ((iVar11 == -1) || (*piVar31 != iVar11)) {\n      if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);\n      sys_error(uVar19,iVar11);\n      *piVar23 = 0;\n      goto LAB_0006c230;\n    }\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n    if (*piVar23 != 0) {\n      iVar3 = *piVar25;\n      goto LAB_0006bff4;\n    }\n  }\n  else {\n    iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    iVar11 = *piVar31;\n    iVar3 = *piVar28;\n    *piVar23 = 1;\n    if (iVar11 == iVar3) goto LAB_0006c144;\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\n    if (*piVar25 == iVar11) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar11,0);\n    if (iVar3 < 0) {\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }\n    else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n  }\n  uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,iVar3 + 0x7e94,5);\n  internal_error(uVar19);\n  iVar3 = *piVar25;\n  iVar11 = *piVar31;\nLAB_0006bff4:\n  pcVar32 = *(code **)(pcVar4 + 0xda58c);\n  uVar19 = *puVar13;\n  **(uint **)(pcVar4 + 0xd8954) = (uint)(iVar11 != iVar3);\n  iVar3 = (*pcVar32)(uVar19);\n  if (iVar3 != *piVar22) {\n    (**(code **)(pcVar4 + 0xda540))(*piVar22,2,1);\n  }\n  (**(code **)(pcVar4 + 0xd8aac))(0x12,*(int *)(pcVar4 + 0xd942c) + -0x6fbc);\n  uVar19 = 0x2b;\n  if (*piVar23 != 0) {\n    uVar19 = 0x2d;\n  }\n  change_flag(0x6d,uVar19);\n  if (*piVar29 != 0) {\n    get_tty_state();\n  }\n  piVar31 = *(int **)(pcVar4 + 0xd90bc);\n  if (-1 < *piVar31) {\n    return (undefined1 *)*piVar23;\n  }\n  iVar3 = (**(code **)(pcVar4 + 0xd93d8))();\n  if (iVar3 < 0) {\n    iVar3 = 0x20;\n  }\n  *piVar31 = iVar3;\n  return (undefined1 *)*piVar23;\nLAB_0006b3b8:\n  puVar6 = (undefined1 *)job_exit_status(piVar31);\n  if (((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0)) {\n    FUN_00066b6c(piVar31,0);\n  }\n  (**(code **)(puStack_2a0 + -0x737c))();\n  (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n  goto LAB_0006b430;\n}" type_identifier (pointer_declarator "* wait_for_job(int param_1,uint param_2)" * (function_declarator "wait_for_job(int param_1,uint param_2)" identifier (parameter_list "(int param_1,uint param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  code *pcVar4;\n  undefined1 *puVar5;\n  undefined1 *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  undefined4 uVar14;\n  int iVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int iVar18;\n  undefined4 uVar19;\n  undefined1 *puVar20;\n  undefined4 *puVar21;\n  int *piVar22;\n  int *piVar23;\n  undefined4 *puVar24;\n  int *piVar25;\n  int iVar26;\n  undefined4 *puVar27;\n  int *piVar28;\n  int *piVar29;\n  undefined *puVar30;\n  int *piVar31;\n  code *pcVar32;\n  undefined4 uStack_3e4;\n  undefined1 auStack_3dc [128];\n  undefined1 auStack_35c [128];\n  int iStack_2dc;\n  undefined1 *puStack_2d8;\n  undefined1 *puStack_2d4;\n  undefined1 *puStack_2d0;\n  int *piStack_2cc;\n  int *piStack_2c8;\n  undefined4 *puStack_2c4;\n  int *piStack_2c0;\n  int iStack_2bc;\n  int *piStack_2b8;\n  code *pcStack_2b4;\n  undefined *puStack_2a0;\n  code *pcStack_294;\n  undefined1 auStack_28c [128];\n  undefined1 auStack_20c [128];\n  int *piStack_18c;\n  undefined1 *puStack_188;\n  undefined1 *puStack_184;\n  undefined1 *puStack_180;\n  undefined4 uStack_17c;\n  int *piStack_178;\n  int iStack_174;\n  int *piStack_170;\n  int *piStack_16c;\n  undefined *puStack_168;\n  code *pcStack_164;\n  undefined1 auStack_12c [128];\n  undefined1 auStack_ac [128];\n  int local_2c;\n  \n  puVar30 = PTR___stack_chk_guard_001464dc;\n  piVar31 = (int *)PTR_jobs_00144e5c;\n  puVar20 = auStack_12c;\n  piVar29 = (int *)(param_1 * 4);\n  local_2c = *(int *)PTR___stack_chk_guard_001464dc;\n  (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n  (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n  (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n  if (*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc) == 2) {\n    uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);\n    internal_warning(uVar19,param_1 + 1);\n  }\n  puVar2 = PTR_js_00144e58;\n  puVar1 = PTR_wait_for_00144d9c;\n  piVar23 = (int *)0xffffffff;\n  piVar25 = (int *)(param_2 & 2);\n  iVar3 = FUN_00065a6c(param_1);\n  piVar28 = *(int **)(iVar3 + 4);\n  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n  pcVar4 = (code *)(PTR_LAB_00144ff0 + 0x4e60);\n  do {\n    puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28);\n    if (((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar4)();\n    }\n    if (piVar25 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      if (param_1 == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }\n    (*(code *)PTR_sigemptyset_001462d4)();\n    (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n    (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n    (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n    if (param_1 == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      goto LAB_0006b0f4;\n    }\n    if (*(int *)(*piVar31 + (int)piVar29) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      break;\n    }\n    iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc);\n    (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac);\n  } while (iVar3 != 4);\n  (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n  (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n  (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\nLAB_0006b0d0:\n  piVar29 = (int *)(*piVar31 + (int)piVar29);\n  iVar3 = *piVar29;\n  if ((iVar3 != 0) && (*(int *)(iVar3 + 0xc) == 4)) {\n    *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n  }\nLAB_0006b0f4:\n  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n  if (local_2c == *(int *)puVar30) {\n    return puVar5;\n  }\n  pcVar4 = wait_for_any_job;\n  puVar30 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  puStack_2a0 = puVar30 + 0xe1290;\n  iVar3 = *(int *)(puVar30 + 0xd9ea4);\n  puVar27 = *(undefined4 **)(puVar30 + 0xdb22c);\n  puStack_168 = (undefined *)piVar31;\n  uStack_17c = 0xffffffff;\n  piStack_18c = (int *)*puVar27;\n  puStack_188 = puVar20;\n  puStack_184 = auStack_ac;\n  puStack_180 = puVar5;\n  piStack_178 = piVar25;\n  iStack_174 = param_1;\n  piStack_170 = piVar28;\n  piStack_16c = piVar29;\n  pcStack_164 = pcVar4;\n  if (*(int *)(iVar3 + -0x705c) == 0) {\n    puVar6 = auStack_28c;\n    puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8);\n    puVar20 = auStack_20c;\n    (**(code **)(puVar30 + 0xdb024))(puVar6);\n    (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n    (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n    (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n    if (0 < (int)*(int **)(puVar5 + 0x18)) {\n      piVar31 = (int *)0x0;\n      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar29 = piVar17;\n      do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));\n    }\n    piVar25 = *(int **)(puStack_2a0 + -0x76e4);\n    piVar23 = *(int **)(puStack_2a0 + -0x7d0c);\n    (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    piVar31 = *(int **)(puStack_2a0 + -0x7550);\n    piVar28 = *(int **)(puStack_2a0 + -0x7d04);\n    pcStack_294 = (code *)(piVar31 + 0x1398);\n    do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      iVar11 = *(int *)(puVar5 + 0x18);\n      if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar4)(3,puVar20,0);\n      if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar31 = (int *)(*pcVar4)();\n      *piVar31 = 0;\n      iVar11 = wait_for(0xffffffff);\n      if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar4)(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    } while( true );\n  }\n  puVar6 = (undefined1 *)0xffffffff;\nLAB_0006b430:\n  puVar30 = puStack_2a0;\n  if (piStack_18c == (int *)*puVar27) {\n    return puVar6;\n  }\n  piVar29 = piStack_18c;\n  (**(code **)(puStack_2a0 + -0x60b8))();\nLAB_0006b730:\n  pcVar4 = *(code **)(puVar30 + -0x625c);\n  pcVar32 = start_job;\n  puVar13 = (undefined4 *)0x1;\n  (*pcVar4)();\n  piVar17 = *(int **)(pcVar4 + 0xdada0);\n  iVar11 = (int)piVar29 * 4;\n  iStack_2dc = *piVar17;\n  piVar22 = *(int **)(pcVar4 + 0xd9720);\n  puStack_2d8 = puVar20;\n  puStack_2d4 = puVar6;\n  puStack_2d0 = puVar5;\n  piStack_2cc = piVar23;\n  piStack_2c8 = piVar25;\n  puStack_2c4 = puVar27;\n  piStack_2c0 = piVar28;\n  iStack_2bc = iVar3;\n  piStack_2b8 = piVar31;\n  pcStack_2b4 = pcVar32;\n  (**(code **)(pcVar4 + 0xdab98))(auStack_3dc);\n  (**(code **)(pcVar4 + 0xdac28))(auStack_3dc,0x12);\n  (**(code **)(pcVar4 + 0xdab98))(auStack_35c);\n  (**(code **)(pcVar4 + 0xdadd8))(1,auStack_3dc,auStack_35c);\n  iVar3 = *(int *)(*(int *)(*piVar22 + iVar11) + 0xc);\n  if (iVar3 == 4) {\n    puVar20 = (undefined1 *)0xffffffff;\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec));\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);\nLAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }\n  if (iStack_2dc == *piVar17) {\n    return puVar20;\n  }\n  pcVar4 = *(code **)(pcVar4 + 0xdad4c);\n  iVar3 = iStack_2dc;\n  (*pcVar4)();\n  piVar31 = *(int **)(pcVar4 + 0xd8b10);\n  iVar11 = (**(code **)(pcVar4 + 0xda6dc))();\n  *piVar31 = iVar11;\n  if (iVar11 == -1) {\n    uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5);\n    sys_error(uVar19);\n    (**(code **)(pcVar4 + 0xda620))(1);\nLAB_0006c3c8:\n    uVar19 = *puVar13;\nLAB_0006be24:\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);\n    iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19);\n    *piVar22 = iVar3;\n    if (iVar3 != -1) goto LAB_0006bf80;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 == 0) goto LAB_0006bf08;\nLAB_0006be5c:\n    iVar3 = *piVar22;\n  }\n  else {\n    piVar29 = *(int **)(pcVar4 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);\n    uVar19 = *puVar13;\n    if (iVar3 == 0 && *piVar29 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar22 = *(int **)(pcVar4 + 0xd93fc);\n    iVar3 = **(int **)(pcVar4 + 0xd87e4);\n    *piVar22 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }\n    else {\n      iVar3 = *piVar22;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar22 = iVar3;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar32)();\n    pcVar32 = *(code **)(pcVar4 + 0xda4fc);\n    *piVar31 = iVar3;\n    (*pcVar32)(0,iVar3);\n    iVar3 = *piVar22;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }\n  }\n  iVar11 = 0x12;\n  piVar25 = *(int **)(pcVar4 + 0xd9434);\n  piVar23 = *(int **)(pcVar4 + 0xd8a98);\n  while( true ) {\n    iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3);\n    *piVar25 = iVar3;\n    if (iVar3 == -1) break;\n    if (*piVar31 == iVar3) {\n      iVar8 = -1;\n      goto LAB_0006c118;\n    }\n    pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    if (*piVar23 != 0) {\n      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);\n      pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    }\n    iVar11 = iVar11 + -1;\n    uVar19 = (*pcVar32)(0x1a,0);\n    (**(code **)(pcVar4 + 0xda61c))(0,0x1a);\n    (**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19);\n    if (iVar11 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);\n      sys_error(uVar19);\n      iVar3 = *piVar25;\n      iVar11 = *piVar31;\n      *piVar23 = 0;\n      **(int **)(pcVar4 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }\n    iVar3 = *piVar22;\n  }\n  piVar23 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n  iVar8 = *piVar23;\n  iVar3 = *piVar31;\nLAB_0006c118:\n  piVar28 = *(int **)(pcVar4 + 0xd9070);\n  pcVar32 = *(code **)(pcVar4 + 0xda670);\n  *piVar28 = iVar3;\n  iVar3 = (*pcVar32)();\n  iVar11 = *piVar28;\n  *piVar31 = iVar3;\n  if (iVar3 == iVar11) {\nLAB_0006c138:\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    *piVar23 = 1;\nLAB_0006c144:\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\nLAB_0006c148:\n    iVar11 = (*pcVar32)(*piVar22);\n    if ((iVar11 == -1) || (*piVar31 != iVar11)) {\n      if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);\n      sys_error(uVar19,iVar11);\n      *piVar23 = 0;\n      goto LAB_0006c230;\n    }\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n    if (*piVar23 != 0) {\n      iVar3 = *piVar25;\n      goto LAB_0006bff4;\n    }\n  }\n  else {\n    iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    iVar11 = *piVar31;\n    iVar3 = *piVar28;\n    *piVar23 = 1;\n    if (iVar11 == iVar3) goto LAB_0006c144;\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\n    if (*piVar25 == iVar11) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar11,0);\n    if (iVar3 < 0) {\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }\n    else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n  }\n  uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,iVar3 + 0x7e94,5);\n  internal_error(uVar19);\n  iVar3 = *piVar25;\n  iVar11 = *piVar31;\nLAB_0006bff4:\n  pcVar32 = *(code **)(pcVar4 + 0xda58c);\n  uVar19 = *puVar13;\n  **(uint **)(pcVar4 + 0xd8954) = (uint)(iVar11 != iVar3);\n  iVar3 = (*pcVar32)(uVar19);\n  if (iVar3 != *piVar22) {\n    (**(code **)(pcVar4 + 0xda540))(*piVar22,2,1);\n  }\n  (**(code **)(pcVar4 + 0xd8aac))(0x12,*(int *)(pcVar4 + 0xd942c) + -0x6fbc);\n  uVar19 = 0x2b;\n  if (*piVar23 != 0) {\n    uVar19 = 0x2d;\n  }\n  change_flag(0x6d,uVar19);\n  if (*piVar29 != 0) {\n    get_tty_state();\n  }\n  piVar31 = *(int **)(pcVar4 + 0xd90bc);\n  if (-1 < *piVar31) {\n    return (undefined1 *)*piVar23;\n  }\n  iVar3 = (**(code **)(pcVar4 + 0xd93d8))();\n  if (iVar3 < 0) {\n    iVar3 = 0x20;\n  }\n  *piVar31 = iVar3;\n  return (undefined1 *)*piVar23;\nLAB_0006b3b8:\n  puVar6 = (undefined1 *)job_exit_status(piVar31);\n  if (((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0)) {\n    FUN_00066b6c(piVar31,0);\n  }\n  (**(code **)(puStack_2a0 + -0x737c))();\n  (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n  goto LAB_0006b430;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined4 uVar19;" type_identifier identifier ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "undefined4 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "int *piVar25;" primitive_type (pointer_declarator "*piVar25" * identifier) ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "undefined4 *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "int *piVar28;" primitive_type (pointer_declarator "*piVar28" * identifier) ;) (declaration "int *piVar29;" primitive_type (pointer_declarator "*piVar29" * identifier) ;) (declaration "undefined *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "int *piVar31;" primitive_type (pointer_declarator "*piVar31" * identifier) ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "undefined4 uStack_3e4;" type_identifier identifier ;) (declaration "undefined1 auStack_3dc [128];" type_identifier (array_declarator "auStack_3dc [128]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_35c [128];" type_identifier (array_declarator "auStack_35c [128]" identifier [ number_literal ]) ;) (declaration "int iStack_2dc;" primitive_type identifier ;) (declaration "undefined1 *puStack_2d8;" type_identifier (pointer_declarator "*puStack_2d8" * identifier) ;) (declaration "undefined1 *puStack_2d4;" type_identifier (pointer_declarator "*puStack_2d4" * identifier) ;) (declaration "undefined1 *puStack_2d0;" type_identifier (pointer_declarator "*puStack_2d0" * identifier) ;) (declaration "int *piStack_2cc;" primitive_type (pointer_declarator "*piStack_2cc" * identifier) ;) (declaration "int *piStack_2c8;" primitive_type (pointer_declarator "*piStack_2c8" * identifier) ;) (declaration "undefined4 *puStack_2c4;" type_identifier (pointer_declarator "*puStack_2c4" * identifier) ;) (declaration "int *piStack_2c0;" primitive_type (pointer_declarator "*piStack_2c0" * identifier) ;) (declaration "int iStack_2bc;" primitive_type identifier ;) (declaration "int *piStack_2b8;" primitive_type (pointer_declarator "*piStack_2b8" * identifier) ;) (declaration "code *pcStack_2b4;" type_identifier (pointer_declarator "*pcStack_2b4" * identifier) ;) (declaration "undefined *puStack_2a0;" type_identifier (pointer_declarator "*puStack_2a0" * identifier) ;) (declaration "code *pcStack_294;" type_identifier (pointer_declarator "*pcStack_294" * identifier) ;) (declaration "undefined1 auStack_28c [128];" type_identifier (array_declarator "auStack_28c [128]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_20c [128];" type_identifier (array_declarator "auStack_20c [128]" identifier [ number_literal ]) ;) (declaration "int *piStack_18c;" primitive_type (pointer_declarator "*piStack_18c" * identifier) ;) (declaration "undefined1 *puStack_188;" type_identifier (pointer_declarator "*puStack_188" * identifier) ;) (declaration "undefined1 *puStack_184;" type_identifier (pointer_declarator "*puStack_184" * identifier) ;) (declaration "undefined1 *puStack_180;" type_identifier (pointer_declarator "*puStack_180" * identifier) ;) (declaration "undefined4 uStack_17c;" type_identifier identifier ;) (declaration "int *piStack_178;" primitive_type (pointer_declarator "*piStack_178" * identifier) ;) (declaration "int iStack_174;" primitive_type identifier ;) (declaration "int *piStack_170;" primitive_type (pointer_declarator "*piStack_170" * identifier) ;) (declaration "int *piStack_16c;" primitive_type (pointer_declarator "*piStack_16c" * identifier) ;) (declaration "undefined *puStack_168;" type_identifier (pointer_declarator "*puStack_168" * identifier) ;) (declaration "code *pcStack_164;" type_identifier (pointer_declarator "*pcStack_164" * identifier) ;) (declaration "undefined1 auStack_12c [128];" type_identifier (array_declarator "auStack_12c [128]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_ac [128];" type_identifier (array_declarator "auStack_ac [128]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar30 = PTR___stack_chk_guard_001464dc;" (assignment_expression "puVar30 = PTR___stack_chk_guard_001464dc" identifier = identifier) ;) (expression_statement "piVar31 = (int *)PTR_jobs_00144e5c;" (assignment_expression "piVar31 = (int *)PTR_jobs_00144e5c" identifier = (cast_expression "(int *)PTR_jobs_00144e5c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar20 = auStack_12c;" (assignment_expression "puVar20 = auStack_12c" identifier = identifier) ;) (expression_statement "piVar29 = (int *)(param_1 * 4);" (assignment_expression "piVar29 = (int *)(param_1 * 4)" identifier = (cast_expression "(int *)(param_1 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 * 4)" ( (binary_expression "param_1 * 4" identifier * number_literal) )))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_001464dc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_001464dc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_001464dc" * (cast_expression "(int *)PTR___stack_chk_guard_001464dc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(puVar20);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(puVar20)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12);" (call_expression "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00146364)" ( (pointer_expression "*(code *)PTR_sigaddset_00146364" * (cast_expression "(code *)PTR_sigaddset_00146364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_ac)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,puVar20,auStack_ac)" ( number_literal , identifier , identifier ))) ;) (if_statement "if (*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc) == 2) {\n    uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);\n    internal_warning(uVar19,param_1 + 1);\n  }" if (parenthesized_expression "(*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc) == 2)" ( (binary_expression "*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc) == 2" (pointer_expression "*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc)" * (cast_expression "(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar31 + (int)piVar29) + 0xc)" ( (binary_expression "*(int *)(*piVar31 + (int)piVar29) + 0xc" (pointer_expression "*(int *)(*piVar31 + (int)piVar29)" * (cast_expression "(int *)(*piVar31 + (int)piVar29)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar31 + (int)piVar29)" ( (binary_expression "*piVar31 + (int)piVar29" (pointer_expression "*piVar31" * identifier) + (cast_expression "(int)piVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);\n    internal_warning(uVar19,param_1 + 1);\n  }" { (expression_statement "uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);" (assignment_expression "uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00146498)" ( (pointer_expression "*(code *)PTR_dcgettext_00146498" * (cast_expression "(code *)PTR_dcgettext_00146498" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_00144578 + 0x7d78,5)" ( number_literal , (binary_expression "PTR_LAB_00144578 + 0x7d78" identifier + number_literal) , number_literal )))) ;) (expression_statement "internal_warning(uVar19,param_1 + 1);" (call_expression "internal_warning(uVar19,param_1 + 1)" identifier (argument_list "(uVar19,param_1 + 1)" ( identifier , (binary_expression "param_1 + 1" identifier + number_literal) ))) ;) })) (expression_statement "puVar2 = PTR_js_00144e58;" (assignment_expression "puVar2 = PTR_js_00144e58" identifier = identifier) ;) (expression_statement "puVar1 = PTR_wait_for_00144d9c;" (assignment_expression "puVar1 = PTR_wait_for_00144d9c" identifier = identifier) ;) (expression_statement "piVar23 = (int *)0xffffffff;" (assignment_expression "piVar23 = (int *)0xffffffff" identifier = (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar25 = (int *)(param_2 & 2);" (assignment_expression "piVar25 = (int *)(param_2 & 2)" identifier = (cast_expression "(int *)(param_2 & 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 & 2)" ( (binary_expression "param_2 & 2" identifier & number_literal) )))) ;) (expression_statement "iVar3 = FUN_00065a6c(param_1);" (assignment_expression "iVar3 = FUN_00065a6c(param_1)" identifier = (call_expression "FUN_00065a6c(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "piVar28 = *(int **)(iVar3 + 4);" (assignment_expression "piVar28 = *(int **)(iVar3 + 4)" identifier = (pointer_expression "*(int **)(iVar3 + 4)" * (cast_expression "(int **)(iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,auStack_ac,0)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "pcVar4 = (code *)(PTR_LAB_00144ff0 + 0x4e60);" (assignment_expression "pcVar4 = (code *)(PTR_LAB_00144ff0 + 0x4e60)" identifier = (cast_expression "(code *)(PTR_LAB_00144ff0 + 0x4e60)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00144ff0 + 0x4e60)" ( (binary_expression "PTR_LAB_00144ff0 + 0x4e60" identifier + number_literal) )))) ;) (do_statement "do {\n    puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28);\n    if (((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar4)();\n    }\n    if (piVar25 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      if (param_1 == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }\n    (*(code *)PTR_sigemptyset_001462d4)();\n    (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n    (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n    (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n    if (param_1 == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      goto LAB_0006b0f4;\n    }\n    if (*(int *)(*piVar31 + (int)piVar29) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      break;\n    }\n    iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc);\n    (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac);\n  } while (iVar3 != 4);" do (compound_statement "{\n    puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28);\n    if (((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar4)();\n    }\n    if (piVar25 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      if (param_1 == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }\n    (*(code *)PTR_sigemptyset_001462d4)();\n    (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n    (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n    (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n    if (param_1 == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      goto LAB_0006b0f4;\n    }\n    if (*(int *)(*piVar31 + (int)piVar29) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      break;\n    }\n    iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc);\n    (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac);\n  }" { (expression_statement "puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28);" (assignment_expression "puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28)" identifier = (cast_expression "(undefined1 *)(*(code *)puVar1)(piVar28)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar1)(piVar28)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar28)" ( identifier ))))) ;) (if_statement "if (((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar4)();\n    }" if (parenthesized_expression "(((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0))" ( (binary_expression "((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)" (parenthesized_expression "((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10))" ( (binary_expression "(puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)" (parenthesized_expression "(puVar5 == (undefined1 *)0xffffffff)" ( (binary_expression "puVar5 == (undefined1 *)0xffffffff" identifier == (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)" ( (comma_expression "piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10" (assignment_expression "piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0014633c)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0014633c)()" (parenthesized_expression "(*(code *)PTR___errno_location_0014633c)" ( (pointer_expression "*(code *)PTR___errno_location_0014633c" * (cast_expression "(code *)PTR___errno_location_0014633c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) , (binary_expression "*piVar17 == 10" (pointer_expression "*piVar17" * identifier) == number_literal)) ))) )) && (parenthesized_expression "(*(int *)(puVar2 + 0x18) != 0)" ( (binary_expression "*(int *)(puVar2 + 0x18) != 0" (pointer_expression "*(int *)(puVar2 + 0x18)" * (cast_expression "(int *)(puVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x18)" ( (binary_expression "puVar2 + 0x18" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n      (*pcVar4)();\n    }" { (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( ))) ;) })) (if_statement "if (piVar25 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      if (param_1 == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }" if (parenthesized_expression "(piVar25 == (int *)0x0)" ( (binary_expression "piVar25 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      if (param_1 == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }" { (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(puVar20);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(puVar20)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12);" (call_expression "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00146364)" ( (pointer_expression "*(code *)PTR_sigaddset_00146364" * (cast_expression "(code *)PTR_sigaddset_00146364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_ac)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,puVar20,auStack_ac)" ( number_literal , identifier , identifier ))) ;) (if_statement "if (param_1 == -1) goto LAB_0006b0f4;" if (parenthesized_expression "(param_1 == -1)" ( (binary_expression "param_1 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0006b0f4;" goto statement_identifier ;)) (goto_statement "goto LAB_0006b0d0;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)();" (call_expression "(*(code *)PTR_sigemptyset_001462d4)()" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12);" (call_expression "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00146364)" ( (pointer_expression "*(code *)PTR_sigaddset_00146364" * (cast_expression "(code *)PTR_sigaddset_00146364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_ac)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,puVar20,auStack_ac)" ( number_literal , identifier , identifier ))) ;) (if_statement "if (param_1 == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      goto LAB_0006b0f4;\n    }" if (parenthesized_expression "(param_1 == -1)" ( (binary_expression "param_1 == -1" identifier == number_literal) )) (compound_statement "{\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      goto LAB_0006b0f4;\n    }" { (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,auStack_ac,0)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(puVar20);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(puVar20)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12);" (call_expression "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00146364)" ( (pointer_expression "*(code *)PTR_sigaddset_00146364" * (cast_expression "(code *)PTR_sigaddset_00146364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_ac)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,puVar20,auStack_ac)" ( number_literal , identifier , identifier ))) ;) (goto_statement "goto LAB_0006b0f4;" goto statement_identifier ;) })) (if_statement "if (*(int *)(*piVar31 + (int)piVar29) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      break;\n    }" if (parenthesized_expression "(*(int *)(*piVar31 + (int)piVar29) == 0)" ( (binary_expression "*(int *)(*piVar31 + (int)piVar29) == 0" (pointer_expression "*(int *)(*piVar31 + (int)piVar29)" * (cast_expression "(int *)(*piVar31 + (int)piVar29)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar31 + (int)piVar29)" ( (binary_expression "*piVar31 + (int)piVar29" (pointer_expression "*piVar31" * identifier) + (cast_expression "(int)piVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == number_literal) )) (compound_statement "{\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      break;\n    }" { (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,auStack_ac,0)" ( number_literal , identifier , number_literal ))) ;) (break_statement "break;" break ;) })) (expression_statement "iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc);" (assignment_expression "iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc)" identifier = (pointer_expression "*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc)" * (cast_expression "(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar31 + (int)piVar29) + 0xc)" ( (binary_expression "*(int *)(*piVar31 + (int)piVar29) + 0xc" (pointer_expression "*(int *)(*piVar31 + (int)piVar29)" * (cast_expression "(int *)(*piVar31 + (int)piVar29)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar31 + (int)piVar29)" ( (binary_expression "*piVar31 + (int)piVar29" (pointer_expression "*piVar31" * identifier) + (cast_expression "(int)piVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )))) + number_literal) ))))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,auStack_ac)" ( number_literal , identifier ))) ;) }) while (parenthesized_expression "(iVar3 != 4)" ( (binary_expression "iVar3 != 4" identifier != number_literal) )) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(puVar20);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(puVar20)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12);" (call_expression "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00146364)" ( (pointer_expression "*(code *)PTR_sigaddset_00146364" * (cast_expression "(code *)PTR_sigaddset_00146364" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_ac)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,puVar20,auStack_ac)" ( number_literal , identifier , identifier ))) ;) (labeled_statement "LAB_0006b0d0:\n  piVar29 = (int *)(*piVar31 + (int)piVar29);" statement_identifier : (expression_statement "piVar29 = (int *)(*piVar31 + (int)piVar29);" (assignment_expression "piVar29 = (int *)(*piVar31 + (int)piVar29)" identifier = (cast_expression "(int *)(*piVar31 + (int)piVar29)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar31 + (int)piVar29)" ( (binary_expression "*piVar31 + (int)piVar29" (pointer_expression "*piVar31" * identifier) + (cast_expression "(int)piVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "iVar3 = *piVar29;" (assignment_expression "iVar3 = *piVar29" identifier = (pointer_expression "*piVar29" * identifier)) ;) (if_statement "if ((iVar3 != 0) && (*(int *)(iVar3 + 0xc) == 4)) {\n    *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n  }" if (parenthesized_expression "((iVar3 != 0) && (*(int *)(iVar3 + 0xc) == 4))" ( (binary_expression "(iVar3 != 0) && (*(int *)(iVar3 + 0xc) == 4)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(iVar3 + 0xc) == 4)" ( (binary_expression "*(int *)(iVar3 + 0xc) == 4" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n  }" { (expression_statement "*(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;" (assignment_expression "*(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2" (pointer_expression "*(uint *)(iVar3 + 0x10)" * (cast_expression "(uint *)(iVar3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar3 + 0x10) | 2" (pointer_expression "*(uint *)(iVar3 + 0x10)" * (cast_expression "(uint *)(iVar3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) | number_literal)) ;) })) (labeled_statement "LAB_0006b0f4:\n  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);" statement_identifier : (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,auStack_ac,0)" ( number_literal , identifier , number_literal ))) ;)) (if_statement "if (local_2c == *(int *)puVar30) {\n    return puVar5;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar30)" ( (binary_expression "local_2c == *(int *)puVar30" identifier == (pointer_expression "*(int *)puVar30" * (cast_expression "(int *)puVar30" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return puVar5;\n  }" { (return_statement "return puVar5;" return identifier ;) })) (expression_statement "pcVar4 = wait_for_any_job;" (assignment_expression "pcVar4 = wait_for_any_job" identifier = identifier) ;) (expression_statement "puVar30 = PTR___stack_chk_fail_00146488;" (assignment_expression "puVar30 = PTR___stack_chk_fail_00146488" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00146488)();" (call_expression "(*(code *)PTR___stack_chk_fail_00146488)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00146488)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00146488" * (cast_expression "(code *)PTR___stack_chk_fail_00146488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_2a0 = puVar30 + 0xe1290;" (assignment_expression "puStack_2a0 = puVar30 + 0xe1290" identifier = (binary_expression "puVar30 + 0xe1290" identifier + number_literal)) ;) (expression_statement "iVar3 = *(int *)(puVar30 + 0xd9ea4);" (assignment_expression "iVar3 = *(int *)(puVar30 + 0xd9ea4)" identifier = (pointer_expression "*(int *)(puVar30 + 0xd9ea4)" * (cast_expression "(int *)(puVar30 + 0xd9ea4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0xd9ea4)" ( (binary_expression "puVar30 + 0xd9ea4" identifier + number_literal) ))))) ;) (expression_statement "puVar27 = *(undefined4 **)(puVar30 + 0xdb22c);" (assignment_expression "puVar27 = *(undefined4 **)(puVar30 + 0xdb22c)" identifier = (pointer_expression "*(undefined4 **)(puVar30 + 0xdb22c)" * (cast_expression "(undefined4 **)(puVar30 + 0xdb22c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0xdb22c)" ( (binary_expression "puVar30 + 0xdb22c" identifier + number_literal) ))))) ;) (expression_statement "puStack_168 = (undefined *)piVar31;" (assignment_expression "puStack_168 = (undefined *)piVar31" identifier = (cast_expression "(undefined *)piVar31" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uStack_17c = 0xffffffff;" (assignment_expression "uStack_17c = 0xffffffff" identifier = number_literal) ;) (expression_statement "piStack_18c = (int *)*puVar27;" (assignment_expression "piStack_18c = (int *)*puVar27" identifier = (cast_expression "(int *)*puVar27" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar27" * identifier))) ;) (expression_statement "puStack_188 = puVar20;" (assignment_expression "puStack_188 = puVar20" identifier = identifier) ;) (expression_statement "puStack_184 = auStack_ac;" (assignment_expression "puStack_184 = auStack_ac" identifier = identifier) ;) (expression_statement "puStack_180 = puVar5;" (assignment_expression "puStack_180 = puVar5" identifier = identifier) ;) (expression_statement "piStack_178 = piVar25;" (assignment_expression "piStack_178 = piVar25" identifier = identifier) ;) (expression_statement "iStack_174 = param_1;" (assignment_expression "iStack_174 = param_1" identifier = identifier) ;) (expression_statement "piStack_170 = piVar28;" (assignment_expression "piStack_170 = piVar28" identifier = identifier) ;) (expression_statement "piStack_16c = piVar29;" (assignment_expression "piStack_16c = piVar29" identifier = identifier) ;) (expression_statement "pcStack_164 = pcVar4;" (assignment_expression "pcStack_164 = pcVar4" identifier = identifier) ;) (if_statement "if (*(int *)(iVar3 + -0x705c) == 0) {\n    puVar6 = auStack_28c;\n    puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8);\n    puVar20 = auStack_20c;\n    (**(code **)(puVar30 + 0xdb024))(puVar6);\n    (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n    (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n    (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n    if (0 < (int)*(int **)(puVar5 + 0x18)) {\n      piVar31 = (int *)0x0;\n      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar29 = piVar17;\n      do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));\n    }\n    piVar25 = *(int **)(puStack_2a0 + -0x76e4);\n    piVar23 = *(int **)(puStack_2a0 + -0x7d0c);\n    (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    piVar31 = *(int **)(puStack_2a0 + -0x7550);\n    piVar28 = *(int **)(puStack_2a0 + -0x7d04);\n    pcStack_294 = (code *)(piVar31 + 0x1398);\n    do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      iVar11 = *(int *)(puVar5 + 0x18);\n      if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar4)(3,puVar20,0);\n      if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar31 = (int *)(*pcVar4)();\n      *piVar31 = 0;\n      iVar11 = wait_for(0xffffffff);\n      if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar4)(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    } while( true );\n  }" if (parenthesized_expression "(*(int *)(iVar3 + -0x705c) == 0)" ( (binary_expression "*(int *)(iVar3 + -0x705c) == 0" (pointer_expression "*(int *)(iVar3 + -0x705c)" * (cast_expression "(int *)(iVar3 + -0x705c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -0x705c)" ( (binary_expression "iVar3 + -0x705c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    puVar6 = auStack_28c;\n    puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8);\n    puVar20 = auStack_20c;\n    (**(code **)(puVar30 + 0xdb024))(puVar6);\n    (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n    (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n    (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n    if (0 < (int)*(int **)(puVar5 + 0x18)) {\n      piVar31 = (int *)0x0;\n      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar29 = piVar17;\n      do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));\n    }\n    piVar25 = *(int **)(puStack_2a0 + -0x76e4);\n    piVar23 = *(int **)(puStack_2a0 + -0x7d0c);\n    (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    piVar31 = *(int **)(puStack_2a0 + -0x7550);\n    piVar28 = *(int **)(puStack_2a0 + -0x7d04);\n    pcStack_294 = (code *)(piVar31 + 0x1398);\n    do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      iVar11 = *(int *)(puVar5 + 0x18);\n      if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar4)(3,puVar20,0);\n      if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar31 = (int *)(*pcVar4)();\n      *piVar31 = 0;\n      iVar11 = wait_for(0xffffffff);\n      if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar4)(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    } while( true );\n  }" { (expression_statement "puVar6 = auStack_28c;" (assignment_expression "puVar6 = auStack_28c" identifier = identifier) ;) (expression_statement "puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8);" (assignment_expression "puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8)" identifier = (pointer_expression "*(undefined1 **)(puVar30 + 0xd9ba8)" * (cast_expression "(undefined1 **)(puVar30 + 0xd9ba8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0xd9ba8)" ( (binary_expression "puVar30 + 0xd9ba8" identifier + number_literal) ))))) ;) (expression_statement "puVar20 = auStack_20c;" (assignment_expression "puVar20 = auStack_20c" identifier = identifier) ;) (expression_statement "(**(code **)(puVar30 + 0xdb024))(puVar6);" (call_expression "(**(code **)(puVar30 + 0xdb024))(puVar6)" (parenthesized_expression "(**(code **)(puVar30 + 0xdb024))" ( (pointer_expression "**(code **)(puVar30 + 0xdb024)" * (pointer_expression "*(code **)(puVar30 + 0xdb024)" * (cast_expression "(code **)(puVar30 + 0xdb024)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0xdb024)" ( (binary_expression "puVar30 + 0xdb024" identifier + number_literal) ))))) )) (argument_list "(puVar6)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);" (call_expression "(**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x61dc))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x61dc)" * (pointer_expression "*(code **)(puStack_2a0 + -0x61dc)" * (cast_expression "(code **)(puStack_2a0 + -0x61dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x61dc)" ( (binary_expression "puStack_2a0 + -0x61dc" identifier + number_literal) ))))) )) (argument_list "(puVar6,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x626c))(puVar20);" (call_expression "(**(code **)(puStack_2a0 + -0x626c))(puVar20)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x626c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x626c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" * (cast_expression "(code **)(puStack_2a0 + -0x626c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x626c)" ( (binary_expression "puStack_2a0 + -0x626c" identifier + number_literal) ))))) )) (argument_list "(puVar20)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(1,puVar6,puVar20)" ( number_literal , identifier , identifier ))) ;) (if_statement "if (0 < (int)*(int **)(puVar5 + 0x18)) {\n      piVar31 = (int *)0x0;\n      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar29 = piVar17;\n      do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));\n    }" if (parenthesized_expression "(0 < (int)*(int **)(puVar5 + 0x18))" ( (binary_expression "0 < (int)*(int **)(puVar5 + 0x18)" number_literal < (cast_expression "(int)*(int **)(puVar5 + 0x18)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(int **)(puVar5 + 0x18)" * (cast_expression "(int **)(puVar5 + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x18)" ( (binary_expression "puVar5 + 0x18" identifier + number_literal) )))))) )) (compound_statement "{\n      piVar31 = (int *)0x0;\n      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar29 = piVar17;\n      do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));\n    }" { (expression_statement "piVar31 = (int *)0x0;" (assignment_expression "piVar31 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);" (assignment_expression "piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4)" identifier = (cast_expression "(int *)**(int **)(puStack_2a0 + -0x76e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(puStack_2a0 + -0x76e4)" * (pointer_expression "*(int **)(puStack_2a0 + -0x76e4)" * (cast_expression "(int **)(puStack_2a0 + -0x76e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x76e4)" ( (binary_expression "puStack_2a0 + -0x76e4" identifier + number_literal) ))))))) ;) (expression_statement "piVar29 = piVar17;" (assignment_expression "piVar29 = piVar17" identifier = identifier) ;) (do_statement "do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));" do (compound_statement "{\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      }" { (expression_statement "iVar11 = *piVar29;" (assignment_expression "iVar11 = *piVar29" identifier = (pointer_expression "*piVar29" * identifier)) ;) (if_statement "if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;" if (parenthesized_expression "(((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0))" ( (binary_expression "((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)" (parenthesized_expression "((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4))" ( (binary_expression "(iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)" (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(iVar11 + 0xc) == 4)" ( (binary_expression "*(int *)(iVar11 + 0xc) == 4" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "((*(uint *)(iVar11 + 0x10) & 2) == 0)" ( (binary_expression "(*(uint *)(iVar11 + 0x10) & 2) == 0" (parenthesized_expression "(*(uint *)(iVar11 + 0x10) & 2)" ( (binary_expression "*(uint *)(iVar11 + 0x10) & 2" (pointer_expression "*(uint *)(iVar11 + 0x10)" * (cast_expression "(uint *)(iVar11 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_0006b3b8;" goto statement_identifier ;)) (expression_statement "piVar31 = (int *)((int)piVar31 + 1);" (assignment_expression "piVar31 = (int *)((int)piVar31 + 1)" identifier = (cast_expression "(int *)((int)piVar31 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar31 + 1)" ( (binary_expression "(int)piVar31 + 1" (cast_expression "(int)piVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar29 = piVar29 + 1;" (assignment_expression "piVar29 = piVar29 + 1" identifier = (binary_expression "piVar29 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar31 != *(int **)(puVar5 + 0x18))" ( (binary_expression "piVar31 != *(int **)(puVar5 + 0x18)" identifier != (pointer_expression "*(int **)(puVar5 + 0x18)" * (cast_expression "(int **)(puVar5 + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x18)" ( (binary_expression "puVar5 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "piVar25 = *(int **)(puStack_2a0 + -0x76e4);" (assignment_expression "piVar25 = *(int **)(puStack_2a0 + -0x76e4)" identifier = (pointer_expression "*(int **)(puStack_2a0 + -0x76e4)" * (cast_expression "(int **)(puStack_2a0 + -0x76e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x76e4)" ( (binary_expression "puStack_2a0 + -0x76e4" identifier + number_literal) ))))) ;) (expression_statement "piVar23 = *(int **)(puStack_2a0 + -0x7d0c);" (assignment_expression "piVar23 = *(int **)(puStack_2a0 + -0x7d0c)" identifier = (pointer_expression "*(int **)(puStack_2a0 + -0x7d0c)" * (cast_expression "(int **)(puStack_2a0 + -0x7d0c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7d0c)" ( (binary_expression "puStack_2a0 + -0x7d0c" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(3,puVar20,0)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "piVar31 = *(int **)(puStack_2a0 + -0x7550);" (assignment_expression "piVar31 = *(int **)(puStack_2a0 + -0x7550)" identifier = (pointer_expression "*(int **)(puStack_2a0 + -0x7550)" * (cast_expression "(int **)(puStack_2a0 + -0x7550)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7550)" ( (binary_expression "puStack_2a0 + -0x7550" identifier + number_literal) ))))) ;) (expression_statement "piVar28 = *(int **)(puStack_2a0 + -0x7d04);" (assignment_expression "piVar28 = *(int **)(puStack_2a0 + -0x7d04)" identifier = (pointer_expression "*(int **)(puStack_2a0 + -0x7d04)" * (cast_expression "(int **)(puStack_2a0 + -0x7d04)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7d04)" ( (binary_expression "puStack_2a0 + -0x7d04" identifier + number_literal) ))))) ;) (expression_statement "pcStack_294 = (code *)(piVar31 + 0x1398);" (assignment_expression "pcStack_294 = (code *)(piVar31 + 0x1398)" identifier = (cast_expression "(code *)(piVar31 + 0x1398)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar31 + 0x1398)" ( (binary_expression "piVar31 + 0x1398" identifier + number_literal) )))) ;) (do_statement "do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      iVar11 = *(int *)(puVar5 + 0x18);\n      if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar4)(3,puVar20,0);\n      if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar31 = (int *)(*pcVar4)();\n      *piVar31 = 0;\n      iVar11 = wait_for(0xffffffff);\n      if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar4)(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    } while( true );" do (compound_statement "{\n      (**(code **)(puStack_2a0 + -0x626c))(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      iVar11 = *(int *)(puVar5 + 0x18);\n      if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar4)(3,puVar20,0);\n      if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar31 = (int *)(*pcVar4)();\n      *piVar31 = 0;\n      iVar11 = wait_for(0xffffffff);\n      if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar4)(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    }" { (expression_statement "(**(code **)(puStack_2a0 + -0x626c))(puVar6);" (call_expression "(**(code **)(puStack_2a0 + -0x626c))(puVar6)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x626c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x626c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" * (cast_expression "(code **)(puStack_2a0 + -0x626c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x626c)" ( (binary_expression "puStack_2a0 + -0x626c" identifier + number_literal) ))))) )) (argument_list "(puVar6)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);" (call_expression "(**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x61dc))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x61dc)" * (pointer_expression "*(code **)(puStack_2a0 + -0x61dc)" * (cast_expression "(code **)(puStack_2a0 + -0x61dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x61dc)" ( (binary_expression "puStack_2a0 + -0x61dc" identifier + number_literal) ))))) )) (argument_list "(puVar6,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x626c))(puVar20);" (call_expression "(**(code **)(puStack_2a0 + -0x626c))(puVar20)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x626c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x626c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" * (cast_expression "(code **)(puStack_2a0 + -0x626c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x626c)" ( (binary_expression "puStack_2a0 + -0x626c" identifier + number_literal) ))))) )) (argument_list "(puVar20)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(1,puVar6,puVar20)" ( number_literal , identifier , identifier ))) ;) (expression_statement "iVar11 = *(int *)(puVar5 + 0x18);" (assignment_expression "iVar11 = *(int *)(puVar5 + 0x18)" identifier = (pointer_expression "*(int *)(puVar5 + 0x18)" * (cast_expression "(int *)(puVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x18)" ( (binary_expression "puVar5 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }" { (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x602c);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x602c)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }" { (labeled_statement "LAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);" statement_identifier : (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(3,puVar20,0)" ( number_literal , identifier , number_literal ))) ;)) (expression_statement "puVar6 = (undefined1 *)0xffffffff;" (assignment_expression "puVar6 = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0006b430;" goto statement_identifier ;) })) }) (else_clause "else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }" else (compound_statement "{\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }" { (expression_statement "piVar29 = (int *)*piVar25;" (assignment_expression "piVar29 = (int *)*piVar25" identifier = (cast_expression "(int *)*piVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar25" * identifier))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (while_statement "while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }" while (parenthesized_expression "(((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0)))" ( (parenthesized_expression "((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))" ( (binary_expression "(iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0)" (parenthesized_expression "(iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1))" ( (comma_expression "iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)" (assignment_expression "iVar12 = *piVar29" identifier = (pointer_expression "*piVar29" * identifier)) , (binary_expression "iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)" (binary_expression "iVar12 == 0" identifier == number_literal) || (parenthesized_expression "(*(int *)(iVar12 + 0xc) != 1)" ( (binary_expression "*(int *)(iVar12 + 0xc) != 1" (pointer_expression "*(int *)(iVar12 + 0xc)" * (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) != number_literal) )))) )) || (parenthesized_expression "((*(uint *)(iVar12 + 0x10) & 1) != 0)" ( (binary_expression "(*(uint *)(iVar12 + 0x10) & 1) != 0" (parenthesized_expression "(*(uint *)(iVar12 + 0x10) & 1)" ( (binary_expression "*(uint *)(iVar12 + 0x10) & 1" (pointer_expression "*(uint *)(iVar12 + 0x10)" * (cast_expression "(uint *)(iVar12 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) )) (compound_statement "{\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }" { (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "piVar29 = piVar29 + 1;" (assignment_expression "piVar29 = piVar29 + 1" identifier = (binary_expression "piVar29 + 1" identifier + number_literal)) ;) (if_statement "if (iVar8 == iVar11) goto LAB_0006b680;" if (parenthesized_expression "(iVar8 == iVar11)" ( (binary_expression "iVar8 == iVar11" identifier == identifier) )) (goto_statement "goto LAB_0006b680;" goto statement_identifier ;)) })) (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x602c);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x602c)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) ;) }))) (expression_statement "(*pcVar4)(3,puVar20,0);" (call_expression "(*pcVar4)(3,puVar20,0)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(3,puVar20,0)" ( number_literal , identifier , number_literal ))) ;) (if_statement "if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }" if (parenthesized_expression "(*piVar23 == 0)" ( (binary_expression "*piVar23 == 0" (pointer_expression "*piVar23" * identifier) == number_literal) )) (compound_statement "{\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }" { (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -32000);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -32000)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -32000)" * (cast_expression "(code **)(puStack_2a0 + -32000)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -32000)" ( (binary_expression "puStack_2a0 + -32000" identifier + number_literal) ))))) ;) (if_statement "if (*piVar28 == 0) goto LAB_0006b564;" if (parenthesized_expression "(*piVar28 == 0)" ( (binary_expression "*piVar28 == 0" (pointer_expression "*piVar28" * identifier) == number_literal) )) (goto_statement "goto LAB_0006b564;" goto statement_identifier ;)) (labeled_statement "LAB_0006b6f0:\n        (*pcVar4)();" statement_identifier : (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( ))) ;)) (if_statement "if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }" if (parenthesized_expression "(*piVar23 != 0)" ( (binary_expression "*piVar23 != 0" (pointer_expression "*piVar23" * identifier) != number_literal) )) (compound_statement "{\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }" { (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x7d08);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x7d08)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x7d08)" * (cast_expression "(code **)(puStack_2a0 + -0x7d08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7d08)" ( (binary_expression "puStack_2a0 + -0x7d08" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0006b708;" goto statement_identifier ;) })) }) (else_clause "else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }" else (compound_statement "{\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }" { (expression_statement "(**(code **)(puStack_2a0 + -0x7d08))(*piVar23);" (call_expression "(**(code **)(puStack_2a0 + -0x7d08))(*piVar23)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x7d08))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x7d08)" * (pointer_expression "*(code **)(puStack_2a0 + -0x7d08)" * (cast_expression "(code **)(puStack_2a0 + -0x7d08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7d08)" ( (binary_expression "puStack_2a0 + -0x7d08" identifier + number_literal) ))))) )) (argument_list "(*piVar23)" ( (pointer_expression "*piVar23" * identifier) ))) ;) (if_statement "if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }" if (parenthesized_expression "(*piVar28 != 0)" ( (binary_expression "*piVar28 != 0" (pointer_expression "*piVar28" * identifier) != number_literal) )) (compound_statement "{\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }" { (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -32000);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -32000)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -32000)" * (cast_expression "(code **)(puStack_2a0 + -32000)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -32000)" ( (binary_expression "puStack_2a0 + -32000" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0006b6f0;" goto statement_identifier ;) })) (labeled_statement "LAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);" statement_identifier : (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x7d08);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x7d08)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x7d08)" * (cast_expression "(code **)(puStack_2a0 + -0x7d08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7d08)" ( (binary_expression "puStack_2a0 + -0x7d08" identifier + number_literal) ))))) ;)) (if_statement "if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }" if (parenthesized_expression "(*piVar23 != 0)" ( (binary_expression "*piVar23 != 0" (pointer_expression "*piVar23" * identifier) != number_literal) )) (compound_statement "{\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }" { (labeled_statement "LAB_0006b708:\n          (*pcVar4)(*piVar23);" statement_identifier : (expression_statement "(*pcVar4)(*piVar23);" (call_expression "(*pcVar4)(*piVar23)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(*piVar23)" ( (pointer_expression "*piVar23" * identifier) ))) ;)) })) }))) (if_statement "if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }" if (parenthesized_expression "(**(int **)(puStack_2a0 + -0x73d8) == 0)" ( (binary_expression "**(int **)(puStack_2a0 + -0x73d8) == 0" (pointer_expression "**(int **)(puStack_2a0 + -0x73d8)" * (pointer_expression "*(int **)(puStack_2a0 + -0x73d8)" * (cast_expression "(int **)(puStack_2a0 + -0x73d8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x73d8)" ( (binary_expression "puStack_2a0 + -0x73d8" identifier + number_literal) ))))) == number_literal) )) (compound_statement "{\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }" { (labeled_statement "LAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);" statement_identifier : (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x6204);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x6204)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x6204)" * (cast_expression "(code **)(puStack_2a0 + -0x6204)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x6204)" ( (binary_expression "puStack_2a0 + -0x6204" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }" else (compound_statement "{\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }" { (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x6204);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x6204)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x6204)" * (cast_expression "(code **)(puStack_2a0 + -0x6204)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x6204)" ( (binary_expression "puStack_2a0 + -0x6204" identifier + number_literal) ))))) ;) (if_statement "if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }" if (parenthesized_expression "(**(int **)(puStack_2a0 + -0x73dc) != 0)" ( (binary_expression "**(int **)(puStack_2a0 + -0x73dc) != 0" (pointer_expression "**(int **)(puStack_2a0 + -0x73dc)" * (pointer_expression "*(int **)(puStack_2a0 + -0x73dc)" * (cast_expression "(int **)(puStack_2a0 + -0x73dc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x73dc)" ( (binary_expression "puStack_2a0 + -0x73dc" identifier + number_literal) ))))) != number_literal) )) (compound_statement "{\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }" { (if_statement "if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }" if (parenthesized_expression "(**(int **)(puStack_2a0 + -0x7abc) != 0)" ( (binary_expression "**(int **)(puStack_2a0 + -0x7abc) != 0" (pointer_expression "**(int **)(puStack_2a0 + -0x7abc)" * (pointer_expression "*(int **)(puStack_2a0 + -0x7abc)" * (cast_expression "(int **)(puStack_2a0 + -0x7abc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7abc)" ( (binary_expression "puStack_2a0 + -0x7abc" identifier + number_literal) ))))) != number_literal) )) (compound_statement "{\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }" { (expression_statement "piVar29 = *(int **)(puStack_2a0 + -0x73d4);" (assignment_expression "piVar29 = *(int **)(puStack_2a0 + -0x73d4)" identifier = (pointer_expression "*(int **)(puStack_2a0 + -0x73d4)" * (cast_expression "(int **)(puStack_2a0 + -0x73d4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x73d4)" ( (binary_expression "puStack_2a0 + -0x73d4" identifier + number_literal) ))))) ;) (expression_statement "puVar30 = puStack_2a0;" (assignment_expression "puVar30 = puStack_2a0" identifier = identifier) ;) (if_statement "if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;" if (parenthesized_expression "(**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))" ( (binary_expression "**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0)" (pointer_expression "**(int **)(puStack_2a0 + -0x7abc)" * (pointer_expression "*(int **)(puStack_2a0 + -0x7abc)" * (cast_expression "(int **)(puStack_2a0 + -0x7abc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x7abc)" ( (binary_expression "puStack_2a0 + -0x7abc" identifier + number_literal) ))))) != (pointer_expression "*(int *)(puStack_2a0 + -0x73f0)" * (cast_expression "(int *)(puStack_2a0 + -0x73f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_2a0 + -0x73f0)" ( (binary_expression "puStack_2a0 + -0x73f0" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0006b5a4;" goto statement_identifier ;)) (goto_statement "goto LAB_0006b730;" goto statement_identifier ;) })) })) }))) (expression_statement "piVar31 = (int *)(*pcVar4)();" (assignment_expression "piVar31 = (int *)(*pcVar4)()" identifier = (cast_expression "(int *)(*pcVar4)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "*piVar31 = 0;" (assignment_expression "*piVar31 = 0" (pointer_expression "*piVar31" * identifier) = number_literal) ;) (expression_statement "iVar11 = wait_for(0xffffffff);" (assignment_expression "iVar11 = wait_for(0xffffffff)" identifier = (call_expression "wait_for(0xffffffff)" identifier (argument_list "(0xffffffff)" ( number_literal )))) ;) (if_statement "if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }" if (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) )) (compound_statement "{\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }" { (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x626c);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x626c)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" * (cast_expression "(code **)(puStack_2a0 + -0x626c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x626c)" ( (binary_expression "puStack_2a0 + -0x626c" identifier + number_literal) ))))) ;) (if_statement "if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }" if (parenthesized_expression "((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0))" ( (binary_expression "(*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)" (parenthesized_expression "(*piVar31 == 10)" ( (binary_expression "*piVar31 == 10" (pointer_expression "*piVar31" * identifier) == number_literal) )) && (parenthesized_expression "(*(int *)(puVar5 + 0x18) != 0)" ( (binary_expression "*(int *)(puVar5 + 0x18) != 0" (pointer_expression "*(int *)(puVar5 + 0x18)" * (cast_expression "(int *)(puVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x18)" ( (binary_expression "puVar5 + 0x18" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }" { (expression_statement "(*pcStack_294)();" (call_expression "(*pcStack_294)()" (parenthesized_expression "(*pcStack_294)" ( (pointer_expression "*pcStack_294" * identifier) )) (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0006b5d4;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }" else (compound_statement "{\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }" { (labeled_statement "LAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);" statement_identifier : (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x626c);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x626c)" identifier = (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" * (cast_expression "(code **)(puStack_2a0 + -0x626c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x626c)" ( (binary_expression "puStack_2a0 + -0x626c" identifier + number_literal) ))))) ;)) }))) (expression_statement "(*pcVar4)(puVar6);" (call_expression "(*pcVar4)(puVar6)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(puVar6)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);" (call_expression "(**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x61dc))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x61dc)" * (pointer_expression "*(code **)(puStack_2a0 + -0x61dc)" * (cast_expression "(code **)(puStack_2a0 + -0x61dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x61dc)" ( (binary_expression "puStack_2a0 + -0x61dc" identifier + number_literal) ))))) )) (argument_list "(puVar6,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x626c))(puVar20);" (call_expression "(**(code **)(puStack_2a0 + -0x626c))(puVar20)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x626c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x626c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" * (cast_expression "(code **)(puStack_2a0 + -0x626c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x626c)" ( (binary_expression "puStack_2a0 + -0x626c" identifier + number_literal) ))))) )) (argument_list "(puVar20)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(1,puVar6,puVar20)" ( number_literal , identifier , identifier ))) ;) (if_statement "if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }" if (parenthesized_expression "(0 < (int)*(int **)(puVar5 + 0x18))" ( (binary_expression "0 < (int)*(int **)(puVar5 + 0x18)" number_literal < (cast_expression "(int)*(int **)(puVar5 + 0x18)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(int **)(puVar5 + 0x18)" * (cast_expression "(int **)(puVar5 + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x18)" ( (binary_expression "puVar5 + 0x18" identifier + number_literal) )))))) )) (compound_statement "{\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }" { (expression_statement "piVar17 = (int *)*piVar25;" (assignment_expression "piVar17 = (int *)*piVar25" identifier = (cast_expression "(int *)*piVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar25" * identifier))) ;) (expression_statement "piVar31 = (int *)0x0;" (assignment_expression "piVar31 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar29 = piVar17;" (assignment_expression "piVar29 = piVar17" identifier = identifier) ;) (do_statement "do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);" do (compound_statement "{\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        }" { (if_statement "if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;" if (parenthesized_expression "((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4))" ( (binary_expression "(*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)" (parenthesized_expression "(*piVar29 != 0)" ( (binary_expression "*piVar29 != 0" (pointer_expression "*piVar29" * identifier) != number_literal) )) && (parenthesized_expression "(*(int *)(*piVar29 + 0xc) == 4)" ( (binary_expression "*(int *)(*piVar29 + 0xc) == 4" (pointer_expression "*(int *)(*piVar29 + 0xc)" * (cast_expression "(int *)(*piVar29 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar29 + 0xc)" ( (binary_expression "*piVar29 + 0xc" (pointer_expression "*piVar29" * identifier) + number_literal) )))) == number_literal) ))) )) (goto_statement "goto LAB_0006b3b8;" goto statement_identifier ;)) (expression_statement "piVar31 = (int *)((int)piVar31 + 1);" (assignment_expression "piVar31 = (int *)((int)piVar31 + 1)" identifier = (cast_expression "(int *)((int)piVar31 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar31 + 1)" ( (binary_expression "(int)piVar31 + 1" (cast_expression "(int)piVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar29 = piVar29 + 1;" (assignment_expression "piVar29 = piVar29 + 1" identifier = (binary_expression "piVar29 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(puVar5 + 0x18) != piVar31)" ( (binary_expression "*(int **)(puVar5 + 0x18) != piVar31" (pointer_expression "*(int **)(puVar5 + 0x18)" * (cast_expression "(int **)(puVar5 + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x18)" ( (binary_expression "puVar5 + 0x18" identifier + number_literal) )))) != identifier) )) ;) })) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(3,puVar20,0)" ( number_literal , identifier , number_literal ))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "puVar6 = (undefined1 *)0xffffffff;" (assignment_expression "puVar6 = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0006b430:\n  puVar30 = puStack_2a0;" statement_identifier : (expression_statement "puVar30 = puStack_2a0;" (assignment_expression "puVar30 = puStack_2a0" identifier = identifier) ;)) (if_statement "if (piStack_18c == (int *)*puVar27) {\n    return puVar6;\n  }" if (parenthesized_expression "(piStack_18c == (int *)*puVar27)" ( (binary_expression "piStack_18c == (int *)*puVar27" identifier == (cast_expression "(int *)*puVar27" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar27" * identifier))) )) (compound_statement "{\n    return puVar6;\n  }" { (return_statement "return puVar6;" return identifier ;) })) (expression_statement "piVar29 = piStack_18c;" (assignment_expression "piVar29 = piStack_18c" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x60b8))();" (call_expression "(**(code **)(puStack_2a0 + -0x60b8))()" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x60b8))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x60b8)" * (pointer_expression "*(code **)(puStack_2a0 + -0x60b8)" * (cast_expression "(code **)(puStack_2a0 + -0x60b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x60b8)" ( (binary_expression "puStack_2a0 + -0x60b8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0006b730:\n  pcVar4 = *(code **)(puVar30 + -0x625c);" statement_identifier : (expression_statement "pcVar4 = *(code **)(puVar30 + -0x625c);" (assignment_expression "pcVar4 = *(code **)(puVar30 + -0x625c)" identifier = (pointer_expression "*(code **)(puVar30 + -0x625c)" * (cast_expression "(code **)(puVar30 + -0x625c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x625c)" ( (binary_expression "puVar30 + -0x625c" identifier + number_literal) ))))) ;)) (expression_statement "pcVar32 = start_job;" (assignment_expression "pcVar32 = start_job" identifier = identifier) ;) (expression_statement "puVar13 = (undefined4 *)0x1;" (assignment_expression "puVar13 = (undefined4 *)0x1" identifier = (cast_expression "(undefined4 *)0x1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar17 = *(int **)(pcVar4 + 0xdada0);" (assignment_expression "piVar17 = *(int **)(pcVar4 + 0xdada0)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xdada0)" * (cast_expression "(int **)(pcVar4 + 0xdada0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdada0)" ( (binary_expression "pcVar4 + 0xdada0" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = (int)piVar29 * 4;" (assignment_expression "iVar11 = (int)piVar29 * 4" identifier = (binary_expression "(int)piVar29 * 4" (cast_expression "(int)piVar29" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "iStack_2dc = *piVar17;" (assignment_expression "iStack_2dc = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (expression_statement "piVar22 = *(int **)(pcVar4 + 0xd9720);" (assignment_expression "piVar22 = *(int **)(pcVar4 + 0xd9720)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd9720)" * (cast_expression "(int **)(pcVar4 + 0xd9720)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd9720)" ( (binary_expression "pcVar4 + 0xd9720" identifier + number_literal) ))))) ;) (expression_statement "puStack_2d8 = puVar20;" (assignment_expression "puStack_2d8 = puVar20" identifier = identifier) ;) (expression_statement "puStack_2d4 = puVar6;" (assignment_expression "puStack_2d4 = puVar6" identifier = identifier) ;) (expression_statement "puStack_2d0 = puVar5;" (assignment_expression "puStack_2d0 = puVar5" identifier = identifier) ;) (expression_statement "piStack_2cc = piVar23;" (assignment_expression "piStack_2cc = piVar23" identifier = identifier) ;) (expression_statement "piStack_2c8 = piVar25;" (assignment_expression "piStack_2c8 = piVar25" identifier = identifier) ;) (expression_statement "puStack_2c4 = puVar27;" (assignment_expression "puStack_2c4 = puVar27" identifier = identifier) ;) (expression_statement "piStack_2c0 = piVar28;" (assignment_expression "piStack_2c0 = piVar28" identifier = identifier) ;) (expression_statement "iStack_2bc = iVar3;" (assignment_expression "iStack_2bc = iVar3" identifier = identifier) ;) (expression_statement "piStack_2b8 = piVar31;" (assignment_expression "piStack_2b8 = piVar31" identifier = identifier) ;) (expression_statement "pcStack_2b4 = pcVar32;" (assignment_expression "pcStack_2b4 = pcVar32" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar4 + 0xdab98))(auStack_3dc);" (call_expression "(**(code **)(pcVar4 + 0xdab98))(auStack_3dc)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdab98))" ( (pointer_expression "**(code **)(pcVar4 + 0xdab98)" * (pointer_expression "*(code **)(pcVar4 + 0xdab98)" * (cast_expression "(code **)(pcVar4 + 0xdab98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdab98)" ( (binary_expression "pcVar4 + 0xdab98" identifier + number_literal) ))))) )) (argument_list "(auStack_3dc)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar4 + 0xdac28))(auStack_3dc,0x12);" (call_expression "(**(code **)(pcVar4 + 0xdac28))(auStack_3dc,0x12)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdac28))" ( (pointer_expression "**(code **)(pcVar4 + 0xdac28)" * (pointer_expression "*(code **)(pcVar4 + 0xdac28)" * (cast_expression "(code **)(pcVar4 + 0xdac28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdac28)" ( (binary_expression "pcVar4 + 0xdac28" identifier + number_literal) ))))) )) (argument_list "(auStack_3dc,0x12)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar4 + 0xdab98))(auStack_35c);" (call_expression "(**(code **)(pcVar4 + 0xdab98))(auStack_35c)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdab98))" ( (pointer_expression "**(code **)(pcVar4 + 0xdab98)" * (pointer_expression "*(code **)(pcVar4 + 0xdab98)" * (cast_expression "(code **)(pcVar4 + 0xdab98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdab98)" ( (binary_expression "pcVar4 + 0xdab98" identifier + number_literal) ))))) )) (argument_list "(auStack_35c)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar4 + 0xdadd8))(1,auStack_3dc,auStack_35c);" (call_expression "(**(code **)(pcVar4 + 0xdadd8))(1,auStack_3dc,auStack_35c)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdadd8))" ( (pointer_expression "**(code **)(pcVar4 + 0xdadd8)" * (pointer_expression "*(code **)(pcVar4 + 0xdadd8)" * (cast_expression "(code **)(pcVar4 + 0xdadd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdadd8)" ( (binary_expression "pcVar4 + 0xdadd8" identifier + number_literal) ))))) )) (argument_list "(1,auStack_3dc,auStack_35c)" ( number_literal , identifier , identifier ))) ;) (expression_statement "iVar3 = *(int *)(*(int *)(*piVar22 + iVar11) + 0xc);" (assignment_expression "iVar3 = *(int *)(*(int *)(*piVar22 + iVar11) + 0xc)" identifier = (pointer_expression "*(int *)(*(int *)(*piVar22 + iVar11) + 0xc)" * (cast_expression "(int *)(*(int *)(*piVar22 + iVar11) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar22 + iVar11) + 0xc)" ( (binary_expression "*(int *)(*piVar22 + iVar11) + 0xc" (pointer_expression "*(int *)(*piVar22 + iVar11)" * (cast_expression "(int *)(*piVar22 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) )))) + number_literal) ))))) ;) (if_statement "if (iVar3 == 4) {\n    puVar20 = (undefined1 *)0xffffffff;\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec));\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);\nLAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }" if (parenthesized_expression "(iVar3 == 4)" ( (binary_expression "iVar3 == 4" identifier == number_literal) )) (compound_statement "{\n    puVar20 = (undefined1 *)0xffffffff;\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec));\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }" { (expression_statement "puVar20 = (undefined1 *)0xffffffff;" (assignment_expression "puVar20 = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5)" identifier = (call_expression "(**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdad5c))" ( (pointer_expression "**(code **)(pcVar4 + 0xdad5c)" * (pointer_expression "*(code **)(pcVar4 + 0xdad5c)" * (cast_expression "(code **)(pcVar4 + 0xdad5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdad5c)" ( (binary_expression "pcVar4 + 0xdad5c" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" * (cast_expression "(int *)(pcVar4 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e3c)" ( (binary_expression "pcVar4 + 0xd8e3c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec));" (call_expression "internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec))" identifier (argument_list "(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec))" ( identifier , (pointer_expression "**(undefined4 **)(pcVar4 + 0xd8fec)" * (pointer_expression "*(undefined4 **)(pcVar4 + 0xd8fec)" * (cast_expression "(undefined4 **)(pcVar4 + 0xd8fec)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8fec)" ( (binary_expression "pcVar4 + 0xd8fec" identifier + number_literal) ))))) ))) ;) (expression_statement "(**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);" (call_expression "(**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdadd8))" ( (pointer_expression "**(code **)(pcVar4 + 0xdadd8)" * (pointer_expression "*(code **)(pcVar4 + 0xdadd8)" * (cast_expression "(code **)(pcVar4 + 0xdadd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdadd8)" ( (binary_expression "pcVar4 + 0xdadd8" identifier + number_literal) ))))) )) (argument_list "(3,auStack_35c,0)" ( number_literal , identifier , number_literal ))) ;) }) (else_clause "else if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);\nLAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }" else (if_statement "if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);\nLAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);\nLAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }" { (if_statement "if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }" if (parenthesized_expression "(iVar3 != 1)" ( (binary_expression "iVar3 != 1" identifier != number_literal) )) (compound_statement "{\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }" { (expression_statement "uStack_3e4 = FUN_000649c8();" (assignment_expression "uStack_3e4 = FUN_000649c8()" identifier = (call_expression "FUN_000649c8()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = *(int *)(*piVar22 + iVar11);" (assignment_expression "iVar8 = *(int *)(*piVar22 + iVar11)" identifier = (pointer_expression "*(int *)(*piVar22 + iVar11)" * (cast_expression "(int *)(*piVar22 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) ))))) ;) (expression_statement "iVar12 = **(int **)(pcVar4 + 0xd8e50);" (assignment_expression "iVar12 = **(int **)(pcVar4 + 0xd8e50)" identifier = (pointer_expression "**(int **)(pcVar4 + 0xd8e50)" * (pointer_expression "*(int **)(pcVar4 + 0xd8e50)" * (cast_expression "(int **)(pcVar4 + 0xd8e50)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8e50)" ( (binary_expression "pcVar4 + 0xd8e50" identifier + number_literal) )))))) ;) (expression_statement "*(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;" (assignment_expression "*(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd" (pointer_expression "*(uint *)(iVar8 + 0x10)" * (cast_expression "(uint *)(iVar8 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar8 + 0x10) & 0xfffffffd" (pointer_expression "*(uint *)(iVar8 + 0x10)" * (cast_expression "(uint *)(iVar8 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }" { (if_statement "if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }" if (parenthesized_expression "(*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29)" ( (binary_expression "*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29" (pointer_expression "*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c)" * (cast_expression "(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar4 + 0xd971c) + 0x2c)" ( (binary_expression "*(int *)(pcVar4 + 0xd971c) + 0x2c" (pointer_expression "*(int *)(pcVar4 + 0xd971c)" * (cast_expression "(int *)(pcVar4 + 0xd971c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd971c)" ( (binary_expression "pcVar4 + 0xd971c" identifier + number_literal) )))) + number_literal) )))) == identifier) )) (compound_statement "{\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }" { (expression_statement "iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;" (assignment_expression "iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144" identifier = (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7144" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" * (cast_expression "(int *)(pcVar4 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e3c)" ( (binary_expression "pcVar4 + 0xd8e3c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }" else (compound_statement "{\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }" { (if_statement "if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;" if (parenthesized_expression "(*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29)" ( (binary_expression "*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29" (pointer_expression "*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30)" * (cast_expression "(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar4 + 0xd971c) + 0x30)" ( (binary_expression "*(int *)(pcVar4 + 0xd971c) + 0x30" (pointer_expression "*(int *)(pcVar4 + 0xd971c)" * (cast_expression "(int *)(pcVar4 + 0xd971c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd971c)" ( (binary_expression "pcVar4 + 0xd971c" identifier + number_literal) )))) + number_literal) )))) != identifier) )) (goto_statement "goto LAB_0006b860;" goto statement_identifier ;)) (expression_statement "iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;" (assignment_expression "iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98" identifier = (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7d98" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" * (cast_expression "(int *)(pcVar4 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e3c)" ( (binary_expression "pcVar4 + 0xd8e3c" identifier + number_literal) )))) + number_literal)) ;) }))) }) (else_clause "else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }" else (compound_statement "{\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }" { (labeled_statement "LAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;" statement_identifier : (expression_statement "iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;" (assignment_expression "iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04" identifier = (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7b04" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" * (cast_expression "(int *)(pcVar4 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e3c)" ( (binary_expression "pcVar4 + 0xd8e3c" identifier + number_literal) )))) + number_literal)) ;)) }))) (expression_statement "piVar31 = *(int **)(iVar8 + 4);" (assignment_expression "piVar31 = *(int **)(iVar8 + 4)" identifier = (pointer_expression "*(int **)(iVar8 + 4)" * (cast_expression "(int **)(iVar8 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;" (call_expression "(**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdabb0))" ( (pointer_expression "**(code **)(pcVar4 + 0xdabb0)" * (pointer_expression "*(code **)(pcVar4 + 0xdabb0)" * (cast_expression "(code **)(pcVar4 + 0xdabb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdabb0)" ( (binary_expression "pcVar4 + 0xdabb0" identifier + number_literal) ))))) )) (argument_list "(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" * (cast_expression "(int *)(pcVar4 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e3c)" ( (binary_expression "pcVar4 + 0xd8e3c" identifier + number_literal) )))) + number_literal) , (binary_expression "(int)piVar29 + 1" (cast_expression "(int)piVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , identifier ))) ;) (expression_statement "piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);" (assignment_expression "piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4)" identifier = (pointer_expression "*(int **)(*(int *)(*piVar22 + iVar11) + 4)" * (cast_expression "(int **)(*(int *)(*piVar22 + iVar11) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*piVar22 + iVar11) + 4)" ( (binary_expression "*(int *)(*piVar22 + iVar11) + 4" (pointer_expression "*(int *)(*piVar22 + iVar11)" * (cast_expression "(int *)(*piVar22 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_0006b898;" goto statement_identifier ;) })) (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5)" identifier = (call_expression "(**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdad5c))" ( (pointer_expression "**(code **)(pcVar4 + 0xdad5c)" * (pointer_expression "*(code **)(pcVar4 + 0xdad5c)" * (cast_expression "(code **)(pcVar4 + 0xdad5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdad5c)" ( (binary_expression "pcVar4 + 0xdad5c" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7db4" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" * (cast_expression "(int *)(pcVar4 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e3c)" ( (binary_expression "pcVar4 + 0xd8e3c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);" (call_expression "internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1)" identifier (argument_list "(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1)" ( identifier , (pointer_expression "**(undefined4 **)(pcVar4 + 0xd8fec)" * (pointer_expression "*(undefined4 **)(pcVar4 + 0xd8fec)" * (cast_expression "(undefined4 **)(pcVar4 + 0xd8fec)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8fec)" ( (binary_expression "pcVar4 + 0xd8fec" identifier + number_literal) ))))) , (binary_expression "(int)piVar29 + 1" (cast_expression "(int)piVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ;) (labeled_statement "LAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;" statement_identifier : (expression_statement "puVar20 = (undefined1 *)0x0;" (assignment_expression "puVar20 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "(**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);" (call_expression "(**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdadd8))" ( (pointer_expression "**(code **)(pcVar4 + 0xdadd8)" * (pointer_expression "*(code **)(pcVar4 + 0xdadd8)" * (cast_expression "(code **)(pcVar4 + 0xdadd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdadd8)" ( (binary_expression "pcVar4 + 0xdadd8" identifier + number_literal) ))))) )) (argument_list "(3,auStack_35c,0)" ( number_literal , identifier , number_literal ))) ;) }) (else_clause "else {\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }" else (compound_statement "{\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }" { (expression_statement "uStack_3e4 = FUN_000649c8();" (assignment_expression "uStack_3e4 = FUN_000649c8()" identifier = (call_expression "FUN_000649c8()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;" (assignment_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd" (pointer_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" * (cast_expression "(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar22 + iVar11) + 0x10)" ( (binary_expression "*(int *)(*piVar22 + iVar11) + 0x10" (pointer_expression "*(int *)(*piVar22 + iVar11)" * (cast_expression "(int *)(*piVar22 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) )))) + number_literal) )))) = (binary_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd" (pointer_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" * (cast_expression "(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar22 + iVar11) + 0x10)" ( (binary_expression "*(int *)(*piVar22 + iVar11) + 0x10" (pointer_expression "*(int *)(*piVar22 + iVar11)" * (cast_expression "(int *)(*piVar22 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) )))) + number_literal) )))) & number_literal)) ;) (expression_statement "FUN_00064368(piVar29);" (call_expression "FUN_00064368(piVar29)" identifier (argument_list "(piVar29)" ( identifier ))) ;) (expression_statement "iVar8 = *(int *)(*piVar22 + iVar11);" (assignment_expression "iVar8 = *(int *)(*piVar22 + iVar11)" identifier = (pointer_expression "*(int *)(*piVar22 + iVar11)" * (cast_expression "(int *)(*piVar22 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) ))))) ;) (expression_statement "piVar23 = *(int **)(iVar8 + 4);" (assignment_expression "piVar23 = *(int **)(iVar8 + 4)" identifier = (pointer_expression "*(int **)(iVar8 + 4)" * (cast_expression "(int **)(iVar8 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;" (assignment_expression "*(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1" (pointer_expression "*(uint *)(iVar8 + 0x10)" * (cast_expression "(uint *)(iVar8 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar8 + 0x10) | 1" (pointer_expression "*(uint *)(iVar8 + 0x10)" * (cast_expression "(uint *)(iVar8 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "piVar31 = piVar23;" (assignment_expression "piVar31 = piVar23" identifier = identifier) ;) (labeled_statement "LAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);" statement_identifier : (expression_statement "iVar12 = *(int *)(pcVar4 + 0xd8e3c);" (assignment_expression "iVar12 = *(int *)(pcVar4 + 0xd8e3c)" identifier = (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" * (cast_expression "(int *)(pcVar4 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e3c)" ( (binary_expression "pcVar4 + 0xd8e3c" identifier + number_literal) ))))) ;)) (expression_statement "iVar8 = *(int *)(pcVar4 + 0xd8e70);" (assignment_expression "iVar8 = *(int *)(pcVar4 + 0xd8e70)" identifier = (pointer_expression "*(int *)(pcVar4 + 0xd8e70)" * (cast_expression "(int *)(pcVar4 + 0xd8e70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e70)" ( (binary_expression "pcVar4 + 0xd8e70" identifier + number_literal) ))))) ;) (expression_statement "iVar26 = *(int *)(pcVar4 + 0xd8e3c);" (assignment_expression "iVar26 = *(int *)(pcVar4 + 0xd8e3c)" identifier = (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" * (cast_expression "(int *)(pcVar4 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e3c)" ( (binary_expression "pcVar4 + 0xd8e3c" identifier + number_literal) ))))) ;) (do_statement "do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);" do (compound_statement "{\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    }" { (expression_statement "iVar15 = piVar31[4];" (assignment_expression "iVar15 = piVar31[4]" identifier = (subscript_expression "piVar31[4]" identifier [ number_literal ])) ;) (if_statement "if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }" if (parenthesized_expression "(piVar31[4] == 0)" ( (binary_expression "piVar31[4] == 0" (subscript_expression "piVar31[4]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar15 = iVar8 + -0x6800;\n      }" { (expression_statement "iVar15 = iVar8 + -0x6800;" (assignment_expression "iVar15 = iVar8 + -0x6800" identifier = (binary_expression "iVar8 + -0x6800" identifier + number_literal)) ;) })) (expression_statement "iVar18 = iVar26 + 0x6720;" (assignment_expression "iVar18 = iVar26 + 0x6720" identifier = (binary_expression "iVar26 + 0x6720" identifier + number_literal)) ;) (if_statement "if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }" if (parenthesized_expression "((int *)*piVar31 == piVar23)" ( (binary_expression "(int *)*piVar31 == piVar23" (cast_expression "(int *)*piVar31" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar31" * identifier)) == identifier) )) (compound_statement "{\n        iVar18 = iVar8 + -0x6800;\n      }" { (expression_statement "iVar18 = iVar8 + -0x6800;" (assignment_expression "iVar18 = iVar8 + -0x6800" identifier = (binary_expression "iVar8 + -0x6800" identifier + number_literal)) ;) })) (expression_statement "(**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);" (call_expression "(**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdabb0))" ( (pointer_expression "**(code **)(pcVar4 + 0xdabb0)" * (pointer_expression "*(code **)(pcVar4 + 0xdabb0)" * (cast_expression "(code **)(pcVar4 + 0xdabb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdabb0)" ( (binary_expression "pcVar4 + 0xdabb0" identifier + number_literal) ))))) )) (argument_list "(1,iVar12 + 0x6298,iVar15,iVar18)" ( number_literal , (binary_expression "iVar12 + 0x6298" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "piVar31 = (int *)*piVar31;" (assignment_expression "piVar31 = (int *)*piVar31" identifier = (cast_expression "(int *)*piVar31" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar31" * identifier))) ;) (expression_statement "puVar27 = *(undefined4 **)(*piVar22 + iVar11);" (assignment_expression "puVar27 = *(undefined4 **)(*piVar22 + iVar11)" identifier = (pointer_expression "*(undefined4 **)(*piVar22 + iVar11)" * (cast_expression "(undefined4 **)(*piVar22 + iVar11)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) ))))) ;) (expression_statement "piVar23 = (int *)puVar27[1];" (assignment_expression "piVar23 = (int *)puVar27[1]" identifier = (cast_expression "(int *)puVar27[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[1]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(piVar23 != piVar31)" ( (binary_expression "piVar23 != piVar31" identifier != identifier) )) ;) (if_statement "if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }" { (expression_statement "(**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);" (call_expression "(**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdabb0))" ( (pointer_expression "**(code **)(pcVar4 + 0xdabb0)" * (pointer_expression "*(code **)(pcVar4 + 0xdabb0)" * (cast_expression "(code **)(pcVar4 + 0xdabb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdabb0)" ( (binary_expression "pcVar4 + 0xdabb0" identifier + number_literal) ))))) )) (argument_list "(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7b74" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" * (cast_expression "(int *)(pcVar4 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e3c)" ( (binary_expression "pcVar4 + 0xd8e3c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "puVar27 = *(undefined4 **)(*piVar22 + iVar11);" (assignment_expression "puVar27 = *(undefined4 **)(*piVar22 + iVar11)" identifier = (pointer_expression "*(undefined4 **)(*piVar22 + iVar11)" * (cast_expression "(undefined4 **)(*piVar22 + iVar11)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) ))))) ;) })) (expression_statement "uVar19 = *puVar27;" (assignment_expression "uVar19 = *puVar27" identifier = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);" (assignment_expression "iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19)" identifier = (call_expression "(**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdae0c))" ( (pointer_expression "**(code **)(pcVar4 + 0xdae0c)" * (pointer_expression "*(code **)(pcVar4 + 0xdae0c)" * (cast_expression "(code **)(pcVar4 + 0xdae0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdae0c)" ( (binary_expression "pcVar4 + 0xdae0c" identifier + number_literal) ))))) )) (argument_list "(uStack_3e4,uVar19)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }" { (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19)" identifier = (call_expression "(**(code **)(pcVar4 + 0xd9234))(uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xd9234))" ( (pointer_expression "**(code **)(pcVar4 + 0xd9234)" * (pointer_expression "*(code **)(pcVar4 + 0xd9234)" * (cast_expression "(code **)(pcVar4 + 0xd9234)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd9234)" ( (binary_expression "pcVar4 + 0xd9234" identifier + number_literal) ))))) )) (argument_list "(uVar19)" ( identifier )))) ;) (expression_statement "(**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);" (call_expression "(**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdabb0))" ( (pointer_expression "**(code **)(pcVar4 + 0xdabb0)" * (pointer_expression "*(code **)(pcVar4 + 0xdabb0)" * (cast_expression "(code **)(pcVar4 + 0xdabb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdabb0)" ( (binary_expression "pcVar4 + 0xdabb0" identifier + number_literal) ))))) )) (argument_list "(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7de0" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" * (cast_expression "(int *)(pcVar4 + 0xd8e3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e3c)" ( (binary_expression "pcVar4 + 0xd8e3c" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "(**(code **)(pcVar4 + 0xdac04))(10);" (call_expression "(**(code **)(pcVar4 + 0xdac04))(10)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdac04))" ( (pointer_expression "**(code **)(pcVar4 + 0xdac04)" * (pointer_expression "*(code **)(pcVar4 + 0xdac04)" * (cast_expression "(code **)(pcVar4 + 0xdac04)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdac04)" ( (binary_expression "pcVar4 + 0xdac04" identifier + number_literal) ))))) )) (argument_list "(10)" ( number_literal ))) ;) (if_statement "if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }" { (if_statement "if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }" { (expression_statement "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;" (assignment_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe" (pointer_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" * (cast_expression "(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar22 + iVar11) + 0x10)" ( (binary_expression "*(int *)(*piVar22 + iVar11) + 0x10" (pointer_expression "*(int *)(*piVar22 + iVar11)" * (cast_expression "(int *)(*piVar22 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) )))) + number_literal) )))) = (binary_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe" (pointer_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" * (cast_expression "(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar22 + iVar11) + 0x10)" ( (binary_expression "*(int *)(*piVar22 + iVar11) + 0x10" (pointer_expression "*(int *)(*piVar22 + iVar11)" * (cast_expression "(int *)(*piVar22 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) )))) + number_literal) )))) & number_literal)) ;) (goto_statement "goto LAB_0006b9c8;" goto statement_identifier ;) })) (expression_statement "get_tty_state();" (call_expression "get_tty_state()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar8 = *(int *)(pcVar4 + 0xd9a18);" (assignment_expression "iVar8 = *(int *)(pcVar4 + 0xd9a18)" identifier = (pointer_expression "*(int *)(pcVar4 + 0xd9a18)" * (cast_expression "(int *)(pcVar4 + 0xd9a18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd9a18)" ( (binary_expression "pcVar4 + 0xd9a18" identifier + number_literal) ))))) ;) (expression_statement "puVar24 = (undefined4 *)(iVar8 + -0x70d0);" (assignment_expression "puVar24 = (undefined4 *)(iVar8 + -0x70d0)" identifier = (cast_expression "(undefined4 *)(iVar8 + -0x70d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x70d0)" ( (binary_expression "iVar8 + -0x70d0" identifier + number_literal) )))) ;) (expression_statement "puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);" (assignment_expression "puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8)" ( (binary_expression "*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8" (pointer_expression "*(int *)(pcVar4 + 0xd8e2c)" * (cast_expression "(int *)(pcVar4 + 0xd8e2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e2c)" ( (binary_expression "pcVar4 + 0xd8e2c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar27 = puVar24;" (assignment_expression "puVar27 = puVar24" identifier = identifier) ;) (expression_statement "puVar9 = puVar21;" (assignment_expression "puVar9 = puVar21" identifier = identifier) ;) (do_statement "do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));" do (compound_statement "{\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      }" { (expression_statement "puVar7 = puVar27 + 4;" (assignment_expression "puVar7 = puVar27 + 4" identifier = (binary_expression "puVar27 + 4" identifier + number_literal)) ;) (expression_statement "puVar10 = puVar9 + 4;" (assignment_expression "puVar10 = puVar9 + 4" identifier = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "uVar16 = puVar27[1];" (assignment_expression "uVar16 = puVar27[1]" identifier = (subscript_expression "puVar27[1]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = puVar27[2];" (assignment_expression "uVar14 = puVar27[2]" identifier = (subscript_expression "puVar27[2]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar27[3];" (assignment_expression "uVar19 = puVar27[3]" identifier = (subscript_expression "puVar27[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar9 = *puVar27;" (assignment_expression "*puVar9 = *puVar27" (pointer_expression "*puVar9" * identifier) = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "puVar9[1] = uVar16;" (assignment_expression "puVar9[1] = uVar16" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[2] = uVar14;" (assignment_expression "puVar9[2] = uVar14" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[3] = uVar19;" (assignment_expression "puVar9[3] = uVar19" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27 = puVar7;" (assignment_expression "puVar27 = puVar7" identifier = identifier) ;) (expression_statement "puVar9 = puVar10;" (assignment_expression "puVar9 = puVar10" identifier = identifier) ;) }) while (parenthesized_expression "(puVar7 != (undefined4 *)(iVar8 + -0x70a0))" ( (binary_expression "puVar7 != (undefined4 *)(iVar8 + -0x70a0)" identifier != (cast_expression "(undefined4 *)(iVar8 + -0x70a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x70a0)" ( (binary_expression "iVar8 + -0x70a0" identifier + number_literal) )))) )) ;) (expression_statement "iVar8 = *piVar22;" (assignment_expression "iVar8 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "*puVar10 = *puVar7;" (assignment_expression "*puVar10 = *puVar7" (pointer_expression "*puVar10" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "iVar8 = *(int *)(iVar8 + iVar11);" (assignment_expression "iVar8 = *(int *)(iVar8 + iVar11)" identifier = (pointer_expression "*(int *)(iVar8 + iVar11)" * (cast_expression "(int *)(iVar8 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar11)" ( (binary_expression "iVar8 + iVar11" identifier + identifier) ))))) ;) (if_statement "if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;" if (parenthesized_expression "((*(uint *)(iVar8 + 0x10) & 4) != 0)" ( (binary_expression "(*(uint *)(iVar8 + 0x10) & 4) != 0" (parenthesized_expression "(*(uint *)(iVar8 + 0x10) & 4)" ( (binary_expression "*(uint *)(iVar8 + 0x10) & 4" (pointer_expression "*(uint *)(iVar8 + 0x10)" * (cast_expression "(uint *)(iVar8 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0006bce0;" goto statement_identifier ;)) }) (else_clause "else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }" else (compound_statement "{\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }" { (expression_statement "iVar8 = *(int *)(*piVar22 + iVar11);" (assignment_expression "iVar8 = *(int *)(*piVar22 + iVar11)" identifier = (pointer_expression "*(int *)(*piVar22 + iVar11)" * (cast_expression "(int *)(*piVar22 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar22 + iVar11)" ( (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" * identifier) + identifier) ))))) ;) (expression_statement "piVar23 = *(int **)(iVar8 + 4);" (assignment_expression "piVar23 = *(int **)(iVar8 + 4)" identifier = (pointer_expression "*(int **)(iVar8 + 4)" * (cast_expression "(int **)(iVar8 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "piVar31 = piVar23;" (assignment_expression "piVar31 = piVar23" identifier = identifier) ;) (do_statement "do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);" do (compound_statement "{\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      }" { (if_statement "if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }" if (parenthesized_expression "(*(char *)((int)piVar31 + 0xb) == '\x7f')" ( (binary_expression "*(char *)((int)piVar31 + 0xb) == '\x7f'" (pointer_expression "*(char *)((int)piVar31 + 0xb)" * (cast_expression "(char *)((int)piVar31 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar31 + 0xb)" ( (binary_expression "(int)piVar31 + 0xb" (cast_expression "(int)piVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\x7f'" ' escape_sequence ')) )) (compound_statement "{\n          piVar31[3] = 1;\n        }" { (expression_statement "piVar31[3] = 1;" (assignment_expression "piVar31[3] = 1" (subscript_expression "piVar31[3]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "piVar31 = (int *)*piVar31;" (assignment_expression "piVar31 = (int *)*piVar31" identifier = (cast_expression "(int *)*piVar31" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar31" * identifier))) ;) }) while (parenthesized_expression "(piVar23 != piVar31)" ( (binary_expression "piVar23 != piVar31" identifier != identifier) )) ;) (expression_statement "*(undefined4 *)(iVar8 + 0xc) = 1;" (assignment_expression "*(undefined4 *)(iVar8 + 0xc) = 1" (pointer_expression "*(undefined4 *)(iVar8 + 0xc)" * (cast_expression "(undefined4 *)(iVar8 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }" { (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xdad38);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xdad38)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xdad38)" * (cast_expression "(code **)(pcVar4 + 0xdad38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdad38)" ( (binary_expression "pcVar4 + 0xdad38" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;" (assignment_expression "*(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2" (pointer_expression "*(uint *)(iVar8 + 0x10)" * (cast_expression "(uint *)(iVar8 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar8 + 0x10) & 0xfffffffe | 2" (binary_expression "*(uint *)(iVar8 + 0x10) & 0xfffffffe" (pointer_expression "*(uint *)(iVar8 + 0x10)" * (cast_expression "(uint *)(iVar8 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "(*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);" (call_expression "(*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(*(undefined4 *)(iVar8 + 8),0x19)" ( (pointer_expression "*(undefined4 *)(iVar8 + 8)" * (cast_expression "(undefined4 *)(iVar8 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) , number_literal ))) ;) (labeled_statement "LAB_0006b9c8:\n        FUN_00064490();" statement_identifier : (expression_statement "FUN_00064490();" (call_expression "FUN_00064490()" identifier (argument_list "()" ( ))) ;)) (goto_statement "goto LAB_0006b9dc;" goto statement_identifier ;) })) (expression_statement "get_tty_state();" (call_expression "get_tty_state()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar8 = *(int *)(pcVar4 + 0xd9a18);" (assignment_expression "iVar8 = *(int *)(pcVar4 + 0xd9a18)" identifier = (pointer_expression "*(int *)(pcVar4 + 0xd9a18)" * (cast_expression "(int *)(pcVar4 + 0xd9a18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd9a18)" ( (binary_expression "pcVar4 + 0xd9a18" identifier + number_literal) ))))) ;) (expression_statement "puVar24 = (undefined4 *)(iVar8 + -0x70d0);" (assignment_expression "puVar24 = (undefined4 *)(iVar8 + -0x70d0)" identifier = (cast_expression "(undefined4 *)(iVar8 + -0x70d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x70d0)" ( (binary_expression "iVar8 + -0x70d0" identifier + number_literal) )))) ;) (expression_statement "puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);" (assignment_expression "puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8)" ( (binary_expression "*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8" (pointer_expression "*(int *)(pcVar4 + 0xd8e2c)" * (cast_expression "(int *)(pcVar4 + 0xd8e2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd8e2c)" ( (binary_expression "pcVar4 + 0xd8e2c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar27 = puVar24;" (assignment_expression "puVar27 = puVar24" identifier = identifier) ;) (expression_statement "puVar9 = puVar21;" (assignment_expression "puVar9 = puVar21" identifier = identifier) ;) (do_statement "do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));" do (compound_statement "{\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      }" { (expression_statement "puVar7 = puVar27 + 4;" (assignment_expression "puVar7 = puVar27 + 4" identifier = (binary_expression "puVar27 + 4" identifier + number_literal)) ;) (expression_statement "puVar10 = puVar9 + 4;" (assignment_expression "puVar10 = puVar9 + 4" identifier = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "uVar16 = puVar27[1];" (assignment_expression "uVar16 = puVar27[1]" identifier = (subscript_expression "puVar27[1]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = puVar27[2];" (assignment_expression "uVar14 = puVar27[2]" identifier = (subscript_expression "puVar27[2]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar27[3];" (assignment_expression "uVar19 = puVar27[3]" identifier = (subscript_expression "puVar27[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar9 = *puVar27;" (assignment_expression "*puVar9 = *puVar27" (pointer_expression "*puVar9" * identifier) = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "puVar9[1] = uVar16;" (assignment_expression "puVar9[1] = uVar16" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[2] = uVar14;" (assignment_expression "puVar9[2] = uVar14" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[3] = uVar19;" (assignment_expression "puVar9[3] = uVar19" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27 = puVar7;" (assignment_expression "puVar27 = puVar7" identifier = identifier) ;) (expression_statement "puVar9 = puVar10;" (assignment_expression "puVar9 = puVar10" identifier = identifier) ;) }) while (parenthesized_expression "(puVar7 != (undefined4 *)(iVar8 + -0x70a0))" ( (binary_expression "puVar7 != (undefined4 *)(iVar8 + -0x70a0)" identifier != (cast_expression "(undefined4 *)(iVar8 + -0x70a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x70a0)" ( (binary_expression "iVar8 + -0x70a0" identifier + number_literal) )))) )) ;) (expression_statement "iVar8 = *piVar22;" (assignment_expression "iVar8 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "*puVar10 = *puVar7;" (assignment_expression "*puVar10 = *puVar7" (pointer_expression "*puVar10" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "iVar8 = *(int *)(iVar8 + iVar11);" (assignment_expression "iVar8 = *(int *)(iVar8 + iVar11)" identifier = (pointer_expression "*(int *)(iVar8 + iVar11)" * (cast_expression "(int *)(iVar8 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar11)" ( (binary_expression "iVar8 + iVar11" identifier + identifier) ))))) ;) (if_statement "if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }" if (parenthesized_expression "((*(uint *)(iVar8 + 0x10) & 4) == 0)" ( (binary_expression "(*(uint *)(iVar8 + 0x10) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar8 + 0x10) & 4)" ( (binary_expression "*(uint *)(iVar8 + 0x10) & 4" (pointer_expression "*(uint *)(iVar8 + 0x10)" * (cast_expression "(uint *)(iVar8 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar3 = *piVar22;\n      }" { (expression_statement "iVar3 = *piVar22;" (assignment_expression "iVar3 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) }) (else_clause "else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }" else (compound_statement "{\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }" { (labeled_statement "LAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);" statement_identifier : (expression_statement "give_terminal_to(*(undefined4 *)(iVar8 + 8),0);" (call_expression "give_terminal_to(*(undefined4 *)(iVar8 + 8),0)" identifier (argument_list "(*(undefined4 *)(iVar8 + 8),0)" ( (pointer_expression "*(undefined4 *)(iVar8 + 8)" * (cast_expression "(undefined4 *)(iVar8 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) , number_literal ))) ;)) (if_statement "if (iVar3 == 1) goto LAB_0006bbc8;" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0006bbc8;" goto statement_identifier ;)) (expression_statement "iVar3 = *piVar22;" (assignment_expression "iVar3 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) }))) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xdad38);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xdad38)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xdad38)" * (cast_expression "(code **)(pcVar4 + 0xdad38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdad38)" ( (binary_expression "pcVar4 + 0xdad38" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(iVar3 + iVar11);" (assignment_expression "iVar3 = *(int *)(iVar3 + iVar11)" identifier = (pointer_expression "*(int *)(iVar3 + iVar11)" * (cast_expression "(int *)(iVar3 + iVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + iVar11)" ( (binary_expression "iVar3 + iVar11" identifier + identifier) ))))) ;) (expression_statement "*(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;" (assignment_expression "*(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2" (pointer_expression "*(uint *)(iVar3 + 0x10)" * (cast_expression "(uint *)(iVar3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar3 + 0x10) | 2" (pointer_expression "*(uint *)(iVar3 + 0x10)" * (cast_expression "(uint *)(iVar3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "(*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);" (call_expression "(*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(*(undefined4 *)(iVar3 + 8),0x19)" ( (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) , number_literal ))) ;) }))) (labeled_statement "LAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);" statement_identifier : (expression_statement "iVar3 = FUN_00065a6c(piVar29);" (assignment_expression "iVar3 = FUN_00065a6c(piVar29)" identifier = (call_expression "FUN_00065a6c(piVar29)" identifier (argument_list "(piVar29)" ( identifier )))) ;)) (expression_statement "uVar19 = *(undefined4 *)(iVar3 + 4);" (assignment_expression "uVar19 = *(undefined4 *)(iVar3 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + 4)" * (cast_expression "(undefined4 *)(iVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);" (call_expression "(**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdadd8))" ( (pointer_expression "**(code **)(pcVar4 + 0xdadd8)" * (pointer_expression "*(code **)(pcVar4 + 0xdadd8)" * (cast_expression "(code **)(pcVar4 + 0xdadd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdadd8)" ( (binary_expression "pcVar4 + 0xdadd8" identifier + number_literal) ))))) )) (argument_list "(3,auStack_35c,0)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "puVar20 = (undefined1 *)wait_for(uVar19);" (assignment_expression "puVar20 = (undefined1 *)wait_for(uVar19)" identifier = (cast_expression "(undefined1 *)wait_for(uVar19)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "wait_for(uVar19)" identifier (argument_list "(uVar19)" ( identifier ))))) ;) (expression_statement "puVar27 = puVar21;" (assignment_expression "puVar27 = puVar21" identifier = identifier) ;) (do_statement "do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);" do (compound_statement "{\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    }" { (expression_statement "puVar7 = puVar27 + 4;" (assignment_expression "puVar7 = puVar27 + 4" identifier = (binary_expression "puVar27 + 4" identifier + number_literal)) ;) (expression_statement "puVar9 = puVar24 + 4;" (assignment_expression "puVar9 = puVar24 + 4" identifier = (binary_expression "puVar24 + 4" identifier + number_literal)) ;) (expression_statement "uVar16 = puVar27[1];" (assignment_expression "uVar16 = puVar27[1]" identifier = (subscript_expression "puVar27[1]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = puVar27[2];" (assignment_expression "uVar14 = puVar27[2]" identifier = (subscript_expression "puVar27[2]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar27[3];" (assignment_expression "uVar19 = puVar27[3]" identifier = (subscript_expression "puVar27[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar24 = *puVar27;" (assignment_expression "*puVar24 = *puVar27" (pointer_expression "*puVar24" * identifier) = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "puVar24[1] = uVar16;" (assignment_expression "puVar24[1] = uVar16" (subscript_expression "puVar24[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar24[2] = uVar14;" (assignment_expression "puVar24[2] = uVar14" (subscript_expression "puVar24[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar24[3] = uVar19;" (assignment_expression "puVar24[3] = uVar19" (subscript_expression "puVar24[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar24 = puVar9;" (assignment_expression "puVar24 = puVar9" identifier = identifier) ;) (expression_statement "puVar27 = puVar7;" (assignment_expression "puVar27 = puVar7" identifier = identifier) ;) }) while (parenthesized_expression "(puVar7 != puVar21 + 0xc)" ( (binary_expression "puVar7 != puVar21 + 0xc" identifier != (binary_expression "puVar21 + 0xc" identifier + number_literal)) )) ;) (expression_statement "*puVar9 = *puVar7;" (assignment_expression "*puVar9 = *puVar7" (pointer_expression "*puVar9" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "set_tty_state();" (call_expression "set_tty_state()" identifier (argument_list "()" ( ))) ;) }))))) (if_statement "if (iStack_2dc == *piVar17) {\n    return puVar20;\n  }" if (parenthesized_expression "(iStack_2dc == *piVar17)" ( (binary_expression "iStack_2dc == *piVar17" identifier == (pointer_expression "*piVar17" * identifier)) )) (compound_statement "{\n    return puVar20;\n  }" { (return_statement "return puVar20;" return identifier ;) })) (expression_statement "pcVar4 = *(code **)(pcVar4 + 0xdad4c);" (assignment_expression "pcVar4 = *(code **)(pcVar4 + 0xdad4c)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xdad4c)" * (cast_expression "(code **)(pcVar4 + 0xdad4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xdad4c)" ( (binary_expression "pcVar4 + 0xdad4c" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = iStack_2dc;" (assignment_expression "iVar3 = iStack_2dc" identifier = identifier) ;) (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar31 = *(int **)(pcVar4 + 0xd8b10);" (assignment_expression "piVar31 = *(int **)(pcVar4 + 0xd8b10)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd8b10)" * (cast_expression "(int **)(pcVar4 + 0xd8b10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8b10)" ( (binary_expression "pcVar4 + 0xd8b10" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = (**(code **)(pcVar4 + 0xda6dc))();" (assignment_expression "iVar11 = (**(code **)(pcVar4 + 0xda6dc))()" identifier = (call_expression "(**(code **)(pcVar4 + 0xda6dc))()" (parenthesized_expression "(**(code **)(pcVar4 + 0xda6dc))" ( (pointer_expression "**(code **)(pcVar4 + 0xda6dc)" * (pointer_expression "*(code **)(pcVar4 + 0xda6dc)" * (cast_expression "(code **)(pcVar4 + 0xda6dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda6dc)" ( (binary_expression "pcVar4 + 0xda6dc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*piVar31 = iVar11;" (assignment_expression "*piVar31 = iVar11" (pointer_expression "*piVar31" * identifier) = identifier) ;) (if_statement "if (iVar11 == -1) {\n    uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5);\n    sys_error(uVar19);\n    (**(code **)(pcVar4 + 0xda620))(1);\nLAB_0006c3c8:\n    uVar19 = *puVar13;\nLAB_0006be24:\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);\n    iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19);\n    *piVar22 = iVar3;\n    if (iVar3 != -1) goto LAB_0006bf80;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 == 0) goto LAB_0006bf08;\nLAB_0006be5c:\n    iVar3 = *piVar22;\n  }\n  else {\n    piVar29 = *(int **)(pcVar4 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);\n    uVar19 = *puVar13;\n    if (iVar3 == 0 && *piVar29 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar22 = *(int **)(pcVar4 + 0xd93fc);\n    iVar3 = **(int **)(pcVar4 + 0xd87e4);\n    *piVar22 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }\n    else {\n      iVar3 = *piVar22;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar22 = iVar3;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar32)();\n    pcVar32 = *(code **)(pcVar4 + 0xda4fc);\n    *piVar31 = iVar3;\n    (*pcVar32)(0,iVar3);\n    iVar3 = *piVar22;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }\n  }" if (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) )) (compound_statement "{\n    uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5);\n    sys_error(uVar19);\n    (**(code **)(pcVar4 + 0xda620))(1);\nLAB_0006c3c8:\n    uVar19 = *puVar13;\nLAB_0006be24:\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);\n    iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19);\n    *piVar22 = iVar3;\n    if (iVar3 != -1) goto LAB_0006bf80;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 == 0) goto LAB_0006bf08;\nLAB_0006be5c:\n    iVar3 = *piVar22;\n  }" { (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda6fc))" ( (pointer_expression "**(code **)(pcVar4 + 0xda6fc)" * (pointer_expression "*(code **)(pcVar4 + 0xda6fc)" * (cast_expression "(code **)(pcVar4 + 0xda6fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda6fc)" ( (binary_expression "pcVar4 + 0xda6fc" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0xd87dc) + 0x7dec" (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" * (cast_expression "(int *)(pcVar4 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd87dc)" ( (binary_expression "pcVar4 + 0xd87dc" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "sys_error(uVar19);" (call_expression "sys_error(uVar19)" identifier (argument_list "(uVar19)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar4 + 0xda620))(1);" (call_expression "(**(code **)(pcVar4 + 0xda620))(1)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda620))" ( (pointer_expression "**(code **)(pcVar4 + 0xda620)" * (pointer_expression "*(code **)(pcVar4 + 0xda620)" * (cast_expression "(code **)(pcVar4 + 0xda620)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda620)" ( (binary_expression "pcVar4 + 0xda620" identifier + number_literal) ))))) )) (argument_list "(1)" ( number_literal ))) ;) (labeled_statement "LAB_0006c3c8:\n    uVar19 = *puVar13;" statement_identifier : (expression_statement "uVar19 = *puVar13;" (assignment_expression "uVar19 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;)) (labeled_statement "LAB_0006be24:\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);" statement_identifier : (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda58c))(uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda58c))" ( (pointer_expression "**(code **)(pcVar4 + 0xda58c)" * (pointer_expression "*(code **)(pcVar4 + 0xda58c)" * (cast_expression "(code **)(pcVar4 + 0xda58c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda58c)" ( (binary_expression "pcVar4 + 0xda58c" identifier + number_literal) ))))) )) (argument_list "(uVar19)" ( identifier )))) ;)) (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19);" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda780))(uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda780))" ( (pointer_expression "**(code **)(pcVar4 + 0xda780)" * (pointer_expression "*(code **)(pcVar4 + 0xda780)" * (cast_expression "(code **)(pcVar4 + 0xda780)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda780)" ( (binary_expression "pcVar4 + 0xda780" identifier + number_literal) ))))) )) (argument_list "(uVar19)" ( identifier )))) ;) (expression_statement "*piVar22 = iVar3;" (assignment_expression "*piVar22 = iVar3" (pointer_expression "*piVar22" * identifier) = identifier) ;) (if_statement "if (iVar3 != -1) goto LAB_0006bf80;" if (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0006bf80;" goto statement_identifier ;)) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda670);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda670)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda670)" * (cast_expression "(code **)(pcVar4 + 0xda670)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda670)" ( (binary_expression "pcVar4 + 0xda670" identifier + number_literal) ))))) ;) (if_statement "if (*piVar31 == 0) goto LAB_0006bf08;" if (parenthesized_expression "(*piVar31 == 0)" ( (binary_expression "*piVar31 == 0" (pointer_expression "*piVar31" * identifier) == number_literal) )) (goto_statement "goto LAB_0006bf08;" goto statement_identifier ;)) (labeled_statement "LAB_0006be5c:\n    iVar3 = *piVar22;" statement_identifier : (expression_statement "iVar3 = *piVar22;" (assignment_expression "iVar3 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;)) }) (else_clause "else {\n    piVar29 = *(int **)(pcVar4 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);\n    uVar19 = *puVar13;\n    if (iVar3 == 0 && *piVar29 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar22 = *(int **)(pcVar4 + 0xd93fc);\n    iVar3 = **(int **)(pcVar4 + 0xd87e4);\n    *piVar22 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }\n    else {\n      iVar3 = *piVar22;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar22 = iVar3;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar32)();\n    pcVar32 = *(code **)(pcVar4 + 0xda4fc);\n    *piVar31 = iVar3;\n    (*pcVar32)(0,iVar3);\n    iVar3 = *piVar22;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }\n  }" else (compound_statement "{\n    piVar29 = *(int **)(pcVar4 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);\n    uVar19 = *puVar13;\n    if (iVar3 == 0 && *piVar29 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar22 = *(int **)(pcVar4 + 0xd93fc);\n    iVar3 = **(int **)(pcVar4 + 0xd87e4);\n    *piVar22 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }\n    else {\n      iVar3 = *piVar22;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar22 = iVar3;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar32)();\n    pcVar32 = *(code **)(pcVar4 + 0xda4fc);\n    *piVar31 = iVar3;\n    (*pcVar32)(0,iVar3);\n    iVar3 = *piVar22;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }\n  }" { (expression_statement "piVar29 = *(int **)(pcVar4 + 0xd87f4);" (assignment_expression "piVar29 = *(int **)(pcVar4 + 0xd87f4)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd87f4)" * (cast_expression "(int **)(pcVar4 + 0xd87f4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd87f4)" ( (binary_expression "pcVar4 + 0xd87f4" identifier + number_literal) ))))) ;) (expression_statement "puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);" (assignment_expression "puVar13 = *(undefined4 **)(pcVar4 + 0xda77c)" identifier = (pointer_expression "*(undefined4 **)(pcVar4 + 0xda77c)" * (cast_expression "(undefined4 **)(pcVar4 + 0xda77c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda77c)" ( (binary_expression "pcVar4 + 0xda77c" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = *puVar13;" (assignment_expression "uVar19 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (if_statement "if (iVar3 == 0 && *piVar29 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }" if (parenthesized_expression "(iVar3 == 0 && *piVar29 == 0)" ( (binary_expression "iVar3 == 0 && *piVar29 == 0" (binary_expression "iVar3 == 0" identifier == number_literal) && (binary_expression "*piVar29 == 0" (pointer_expression "*piVar29" * identifier) == number_literal)) )) (compound_statement "{\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }" { (expression_statement "piVar23 = *(int **)(pcVar4 + 0xd8b0c);" (assignment_expression "piVar23 = *(int **)(pcVar4 + 0xd8b0c)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd8b0c)" * (cast_expression "(int **)(pcVar4 + 0xd8b0c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8b0c)" ( (binary_expression "pcVar4 + 0xd8b0c" identifier + number_literal) ))))) ;) (expression_statement "puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);" (assignment_expression "puVar27 = *(undefined4 **)(pcVar4 + 0xd9070)" identifier = (pointer_expression "*(undefined4 **)(pcVar4 + 0xd9070)" * (cast_expression "(undefined4 **)(pcVar4 + 0xd9070)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd9070)" ( (binary_expression "pcVar4 + 0xd9070" identifier + number_literal) ))))) ;) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda58c);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda58c)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda58c)" * (cast_expression "(code **)(pcVar4 + 0xda58c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda58c)" ( (binary_expression "pcVar4 + 0xda58c" identifier + number_literal) ))))) ;) (expression_statement "piVar22 = *(int **)(pcVar4 + 0xd93fc);" (assignment_expression "piVar22 = *(int **)(pcVar4 + 0xd93fc)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd93fc)" * (cast_expression "(int **)(pcVar4 + 0xd93fc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd93fc)" ( (binary_expression "pcVar4 + 0xd93fc" identifier + number_literal) ))))) ;) (expression_statement "*piVar23 = 0;" (assignment_expression "*piVar23 = 0" (pointer_expression "*piVar23" * identifier) = number_literal) ;) (expression_statement "*puVar27 = 0xffffffff;" (assignment_expression "*puVar27 = 0xffffffff" (pointer_expression "*puVar27" * identifier) = number_literal) ;) (expression_statement "iVar3 = (*pcVar32)(uVar19);" (assignment_expression "iVar3 = (*pcVar32)(uVar19)" identifier = (call_expression "(*pcVar32)(uVar19)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(uVar19)" ( identifier )))) ;) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda598);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda598)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda598)" * (cast_expression "(code **)(pcVar4 + 0xda598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda598)" ( (binary_expression "pcVar4 + 0xda598" identifier + number_literal) ))))) ;) (expression_statement "*piVar22 = iVar3;" (assignment_expression "*piVar22 = iVar3" (pointer_expression "*piVar22" * identifier) = identifier) ;) (expression_statement "iVar3 = (*pcVar32)(iVar3);" (assignment_expression "iVar3 = (*pcVar32)(iVar3)" identifier = (call_expression "(*pcVar32)(iVar3)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "iVar11 = *piVar31;" (assignment_expression "iVar11 = *piVar31" identifier = (pointer_expression "*piVar31" * identifier)) ;) (expression_statement "**(int **)(pcVar4 + 0xd9434) = iVar3;" (assignment_expression "**(int **)(pcVar4 + 0xd9434) = iVar3" (pointer_expression "**(int **)(pcVar4 + 0xd9434)" * (pointer_expression "*(int **)(pcVar4 + 0xd9434)" * (cast_expression "(int **)(pcVar4 + 0xd9434)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd9434)" ( (binary_expression "pcVar4 + 0xd9434" identifier + number_literal) ))))) = identifier) ;) (goto_statement "goto LAB_0006bff4;" goto statement_identifier ;) })) (expression_statement "piVar22 = *(int **)(pcVar4 + 0xd93fc);" (assignment_expression "piVar22 = *(int **)(pcVar4 + 0xd93fc)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd93fc)" * (cast_expression "(int **)(pcVar4 + 0xd93fc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd93fc)" ( (binary_expression "pcVar4 + 0xd93fc" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = **(int **)(pcVar4 + 0xd87e4);" (assignment_expression "iVar3 = **(int **)(pcVar4 + 0xd87e4)" identifier = (pointer_expression "**(int **)(pcVar4 + 0xd87e4)" * (pointer_expression "*(int **)(pcVar4 + 0xd87e4)" * (cast_expression "(int **)(pcVar4 + 0xd87e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd87e4)" ( (binary_expression "pcVar4 + 0xd87e4" identifier + number_literal) )))))) ;) (expression_statement "*piVar22 = -1;" (assignment_expression "*piVar22 = -1" (pointer_expression "*piVar22" * identifier) = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_0006be24;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0006be24;" goto statement_identifier ;)) (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda58c))();" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda58c))()" identifier = (call_expression "(**(code **)(pcVar4 + 0xda58c))()" (parenthesized_expression "(**(code **)(pcVar4 + 0xda58c))" ( (pointer_expression "**(code **)(pcVar4 + 0xda58c)" * (pointer_expression "*(code **)(pcVar4 + 0xda58c)" * (cast_expression "(code **)(pcVar4 + 0xda58c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda58c)" ( (binary_expression "pcVar4 + 0xda58c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda4b0))(uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda4b0))" ( (pointer_expression "**(code **)(pcVar4 + 0xda4b0)" * (pointer_expression "*(code **)(pcVar4 + 0xda4b0)" * (cast_expression "(code **)(pcVar4 + 0xda4b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda4b0)" ( (binary_expression "pcVar4 + 0xda4b0" identifier + number_literal) ))))) )) (argument_list "(uVar19)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }\n    else {\n      iVar3 = *piVar22;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }" { (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda5dc))" ( (pointer_expression "**(code **)(pcVar4 + 0xda5dc)" * (pointer_expression "*(code **)(pcVar4 + 0xda5dc)" * (cast_expression "(code **)(pcVar4 + 0xda5dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda5dc)" ( (binary_expression "pcVar4 + 0xda5dc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82)" ( (binary_expression "*(int *)(pcVar4 + 0xd87dc) + 0x62c0" (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" * (cast_expression "(int *)(pcVar4 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd87dc)" ( (binary_expression "pcVar4 + 0xd87dc" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "*piVar22 = iVar3;" (assignment_expression "*piVar22 = iVar3" (pointer_expression "*piVar22" * identifier) = identifier) ;) }) (else_clause "else {\n      iVar3 = *piVar22;\n    }" else (compound_statement "{\n      iVar3 = *piVar22;\n    }" { (expression_statement "iVar3 = *piVar22;" (assignment_expression "iVar3 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) }))) (if_statement "if (iVar3 == -1) goto LAB_0006c3c8;" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0006c3c8;" goto statement_identifier ;)) (labeled_statement "LAB_0006bf80:\n    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);" statement_identifier : (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff)" identifier = (call_expression "(**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff)" (parenthesized_expression "(**(code **)(pcVar4 + 0xd8a0c))" ( (pointer_expression "**(code **)(pcVar4 + 0xd8a0c)" * (pointer_expression "*(code **)(pcVar4 + 0xd8a0c)" * (cast_expression "(code **)(pcVar4 + 0xd8a0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8a0c)" ( (binary_expression "pcVar4 + 0xd8a0c" identifier + number_literal) ))))) )) (argument_list "(iVar3,1,0xffffffff)" ( identifier , number_literal , number_literal )))) ;)) (expression_statement "*piVar22 = iVar3;" (assignment_expression "*piVar22 = iVar3" (pointer_expression "*piVar22" * identifier) = identifier) ;) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda670);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda670)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda670)" * (cast_expression "(code **)(pcVar4 + 0xda670)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda670)" ( (binary_expression "pcVar4 + 0xda670" identifier + number_literal) ))))) ;) (if_statement "if (*piVar31 != 0) goto LAB_0006be5c;" if (parenthesized_expression "(*piVar31 != 0)" ( (binary_expression "*piVar31 != 0" (pointer_expression "*piVar31" * identifier) != number_literal) )) (goto_statement "goto LAB_0006be5c;" goto statement_identifier ;)) (labeled_statement "LAB_0006bf08:\n    iVar3 = (*pcVar32)();" statement_identifier : (expression_statement "iVar3 = (*pcVar32)();" (assignment_expression "iVar3 = (*pcVar32)()" identifier = (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "()" ( )))) ;)) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda4fc);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda4fc)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda4fc)" * (cast_expression "(code **)(pcVar4 + 0xda4fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda4fc)" ( (binary_expression "pcVar4 + 0xda4fc" identifier + number_literal) ))))) ;) (expression_statement "*piVar31 = iVar3;" (assignment_expression "*piVar31 = iVar3" (pointer_expression "*piVar31" * identifier) = identifier) ;) (expression_statement "(*pcVar32)(0,iVar3);" (call_expression "(*pcVar32)(0,iVar3)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(0,iVar3)" ( number_literal , identifier ))) ;) (expression_statement "iVar3 = *piVar22;" (assignment_expression "iVar3 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (if_statement "if (iVar3 != -1) {\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }" if (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }" { (expression_statement "(**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);" (call_expression "(**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda73c))" ( (pointer_expression "**(code **)(pcVar4 + 0xda73c)" * (pointer_expression "*(code **)(pcVar4 + 0xda73c)" * (cast_expression "(code **)(pcVar4 + 0xda73c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda73c)" ( (binary_expression "pcVar4 + 0xda73c" identifier + number_literal) ))))) )) (argument_list "(iVar3,*piVar31)" ( identifier , (pointer_expression "*piVar31" * identifier) ))) ;) (goto_statement "goto LAB_0006be5c;" goto statement_identifier ;) })) }))) (expression_statement "iVar11 = 0x12;" (assignment_expression "iVar11 = 0x12" identifier = number_literal) ;) (expression_statement "piVar25 = *(int **)(pcVar4 + 0xd9434);" (assignment_expression "piVar25 = *(int **)(pcVar4 + 0xd9434)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd9434)" * (cast_expression "(int **)(pcVar4 + 0xd9434)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd9434)" ( (binary_expression "pcVar4 + 0xd9434" identifier + number_literal) ))))) ;) (expression_statement "piVar23 = *(int **)(pcVar4 + 0xd8a98);" (assignment_expression "piVar23 = *(int **)(pcVar4 + 0xd8a98)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd8a98)" * (cast_expression "(int **)(pcVar4 + 0xd8a98)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8a98)" ( (binary_expression "pcVar4 + 0xd8a98" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n    iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3);\n    *piVar25 = iVar3;\n    if (iVar3 == -1) break;\n    if (*piVar31 == iVar3) {\n      iVar8 = -1;\n      goto LAB_0006c118;\n    }\n    pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    if (*piVar23 != 0) {\n      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);\n      pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    }\n    iVar11 = iVar11 + -1;\n    uVar19 = (*pcVar32)(0x1a,0);\n    (**(code **)(pcVar4 + 0xda61c))(0,0x1a);\n    (**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19);\n    if (iVar11 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);\n      sys_error(uVar19);\n      iVar3 = *piVar25;\n      iVar11 = *piVar31;\n      *piVar23 = 0;\n      **(int **)(pcVar4 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }\n    iVar3 = *piVar22;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3);\n    *piVar25 = iVar3;\n    if (iVar3 == -1) break;\n    if (*piVar31 == iVar3) {\n      iVar8 = -1;\n      goto LAB_0006c118;\n    }\n    pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    if (*piVar23 != 0) {\n      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);\n      pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    }\n    iVar11 = iVar11 + -1;\n    uVar19 = (*pcVar32)(0x1a,0);\n    (**(code **)(pcVar4 + 0xda61c))(0,0x1a);\n    (**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19);\n    if (iVar11 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);\n      sys_error(uVar19);\n      iVar3 = *piVar25;\n      iVar11 = *piVar31;\n      *piVar23 = 0;\n      **(int **)(pcVar4 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }\n    iVar3 = *piVar22;\n  }" { (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3);" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda598))(iVar3)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda598))" ( (pointer_expression "**(code **)(pcVar4 + 0xda598)" * (pointer_expression "*(code **)(pcVar4 + 0xda598)" * (cast_expression "(code **)(pcVar4 + 0xda598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda598)" ( (binary_expression "pcVar4 + 0xda598" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "*piVar25 = iVar3;" (assignment_expression "*piVar25 = iVar3" (pointer_expression "*piVar25" * identifier) = identifier) ;) (if_statement "if (iVar3 == -1) break;" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (*piVar31 == iVar3) {\n      iVar8 = -1;\n      goto LAB_0006c118;\n    }" if (parenthesized_expression "(*piVar31 == iVar3)" ( (binary_expression "*piVar31 == iVar3" (pointer_expression "*piVar31" * identifier) == identifier) )) (compound_statement "{\n      iVar8 = -1;\n      goto LAB_0006c118;\n    }" { (expression_statement "iVar8 = -1;" (assignment_expression "iVar8 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_0006c118;" goto statement_identifier ;) })) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xd8aac);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xd8aac)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xd8aac)" * (cast_expression "(code **)(pcVar4 + 0xd8aac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8aac)" ( (binary_expression "pcVar4 + 0xd8aac" identifier + number_literal) ))))) ;) (if_statement "if (*piVar23 != 0) {\n      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);\n      pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    }" if (parenthesized_expression "(*piVar23 != 0)" ( (binary_expression "*piVar23 != 0" (pointer_expression "*piVar23" * identifier) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);\n      pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    }" { (expression_statement "(**(code **)(pcVar4 + 0xd8a9c))(*piVar23);" (call_expression "(**(code **)(pcVar4 + 0xd8a9c))(*piVar23)" (parenthesized_expression "(**(code **)(pcVar4 + 0xd8a9c))" ( (pointer_expression "**(code **)(pcVar4 + 0xd8a9c)" * (pointer_expression "*(code **)(pcVar4 + 0xd8a9c)" * (cast_expression "(code **)(pcVar4 + 0xd8a9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8a9c)" ( (binary_expression "pcVar4 + 0xd8a9c" identifier + number_literal) ))))) )) (argument_list "(*piVar23)" ( (pointer_expression "*piVar23" * identifier) ))) ;) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xd8aac);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xd8aac)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xd8aac)" * (cast_expression "(code **)(pcVar4 + 0xd8aac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8aac)" ( (binary_expression "pcVar4 + 0xd8aac" identifier + number_literal) ))))) ;) })) (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" identifier = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (expression_statement "uVar19 = (*pcVar32)(0x1a,0);" (assignment_expression "uVar19 = (*pcVar32)(0x1a,0)" identifier = (call_expression "(*pcVar32)(0x1a,0)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(0x1a,0)" ( number_literal , number_literal )))) ;) (expression_statement "(**(code **)(pcVar4 + 0xda61c))(0,0x1a);" (call_expression "(**(code **)(pcVar4 + 0xda61c))(0,0x1a)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda61c))" ( (pointer_expression "**(code **)(pcVar4 + 0xda61c)" * (pointer_expression "*(code **)(pcVar4 + 0xda61c)" * (cast_expression "(code **)(pcVar4 + 0xda61c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda61c)" ( (binary_expression "pcVar4 + 0xda61c" identifier + number_literal) ))))) )) (argument_list "(0,0x1a)" ( number_literal , number_literal ))) ;) (expression_statement "(**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19);" (call_expression "(**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xd8aac))" ( (pointer_expression "**(code **)(pcVar4 + 0xd8aac)" * (pointer_expression "*(code **)(pcVar4 + 0xd8aac)" * (cast_expression "(code **)(pcVar4 + 0xd8aac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8aac)" ( (binary_expression "pcVar4 + 0xd8aac" identifier + number_literal) ))))) )) (argument_list "(0x1a,uVar19)" ( number_literal , identifier ))) ;) (if_statement "if (iVar11 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);\n      sys_error(uVar19);\n      iVar3 = *piVar25;\n      iVar11 = *piVar31;\n      *piVar23 = 0;\n      **(int **)(pcVar4 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);\n      sys_error(uVar19);\n      iVar3 = *piVar25;\n      iVar11 = *piVar31;\n      *piVar23 = 0;\n      **(int **)(pcVar4 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }" { (expression_statement "piVar23 = *(int **)(pcVar4 + 0xd8b0c);" (assignment_expression "piVar23 = *(int **)(pcVar4 + 0xd8b0c)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd8b0c)" * (cast_expression "(int **)(pcVar4 + 0xd8b0c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8b0c)" ( (binary_expression "pcVar4 + 0xd8b0c" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda6fc))" ( (pointer_expression "**(code **)(pcVar4 + 0xda6fc)" * (pointer_expression "*(code **)(pcVar4 + 0xda6fc)" * (cast_expression "(code **)(pcVar4 + 0xda6fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda6fc)" ( (binary_expression "pcVar4 + 0xda6fc" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0xd87dc) + 0x7e14" (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" * (cast_expression "(int *)(pcVar4 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd87dc)" ( (binary_expression "pcVar4 + 0xd87dc" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "sys_error(uVar19);" (call_expression "sys_error(uVar19)" identifier (argument_list "(uVar19)" ( identifier ))) ;) (expression_statement "iVar3 = *piVar25;" (assignment_expression "iVar3 = *piVar25" identifier = (pointer_expression "*piVar25" * identifier)) ;) (expression_statement "iVar11 = *piVar31;" (assignment_expression "iVar11 = *piVar31" identifier = (pointer_expression "*piVar31" * identifier)) ;) (expression_statement "*piVar23 = 0;" (assignment_expression "*piVar23 = 0" (pointer_expression "*piVar23" * identifier) = number_literal) ;) (expression_statement "**(int **)(pcVar4 + 0xd9070) = iVar3;" (assignment_expression "**(int **)(pcVar4 + 0xd9070) = iVar3" (pointer_expression "**(int **)(pcVar4 + 0xd9070)" * (pointer_expression "*(int **)(pcVar4 + 0xd9070)" * (cast_expression "(int **)(pcVar4 + 0xd9070)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd9070)" ( (binary_expression "pcVar4 + 0xd9070" identifier + number_literal) ))))) = identifier) ;) (goto_statement "goto LAB_0006bff4;" goto statement_identifier ;) })) (expression_statement "iVar3 = *piVar22;" (assignment_expression "iVar3 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) })) (expression_statement "piVar23 = (int *)(**(code **)(pcVar4 + 0xda5a0))();" (assignment_expression "piVar23 = (int *)(**(code **)(pcVar4 + 0xda5a0))()" identifier = (cast_expression "(int *)(**(code **)(pcVar4 + 0xda5a0))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar4 + 0xda5a0))()" (parenthesized_expression "(**(code **)(pcVar4 + 0xda5a0))" ( (pointer_expression "**(code **)(pcVar4 + 0xda5a0)" * (pointer_expression "*(code **)(pcVar4 + 0xda5a0)" * (cast_expression "(code **)(pcVar4 + 0xda5a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda5a0)" ( (binary_expression "pcVar4 + 0xda5a0" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar8 = *piVar23;" (assignment_expression "iVar8 = *piVar23" identifier = (pointer_expression "*piVar23" * identifier)) ;) (expression_statement "iVar3 = *piVar31;" (assignment_expression "iVar3 = *piVar31" identifier = (pointer_expression "*piVar31" * identifier)) ;) (labeled_statement "LAB_0006c118:\n  piVar28 = *(int **)(pcVar4 + 0xd9070);" statement_identifier : (expression_statement "piVar28 = *(int **)(pcVar4 + 0xd9070);" (assignment_expression "piVar28 = *(int **)(pcVar4 + 0xd9070)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd9070)" * (cast_expression "(int **)(pcVar4 + 0xd9070)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd9070)" ( (binary_expression "pcVar4 + 0xd9070" identifier + number_literal) ))))) ;)) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda670);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda670)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda670)" * (cast_expression "(code **)(pcVar4 + 0xda670)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda670)" ( (binary_expression "pcVar4 + 0xda670" identifier + number_literal) ))))) ;) (expression_statement "*piVar28 = iVar3;" (assignment_expression "*piVar28 = iVar3" (pointer_expression "*piVar28" * identifier) = identifier) ;) (expression_statement "iVar3 = (*pcVar32)();" (assignment_expression "iVar3 = (*pcVar32)()" identifier = (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar11 = *piVar28;" (assignment_expression "iVar11 = *piVar28" identifier = (pointer_expression "*piVar28" * identifier)) ;) (expression_statement "*piVar31 = iVar3;" (assignment_expression "*piVar31 = iVar3" (pointer_expression "*piVar31" * identifier) = identifier) ;) (if_statement "if (iVar3 == iVar11) {\nLAB_0006c138:\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    *piVar23 = 1;\nLAB_0006c144:\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\nLAB_0006c148:\n    iVar11 = (*pcVar32)(*piVar22);\n    if ((iVar11 == -1) || (*piVar31 != iVar11)) {\n      if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);\n      sys_error(uVar19,iVar11);\n      *piVar23 = 0;\n      goto LAB_0006c230;\n    }\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n    if (*piVar23 != 0) {\n      iVar3 = *piVar25;\n      goto LAB_0006bff4;\n    }\n  }\n  else {\n    iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    iVar11 = *piVar31;\n    iVar3 = *piVar28;\n    *piVar23 = 1;\n    if (iVar11 == iVar3) goto LAB_0006c144;\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\n    if (*piVar25 == iVar11) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar11,0);\n    if (iVar3 < 0) {\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }\n    else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n  }" if (parenthesized_expression "(iVar3 == iVar11)" ( (binary_expression "iVar3 == iVar11" identifier == identifier) )) (compound_statement "{\nLAB_0006c138:\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    *piVar23 = 1;\nLAB_0006c144:\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\nLAB_0006c148:\n    iVar11 = (*pcVar32)(*piVar22);\n    if ((iVar11 == -1) || (*piVar31 != iVar11)) {\n      if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);\n      sys_error(uVar19,iVar11);\n      *piVar23 = 0;\n      goto LAB_0006c230;\n    }\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n    if (*piVar23 != 0) {\n      iVar3 = *piVar25;\n      goto LAB_0006bff4;\n    }\n  }" { (labeled_statement "LAB_0006c138:\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);" statement_identifier : (expression_statement "piVar23 = *(int **)(pcVar4 + 0xd8b0c);" (assignment_expression "piVar23 = *(int **)(pcVar4 + 0xd8b0c)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd8b0c)" * (cast_expression "(int **)(pcVar4 + 0xd8b0c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8b0c)" ( (binary_expression "pcVar4 + 0xd8b0c" identifier + number_literal) ))))) ;)) (expression_statement "*piVar23 = 1;" (assignment_expression "*piVar23 = 1" (pointer_expression "*piVar23" * identifier) = number_literal) ;) (labeled_statement "LAB_0006c144:\n    pcVar32 = *(code **)(pcVar4 + 0xda598);" statement_identifier : (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda598);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda598)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda598)" * (cast_expression "(code **)(pcVar4 + 0xda598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda598)" ( (binary_expression "pcVar4 + 0xda598" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0006c148:\n    iVar11 = (*pcVar32)(*piVar22);" statement_identifier : (expression_statement "iVar11 = (*pcVar32)(*piVar22);" (assignment_expression "iVar11 = (*pcVar32)(*piVar22)" identifier = (call_expression "(*pcVar32)(*piVar22)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(*piVar22)" ( (pointer_expression "*piVar22" * identifier) )))) ;)) (if_statement "if ((iVar11 == -1) || (*piVar31 != iVar11)) {\n      if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);\n      sys_error(uVar19,iVar11);\n      *piVar23 = 0;\n      goto LAB_0006c230;\n    }" if (parenthesized_expression "((iVar11 == -1) || (*piVar31 != iVar11))" ( (binary_expression "(iVar11 == -1) || (*piVar31 != iVar11)" (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) )) || (parenthesized_expression "(*piVar31 != iVar11)" ( (binary_expression "*piVar31 != iVar11" (pointer_expression "*piVar31" * identifier) != identifier) ))) )) (compound_statement "{\n      if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);\n      sys_error(uVar19,iVar11);\n      *piVar23 = 0;\n      goto LAB_0006c230;\n    }" { (if_statement "if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }" if (parenthesized_expression "(iVar8 != -1)" ( (binary_expression "iVar8 != -1" identifier != number_literal) )) (compound_statement "{\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }" { (expression_statement "piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();" (assignment_expression "piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))()" identifier = (cast_expression "(int *)(**(code **)(pcVar4 + 0xda5a0))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar4 + 0xda5a0))()" (parenthesized_expression "(**(code **)(pcVar4 + 0xda5a0))" ( (pointer_expression "**(code **)(pcVar4 + 0xda5a0)" * (pointer_expression "*(code **)(pcVar4 + 0xda5a0)" * (cast_expression "(code **)(pcVar4 + 0xda5a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda5a0)" ( (binary_expression "pcVar4 + 0xda5a0" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*piVar28 = iVar8;" (assignment_expression "*piVar28 = iVar8" (pointer_expression "*piVar28" * identifier) = identifier) ;) })) (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda6fc))" ( (pointer_expression "**(code **)(pcVar4 + 0xda6fc)" * (pointer_expression "*(code **)(pcVar4 + 0xda6fc)" * (cast_expression "(code **)(pcVar4 + 0xda6fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda6fc)" ( (binary_expression "pcVar4 + 0xda6fc" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0xd87dc) + 0x7e6c" (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" * (cast_expression "(int *)(pcVar4 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd87dc)" ( (binary_expression "pcVar4 + 0xd87dc" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "sys_error(uVar19,iVar11);" (call_expression "sys_error(uVar19,iVar11)" identifier (argument_list "(uVar19,iVar11)" ( identifier , identifier ))) ;) (expression_statement "*piVar23 = 0;" (assignment_expression "*piVar23 = 0" (pointer_expression "*piVar23" * identifier) = number_literal) ;) (goto_statement "goto LAB_0006c230;" goto statement_identifier ;) })) (expression_statement "iVar3 = *(int *)(pcVar4 + 0xd87dc);" (assignment_expression "iVar3 = *(int *)(pcVar4 + 0xd87dc)" identifier = (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" * (cast_expression "(int *)(pcVar4 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd87dc)" ( (binary_expression "pcVar4 + 0xd87dc" identifier + number_literal) ))))) ;) (if_statement "if (*piVar23 != 0) {\n      iVar3 = *piVar25;\n      goto LAB_0006bff4;\n    }" if (parenthesized_expression "(*piVar23 != 0)" ( (binary_expression "*piVar23 != 0" (pointer_expression "*piVar23" * identifier) != number_literal) )) (compound_statement "{\n      iVar3 = *piVar25;\n      goto LAB_0006bff4;\n    }" { (expression_statement "iVar3 = *piVar25;" (assignment_expression "iVar3 = *piVar25" identifier = (pointer_expression "*piVar25" * identifier)) ;) (goto_statement "goto LAB_0006bff4;" goto statement_identifier ;) })) }) (else_clause "else {\n    iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    iVar11 = *piVar31;\n    iVar3 = *piVar28;\n    *piVar23 = 1;\n    if (iVar11 == iVar3) goto LAB_0006c144;\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\n    if (*piVar25 == iVar11) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar11,0);\n    if (iVar3 < 0) {\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }\n    else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n  }" else (compound_statement "{\n    iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    iVar11 = *piVar31;\n    iVar3 = *piVar28;\n    *piVar23 = 1;\n    if (iVar11 == iVar3) goto LAB_0006c144;\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\n    if (*piVar25 == iVar11) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar11,0);\n    if (iVar3 < 0) {\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }\n    else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n  }" { (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda4fc))(0,iVar3)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda4fc))" ( (pointer_expression "**(code **)(pcVar4 + 0xda4fc)" * (pointer_expression "*(code **)(pcVar4 + 0xda4fc)" * (cast_expression "(code **)(pcVar4 + 0xda4fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda4fc)" ( (binary_expression "pcVar4 + 0xda4fc" identifier + number_literal) ))))) )) (argument_list "(0,iVar3)" ( number_literal , identifier )))) ;) (if_statement "if (iVar3 < 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }" { (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda6fc))" ( (pointer_expression "**(code **)(pcVar4 + 0xda6fc)" * (pointer_expression "*(code **)(pcVar4 + 0xda6fc)" * (cast_expression "(code **)(pcVar4 + 0xda6fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda6fc)" ( (binary_expression "pcVar4 + 0xda6fc" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0xd87dc) + 0x7e4c" (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" * (cast_expression "(int *)(pcVar4 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd87dc)" ( (binary_expression "pcVar4 + 0xd87dc" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "sys_error(uVar19);" (call_expression "sys_error(uVar19)" identifier (argument_list "(uVar19)" ( identifier ))) ;) (expression_statement "*piVar31 = *piVar28;" (assignment_expression "*piVar31 = *piVar28" (pointer_expression "*piVar31" * identifier) = (pointer_expression "*piVar28" * identifier)) ;) (goto_statement "goto LAB_0006c138;" goto statement_identifier ;) })) (expression_statement "piVar23 = *(int **)(pcVar4 + 0xd8b0c);" (assignment_expression "piVar23 = *(int **)(pcVar4 + 0xd8b0c)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd8b0c)" * (cast_expression "(int **)(pcVar4 + 0xd8b0c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8b0c)" ( (binary_expression "pcVar4 + 0xd8b0c" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *piVar31;" (assignment_expression "iVar11 = *piVar31" identifier = (pointer_expression "*piVar31" * identifier)) ;) (expression_statement "iVar3 = *piVar28;" (assignment_expression "iVar3 = *piVar28" identifier = (pointer_expression "*piVar28" * identifier)) ;) (expression_statement "*piVar23 = 1;" (assignment_expression "*piVar23 = 1" (pointer_expression "*piVar23" * identifier) = number_literal) ;) (if_statement "if (iVar11 == iVar3) goto LAB_0006c144;" if (parenthesized_expression "(iVar11 == iVar3)" ( (binary_expression "iVar11 == iVar3" identifier == identifier) )) (goto_statement "goto LAB_0006c144;" goto statement_identifier ;)) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda598);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda598)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda598)" * (cast_expression "(code **)(pcVar4 + 0xda598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda598)" ( (binary_expression "pcVar4 + 0xda598" identifier + number_literal) ))))) ;) (if_statement "if (*piVar25 == iVar11) goto LAB_0006c148;" if (parenthesized_expression "(*piVar25 == iVar11)" ( (binary_expression "*piVar25 == iVar11" (pointer_expression "*piVar25" * identifier) == identifier) )) (goto_statement "goto LAB_0006c148;" goto statement_identifier ;)) (expression_statement "iVar3 = give_terminal_to(iVar11,0);" (assignment_expression "iVar3 = give_terminal_to(iVar11,0)" identifier = (call_expression "give_terminal_to(iVar11,0)" identifier (argument_list "(iVar11,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }\n    else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }" { (expression_statement "puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();" (assignment_expression "puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar4 + 0xda5a0))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar4 + 0xda5a0))()" (parenthesized_expression "(**(code **)(pcVar4 + 0xda5a0))" ( (pointer_expression "**(code **)(pcVar4 + 0xda5a0)" * (pointer_expression "*(code **)(pcVar4 + 0xda5a0)" * (cast_expression "(code **)(pcVar4 + 0xda5a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda5a0)" ( (binary_expression "pcVar4 + 0xda5a0" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar19 = *puVar27;" (assignment_expression "uVar19 = *puVar27" identifier = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "(**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);" (call_expression "(**(code **)(pcVar4 + 0xda4fc))(0,*piVar28)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda4fc))" ( (pointer_expression "**(code **)(pcVar4 + 0xda4fc)" * (pointer_expression "*(code **)(pcVar4 + 0xda4fc)" * (cast_expression "(code **)(pcVar4 + 0xda4fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda4fc)" ( (binary_expression "pcVar4 + 0xda4fc" identifier + number_literal) ))))) )) (argument_list "(0,*piVar28)" ( number_literal , (pointer_expression "*piVar28" * identifier) ))) ;) (expression_statement "iVar3 = *(int *)(pcVar4 + 0xd87dc);" (assignment_expression "iVar3 = *(int *)(pcVar4 + 0xd87dc)" identifier = (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" * (cast_expression "(int *)(pcVar4 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd87dc)" ( (binary_expression "pcVar4 + 0xd87dc" identifier + number_literal) ))))) ;) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda6fc);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda6fc)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda6fc)" * (cast_expression "(code **)(pcVar4 + 0xda6fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda6fc)" ( (binary_expression "pcVar4 + 0xda6fc" identifier + number_literal) ))))) ;) (expression_statement "*piVar31 = *piVar28;" (assignment_expression "*piVar31 = *piVar28" (pointer_expression "*piVar31" * identifier) = (pointer_expression "*piVar28" * identifier)) ;) (expression_statement "*puVar27 = uVar19;" (assignment_expression "*puVar27 = uVar19" (pointer_expression "*puVar27" * identifier) = identifier) ;) (expression_statement "uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);" (assignment_expression "uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5)" identifier = (call_expression "(*pcVar32)(0,iVar3 + 0x7e6c,5)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(0,iVar3 + 0x7e6c,5)" ( number_literal , (binary_expression "iVar3 + 0x7e6c" identifier + number_literal) , number_literal )))) ;) (expression_statement "sys_error(uVar19,*piVar31);" (call_expression "sys_error(uVar19,*piVar31)" identifier (argument_list "(uVar19,*piVar31)" ( identifier , (pointer_expression "*piVar31" * identifier) ))) ;) (expression_statement "*piVar23 = 0;" (assignment_expression "*piVar23 = 0" (pointer_expression "*piVar23" * identifier) = number_literal) ;) }) (else_clause "else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }" else (compound_statement "{\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }" { (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda598);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda598)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda598)" * (cast_expression "(code **)(pcVar4 + 0xda598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda598)" ( (binary_expression "pcVar4 + 0xda598" identifier + number_literal) ))))) ;) (if_statement "if (*piVar23 != 0) goto LAB_0006c148;" if (parenthesized_expression "(*piVar23 != 0)" ( (binary_expression "*piVar23 != 0" (pointer_expression "*piVar23" * identifier) != number_literal) )) (goto_statement "goto LAB_0006c148;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0006c230:\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);" statement_identifier : (expression_statement "iVar3 = *(int *)(pcVar4 + 0xd87dc);" (assignment_expression "iVar3 = *(int *)(pcVar4 + 0xd87dc)" identifier = (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" * (cast_expression "(int *)(pcVar4 + 0xd87dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd87dc)" ( (binary_expression "pcVar4 + 0xd87dc" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,iVar3 + 0x7e94,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,iVar3 + 0x7e94,5)" identifier = (call_expression "(**(code **)(pcVar4 + 0xda6fc))(0,iVar3 + 0x7e94,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda6fc))" ( (pointer_expression "**(code **)(pcVar4 + 0xda6fc)" * (pointer_expression "*(code **)(pcVar4 + 0xda6fc)" * (cast_expression "(code **)(pcVar4 + 0xda6fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda6fc)" ( (binary_expression "pcVar4 + 0xda6fc" identifier + number_literal) ))))) )) (argument_list "(0,iVar3 + 0x7e94,5)" ( number_literal , (binary_expression "iVar3 + 0x7e94" identifier + number_literal) , number_literal )))) ;) (expression_statement "internal_error(uVar19);" (call_expression "internal_error(uVar19)" identifier (argument_list "(uVar19)" ( identifier ))) ;) (expression_statement "iVar3 = *piVar25;" (assignment_expression "iVar3 = *piVar25" identifier = (pointer_expression "*piVar25" * identifier)) ;) (expression_statement "iVar11 = *piVar31;" (assignment_expression "iVar11 = *piVar31" identifier = (pointer_expression "*piVar31" * identifier)) ;) (labeled_statement "LAB_0006bff4:\n  pcVar32 = *(code **)(pcVar4 + 0xda58c);" statement_identifier : (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda58c);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda58c)" identifier = (pointer_expression "*(code **)(pcVar4 + 0xda58c)" * (cast_expression "(code **)(pcVar4 + 0xda58c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda58c)" ( (binary_expression "pcVar4 + 0xda58c" identifier + number_literal) ))))) ;)) (expression_statement "uVar19 = *puVar13;" (assignment_expression "uVar19 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "**(uint **)(pcVar4 + 0xd8954) = (uint)(iVar11 != iVar3);" (assignment_expression "**(uint **)(pcVar4 + 0xd8954) = (uint)(iVar11 != iVar3)" (pointer_expression "**(uint **)(pcVar4 + 0xd8954)" * (pointer_expression "*(uint **)(pcVar4 + 0xd8954)" * (cast_expression "(uint **)(pcVar4 + 0xd8954)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8954)" ( (binary_expression "pcVar4 + 0xd8954" identifier + number_literal) ))))) = (call_expression "(uint)(iVar11 != iVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar11 != iVar3)" ( (binary_expression "iVar11 != iVar3" identifier != identifier) )))) ;) (expression_statement "iVar3 = (*pcVar32)(uVar19);" (assignment_expression "iVar3 = (*pcVar32)(uVar19)" identifier = (call_expression "(*pcVar32)(uVar19)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(uVar19)" ( identifier )))) ;) (if_statement "if (iVar3 != *piVar22) {\n    (**(code **)(pcVar4 + 0xda540))(*piVar22,2,1);\n  }" if (parenthesized_expression "(iVar3 != *piVar22)" ( (binary_expression "iVar3 != *piVar22" identifier != (pointer_expression "*piVar22" * identifier)) )) (compound_statement "{\n    (**(code **)(pcVar4 + 0xda540))(*piVar22,2,1);\n  }" { (expression_statement "(**(code **)(pcVar4 + 0xda540))(*piVar22,2,1);" (call_expression "(**(code **)(pcVar4 + 0xda540))(*piVar22,2,1)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda540))" ( (pointer_expression "**(code **)(pcVar4 + 0xda540)" * (pointer_expression "*(code **)(pcVar4 + 0xda540)" * (cast_expression "(code **)(pcVar4 + 0xda540)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xda540)" ( (binary_expression "pcVar4 + 0xda540" identifier + number_literal) ))))) )) (argument_list "(*piVar22,2,1)" ( (pointer_expression "*piVar22" * identifier) , number_literal , number_literal ))) ;) })) (expression_statement "(**(code **)(pcVar4 + 0xd8aac))(0x12,*(int *)(pcVar4 + 0xd942c) + -0x6fbc);" (call_expression "(**(code **)(pcVar4 + 0xd8aac))(0x12,*(int *)(pcVar4 + 0xd942c) + -0x6fbc)" (parenthesized_expression "(**(code **)(pcVar4 + 0xd8aac))" ( (pointer_expression "**(code **)(pcVar4 + 0xd8aac)" * (pointer_expression "*(code **)(pcVar4 + 0xd8aac)" * (cast_expression "(code **)(pcVar4 + 0xd8aac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd8aac)" ( (binary_expression "pcVar4 + 0xd8aac" identifier + number_literal) ))))) )) (argument_list "(0x12,*(int *)(pcVar4 + 0xd942c) + -0x6fbc)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0xd942c) + -0x6fbc" (pointer_expression "*(int *)(pcVar4 + 0xd942c)" * (cast_expression "(int *)(pcVar4 + 0xd942c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0xd942c)" ( (binary_expression "pcVar4 + 0xd942c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar19 = 0x2b;" (assignment_expression "uVar19 = 0x2b" identifier = number_literal) ;) (if_statement "if (*piVar23 != 0) {\n    uVar19 = 0x2d;\n  }" if (parenthesized_expression "(*piVar23 != 0)" ( (binary_expression "*piVar23 != 0" (pointer_expression "*piVar23" * identifier) != number_literal) )) (compound_statement "{\n    uVar19 = 0x2d;\n  }" { (expression_statement "uVar19 = 0x2d;" (assignment_expression "uVar19 = 0x2d" identifier = number_literal) ;) })) (expression_statement "change_flag(0x6d,uVar19);" (call_expression "change_flag(0x6d,uVar19)" identifier (argument_list "(0x6d,uVar19)" ( number_literal , identifier ))) ;) (if_statement "if (*piVar29 != 0) {\n    get_tty_state();\n  }" if (parenthesized_expression "(*piVar29 != 0)" ( (binary_expression "*piVar29 != 0" (pointer_expression "*piVar29" * identifier) != number_literal) )) (compound_statement "{\n    get_tty_state();\n  }" { (expression_statement "get_tty_state();" (call_expression "get_tty_state()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar31 = *(int **)(pcVar4 + 0xd90bc);" (assignment_expression "piVar31 = *(int **)(pcVar4 + 0xd90bc)" identifier = (pointer_expression "*(int **)(pcVar4 + 0xd90bc)" * (cast_expression "(int **)(pcVar4 + 0xd90bc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd90bc)" ( (binary_expression "pcVar4 + 0xd90bc" identifier + number_literal) ))))) ;) (if_statement "if (-1 < *piVar31) {\n    return (undefined1 *)*piVar23;\n  }" if (parenthesized_expression "(-1 < *piVar31)" ( (binary_expression "-1 < *piVar31" number_literal < (pointer_expression "*piVar31" * identifier)) )) (compound_statement "{\n    return (undefined1 *)*piVar23;\n  }" { (return_statement "return (undefined1 *)*piVar23;" return (cast_expression "(undefined1 *)*piVar23" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar23" * identifier)) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xd93d8))();" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xd93d8))()" identifier = (call_expression "(**(code **)(pcVar4 + 0xd93d8))()" (parenthesized_expression "(**(code **)(pcVar4 + 0xd93d8))" ( (pointer_expression "**(code **)(pcVar4 + 0xd93d8)" * (pointer_expression "*(code **)(pcVar4 + 0xd93d8)" * (cast_expression "(code **)(pcVar4 + 0xd93d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0xd93d8)" ( (binary_expression "pcVar4 + 0xd93d8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 < 0) {\n    iVar3 = 0x20;\n  }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar3 = 0x20;\n  }" { (expression_statement "iVar3 = 0x20;" (assignment_expression "iVar3 = 0x20" identifier = number_literal) ;) })) (expression_statement "*piVar31 = iVar3;" (assignment_expression "*piVar31 = iVar3" (pointer_expression "*piVar31" * identifier) = identifier) ;) (return_statement "return (undefined1 *)*piVar23;" return (cast_expression "(undefined1 *)*piVar23" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar23" * identifier)) ;) (labeled_statement "LAB_0006b3b8:\n  puVar6 = (undefined1 *)job_exit_status(piVar31);" statement_identifier : (expression_statement "puVar6 = (undefined1 *)job_exit_status(piVar31);" (assignment_expression "puVar6 = (undefined1 *)job_exit_status(piVar31)" identifier = (cast_expression "(undefined1 *)job_exit_status(piVar31)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "job_exit_status(piVar31)" identifier (argument_list "(piVar31)" ( identifier ))))) ;)) (if_statement "if (((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0)) {\n    FUN_00066b6c(piVar31,0);\n  }" if (parenthesized_expression "(((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0))" ( (binary_expression "((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0)" (parenthesized_expression "((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0))" ( (binary_expression "(piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)" (parenthesized_expression "(piVar17 == (int *)0x0)" ( (binary_expression "piVar17 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)" ( (comma_expression "FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0" (call_expression "FUN_00065dcc()" identifier (argument_list "()" ( ))) , (binary_expression "*(int *)(puVar5 + 0x18) != 0" (pointer_expression "*(int *)(puVar5 + 0x18)" * (cast_expression "(int *)(puVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x18)" ( (binary_expression "puVar5 + 0x18" identifier + number_literal) )))) != number_literal)) ))) )) && (parenthesized_expression "(*(int *)(iVar3 + -0x705c) == 0)" ( (binary_expression "*(int *)(iVar3 + -0x705c) == 0" (pointer_expression "*(int *)(iVar3 + -0x705c)" * (cast_expression "(int *)(iVar3 + -0x705c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -0x705c)" ( (binary_expression "iVar3 + -0x705c" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    FUN_00066b6c(piVar31,0);\n  }" { (expression_statement "FUN_00066b6c(piVar31,0);" (call_expression "FUN_00066b6c(piVar31,0)" identifier (argument_list "(piVar31,0)" ( identifier , number_literal ))) ;) })) (expression_statement "(**(code **)(puStack_2a0 + -0x737c))();" (call_expression "(**(code **)(puStack_2a0 + -0x737c))()" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x737c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x737c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x737c)" * (cast_expression "(code **)(puStack_2a0 + -0x737c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x737c)" ( (binary_expression "puStack_2a0 + -0x737c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" ( (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" * (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" * (cast_expression "(code **)(puStack_2a0 + -0x602c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_2a0 + -0x602c)" ( (binary_expression "puStack_2a0 + -0x602c" identifier + number_literal) ))))) )) (argument_list "(3,puVar20,0)" ( number_literal , identifier , number_literal ))) ;) (goto_statement "goto LAB_0006b430;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (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 (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 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 (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 (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 (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 (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (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 ( LIT , 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 (pointer_expression * IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) , (binary_expression (pointer_expression * IDENT) == LIT)) ))) )) && (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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) })) (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 * (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 (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 ( LIT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))) ;) (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 ( LIT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , LIT ))) ;) (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 (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 ( LIT , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , LIT ))) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (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 (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 ( LIT , IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (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)) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , LIT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = 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 = 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 ( 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 < (cast_expression ( (type_descriptor TYPE) ) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (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) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == 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) )))) ;) (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 * (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 IDENT + LIT) ))))) ;) (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , IDENT , LIT ))) ;) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (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 ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 IDENT == LIT) )) (compound_statement { (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 ))) ;)) (expression_statement (assignment_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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )))) )) || (parenthesized_expression ( (binary_expression (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 (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_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) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (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 ( (pointer_expression * IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_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) ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * IDENT) ))) ;)) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) && (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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (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 < (cast_expression ( (type_descriptor TYPE) ) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == 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) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != 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 , LIT ))) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (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 ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (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 ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , IDENT , LIT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) ))))) ;) (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 (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)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (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) )))) != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;)) }))) (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) )))) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) )))) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) )))) + LIT) )))) & LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + 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 (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 = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * 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 * IDENT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) )))) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) )))) + LIT) )))) & LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 *)) ) (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) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + 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 = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 *)) ) (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) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (assignment_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 ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (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 = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (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 ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression (pointer_expression * IDENT) == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 IDENT + LIT) ))))) ;) (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 (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( 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 (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , LIT )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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 , (pointer_expression * IDENT) ))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != 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 ( (pointer_expression * 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , 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 , 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 ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (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) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (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 = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * IDENT)) )) (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 ( (pointer_expression * IDENT) , LIT , 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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_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 LIT < (pointer_expression * IDENT)) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (call_expression IDENT (argument_list ( ))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT)) ))) )) && (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 (call_expression IDENT (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 ( ))) ;) (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 ))) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "undefined1 * wait_for_job(int param_1,uint param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  code *pcVar4;\n  undefined1 *puVar5;\n  undefined1 *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  undefined4 uVar14;\n  int iVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int iVar18;\n  undefined4 uVar19;\n  undefined1 *puVar20;\n  undefined4 *puVar21;\n  int *piVar22;\n  int *piVar23;\n  undefined4 *puVar24;\n  int *piVar25;\n  int iVar26;\n  undefined4 *puVar27;\n  int *piVar28;\n  int *piVar29;\n  undefined *puVar30;\n  int *piVar31;\n  code *pcVar32;\n  undefined4 uStack_3e4;\n  undefined1 auStack_3dc [128];\n  undefined1 auStack_35c [128];\n  int iStack_2dc;\n  undefined1 *puStack_2d8;\n  undefined1 *puStack_2d4;\n  undefined1 *puStack_2d0;\n  int *piStack_2cc;\n  int *piStack_2c8;\n  undefined4 *puStack_2c4;\n  int *piStack_2c0;\n  int iStack_2bc;\n  int *piStack_2b8;\n  code *pcStack_2b4;\n  undefined *puStack_2a0;\n  code *pcStack_294;\n  undefined1 auStack_28c [128];\n  undefined1 auStack_20c [128];\n  int *piStack_18c;\n  undefined1 *puStack_188;\n  undefined1 *puStack_184;\n  undefined1 *puStack_180;\n  undefined4 uStack_17c;\n  int *piStack_178;\n  int iStack_174;\n  int *piStack_170;\n  int *piStack_16c;\n  undefined *puStack_168;\n  code *pcStack_164;\n  undefined1 auStack_12c [128];\n  undefined1 auStack_ac [128];\n  int local_2c;\n  \n  puVar30 = PTR___stack_chk_guard_001464dc;\n  piVar31 = (int *)PTR_jobs_00144e5c;\n  puVar20 = auStack_12c;\n  piVar29 = (int *)(param_1 * 4);\n  local_2c = *(int *)PTR___stack_chk_guard_001464dc;\n  (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n  (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n  (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n  if (*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc) == 2) {\n    uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);\n    internal_warning(uVar19,param_1 + 1);\n  }\n  puVar2 = PTR_js_00144e58;\n  puVar1 = PTR_wait_for_00144d9c;\n  piVar23 = (int *)0xffffffff;\n  piVar25 = (int *)(param_2 & 2);\n  iVar3 = FUN_00065a6c(param_1);\n  piVar28 = *(int **)(iVar3 + 4);\n  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n  pcVar4 = (code *)(PTR_LAB_00144ff0 + 0x4e60);\n  do {\n    puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28);\n    if (((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar4)();\n    }\n    if (piVar25 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      if (param_1 == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }\n    (*(code *)PTR_sigemptyset_001462d4)();\n    (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n    (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n    (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n    if (param_1 == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      goto LAB_0006b0f4;\n    }\n    if (*(int *)(*piVar31 + (int)piVar29) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      break;\n    }\n    iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc);\n    (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac);\n  } while (iVar3 != 4);\n  (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n  (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n  (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\nLAB_0006b0d0:\n  piVar29 = (int *)(*piVar31 + (int)piVar29);\n  iVar3 = *piVar29;\n  if ((iVar3 != 0) && (*(int *)(iVar3 + 0xc) == 4)) {\n    *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n  }\nLAB_0006b0f4:\n  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n  if (local_2c == *(int *)puVar30) {\n    return puVar5;\n  }\n  pcVar4 = wait_for_any_job;\n  puVar30 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  puStack_2a0 = puVar30 + 0xe1290;\n  iVar3 = *(int *)(puVar30 + 0xd9ea4);\n  puVar27 = *(undefined4 **)(puVar30 + 0xdb22c);\n  puStack_168 = (undefined *)piVar31;\n  uStack_17c = 0xffffffff;\n  piStack_18c = (int *)*puVar27;\n  puStack_188 = puVar20;\n  puStack_184 = auStack_ac;\n  puStack_180 = puVar5;\n  piStack_178 = piVar25;\n  iStack_174 = param_1;\n  piStack_170 = piVar28;\n  piStack_16c = piVar29;\n  pcStack_164 = pcVar4;\n  if (*(int *)(iVar3 + -0x705c) == 0) {\n    puVar6 = auStack_28c;\n    puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8);\n    puVar20 = auStack_20c;\n    (**(code **)(puVar30 + 0xdb024))(puVar6);\n    (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n    (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n    (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n    if (0 < (int)*(int **)(puVar5 + 0x18)) {\n      piVar31 = (int *)0x0;\n      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar29 = piVar17;\n      do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));\n    }\n    piVar25 = *(int **)(puStack_2a0 + -0x76e4);\n    piVar23 = *(int **)(puStack_2a0 + -0x7d0c);\n    (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    piVar31 = *(int **)(puStack_2a0 + -0x7550);\n    piVar28 = *(int **)(puStack_2a0 + -0x7d04);\n    pcStack_294 = (code *)(piVar31 + 0x1398);\n    do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      iVar11 = *(int *)(puVar5 + 0x18);\n      if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar4)(3,puVar20,0);\n      if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar31 = (int *)(*pcVar4)();\n      *piVar31 = 0;\n      iVar11 = wait_for(0xffffffff);\n      if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar4)(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    } while( true );\n  }\n  puVar6 = (undefined1 *)0xffffffff;\nLAB_0006b430:\n  puVar30 = puStack_2a0;\n  if (piStack_18c == (int *)*puVar27) {\n    return puVar6;\n  }\n  piVar29 = piStack_18c;\n  (**(code **)(puStack_2a0 + -0x60b8))();\nLAB_0006b730:\n  pcVar4 = *(code **)(puVar30 + -0x625c);\n  pcVar32 = start_job;\n  puVar13 = (undefined4 *)0x1;\n  (*pcVar4)();\n  piVar17 = *(int **)(pcVar4 + 0xdada0);\n  iVar11 = (int)piVar29 * 4;\n  iStack_2dc = *piVar17;\n  piVar22 = *(int **)(pcVar4 + 0xd9720);\n  puStack_2d8 = puVar20;\n  puStack_2d4 = puVar6;\n  puStack_2d0 = puVar5;\n  piStack_2cc = piVar23;\n  piStack_2c8 = piVar25;\n  puStack_2c4 = puVar27;\n  piStack_2c0 = piVar28;\n  iStack_2bc = iVar3;\n  piStack_2b8 = piVar31;\n  pcStack_2b4 = pcVar32;\n  (**(code **)(pcVar4 + 0xdab98))(auStack_3dc);\n  (**(code **)(pcVar4 + 0xdac28))(auStack_3dc,0x12);\n  (**(code **)(pcVar4 + 0xdab98))(auStack_35c);\n  (**(code **)(pcVar4 + 0xdadd8))(1,auStack_3dc,auStack_35c);\n  iVar3 = *(int *)(*(int *)(*piVar22 + iVar11) + 0xc);\n  if (iVar3 == 4) {\n    puVar20 = (undefined1 *)0xffffffff;\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec));\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);\nLAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }\n  if (iStack_2dc == *piVar17) {\n    return puVar20;\n  }\n  pcVar4 = *(code **)(pcVar4 + 0xdad4c);\n  iVar3 = iStack_2dc;\n  (*pcVar4)();\n  piVar31 = *(int **)(pcVar4 + 0xd8b10);\n  iVar11 = (**(code **)(pcVar4 + 0xda6dc))();\n  *piVar31 = iVar11;\n  if (iVar11 == -1) {\n    uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5);\n    sys_error(uVar19);\n    (**(code **)(pcVar4 + 0xda620))(1);\nLAB_0006c3c8:\n    uVar19 = *puVar13;\nLAB_0006be24:\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);\n    iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19);\n    *piVar22 = iVar3;\n    if (iVar3 != -1) goto LAB_0006bf80;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 == 0) goto LAB_0006bf08;\nLAB_0006be5c:\n    iVar3 = *piVar22;\n  }\n  else {\n    piVar29 = *(int **)(pcVar4 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);\n    uVar19 = *puVar13;\n    if (iVar3 == 0 && *piVar29 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar22 = *(int **)(pcVar4 + 0xd93fc);\n    iVar3 = **(int **)(pcVar4 + 0xd87e4);\n    *piVar22 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }\n    else {\n      iVar3 = *piVar22;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar22 = iVar3;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar32)();\n    pcVar32 = *(code **)(pcVar4 + 0xda4fc);\n    *piVar31 = iVar3;\n    (*pcVar32)(0,iVar3);\n    iVar3 = *piVar22;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }\n  }\n  iVar11 = 0x12;\n  piVar25 = *(int **)(pcVar4 + 0xd9434);\n  piVar23 = *(int **)(pcVar4 + 0xd8a98);\n  while( true ) {\n    iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3);\n    *piVar25 = iVar3;\n    if (iVar3 == -1) break;\n    if (*piVar31 == iVar3) {\n      iVar8 = -1;\n      goto LAB_0006c118;\n    }\n    pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    if (*piVar23 != 0) {\n      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);\n      pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    }\n    iVar11 = iVar11 + -1;\n    uVar19 = (*pcVar32)(0x1a,0);\n    (**(code **)(pcVar4 + 0xda61c))(0,0x1a);\n    (**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19);\n    if (iVar11 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);\n      sys_error(uVar19);\n      iVar3 = *piVar25;\n      iVar11 = *piVar31;\n      *piVar23 = 0;\n      **(int **)(pcVar4 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }\n    iVar3 = *piVar22;\n  }\n  piVar23 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n  iVar8 = *piVar23;\n  iVar3 = *piVar31;\nLAB_0006c118:\n  piVar28 = *(int **)(pcVar4 + 0xd9070);\n  pcVar32 = *(code **)(pcVar4 + 0xda670);\n  *piVar28 = iVar3;\n  iVar3 = (*pcVar32)();\n  iVar11 = *piVar28;\n  *piVar31 = iVar3;\n  if (iVar3 == iVar11) {\nLAB_0006c138:\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    *piVar23 = 1;\nLAB_0006c144:\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\nLAB_0006c148:\n    iVar11 = (*pcVar32)(*piVar22);\n    if ((iVar11 == -1) || (*piVar31 != iVar11)) {\n      if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);\n      sys_error(uVar19,iVar11);\n      *piVar23 = 0;\n      goto LAB_0006c230;\n    }\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n    if (*piVar23 != 0) {\n      iVar3 = *piVar25;\n      goto LAB_0006bff4;\n    }\n  }\n  else {\n    iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    iVar11 = *piVar31;\n    iVar3 = *piVar28;\n    *piVar23 = 1;\n    if (iVar11 == iVar3) goto LAB_0006c144;\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\n    if (*piVar25 == iVar11) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar11,0);\n    if (iVar3 < 0) {\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }\n    else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n  }\n  uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,iVar3 + 0x7e94,5);\n  internal_error(uVar19);\n  iVar3 = *piVar25;\n  iVar11 = *piVar31;\nLAB_0006bff4:\n  pcVar32 = *(code **)(pcVar4 + 0xda58c);\n  uVar19 = *puVar13;\n  **(uint **)(pcVar4 + 0xd8954) = (uint)(iVar11 != iVar3);\n  iVar3 = (*pcVar32)(uVar19);\n  if (iVar3 != *piVar22) {\n    (**(code **)(pcVar4 + 0xda540))(*piVar22,2,1);\n  }\n  (**(code **)(pcVar4 + 0xd8aac))(0x12,*(int *)(pcVar4 + 0xd942c) + -0x6fbc);\n  uVar19 = 0x2b;\n  if (*piVar23 != 0) {\n    uVar19 = 0x2d;\n  }\n  change_flag(0x6d,uVar19);\n  if (*piVar29 != 0) {\n    get_tty_state();\n  }\n  piVar31 = *(int **)(pcVar4 + 0xd90bc);\n  if (-1 < *piVar31) {\n    return (undefined1 *)*piVar23;\n  }\n  iVar3 = (**(code **)(pcVar4 + 0xd93d8))();\n  if (iVar3 < 0) {\n    iVar3 = 0x20;\n  }\n  *piVar31 = iVar3;\n  return (undefined1 *)*piVar23;\nLAB_0006b3b8:\n  puVar6 = (undefined1 *)job_exit_status(piVar31);\n  if (((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0)) {\n    FUN_00066b6c(piVar31,0);\n  }\n  (**(code **)(puStack_2a0 + -0x737c))();\n  (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n  goto LAB_0006b430;\n}" (type_identifier "undefined1") (pointer_declarator "* wait_for_job(int param_1,uint param_2)" (* "*") (function_declarator "wait_for_job(int param_1,uint param_2)" (identifier "wait_for_job") (parameter_list "(int param_1,uint param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")")))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  code *pcVar4;\n  undefined1 *puVar5;\n  undefined1 *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  undefined4 uVar14;\n  int iVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int iVar18;\n  undefined4 uVar19;\n  undefined1 *puVar20;\n  undefined4 *puVar21;\n  int *piVar22;\n  int *piVar23;\n  undefined4 *puVar24;\n  int *piVar25;\n  int iVar26;\n  undefined4 *puVar27;\n  int *piVar28;\n  int *piVar29;\n  undefined *puVar30;\n  int *piVar31;\n  code *pcVar32;\n  undefined4 uStack_3e4;\n  undefined1 auStack_3dc [128];\n  undefined1 auStack_35c [128];\n  int iStack_2dc;\n  undefined1 *puStack_2d8;\n  undefined1 *puStack_2d4;\n  undefined1 *puStack_2d0;\n  int *piStack_2cc;\n  int *piStack_2c8;\n  undefined4 *puStack_2c4;\n  int *piStack_2c0;\n  int iStack_2bc;\n  int *piStack_2b8;\n  code *pcStack_2b4;\n  undefined *puStack_2a0;\n  code *pcStack_294;\n  undefined1 auStack_28c [128];\n  undefined1 auStack_20c [128];\n  int *piStack_18c;\n  undefined1 *puStack_188;\n  undefined1 *puStack_184;\n  undefined1 *puStack_180;\n  undefined4 uStack_17c;\n  int *piStack_178;\n  int iStack_174;\n  int *piStack_170;\n  int *piStack_16c;\n  undefined *puStack_168;\n  code *pcStack_164;\n  undefined1 auStack_12c [128];\n  undefined1 auStack_ac [128];\n  int local_2c;\n  \n  puVar30 = PTR___stack_chk_guard_001464dc;\n  piVar31 = (int *)PTR_jobs_00144e5c;\n  puVar20 = auStack_12c;\n  piVar29 = (int *)(param_1 * 4);\n  local_2c = *(int *)PTR___stack_chk_guard_001464dc;\n  (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n  (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n  (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n  if (*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc) == 2) {\n    uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);\n    internal_warning(uVar19,param_1 + 1);\n  }\n  puVar2 = PTR_js_00144e58;\n  puVar1 = PTR_wait_for_00144d9c;\n  piVar23 = (int *)0xffffffff;\n  piVar25 = (int *)(param_2 & 2);\n  iVar3 = FUN_00065a6c(param_1);\n  piVar28 = *(int **)(iVar3 + 4);\n  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n  pcVar4 = (code *)(PTR_LAB_00144ff0 + 0x4e60);\n  do {\n    puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28);\n    if (((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar4)();\n    }\n    if (piVar25 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      if (param_1 == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }\n    (*(code *)PTR_sigemptyset_001462d4)();\n    (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n    (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n    (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n    if (param_1 == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      goto LAB_0006b0f4;\n    }\n    if (*(int *)(*piVar31 + (int)piVar29) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      break;\n    }\n    iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc);\n    (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac);\n  } while (iVar3 != 4);\n  (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n  (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n  (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n  (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\nLAB_0006b0d0:\n  piVar29 = (int *)(*piVar31 + (int)piVar29);\n  iVar3 = *piVar29;\n  if ((iVar3 != 0) && (*(int *)(iVar3 + 0xc) == 4)) {\n    *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n  }\nLAB_0006b0f4:\n  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n  if (local_2c == *(int *)puVar30) {\n    return puVar5;\n  }\n  pcVar4 = wait_for_any_job;\n  puVar30 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  puStack_2a0 = puVar30 + 0xe1290;\n  iVar3 = *(int *)(puVar30 + 0xd9ea4);\n  puVar27 = *(undefined4 **)(puVar30 + 0xdb22c);\n  puStack_168 = (undefined *)piVar31;\n  uStack_17c = 0xffffffff;\n  piStack_18c = (int *)*puVar27;\n  puStack_188 = puVar20;\n  puStack_184 = auStack_ac;\n  puStack_180 = puVar5;\n  piStack_178 = piVar25;\n  iStack_174 = param_1;\n  piStack_170 = piVar28;\n  piStack_16c = piVar29;\n  pcStack_164 = pcVar4;\n  if (*(int *)(iVar3 + -0x705c) == 0) {\n    puVar6 = auStack_28c;\n    puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8);\n    puVar20 = auStack_20c;\n    (**(code **)(puVar30 + 0xdb024))(puVar6);\n    (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n    (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n    (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n    if (0 < (int)*(int **)(puVar5 + 0x18)) {\n      piVar31 = (int *)0x0;\n      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar29 = piVar17;\n      do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));\n    }\n    piVar25 = *(int **)(puStack_2a0 + -0x76e4);\n    piVar23 = *(int **)(puStack_2a0 + -0x7d0c);\n    (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    piVar31 = *(int **)(puStack_2a0 + -0x7550);\n    piVar28 = *(int **)(puStack_2a0 + -0x7d04);\n    pcStack_294 = (code *)(piVar31 + 0x1398);\n    do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      iVar11 = *(int *)(puVar5 + 0x18);\n      if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar4)(3,puVar20,0);\n      if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar31 = (int *)(*pcVar4)();\n      *piVar31 = 0;\n      iVar11 = wait_for(0xffffffff);\n      if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar4)(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    } while( true );\n  }\n  puVar6 = (undefined1 *)0xffffffff;\nLAB_0006b430:\n  puVar30 = puStack_2a0;\n  if (piStack_18c == (int *)*puVar27) {\n    return puVar6;\n  }\n  piVar29 = piStack_18c;\n  (**(code **)(puStack_2a0 + -0x60b8))();\nLAB_0006b730:\n  pcVar4 = *(code **)(puVar30 + -0x625c);\n  pcVar32 = start_job;\n  puVar13 = (undefined4 *)0x1;\n  (*pcVar4)();\n  piVar17 = *(int **)(pcVar4 + 0xdada0);\n  iVar11 = (int)piVar29 * 4;\n  iStack_2dc = *piVar17;\n  piVar22 = *(int **)(pcVar4 + 0xd9720);\n  puStack_2d8 = puVar20;\n  puStack_2d4 = puVar6;\n  puStack_2d0 = puVar5;\n  piStack_2cc = piVar23;\n  piStack_2c8 = piVar25;\n  puStack_2c4 = puVar27;\n  piStack_2c0 = piVar28;\n  iStack_2bc = iVar3;\n  piStack_2b8 = piVar31;\n  pcStack_2b4 = pcVar32;\n  (**(code **)(pcVar4 + 0xdab98))(auStack_3dc);\n  (**(code **)(pcVar4 + 0xdac28))(auStack_3dc,0x12);\n  (**(code **)(pcVar4 + 0xdab98))(auStack_35c);\n  (**(code **)(pcVar4 + 0xdadd8))(1,auStack_3dc,auStack_35c);\n  iVar3 = *(int *)(*(int *)(*piVar22 + iVar11) + 0xc);\n  if (iVar3 == 4) {\n    puVar20 = (undefined1 *)0xffffffff;\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec));\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);\nLAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }\n  if (iStack_2dc == *piVar17) {\n    return puVar20;\n  }\n  pcVar4 = *(code **)(pcVar4 + 0xdad4c);\n  iVar3 = iStack_2dc;\n  (*pcVar4)();\n  piVar31 = *(int **)(pcVar4 + 0xd8b10);\n  iVar11 = (**(code **)(pcVar4 + 0xda6dc))();\n  *piVar31 = iVar11;\n  if (iVar11 == -1) {\n    uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5);\n    sys_error(uVar19);\n    (**(code **)(pcVar4 + 0xda620))(1);\nLAB_0006c3c8:\n    uVar19 = *puVar13;\nLAB_0006be24:\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);\n    iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19);\n    *piVar22 = iVar3;\n    if (iVar3 != -1) goto LAB_0006bf80;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 == 0) goto LAB_0006bf08;\nLAB_0006be5c:\n    iVar3 = *piVar22;\n  }\n  else {\n    piVar29 = *(int **)(pcVar4 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);\n    uVar19 = *puVar13;\n    if (iVar3 == 0 && *piVar29 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar22 = *(int **)(pcVar4 + 0xd93fc);\n    iVar3 = **(int **)(pcVar4 + 0xd87e4);\n    *piVar22 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }\n    else {\n      iVar3 = *piVar22;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar22 = iVar3;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar32)();\n    pcVar32 = *(code **)(pcVar4 + 0xda4fc);\n    *piVar31 = iVar3;\n    (*pcVar32)(0,iVar3);\n    iVar3 = *piVar22;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }\n  }\n  iVar11 = 0x12;\n  piVar25 = *(int **)(pcVar4 + 0xd9434);\n  piVar23 = *(int **)(pcVar4 + 0xd8a98);\n  while( true ) {\n    iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3);\n    *piVar25 = iVar3;\n    if (iVar3 == -1) break;\n    if (*piVar31 == iVar3) {\n      iVar8 = -1;\n      goto LAB_0006c118;\n    }\n    pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    if (*piVar23 != 0) {\n      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);\n      pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    }\n    iVar11 = iVar11 + -1;\n    uVar19 = (*pcVar32)(0x1a,0);\n    (**(code **)(pcVar4 + 0xda61c))(0,0x1a);\n    (**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19);\n    if (iVar11 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);\n      sys_error(uVar19);\n      iVar3 = *piVar25;\n      iVar11 = *piVar31;\n      *piVar23 = 0;\n      **(int **)(pcVar4 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }\n    iVar3 = *piVar22;\n  }\n  piVar23 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n  iVar8 = *piVar23;\n  iVar3 = *piVar31;\nLAB_0006c118:\n  piVar28 = *(int **)(pcVar4 + 0xd9070);\n  pcVar32 = *(code **)(pcVar4 + 0xda670);\n  *piVar28 = iVar3;\n  iVar3 = (*pcVar32)();\n  iVar11 = *piVar28;\n  *piVar31 = iVar3;\n  if (iVar3 == iVar11) {\nLAB_0006c138:\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    *piVar23 = 1;\nLAB_0006c144:\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\nLAB_0006c148:\n    iVar11 = (*pcVar32)(*piVar22);\n    if ((iVar11 == -1) || (*piVar31 != iVar11)) {\n      if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);\n      sys_error(uVar19,iVar11);\n      *piVar23 = 0;\n      goto LAB_0006c230;\n    }\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n    if (*piVar23 != 0) {\n      iVar3 = *piVar25;\n      goto LAB_0006bff4;\n    }\n  }\n  else {\n    iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    iVar11 = *piVar31;\n    iVar3 = *piVar28;\n    *piVar23 = 1;\n    if (iVar11 == iVar3) goto LAB_0006c144;\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\n    if (*piVar25 == iVar11) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar11,0);\n    if (iVar3 < 0) {\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }\n    else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n  }\n  uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,iVar3 + 0x7e94,5);\n  internal_error(uVar19);\n  iVar3 = *piVar25;\n  iVar11 = *piVar31;\nLAB_0006bff4:\n  pcVar32 = *(code **)(pcVar4 + 0xda58c);\n  uVar19 = *puVar13;\n  **(uint **)(pcVar4 + 0xd8954) = (uint)(iVar11 != iVar3);\n  iVar3 = (*pcVar32)(uVar19);\n  if (iVar3 != *piVar22) {\n    (**(code **)(pcVar4 + 0xda540))(*piVar22,2,1);\n  }\n  (**(code **)(pcVar4 + 0xd8aac))(0x12,*(int *)(pcVar4 + 0xd942c) + -0x6fbc);\n  uVar19 = 0x2b;\n  if (*piVar23 != 0) {\n    uVar19 = 0x2d;\n  }\n  change_flag(0x6d,uVar19);\n  if (*piVar29 != 0) {\n    get_tty_state();\n  }\n  piVar31 = *(int **)(pcVar4 + 0xd90bc);\n  if (-1 < *piVar31) {\n    return (undefined1 *)*piVar23;\n  }\n  iVar3 = (**(code **)(pcVar4 + 0xd93d8))();\n  if (iVar3 < 0) {\n    iVar3 = 0x20;\n  }\n  *piVar31 = iVar3;\n  return (undefined1 *)*piVar23;\nLAB_0006b3b8:\n  puVar6 = (undefined1 *)job_exit_status(piVar31);\n  if (((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0)) {\n    FUN_00066b6c(piVar31,0);\n  }\n  (**(code **)(puStack_2a0 + -0x737c))();\n  (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n  goto LAB_0006b430;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "code *pcVar4;" (type_identifier "code") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "undefined1 *puVar5;" (type_identifier "undefined1") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined1 *puVar6;" (type_identifier "undefined1") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined4 uVar14;" (type_identifier "undefined4") (identifier "uVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "undefined4 uVar16;" (type_identifier "undefined4") (identifier "uVar16") (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "undefined4 uVar19;" (type_identifier "undefined4") (identifier "uVar19") (; ";")) (declaration "undefined1 *puVar20;" (type_identifier "undefined1") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "undefined4 *puVar21;" (type_identifier "undefined4") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "int *piVar22;" (primitive_type "int") (pointer_declarator "*piVar22" (* "*") (identifier "piVar22")) (; ";")) (declaration "int *piVar23;" (primitive_type "int") (pointer_declarator "*piVar23" (* "*") (identifier "piVar23")) (; ";")) (declaration "undefined4 *puVar24;" (type_identifier "undefined4") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "int *piVar25;" (primitive_type "int") (pointer_declarator "*piVar25" (* "*") (identifier "piVar25")) (; ";")) (declaration "int iVar26;" (primitive_type "int") (identifier "iVar26") (; ";")) (declaration "undefined4 *puVar27;" (type_identifier "undefined4") (pointer_declarator "*puVar27" (* "*") (identifier "puVar27")) (; ";")) (declaration "int *piVar28;" (primitive_type "int") (pointer_declarator "*piVar28" (* "*") (identifier "piVar28")) (; ";")) (declaration "int *piVar29;" (primitive_type "int") (pointer_declarator "*piVar29" (* "*") (identifier "piVar29")) (; ";")) (declaration "undefined *puVar30;" (type_identifier "undefined") (pointer_declarator "*puVar30" (* "*") (identifier "puVar30")) (; ";")) (declaration "int *piVar31;" (primitive_type "int") (pointer_declarator "*piVar31" (* "*") (identifier "piVar31")) (; ";")) (declaration "code *pcVar32;" (type_identifier "code") (pointer_declarator "*pcVar32" (* "*") (identifier "pcVar32")) (; ";")) (declaration "undefined4 uStack_3e4;" (type_identifier "undefined4") (identifier "uStack_3e4") (; ";")) (declaration "undefined1 auStack_3dc [128];" (type_identifier "undefined1") (array_declarator "auStack_3dc [128]" (identifier "auStack_3dc") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "undefined1 auStack_35c [128];" (type_identifier "undefined1") (array_declarator "auStack_35c [128]" (identifier "auStack_35c") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "int iStack_2dc;" (primitive_type "int") (identifier "iStack_2dc") (; ";")) (declaration "undefined1 *puStack_2d8;" (type_identifier "undefined1") (pointer_declarator "*puStack_2d8" (* "*") (identifier "puStack_2d8")) (; ";")) (declaration "undefined1 *puStack_2d4;" (type_identifier "undefined1") (pointer_declarator "*puStack_2d4" (* "*") (identifier "puStack_2d4")) (; ";")) (declaration "undefined1 *puStack_2d0;" (type_identifier "undefined1") (pointer_declarator "*puStack_2d0" (* "*") (identifier "puStack_2d0")) (; ";")) (declaration "int *piStack_2cc;" (primitive_type "int") (pointer_declarator "*piStack_2cc" (* "*") (identifier "piStack_2cc")) (; ";")) (declaration "int *piStack_2c8;" (primitive_type "int") (pointer_declarator "*piStack_2c8" (* "*") (identifier "piStack_2c8")) (; ";")) (declaration "undefined4 *puStack_2c4;" (type_identifier "undefined4") (pointer_declarator "*puStack_2c4" (* "*") (identifier "puStack_2c4")) (; ";")) (declaration "int *piStack_2c0;" (primitive_type "int") (pointer_declarator "*piStack_2c0" (* "*") (identifier "piStack_2c0")) (; ";")) (declaration "int iStack_2bc;" (primitive_type "int") (identifier "iStack_2bc") (; ";")) (declaration "int *piStack_2b8;" (primitive_type "int") (pointer_declarator "*piStack_2b8" (* "*") (identifier "piStack_2b8")) (; ";")) (declaration "code *pcStack_2b4;" (type_identifier "code") (pointer_declarator "*pcStack_2b4" (* "*") (identifier "pcStack_2b4")) (; ";")) (declaration "undefined *puStack_2a0;" (type_identifier "undefined") (pointer_declarator "*puStack_2a0" (* "*") (identifier "puStack_2a0")) (; ";")) (declaration "code *pcStack_294;" (type_identifier "code") (pointer_declarator "*pcStack_294" (* "*") (identifier "pcStack_294")) (; ";")) (declaration "undefined1 auStack_28c [128];" (type_identifier "undefined1") (array_declarator "auStack_28c [128]" (identifier "auStack_28c") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "undefined1 auStack_20c [128];" (type_identifier "undefined1") (array_declarator "auStack_20c [128]" (identifier "auStack_20c") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "int *piStack_18c;" (primitive_type "int") (pointer_declarator "*piStack_18c" (* "*") (identifier "piStack_18c")) (; ";")) (declaration "undefined1 *puStack_188;" (type_identifier "undefined1") (pointer_declarator "*puStack_188" (* "*") (identifier "puStack_188")) (; ";")) (declaration "undefined1 *puStack_184;" (type_identifier "undefined1") (pointer_declarator "*puStack_184" (* "*") (identifier "puStack_184")) (; ";")) (declaration "undefined1 *puStack_180;" (type_identifier "undefined1") (pointer_declarator "*puStack_180" (* "*") (identifier "puStack_180")) (; ";")) (declaration "undefined4 uStack_17c;" (type_identifier "undefined4") (identifier "uStack_17c") (; ";")) (declaration "int *piStack_178;" (primitive_type "int") (pointer_declarator "*piStack_178" (* "*") (identifier "piStack_178")) (; ";")) (declaration "int iStack_174;" (primitive_type "int") (identifier "iStack_174") (; ";")) (declaration "int *piStack_170;" (primitive_type "int") (pointer_declarator "*piStack_170" (* "*") (identifier "piStack_170")) (; ";")) (declaration "int *piStack_16c;" (primitive_type "int") (pointer_declarator "*piStack_16c" (* "*") (identifier "piStack_16c")) (; ";")) (declaration "undefined *puStack_168;" (type_identifier "undefined") (pointer_declarator "*puStack_168" (* "*") (identifier "puStack_168")) (; ";")) (declaration "code *pcStack_164;" (type_identifier "code") (pointer_declarator "*pcStack_164" (* "*") (identifier "pcStack_164")) (; ";")) (declaration "undefined1 auStack_12c [128];" (type_identifier "undefined1") (array_declarator "auStack_12c [128]" (identifier "auStack_12c") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "undefined1 auStack_ac [128];" (type_identifier "undefined1") (array_declarator "auStack_ac [128]" (identifier "auStack_ac") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar30 = PTR___stack_chk_guard_001464dc;" (assignment_expression "puVar30 = PTR___stack_chk_guard_001464dc" (identifier "puVar30") (= "=") (identifier "PTR___stack_chk_guard_001464dc")) (; ";")) (expression_statement "piVar31 = (int *)PTR_jobs_00144e5c;" (assignment_expression "piVar31 = (int *)PTR_jobs_00144e5c" (identifier "piVar31") (= "=") (cast_expression "(int *)PTR_jobs_00144e5c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_jobs_00144e5c"))) (; ";")) (expression_statement "puVar20 = auStack_12c;" (assignment_expression "puVar20 = auStack_12c" (identifier "puVar20") (= "=") (identifier "auStack_12c")) (; ";")) (expression_statement "piVar29 = (int *)(param_1 * 4);" (assignment_expression "piVar29 = (int *)(param_1 * 4)" (identifier "piVar29") (= "=") (cast_expression "(int *)(param_1 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 * 4)" (( "(") (binary_expression "param_1 * 4" (identifier "param_1") (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_001464dc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_001464dc" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_001464dc" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_001464dc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_001464dc")))) (; ";")) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(puVar20);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(puVar20)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" (( "(") (pointer_expression "*(code *)PTR_sigemptyset_001462d4" (* "*") (cast_expression "(code *)PTR_sigemptyset_001462d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigemptyset_001462d4"))) () ")")) (argument_list "(puVar20)" (( "(") (identifier "puVar20") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12);" (call_expression "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00146364)" (( "(") (pointer_expression "*(code *)PTR_sigaddset_00146364" (* "*") (cast_expression "(code *)PTR_sigaddset_00146364" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigaddset_00146364"))) () ")")) (argument_list "(puVar20,0x12)" (( "(") (identifier "puVar20") (, ",") (number_literal "0x12") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" (( "(") (pointer_expression "*(code *)PTR_sigemptyset_001462d4" (* "*") (cast_expression "(code *)PTR_sigemptyset_001462d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigemptyset_001462d4"))) () ")")) (argument_list "(auStack_ac)" (( "(") (identifier "auStack_ac") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" (( "(") (pointer_expression "*(code *)PTR_sigprocmask_00146514" (* "*") (cast_expression "(code *)PTR_sigprocmask_00146514" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigprocmask_00146514"))) () ")")) (argument_list "(1,puVar20,auStack_ac)" (( "(") (number_literal "1") (, ",") (identifier "puVar20") (, ",") (identifier "auStack_ac") () ")"))) (; ";")) (if_statement "if (*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc) == 2) {\n    uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);\n    internal_warning(uVar19,param_1 + 1);\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc) == 2)" (( "(") (binary_expression "*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc) == 2" (pointer_expression "*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*piVar31 + (int)piVar29) + 0xc)" (( "(") (binary_expression "*(int *)(*piVar31 + (int)piVar29) + 0xc" (pointer_expression "*(int *)(*piVar31 + (int)piVar29)" (* "*") (cast_expression "(int *)(*piVar31 + (int)piVar29)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar31 + (int)piVar29)" (( "(") (binary_expression "*piVar31 + (int)piVar29" (pointer_expression "*piVar31" (* "*") (identifier "piVar31")) (+ "+") (cast_expression "(int)piVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar29"))) () ")")))) (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);\n    internal_warning(uVar19,param_1 + 1);\n  }" ({ "{") (expression_statement "uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);" (assignment_expression "uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5)" (identifier "uVar19") (= "=") (call_expression "(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00146498)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_00146498" (* "*") (cast_expression "(code *)PTR_dcgettext_00146498" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_00146498"))) () ")")) (argument_list "(0,PTR_LAB_00144578 + 0x7d78,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_LAB_00144578 + 0x7d78" (identifier "PTR_LAB_00144578") (+ "+") (number_literal "0x7d78")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "internal_warning(uVar19,param_1 + 1);" (call_expression "internal_warning(uVar19,param_1 + 1)" (identifier "internal_warning") (argument_list "(uVar19,param_1 + 1)" (( "(") (identifier "uVar19") (, ",") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar2 = PTR_js_00144e58;" (assignment_expression "puVar2 = PTR_js_00144e58" (identifier "puVar2") (= "=") (identifier "PTR_js_00144e58")) (; ";")) (expression_statement "puVar1 = PTR_wait_for_00144d9c;" (assignment_expression "puVar1 = PTR_wait_for_00144d9c" (identifier "puVar1") (= "=") (identifier "PTR_wait_for_00144d9c")) (; ";")) (expression_statement "piVar23 = (int *)0xffffffff;" (assignment_expression "piVar23 = (int *)0xffffffff" (identifier "piVar23") (= "=") (cast_expression "(int *)0xffffffff" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "piVar25 = (int *)(param_2 & 2);" (assignment_expression "piVar25 = (int *)(param_2 & 2)" (identifier "piVar25") (= "=") (cast_expression "(int *)(param_2 & 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 & 2)" (( "(") (binary_expression "param_2 & 2" (identifier "param_2") (& "&") (number_literal "2")) () ")")))) (; ";")) (expression_statement "iVar3 = FUN_00065a6c(param_1);" (assignment_expression "iVar3 = FUN_00065a6c(param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00065a6c(param_1)" (identifier "FUN_00065a6c") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "piVar28 = *(int **)(iVar3 + 4);" (assignment_expression "piVar28 = *(int **)(iVar3 + 4)" (identifier "piVar28") (= "=") (pointer_expression "*(int **)(iVar3 + 4)" (* "*") (cast_expression "(int **)(iVar3 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" (( "(") (pointer_expression "*(code *)PTR_sigprocmask_00146514" (* "*") (cast_expression "(code *)PTR_sigprocmask_00146514" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigprocmask_00146514"))) () ")")) (argument_list "(3,auStack_ac,0)" (( "(") (number_literal "3") (, ",") (identifier "auStack_ac") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "pcVar4 = (code *)(PTR_LAB_00144ff0 + 0x4e60);" (assignment_expression "pcVar4 = (code *)(PTR_LAB_00144ff0 + 0x4e60)" (identifier "pcVar4") (= "=") (cast_expression "(code *)(PTR_LAB_00144ff0 + 0x4e60)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00144ff0 + 0x4e60)" (( "(") (binary_expression "PTR_LAB_00144ff0 + 0x4e60" (identifier "PTR_LAB_00144ff0") (+ "+") (number_literal "0x4e60")) () ")")))) (; ";")) (do_statement "do {\n    puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28);\n    if (((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar4)();\n    }\n    if (piVar25 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      if (param_1 == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }\n    (*(code *)PTR_sigemptyset_001462d4)();\n    (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n    (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n    (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n    if (param_1 == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      goto LAB_0006b0f4;\n    }\n    if (*(int *)(*piVar31 + (int)piVar29) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      break;\n    }\n    iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc);\n    (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac);\n  } while (iVar3 != 4);" (do "do") (compound_statement "{\n    puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28);\n    if (((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar4)();\n    }\n    if (piVar25 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      if (param_1 == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }\n    (*(code *)PTR_sigemptyset_001462d4)();\n    (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n    (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n    (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n    if (param_1 == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      goto LAB_0006b0f4;\n    }\n    if (*(int *)(*piVar31 + (int)piVar29) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      break;\n    }\n    iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc);\n    (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac);\n  }" ({ "{") (expression_statement "puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28);" (assignment_expression "puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28)" (identifier "puVar5") (= "=") (cast_expression "(undefined1 *)(*(code *)puVar1)(piVar28)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)puVar1)(piVar28)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(piVar28)" (( "(") (identifier "piVar28") () ")"))))) (; ";")) (if_statement "if (((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)) {\n      (*pcVar4)();\n    }" (if "if") (parenthesized_expression "(((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0))" (( "(") (binary_expression "((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&\n       (*(int *)(puVar2 + 0x18) != 0)" (parenthesized_expression "((puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10))" (( "(") (binary_expression "(puVar5 == (undefined1 *)0xffffffff) &&\n        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)" (parenthesized_expression "(puVar5 == (undefined1 *)0xffffffff)" (( "(") (binary_expression "puVar5 == (undefined1 *)0xffffffff" (identifier "puVar5") (== "==") (cast_expression "(undefined1 *)0xffffffff" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (&& "&&") (parenthesized_expression "(piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)" (( "(") (comma_expression "piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10" (assignment_expression "piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)()" (identifier "piVar17") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_0014633c)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0014633c)()" (parenthesized_expression "(*(code *)PTR___errno_location_0014633c)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0014633c" (* "*") (cast_expression "(code *)PTR___errno_location_0014633c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0014633c"))) () ")")) (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "*piVar17 == 10" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (== "==") (number_literal "10"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(puVar2 + 0x18) != 0)" (( "(") (binary_expression "*(int *)(puVar2 + 0x18) != 0" (pointer_expression "*(int *)(puVar2 + 0x18)" (* "*") (cast_expression "(int *)(puVar2 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x18)" (( "(") (binary_expression "puVar2 + 0x18" (identifier "puVar2") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      (*pcVar4)();\n    }" ({ "{") (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (piVar25 == (int *)0x0) {\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      if (param_1 == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }" (if "if") (parenthesized_expression "(piVar25 == (int *)0x0)" (( "(") (binary_expression "piVar25 == (int *)0x0" (identifier "piVar25") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      if (param_1 == -1) goto LAB_0006b0f4;\n      goto LAB_0006b0d0;\n    }" ({ "{") (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(puVar20);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(puVar20)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" (( "(") (pointer_expression "*(code *)PTR_sigemptyset_001462d4" (* "*") (cast_expression "(code *)PTR_sigemptyset_001462d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigemptyset_001462d4"))) () ")")) (argument_list "(puVar20)" (( "(") (identifier "puVar20") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12);" (call_expression "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00146364)" (( "(") (pointer_expression "*(code *)PTR_sigaddset_00146364" (* "*") (cast_expression "(code *)PTR_sigaddset_00146364" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigaddset_00146364"))) () ")")) (argument_list "(puVar20,0x12)" (( "(") (identifier "puVar20") (, ",") (number_literal "0x12") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" (( "(") (pointer_expression "*(code *)PTR_sigemptyset_001462d4" (* "*") (cast_expression "(code *)PTR_sigemptyset_001462d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigemptyset_001462d4"))) () ")")) (argument_list "(auStack_ac)" (( "(") (identifier "auStack_ac") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" (( "(") (pointer_expression "*(code *)PTR_sigprocmask_00146514" (* "*") (cast_expression "(code *)PTR_sigprocmask_00146514" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigprocmask_00146514"))) () ")")) (argument_list "(1,puVar20,auStack_ac)" (( "(") (number_literal "1") (, ",") (identifier "puVar20") (, ",") (identifier "auStack_ac") () ")"))) (; ";")) (if_statement "if (param_1 == -1) goto LAB_0006b0f4;" (if "if") (parenthesized_expression "(param_1 == -1)" (( "(") (binary_expression "param_1 == -1" (identifier "param_1") (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0006b0f4;" (goto "goto") (statement_identifier "LAB_0006b0f4") (; ";"))) (goto_statement "goto LAB_0006b0d0;" (goto "goto") (statement_identifier "LAB_0006b0d0") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)();" (call_expression "(*(code *)PTR_sigemptyset_001462d4)()" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" (( "(") (pointer_expression "*(code *)PTR_sigemptyset_001462d4" (* "*") (cast_expression "(code *)PTR_sigemptyset_001462d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigemptyset_001462d4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12);" (call_expression "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00146364)" (( "(") (pointer_expression "*(code *)PTR_sigaddset_00146364" (* "*") (cast_expression "(code *)PTR_sigaddset_00146364" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigaddset_00146364"))) () ")")) (argument_list "(puVar20,0x12)" (( "(") (identifier "puVar20") (, ",") (number_literal "0x12") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" (( "(") (pointer_expression "*(code *)PTR_sigemptyset_001462d4" (* "*") (cast_expression "(code *)PTR_sigemptyset_001462d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigemptyset_001462d4"))) () ")")) (argument_list "(auStack_ac)" (( "(") (identifier "auStack_ac") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" (( "(") (pointer_expression "*(code *)PTR_sigprocmask_00146514" (* "*") (cast_expression "(code *)PTR_sigprocmask_00146514" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigprocmask_00146514"))) () ")")) (argument_list "(1,puVar20,auStack_ac)" (( "(") (number_literal "1") (, ",") (identifier "puVar20") (, ",") (identifier "auStack_ac") () ")"))) (; ";")) (if_statement "if (param_1 == -1) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      goto LAB_0006b0f4;\n    }" (if "if") (parenthesized_expression "(param_1 == -1)" (( "(") (binary_expression "param_1 == -1" (identifier "param_1") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      (*(code *)PTR_sigemptyset_001462d4)(puVar20);\n      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);\n      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);\n      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);\n      goto LAB_0006b0f4;\n    }" ({ "{") (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" (( "(") (pointer_expression "*(code *)PTR_sigprocmask_00146514" (* "*") (cast_expression "(code *)PTR_sigprocmask_00146514" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigprocmask_00146514"))) () ")")) (argument_list "(3,auStack_ac,0)" (( "(") (number_literal "3") (, ",") (identifier "auStack_ac") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(puVar20);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(puVar20)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" (( "(") (pointer_expression "*(code *)PTR_sigemptyset_001462d4" (* "*") (cast_expression "(code *)PTR_sigemptyset_001462d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigemptyset_001462d4"))) () ")")) (argument_list "(puVar20)" (( "(") (identifier "puVar20") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12);" (call_expression "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00146364)" (( "(") (pointer_expression "*(code *)PTR_sigaddset_00146364" (* "*") (cast_expression "(code *)PTR_sigaddset_00146364" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigaddset_00146364"))) () ")")) (argument_list "(puVar20,0x12)" (( "(") (identifier "puVar20") (, ",") (number_literal "0x12") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" (( "(") (pointer_expression "*(code *)PTR_sigemptyset_001462d4" (* "*") (cast_expression "(code *)PTR_sigemptyset_001462d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigemptyset_001462d4"))) () ")")) (argument_list "(auStack_ac)" (( "(") (identifier "auStack_ac") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" (( "(") (pointer_expression "*(code *)PTR_sigprocmask_00146514" (* "*") (cast_expression "(code *)PTR_sigprocmask_00146514" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigprocmask_00146514"))) () ")")) (argument_list "(1,puVar20,auStack_ac)" (( "(") (number_literal "1") (, ",") (identifier "puVar20") (, ",") (identifier "auStack_ac") () ")"))) (; ";")) (goto_statement "goto LAB_0006b0f4;" (goto "goto") (statement_identifier "LAB_0006b0f4") (; ";")) (} "}"))) (if_statement "if (*(int *)(*piVar31 + (int)piVar29) == 0) {\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      break;\n    }" (if "if") (parenthesized_expression "(*(int *)(*piVar31 + (int)piVar29) == 0)" (( "(") (binary_expression "*(int *)(*piVar31 + (int)piVar29) == 0" (pointer_expression "*(int *)(*piVar31 + (int)piVar29)" (* "*") (cast_expression "(int *)(*piVar31 + (int)piVar29)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar31 + (int)piVar29)" (( "(") (binary_expression "*piVar31 + (int)piVar29" (pointer_expression "*piVar31" (* "*") (identifier "piVar31")) (+ "+") (cast_expression "(int)piVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar29"))) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);\n      break;\n    }" ({ "{") (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" (( "(") (pointer_expression "*(code *)PTR_sigprocmask_00146514" (* "*") (cast_expression "(code *)PTR_sigprocmask_00146514" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigprocmask_00146514"))) () ")")) (argument_list "(3,auStack_ac,0)" (( "(") (number_literal "3") (, ",") (identifier "auStack_ac") (, ",") (number_literal "0") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc);" (assignment_expression "iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*piVar31 + (int)piVar29) + 0xc)" (( "(") (binary_expression "*(int *)(*piVar31 + (int)piVar29) + 0xc" (pointer_expression "*(int *)(*piVar31 + (int)piVar29)" (* "*") (cast_expression "(int *)(*piVar31 + (int)piVar29)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar31 + (int)piVar29)" (( "(") (binary_expression "*piVar31 + (int)piVar29" (pointer_expression "*piVar31" (* "*") (identifier "piVar31")) (+ "+") (cast_expression "(int)piVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar29"))) () ")")))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" (( "(") (pointer_expression "*(code *)PTR_sigprocmask_00146514" (* "*") (cast_expression "(code *)PTR_sigprocmask_00146514" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigprocmask_00146514"))) () ")")) (argument_list "(3,auStack_ac)" (( "(") (number_literal "3") (, ",") (identifier "auStack_ac") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 != 4)" (( "(") (binary_expression "iVar3 != 4" (identifier "iVar3") (!= "!=") (number_literal "4")) () ")")) (; ";")) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(puVar20);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(puVar20)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" (( "(") (pointer_expression "*(code *)PTR_sigemptyset_001462d4" (* "*") (cast_expression "(code *)PTR_sigemptyset_001462d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigemptyset_001462d4"))) () ")")) (argument_list "(puVar20)" (( "(") (identifier "puVar20") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12);" (call_expression "(*(code *)PTR_sigaddset_00146364)(puVar20,0x12)" (parenthesized_expression "(*(code *)PTR_sigaddset_00146364)" (( "(") (pointer_expression "*(code *)PTR_sigaddset_00146364" (* "*") (cast_expression "(code *)PTR_sigaddset_00146364" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigaddset_00146364"))) () ")")) (argument_list "(puVar20,0x12)" (( "(") (identifier "puVar20") (, ",") (number_literal "0x12") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" (( "(") (pointer_expression "*(code *)PTR_sigemptyset_001462d4" (* "*") (cast_expression "(code *)PTR_sigemptyset_001462d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigemptyset_001462d4"))) () ")")) (argument_list "(auStack_ac)" (( "(") (identifier "auStack_ac") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" (( "(") (pointer_expression "*(code *)PTR_sigprocmask_00146514" (* "*") (cast_expression "(code *)PTR_sigprocmask_00146514" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigprocmask_00146514"))) () ")")) (argument_list "(1,puVar20,auStack_ac)" (( "(") (number_literal "1") (, ",") (identifier "puVar20") (, ",") (identifier "auStack_ac") () ")"))) (; ";")) (labeled_statement "LAB_0006b0d0:\n  piVar29 = (int *)(*piVar31 + (int)piVar29);" (statement_identifier "LAB_0006b0d0") (: ":") (expression_statement "piVar29 = (int *)(*piVar31 + (int)piVar29);" (assignment_expression "piVar29 = (int *)(*piVar31 + (int)piVar29)" (identifier "piVar29") (= "=") (cast_expression "(int *)(*piVar31 + (int)piVar29)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar31 + (int)piVar29)" (( "(") (binary_expression "*piVar31 + (int)piVar29" (pointer_expression "*piVar31" (* "*") (identifier "piVar31")) (+ "+") (cast_expression "(int)piVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar29"))) () ")")))) (; ";"))) (expression_statement "iVar3 = *piVar29;" (assignment_expression "iVar3 = *piVar29" (identifier "iVar3") (= "=") (pointer_expression "*piVar29" (* "*") (identifier "piVar29"))) (; ";")) (if_statement "if ((iVar3 != 0) && (*(int *)(iVar3 + 0xc) == 4)) {\n    *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n  }" (if "if") (parenthesized_expression "((iVar3 != 0) && (*(int *)(iVar3 + 0xc) == 4))" (( "(") (binary_expression "(iVar3 != 0) && (*(int *)(iVar3 + 0xc) == 4)" (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar3 + 0xc) == 4)" (( "(") (binary_expression "*(int *)(iVar3 + 0xc) == 4" (pointer_expression "*(int *)(iVar3 + 0xc)" (* "*") (cast_expression "(int *)(iVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "4")) () ")"))) () ")")) (compound_statement "{\n    *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n  }" ({ "{") (expression_statement "*(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;" (assignment_expression "*(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2" (pointer_expression "*(uint *)(iVar3 + 0x10)" (* "*") (cast_expression "(uint *)(iVar3 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar3 + 0x10) | 2" (pointer_expression "*(uint *)(iVar3 + 0x10)" (* "*") (cast_expression "(uint *)(iVar3 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (labeled_statement "LAB_0006b0f4:\n  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);" (statement_identifier "LAB_0006b0f4") (: ":") (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" (( "(") (pointer_expression "*(code *)PTR_sigprocmask_00146514" (* "*") (cast_expression "(code *)PTR_sigprocmask_00146514" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigprocmask_00146514"))) () ")")) (argument_list "(3,auStack_ac,0)" (( "(") (number_literal "3") (, ",") (identifier "auStack_ac") (, ",") (number_literal "0") () ")"))) (; ";"))) (if_statement "if (local_2c == *(int *)puVar30) {\n    return puVar5;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar30)" (( "(") (binary_expression "local_2c == *(int *)puVar30" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar30" (* "*") (cast_expression "(int *)puVar30" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar30")))) () ")")) (compound_statement "{\n    return puVar5;\n  }" ({ "{") (return_statement "return puVar5;" (return "return") (identifier "puVar5") (; ";")) (} "}"))) (expression_statement "pcVar4 = wait_for_any_job;" (assignment_expression "pcVar4 = wait_for_any_job" (identifier "pcVar4") (= "=") (identifier "wait_for_any_job")) (; ";")) (expression_statement "puVar30 = PTR___stack_chk_fail_00146488;" (assignment_expression "puVar30 = PTR___stack_chk_fail_00146488" (identifier "puVar30") (= "=") (identifier "PTR___stack_chk_fail_00146488")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00146488)();" (call_expression "(*(code *)PTR___stack_chk_fail_00146488)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00146488)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00146488" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00146488" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00146488"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_2a0 = puVar30 + 0xe1290;" (assignment_expression "puStack_2a0 = puVar30 + 0xe1290" (identifier "puStack_2a0") (= "=") (binary_expression "puVar30 + 0xe1290" (identifier "puVar30") (+ "+") (number_literal "0xe1290"))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar30 + 0xd9ea4);" (assignment_expression "iVar3 = *(int *)(puVar30 + 0xd9ea4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar30 + 0xd9ea4)" (* "*") (cast_expression "(int *)(puVar30 + 0xd9ea4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + 0xd9ea4)" (( "(") (binary_expression "puVar30 + 0xd9ea4" (identifier "puVar30") (+ "+") (number_literal "0xd9ea4")) () ")"))))) (; ";")) (expression_statement "puVar27 = *(undefined4 **)(puVar30 + 0xdb22c);" (assignment_expression "puVar27 = *(undefined4 **)(puVar30 + 0xdb22c)" (identifier "puVar27") (= "=") (pointer_expression "*(undefined4 **)(puVar30 + 0xdb22c)" (* "*") (cast_expression "(undefined4 **)(puVar30 + 0xdb22c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + 0xdb22c)" (( "(") (binary_expression "puVar30 + 0xdb22c" (identifier "puVar30") (+ "+") (number_literal "0xdb22c")) () ")"))))) (; ";")) (expression_statement "puStack_168 = (undefined *)piVar31;" (assignment_expression "puStack_168 = (undefined *)piVar31" (identifier "puStack_168") (= "=") (cast_expression "(undefined *)piVar31" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar31"))) (; ";")) (expression_statement "uStack_17c = 0xffffffff;" (assignment_expression "uStack_17c = 0xffffffff" (identifier "uStack_17c") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "piStack_18c = (int *)*puVar27;" (assignment_expression "piStack_18c = (int *)*puVar27" (identifier "piStack_18c") (= "=") (cast_expression "(int *)*puVar27" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar27" (* "*") (identifier "puVar27")))) (; ";")) (expression_statement "puStack_188 = puVar20;" (assignment_expression "puStack_188 = puVar20" (identifier "puStack_188") (= "=") (identifier "puVar20")) (; ";")) (expression_statement "puStack_184 = auStack_ac;" (assignment_expression "puStack_184 = auStack_ac" (identifier "puStack_184") (= "=") (identifier "auStack_ac")) (; ";")) (expression_statement "puStack_180 = puVar5;" (assignment_expression "puStack_180 = puVar5" (identifier "puStack_180") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "piStack_178 = piVar25;" (assignment_expression "piStack_178 = piVar25" (identifier "piStack_178") (= "=") (identifier "piVar25")) (; ";")) (expression_statement "iStack_174 = param_1;" (assignment_expression "iStack_174 = param_1" (identifier "iStack_174") (= "=") (identifier "param_1")) (; ";")) (expression_statement "piStack_170 = piVar28;" (assignment_expression "piStack_170 = piVar28" (identifier "piStack_170") (= "=") (identifier "piVar28")) (; ";")) (expression_statement "piStack_16c = piVar29;" (assignment_expression "piStack_16c = piVar29" (identifier "piStack_16c") (= "=") (identifier "piVar29")) (; ";")) (expression_statement "pcStack_164 = pcVar4;" (assignment_expression "pcStack_164 = pcVar4" (identifier "pcStack_164") (= "=") (identifier "pcVar4")) (; ";")) (if_statement "if (*(int *)(iVar3 + -0x705c) == 0) {\n    puVar6 = auStack_28c;\n    puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8);\n    puVar20 = auStack_20c;\n    (**(code **)(puVar30 + 0xdb024))(puVar6);\n    (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n    (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n    (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n    if (0 < (int)*(int **)(puVar5 + 0x18)) {\n      piVar31 = (int *)0x0;\n      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar29 = piVar17;\n      do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));\n    }\n    piVar25 = *(int **)(puStack_2a0 + -0x76e4);\n    piVar23 = *(int **)(puStack_2a0 + -0x7d0c);\n    (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    piVar31 = *(int **)(puStack_2a0 + -0x7550);\n    piVar28 = *(int **)(puStack_2a0 + -0x7d04);\n    pcStack_294 = (code *)(piVar31 + 0x1398);\n    do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      iVar11 = *(int *)(puVar5 + 0x18);\n      if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar4)(3,puVar20,0);\n      if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar31 = (int *)(*pcVar4)();\n      *piVar31 = 0;\n      iVar11 = wait_for(0xffffffff);\n      if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar4)(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    } while( true );\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + -0x705c) == 0)" (( "(") (binary_expression "*(int *)(iVar3 + -0x705c) == 0" (pointer_expression "*(int *)(iVar3 + -0x705c)" (* "*") (cast_expression "(int *)(iVar3 + -0x705c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + -0x705c)" (( "(") (binary_expression "iVar3 + -0x705c" (identifier "iVar3") (+ "+") (number_literal "-0x705c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    puVar6 = auStack_28c;\n    puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8);\n    puVar20 = auStack_20c;\n    (**(code **)(puVar30 + 0xdb024))(puVar6);\n    (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n    (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n    (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n    if (0 < (int)*(int **)(puVar5 + 0x18)) {\n      piVar31 = (int *)0x0;\n      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar29 = piVar17;\n      do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));\n    }\n    piVar25 = *(int **)(puStack_2a0 + -0x76e4);\n    piVar23 = *(int **)(puStack_2a0 + -0x7d0c);\n    (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    piVar31 = *(int **)(puStack_2a0 + -0x7550);\n    piVar28 = *(int **)(puStack_2a0 + -0x7d04);\n    pcStack_294 = (code *)(piVar31 + 0x1398);\n    do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      iVar11 = *(int *)(puVar5 + 0x18);\n      if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar4)(3,puVar20,0);\n      if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar31 = (int *)(*pcVar4)();\n      *piVar31 = 0;\n      iVar11 = wait_for(0xffffffff);\n      if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar4)(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    } while( true );\n  }" ({ "{") (expression_statement "puVar6 = auStack_28c;" (assignment_expression "puVar6 = auStack_28c" (identifier "puVar6") (= "=") (identifier "auStack_28c")) (; ";")) (expression_statement "puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8);" (assignment_expression "puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined1 **)(puVar30 + 0xd9ba8)" (* "*") (cast_expression "(undefined1 **)(puVar30 + 0xd9ba8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + 0xd9ba8)" (( "(") (binary_expression "puVar30 + 0xd9ba8" (identifier "puVar30") (+ "+") (number_literal "0xd9ba8")) () ")"))))) (; ";")) (expression_statement "puVar20 = auStack_20c;" (assignment_expression "puVar20 = auStack_20c" (identifier "puVar20") (= "=") (identifier "auStack_20c")) (; ";")) (expression_statement "(**(code **)(puVar30 + 0xdb024))(puVar6);" (call_expression "(**(code **)(puVar30 + 0xdb024))(puVar6)" (parenthesized_expression "(**(code **)(puVar30 + 0xdb024))" (( "(") (pointer_expression "**(code **)(puVar30 + 0xdb024)" (* "*") (pointer_expression "*(code **)(puVar30 + 0xdb024)" (* "*") (cast_expression "(code **)(puVar30 + 0xdb024)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + 0xdb024)" (( "(") (binary_expression "puVar30 + 0xdb024" (identifier "puVar30") (+ "+") (number_literal "0xdb024")) () ")"))))) () ")")) (argument_list "(puVar6)" (( "(") (identifier "puVar6") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);" (call_expression "(**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x61dc))" (( "(") (pointer_expression "**(code **)(puStack_2a0 + -0x61dc)" (* "*") (pointer_expression "*(code **)(puStack_2a0 + -0x61dc)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x61dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x61dc)" (( "(") (binary_expression "puStack_2a0 + -0x61dc" (identifier "puStack_2a0") (+ "+") (number_literal "-0x61dc")) () ")"))))) () ")")) (argument_list "(puVar6,0x12)" (( "(") (identifier "puVar6") (, ",") (number_literal "0x12") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_2a0 + -0x626c))(puVar20);" (call_expression "(**(code **)(puStack_2a0 + -0x626c))(puVar20)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x626c))" (( "(") (pointer_expression "**(code **)(puStack_2a0 + -0x626c)" (* "*") (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x626c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x626c)" (( "(") (binary_expression "puStack_2a0 + -0x626c" (identifier "puStack_2a0") (+ "+") (number_literal "-0x626c")) () ")"))))) () ")")) (argument_list "(puVar20)" (( "(") (identifier "puVar20") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" (( "(") (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" (* "*") (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x602c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x602c)" (( "(") (binary_expression "puStack_2a0 + -0x602c" (identifier "puStack_2a0") (+ "+") (number_literal "-0x602c")) () ")"))))) () ")")) (argument_list "(1,puVar6,puVar20)" (( "(") (number_literal "1") (, ",") (identifier "puVar6") (, ",") (identifier "puVar20") () ")"))) (; ";")) (if_statement "if (0 < (int)*(int **)(puVar5 + 0x18)) {\n      piVar31 = (int *)0x0;\n      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar29 = piVar17;\n      do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));\n    }" (if "if") (parenthesized_expression "(0 < (int)*(int **)(puVar5 + 0x18))" (( "(") (binary_expression "0 < (int)*(int **)(puVar5 + 0x18)" (number_literal "0") (< "<") (cast_expression "(int)*(int **)(puVar5 + 0x18)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(int **)(puVar5 + 0x18)" (* "*") (cast_expression "(int **)(puVar5 + 0x18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar5 + 0x18)" (( "(") (binary_expression "puVar5 + 0x18" (identifier "puVar5") (+ "+") (number_literal "0x18")) () ")")))))) () ")")) (compound_statement "{\n      piVar31 = (int *)0x0;\n      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);\n      piVar29 = piVar17;\n      do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));\n    }" ({ "{") (expression_statement "piVar31 = (int *)0x0;" (assignment_expression "piVar31 = (int *)0x0" (identifier "piVar31") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);" (assignment_expression "piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4)" (identifier "piVar17") (= "=") (cast_expression "(int *)**(int **)(puStack_2a0 + -0x76e4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(int **)(puStack_2a0 + -0x76e4)" (* "*") (pointer_expression "*(int **)(puStack_2a0 + -0x76e4)" (* "*") (cast_expression "(int **)(puStack_2a0 + -0x76e4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x76e4)" (( "(") (binary_expression "puStack_2a0 + -0x76e4" (identifier "puStack_2a0") (+ "+") (number_literal "-0x76e4")) () ")"))))))) (; ";")) (expression_statement "piVar29 = piVar17;" (assignment_expression "piVar29 = piVar17" (identifier "piVar29") (= "=") (identifier "piVar17")) (; ";")) (do_statement "do {\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      } while (piVar31 != *(int **)(puVar5 + 0x18));" (do "do") (compound_statement "{\n        iVar11 = *piVar29;\n        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;\n        piVar31 = (int *)((int)piVar31 + 1);\n        piVar29 = piVar29 + 1;\n      }" ({ "{") (expression_statement "iVar11 = *piVar29;" (assignment_expression "iVar11 = *piVar29" (identifier "iVar11") (= "=") (pointer_expression "*piVar29" (* "*") (identifier "piVar29"))) (; ";")) (if_statement "if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;" (if "if") (parenthesized_expression "(((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0))" (( "(") (binary_expression "((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&\n           ((*(uint *)(iVar11 + 0x10) & 2) == 0)" (parenthesized_expression "((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4))" (( "(") (binary_expression "(iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)" (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar11 + 0xc) == 4)" (( "(") (binary_expression "*(int *)(iVar11 + 0xc) == 4" (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "4")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(uint *)(iVar11 + 0x10) & 2) == 0)" (( "(") (binary_expression "(*(uint *)(iVar11 + 0x10) & 2) == 0" (parenthesized_expression "(*(uint *)(iVar11 + 0x10) & 2)" (( "(") (binary_expression "*(uint *)(iVar11 + 0x10) & 2" (pointer_expression "*(uint *)(iVar11 + 0x10)" (* "*") (cast_expression "(uint *)(iVar11 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0006b3b8;" (goto "goto") (statement_identifier "LAB_0006b3b8") (; ";"))) (expression_statement "piVar31 = (int *)((int)piVar31 + 1);" (assignment_expression "piVar31 = (int *)((int)piVar31 + 1)" (identifier "piVar31") (= "=") (cast_expression "(int *)((int)piVar31 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar31 + 1)" (( "(") (binary_expression "(int)piVar31 + 1" (cast_expression "(int)piVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar31")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar29 = piVar29 + 1;" (assignment_expression "piVar29 = piVar29 + 1" (identifier "piVar29") (= "=") (binary_expression "piVar29 + 1" (identifier "piVar29") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar31 != *(int **)(puVar5 + 0x18))" (( "(") (binary_expression "piVar31 != *(int **)(puVar5 + 0x18)" (identifier "piVar31") (!= "!=") (pointer_expression "*(int **)(puVar5 + 0x18)" (* "*") (cast_expression "(int **)(puVar5 + 0x18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar5 + 0x18)" (( "(") (binary_expression "puVar5 + 0x18" (identifier "puVar5") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "piVar25 = *(int **)(puStack_2a0 + -0x76e4);" (assignment_expression "piVar25 = *(int **)(puStack_2a0 + -0x76e4)" (identifier "piVar25") (= "=") (pointer_expression "*(int **)(puStack_2a0 + -0x76e4)" (* "*") (cast_expression "(int **)(puStack_2a0 + -0x76e4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x76e4)" (( "(") (binary_expression "puStack_2a0 + -0x76e4" (identifier "puStack_2a0") (+ "+") (number_literal "-0x76e4")) () ")"))))) (; ";")) (expression_statement "piVar23 = *(int **)(puStack_2a0 + -0x7d0c);" (assignment_expression "piVar23 = *(int **)(puStack_2a0 + -0x7d0c)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(puStack_2a0 + -0x7d0c)" (* "*") (cast_expression "(int **)(puStack_2a0 + -0x7d0c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x7d0c)" (( "(") (binary_expression "puStack_2a0 + -0x7d0c" (identifier "puStack_2a0") (+ "+") (number_literal "-0x7d0c")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" (( "(") (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" (* "*") (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x602c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x602c)" (( "(") (binary_expression "puStack_2a0 + -0x602c" (identifier "puStack_2a0") (+ "+") (number_literal "-0x602c")) () ")"))))) () ")")) (argument_list "(3,puVar20,0)" (( "(") (number_literal "3") (, ",") (identifier "puVar20") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "piVar31 = *(int **)(puStack_2a0 + -0x7550);" (assignment_expression "piVar31 = *(int **)(puStack_2a0 + -0x7550)" (identifier "piVar31") (= "=") (pointer_expression "*(int **)(puStack_2a0 + -0x7550)" (* "*") (cast_expression "(int **)(puStack_2a0 + -0x7550)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x7550)" (( "(") (binary_expression "puStack_2a0 + -0x7550" (identifier "puStack_2a0") (+ "+") (number_literal "-0x7550")) () ")"))))) (; ";")) (expression_statement "piVar28 = *(int **)(puStack_2a0 + -0x7d04);" (assignment_expression "piVar28 = *(int **)(puStack_2a0 + -0x7d04)" (identifier "piVar28") (= "=") (pointer_expression "*(int **)(puStack_2a0 + -0x7d04)" (* "*") (cast_expression "(int **)(puStack_2a0 + -0x7d04)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x7d04)" (( "(") (binary_expression "puStack_2a0 + -0x7d04" (identifier "puStack_2a0") (+ "+") (number_literal "-0x7d04")) () ")"))))) (; ";")) (expression_statement "pcStack_294 = (code *)(piVar31 + 0x1398);" (assignment_expression "pcStack_294 = (code *)(piVar31 + 0x1398)" (identifier "pcStack_294") (= "=") (cast_expression "(code *)(piVar31 + 0x1398)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar31 + 0x1398)" (( "(") (binary_expression "piVar31 + 0x1398" (identifier "piVar31") (+ "+") (number_literal "0x1398")) () ")")))) (; ";")) (do_statement "do {\n      (**(code **)(puStack_2a0 + -0x626c))(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      iVar11 = *(int *)(puVar5 + 0x18);\n      if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar4)(3,puVar20,0);\n      if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar31 = (int *)(*pcVar4)();\n      *piVar31 = 0;\n      iVar11 = wait_for(0xffffffff);\n      if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar4)(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    } while( true );" (do "do") (compound_statement "{\n      (**(code **)(puStack_2a0 + -0x626c))(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      iVar11 = *(int *)(puVar5 + 0x18);\n      if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }\n      (*pcVar4)(3,puVar20,0);\n      if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }\n      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }\n      piVar31 = (int *)(*pcVar4)();\n      *piVar31 = 0;\n      iVar11 = wait_for(0xffffffff);\n      if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }\n      (*pcVar4)(puVar6);\n      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);\n      (**(code **)(puStack_2a0 + -0x626c))(puVar20);\n      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);\n      if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }\n      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n    }" ({ "{") (expression_statement "(**(code **)(puStack_2a0 + -0x626c))(puVar6);" (call_expression "(**(code **)(puStack_2a0 + -0x626c))(puVar6)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x626c))" (( "(") (pointer_expression "**(code **)(puStack_2a0 + -0x626c)" (* "*") (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x626c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x626c)" (( "(") (binary_expression "puStack_2a0 + -0x626c" (identifier "puStack_2a0") (+ "+") (number_literal "-0x626c")) () ")"))))) () ")")) (argument_list "(puVar6)" (( "(") (identifier "puVar6") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);" (call_expression "(**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x61dc))" (( "(") (pointer_expression "**(code **)(puStack_2a0 + -0x61dc)" (* "*") (pointer_expression "*(code **)(puStack_2a0 + -0x61dc)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x61dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x61dc)" (( "(") (binary_expression "puStack_2a0 + -0x61dc" (identifier "puStack_2a0") (+ "+") (number_literal "-0x61dc")) () ")"))))) () ")")) (argument_list "(puVar6,0x12)" (( "(") (identifier "puVar6") (, ",") (number_literal "0x12") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_2a0 + -0x626c))(puVar20);" (call_expression "(**(code **)(puStack_2a0 + -0x626c))(puVar20)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x626c))" (( "(") (pointer_expression "**(code **)(puStack_2a0 + -0x626c)" (* "*") (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x626c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x626c)" (( "(") (binary_expression "puStack_2a0 + -0x626c" (identifier "puStack_2a0") (+ "+") (number_literal "-0x626c")) () ")"))))) () ")")) (argument_list "(puVar20)" (( "(") (identifier "puVar20") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" (( "(") (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" (* "*") (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x602c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x602c)" (( "(") (binary_expression "puStack_2a0 + -0x602c" (identifier "puStack_2a0") (+ "+") (number_literal "-0x602c")) () ")"))))) () ")")) (argument_list "(1,puVar6,puVar20)" (( "(") (number_literal "1") (, ",") (identifier "puVar6") (, ",") (identifier "puVar20") () ")"))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar5 + 0x18);" (assignment_expression "iVar11 = *(int *)(puVar5 + 0x18)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar5 + 0x18)" (* "*") (cast_expression "(int *)(puVar5 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0x18)" (( "(") (binary_expression "puVar5 + 0x18" (identifier "puVar5") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (iVar11 < 1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }\n      else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }" (if "if") (parenthesized_expression "(iVar11 < 1)" (( "(") (binary_expression "iVar11 < 1" (identifier "iVar11") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n        if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }\n      }" ({ "{") (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x602c);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x602c)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x602c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x602c)" (( "(") (binary_expression "puStack_2a0 + -0x602c" (identifier "puStack_2a0") (+ "+") (number_literal "-0x602c")) () ")"))))) (; ";")) (if_statement "if (iVar11 == 0) {\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);\n          puVar6 = (undefined1 *)0xffffffff;\n          goto LAB_0006b430;\n        }" ({ "{") (labeled_statement "LAB_0006b680:\n          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);" (statement_identifier "LAB_0006b680") (: ":") (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" (( "(") (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" (* "*") (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x602c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x602c)" (( "(") (binary_expression "puStack_2a0 + -0x602c" (identifier "puStack_2a0") (+ "+") (number_literal "-0x602c")) () ")"))))) () ")")) (argument_list "(3,puVar20,0)" (( "(") (number_literal "3") (, ",") (identifier "puVar20") (, ",") (number_literal "0") () ")"))) (; ";"))) (expression_statement "puVar6 = (undefined1 *)0xffffffff;" (assignment_expression "puVar6 = (undefined1 *)0xffffffff" (identifier "puVar6") (= "=") (cast_expression "(undefined1 *)0xffffffff" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (goto_statement "goto LAB_0006b430;" (goto "goto") (statement_identifier "LAB_0006b430") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }" (else "else") (compound_statement "{\n        piVar29 = (int *)*piVar25;\n        iVar8 = 0;\n        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }\n        pcVar4 = *(code **)(puStack_2a0 + -0x602c);\n      }" ({ "{") (expression_statement "piVar29 = (int *)*piVar25;" (assignment_expression "piVar29 = (int *)*piVar25" (identifier "piVar29") (= "=") (cast_expression "(int *)*piVar25" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar25" (* "*") (identifier "piVar25")))) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (while_statement "while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }" (while "while") (parenthesized_expression "(((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0)))" (( "(") (parenthesized_expression "((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0))" (( "(") (binary_expression "(iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||\n               ((*(uint *)(iVar12 + 0x10) & 1) != 0)" (parenthesized_expression "(iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1))" (( "(") (comma_expression "iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)" (assignment_expression "iVar12 = *piVar29" (identifier "iVar12") (= "=") (pointer_expression "*piVar29" (* "*") (identifier "piVar29"))) (, ",") (binary_expression "iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)" (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(*(int *)(iVar12 + 0xc) != 1)" (( "(") (binary_expression "*(int *)(iVar12 + 0xc) != 1" (pointer_expression "*(int *)(iVar12 + 0xc)" (* "*") (cast_expression "(int *)(iVar12 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xc)" (( "(") (binary_expression "iVar12 + 0xc" (identifier "iVar12") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "1")) () ")")))) () ")")) (|| "||") (parenthesized_expression "((*(uint *)(iVar12 + 0x10) & 1) != 0)" (( "(") (binary_expression "(*(uint *)(iVar12 + 0x10) & 1) != 0" (parenthesized_expression "(*(uint *)(iVar12 + 0x10) & 1)" (( "(") (binary_expression "*(uint *)(iVar12 + 0x10) & 1" (pointer_expression "*(uint *)(iVar12 + 0x10)" (* "*") (cast_expression "(uint *)(iVar12 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x10)" (( "(") (binary_expression "iVar12 + 0x10" (identifier "iVar12") (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")")) (compound_statement "{\n          iVar8 = iVar8 + 1;\n          piVar29 = piVar29 + 1;\n          if (iVar8 == iVar11) goto LAB_0006b680;\n        }" ({ "{") (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar29 = piVar29 + 1;" (assignment_expression "piVar29 = piVar29 + 1" (identifier "piVar29") (= "=") (binary_expression "piVar29 + 1" (identifier "piVar29") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar8 == iVar11) goto LAB_0006b680;" (if "if") (parenthesized_expression "(iVar8 == iVar11)" (( "(") (binary_expression "iVar8 == iVar11" (identifier "iVar8") (== "==") (identifier "iVar11")) () ")")) (goto_statement "goto LAB_0006b680;" (goto "goto") (statement_identifier "LAB_0006b680") (; ";"))) (} "}"))) (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x602c);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x602c)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x602c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x602c)" (( "(") (binary_expression "puStack_2a0 + -0x602c" (identifier "puStack_2a0") (+ "+") (number_literal "-0x602c")) () ")"))))) (; ";")) (} "}")))) (expression_statement "(*pcVar4)(3,puVar20,0);" (call_expression "(*pcVar4)(3,puVar20,0)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(3,puVar20,0)" (( "(") (number_literal "3") (, ",") (identifier "puVar20") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (*piVar23 == 0) {\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }\n      else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }" (if "if") (parenthesized_expression "(*piVar23 == 0)" (( "(") (binary_expression "*piVar23 == 0" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar4 = *(code **)(puStack_2a0 + -32000);\n        if (*piVar28 == 0) goto LAB_0006b564;\nLAB_0006b6f0:\n        (*pcVar4)();\n        if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }\n      }" ({ "{") (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -32000);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -32000)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(puStack_2a0 + -32000)" (* "*") (cast_expression "(code **)(puStack_2a0 + -32000)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -32000)" (( "(") (binary_expression "puStack_2a0 + -32000" (identifier "puStack_2a0") (+ "+") (number_literal "-32000")) () ")"))))) (; ";")) (if_statement "if (*piVar28 == 0) goto LAB_0006b564;" (if "if") (parenthesized_expression "(*piVar28 == 0)" (( "(") (binary_expression "*piVar28 == 0" (pointer_expression "*piVar28" (* "*") (identifier "piVar28")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006b564;" (goto "goto") (statement_identifier "LAB_0006b564") (; ";"))) (labeled_statement "LAB_0006b6f0:\n        (*pcVar4)();" (statement_identifier "LAB_0006b6f0") (: ":") (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (if_statement "if (*piVar23 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }" (if "if") (parenthesized_expression "(*piVar23 != 0)" (( "(") (binary_expression "*piVar23 != 0" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n          goto LAB_0006b708;\n        }" ({ "{") (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x7d08);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x7d08)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(puStack_2a0 + -0x7d08)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x7d08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x7d08)" (( "(") (binary_expression "puStack_2a0 + -0x7d08" (identifier "puStack_2a0") (+ "+") (number_literal "-0x7d08")) () ")"))))) (; ";")) (goto_statement "goto LAB_0006b708;" (goto "goto") (statement_identifier "LAB_0006b708") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }" (else "else") (compound_statement "{\n        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);\n        if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }\nLAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);\n        if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }\n      }" ({ "{") (expression_statement "(**(code **)(puStack_2a0 + -0x7d08))(*piVar23);" (call_expression "(**(code **)(puStack_2a0 + -0x7d08))(*piVar23)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x7d08))" (( "(") (pointer_expression "**(code **)(puStack_2a0 + -0x7d08)" (* "*") (pointer_expression "*(code **)(puStack_2a0 + -0x7d08)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x7d08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x7d08)" (( "(") (binary_expression "puStack_2a0 + -0x7d08" (identifier "puStack_2a0") (+ "+") (number_literal "-0x7d08")) () ")"))))) () ")")) (argument_list "(*piVar23)" (( "(") (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) () ")"))) (; ";")) (if_statement "if (*piVar28 != 0) {\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }" (if "if") (parenthesized_expression "(*piVar28 != 0)" (( "(") (binary_expression "*piVar28 != 0" (pointer_expression "*piVar28" (* "*") (identifier "piVar28")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar4 = *(code **)(puStack_2a0 + -32000);\n          goto LAB_0006b6f0;\n        }" ({ "{") (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -32000);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -32000)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(puStack_2a0 + -32000)" (* "*") (cast_expression "(code **)(puStack_2a0 + -32000)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -32000)" (( "(") (binary_expression "puStack_2a0 + -32000" (identifier "puStack_2a0") (+ "+") (number_literal "-32000")) () ")"))))) (; ";")) (goto_statement "goto LAB_0006b6f0;" (goto "goto") (statement_identifier "LAB_0006b6f0") (; ";")) (} "}"))) (labeled_statement "LAB_0006b564:\n        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);" (statement_identifier "LAB_0006b564") (: ":") (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x7d08);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x7d08)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(puStack_2a0 + -0x7d08)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x7d08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x7d08)" (( "(") (binary_expression "puStack_2a0 + -0x7d08" (identifier "puStack_2a0") (+ "+") (number_literal "-0x7d08")) () ")"))))) (; ";"))) (if_statement "if (*piVar23 != 0) {\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }" (if "if") (parenthesized_expression "(*piVar23 != 0)" (( "(") (binary_expression "*piVar23 != 0" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0006b708:\n          (*pcVar4)(*piVar23);\n        }" ({ "{") (labeled_statement "LAB_0006b708:\n          (*pcVar4)(*piVar23);" (statement_identifier "LAB_0006b708") (: ":") (expression_statement "(*pcVar4)(*piVar23);" (call_expression "(*pcVar4)(*piVar23)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(*piVar23)" (( "(") (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) () ")"))) (; ";"))) (} "}"))) (} "}")))) (if_statement "if (**(int **)(puStack_2a0 + -0x73d8) == 0) {\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }\n      else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(**(int **)(puStack_2a0 + -0x73d8) == 0)" (( "(") (binary_expression "**(int **)(puStack_2a0 + -0x73d8) == 0" (pointer_expression "**(int **)(puStack_2a0 + -0x73d8)" (* "*") (pointer_expression "*(int **)(puStack_2a0 + -0x73d8)" (* "*") (cast_expression "(int **)(puStack_2a0 + -0x73d8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x73d8)" (( "(") (binary_expression "puStack_2a0 + -0x73d8" (identifier "puStack_2a0") (+ "+") (number_literal "-0x73d8")) () ")"))))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n      }" ({ "{") (labeled_statement "LAB_0006b5a4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);" (statement_identifier "LAB_0006b5a4") (: ":") (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x6204);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x6204)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(puStack_2a0 + -0x6204)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x6204)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x6204)" (( "(") (binary_expression "puStack_2a0 + -0x6204" (identifier "puStack_2a0") (+ "+") (number_literal "-0x6204")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }" (else "else") (compound_statement "{\n        pcVar4 = *(code **)(puStack_2a0 + -0x6204);\n        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }\n      }" ({ "{") (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x6204);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x6204)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(puStack_2a0 + -0x6204)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x6204)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x6204)" (( "(") (binary_expression "puStack_2a0 + -0x6204" (identifier "puStack_2a0") (+ "+") (number_literal "-0x6204")) () ")"))))) (; ";")) (if_statement "if (**(int **)(puStack_2a0 + -0x73dc) != 0) {\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }" (if "if") (parenthesized_expression "(**(int **)(puStack_2a0 + -0x73dc) != 0)" (( "(") (binary_expression "**(int **)(puStack_2a0 + -0x73dc) != 0" (pointer_expression "**(int **)(puStack_2a0 + -0x73dc)" (* "*") (pointer_expression "*(int **)(puStack_2a0 + -0x73dc)" (* "*") (cast_expression "(int **)(puStack_2a0 + -0x73dc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x73dc)" (( "(") (binary_expression "puStack_2a0 + -0x73dc" (identifier "puStack_2a0") (+ "+") (number_literal "-0x73dc")) () ")"))))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }\n        }" ({ "{") (if_statement "if (**(int **)(puStack_2a0 + -0x7abc) != 0) {\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }" (if "if") (parenthesized_expression "(**(int **)(puStack_2a0 + -0x7abc) != 0)" (( "(") (binary_expression "**(int **)(puStack_2a0 + -0x7abc) != 0" (pointer_expression "**(int **)(puStack_2a0 + -0x7abc)" (* "*") (pointer_expression "*(int **)(puStack_2a0 + -0x7abc)" (* "*") (cast_expression "(int **)(puStack_2a0 + -0x7abc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x7abc)" (( "(") (binary_expression "puStack_2a0 + -0x7abc" (identifier "puStack_2a0") (+ "+") (number_literal "-0x7abc")) () ")"))))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            piVar29 = *(int **)(puStack_2a0 + -0x73d4);\n            puVar30 = puStack_2a0;\n            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;\n            goto LAB_0006b730;\n          }" ({ "{") (expression_statement "piVar29 = *(int **)(puStack_2a0 + -0x73d4);" (assignment_expression "piVar29 = *(int **)(puStack_2a0 + -0x73d4)" (identifier "piVar29") (= "=") (pointer_expression "*(int **)(puStack_2a0 + -0x73d4)" (* "*") (cast_expression "(int **)(puStack_2a0 + -0x73d4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x73d4)" (( "(") (binary_expression "puStack_2a0 + -0x73d4" (identifier "puStack_2a0") (+ "+") (number_literal "-0x73d4")) () ")"))))) (; ";")) (expression_statement "puVar30 = puStack_2a0;" (assignment_expression "puVar30 = puStack_2a0" (identifier "puVar30") (= "=") (identifier "puStack_2a0")) (; ";")) (if_statement "if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))\n            goto LAB_0006b5a4;" (if "if") (parenthesized_expression "(**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))" (( "(") (binary_expression "**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0)" (pointer_expression "**(int **)(puStack_2a0 + -0x7abc)" (* "*") (pointer_expression "*(int **)(puStack_2a0 + -0x7abc)" (* "*") (cast_expression "(int **)(puStack_2a0 + -0x7abc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x7abc)" (( "(") (binary_expression "puStack_2a0 + -0x7abc" (identifier "puStack_2a0") (+ "+") (number_literal "-0x7abc")) () ")"))))) (!= "!=") (pointer_expression "*(int *)(puStack_2a0 + -0x73f0)" (* "*") (cast_expression "(int *)(puStack_2a0 + -0x73f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_2a0 + -0x73f0)" (( "(") (binary_expression "puStack_2a0 + -0x73f0" (identifier "puStack_2a0") (+ "+") (number_literal "-0x73f0")) () ")"))))) () ")")) (goto_statement "goto LAB_0006b5a4;" (goto "goto") (statement_identifier "LAB_0006b5a4") (; ";"))) (goto_statement "goto LAB_0006b730;" (goto "goto") (statement_identifier "LAB_0006b730") (; ";")) (} "}"))) (} "}"))) (} "}")))) (expression_statement "piVar31 = (int *)(*pcVar4)();" (assignment_expression "piVar31 = (int *)(*pcVar4)()" (identifier "piVar31") (= "=") (cast_expression "(int *)(*pcVar4)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*piVar31 = 0;" (assignment_expression "*piVar31 = 0" (pointer_expression "*piVar31" (* "*") (identifier "piVar31")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar11 = wait_for(0xffffffff);" (assignment_expression "iVar11 = wait_for(0xffffffff)" (identifier "iVar11") (= "=") (call_expression "wait_for(0xffffffff)" (identifier "wait_for") (argument_list "(0xffffffff)" (( "(") (number_literal "0xffffffff") () ")")))) (; ";")) (if_statement "if (iVar11 == -1) {\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }\n      else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }" (if "if") (parenthesized_expression "(iVar11 == -1)" (( "(") (binary_expression "iVar11 == -1" (identifier "iVar11") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }\n      }" ({ "{") (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x626c);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x626c)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x626c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x626c)" (( "(") (binary_expression "puStack_2a0 + -0x626c" (identifier "puStack_2a0") (+ "+") (number_literal "-0x626c")) () ")"))))) (; ";")) (if_statement "if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }" (if "if") (parenthesized_expression "((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0))" (( "(") (binary_expression "(*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)" (parenthesized_expression "(*piVar31 == 10)" (( "(") (binary_expression "*piVar31 == 10" (pointer_expression "*piVar31" (* "*") (identifier "piVar31")) (== "==") (number_literal "10")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(puVar5 + 0x18) != 0)" (( "(") (binary_expression "*(int *)(puVar5 + 0x18) != 0" (pointer_expression "*(int *)(puVar5 + 0x18)" (* "*") (cast_expression "(int *)(puVar5 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0x18)" (( "(") (binary_expression "puVar5 + 0x18" (identifier "puVar5") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          (*pcStack_294)();\n          goto LAB_0006b5d4;\n        }" ({ "{") (expression_statement "(*pcStack_294)();" (call_expression "(*pcStack_294)()" (parenthesized_expression "(*pcStack_294)" (( "(") (pointer_expression "*pcStack_294" (* "*") (identifier "pcStack_294")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0006b5d4;" (goto "goto") (statement_identifier "LAB_0006b5d4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }" (else "else") (compound_statement "{\nLAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);\n      }" ({ "{") (labeled_statement "LAB_0006b5d4:\n        pcVar4 = *(code **)(puStack_2a0 + -0x626c);" (statement_identifier "LAB_0006b5d4") (: ":") (expression_statement "pcVar4 = *(code **)(puStack_2a0 + -0x626c);" (assignment_expression "pcVar4 = *(code **)(puStack_2a0 + -0x626c)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x626c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x626c)" (( "(") (binary_expression "puStack_2a0 + -0x626c" (identifier "puStack_2a0") (+ "+") (number_literal "-0x626c")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "(*pcVar4)(puVar6);" (call_expression "(*pcVar4)(puVar6)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(puVar6)" (( "(") (identifier "puVar6") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);" (call_expression "(**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x61dc))" (( "(") (pointer_expression "**(code **)(puStack_2a0 + -0x61dc)" (* "*") (pointer_expression "*(code **)(puStack_2a0 + -0x61dc)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x61dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x61dc)" (( "(") (binary_expression "puStack_2a0 + -0x61dc" (identifier "puStack_2a0") (+ "+") (number_literal "-0x61dc")) () ")"))))) () ")")) (argument_list "(puVar6,0x12)" (( "(") (identifier "puVar6") (, ",") (number_literal "0x12") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_2a0 + -0x626c))(puVar20);" (call_expression "(**(code **)(puStack_2a0 + -0x626c))(puVar20)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x626c))" (( "(") (pointer_expression "**(code **)(puStack_2a0 + -0x626c)" (* "*") (pointer_expression "*(code **)(puStack_2a0 + -0x626c)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x626c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x626c)" (( "(") (binary_expression "puStack_2a0 + -0x626c" (identifier "puStack_2a0") (+ "+") (number_literal "-0x626c")) () ")"))))) () ")")) (argument_list "(puVar20)" (( "(") (identifier "puVar20") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" (( "(") (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" (* "*") (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x602c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x602c)" (( "(") (binary_expression "puStack_2a0 + -0x602c" (identifier "puStack_2a0") (+ "+") (number_literal "-0x602c")) () ")"))))) () ")")) (argument_list "(1,puVar6,puVar20)" (( "(") (number_literal "1") (, ",") (identifier "puVar6") (, ",") (identifier "puVar20") () ")"))) (; ";")) (if_statement "if (0 < (int)*(int **)(puVar5 + 0x18)) {\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }" (if "if") (parenthesized_expression "(0 < (int)*(int **)(puVar5 + 0x18))" (( "(") (binary_expression "0 < (int)*(int **)(puVar5 + 0x18)" (number_literal "0") (< "<") (cast_expression "(int)*(int **)(puVar5 + 0x18)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(int **)(puVar5 + 0x18)" (* "*") (cast_expression "(int **)(puVar5 + 0x18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar5 + 0x18)" (( "(") (binary_expression "puVar5 + 0x18" (identifier "puVar5") (+ "+") (number_literal "0x18")) () ")")))))) () ")")) (compound_statement "{\n        piVar17 = (int *)*piVar25;\n        piVar31 = (int *)0x0;\n        piVar29 = piVar17;\n        do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);\n      }" ({ "{") (expression_statement "piVar17 = (int *)*piVar25;" (assignment_expression "piVar17 = (int *)*piVar25" (identifier "piVar17") (= "=") (cast_expression "(int *)*piVar25" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar25" (* "*") (identifier "piVar25")))) (; ";")) (expression_statement "piVar31 = (int *)0x0;" (assignment_expression "piVar31 = (int *)0x0" (identifier "piVar31") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar29 = piVar17;" (assignment_expression "piVar29 = piVar17" (identifier "piVar29") (= "=") (identifier "piVar17")) (; ";")) (do_statement "do {\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        } while (*(int **)(puVar5 + 0x18) != piVar31);" (do "do") (compound_statement "{\n          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;\n          piVar31 = (int *)((int)piVar31 + 1);\n          piVar29 = piVar29 + 1;\n        }" ({ "{") (if_statement "if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;" (if "if") (parenthesized_expression "((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4))" (( "(") (binary_expression "(*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)" (parenthesized_expression "(*piVar29 != 0)" (( "(") (binary_expression "*piVar29 != 0" (pointer_expression "*piVar29" (* "*") (identifier "piVar29")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(*piVar29 + 0xc) == 4)" (( "(") (binary_expression "*(int *)(*piVar29 + 0xc) == 4" (pointer_expression "*(int *)(*piVar29 + 0xc)" (* "*") (cast_expression "(int *)(*piVar29 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar29 + 0xc)" (( "(") (binary_expression "*piVar29 + 0xc" (pointer_expression "*piVar29" (* "*") (identifier "piVar29")) (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "4")) () ")"))) () ")")) (goto_statement "goto LAB_0006b3b8;" (goto "goto") (statement_identifier "LAB_0006b3b8") (; ";"))) (expression_statement "piVar31 = (int *)((int)piVar31 + 1);" (assignment_expression "piVar31 = (int *)((int)piVar31 + 1)" (identifier "piVar31") (= "=") (cast_expression "(int *)((int)piVar31 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar31 + 1)" (( "(") (binary_expression "(int)piVar31 + 1" (cast_expression "(int)piVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar31")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar29 = piVar29 + 1;" (assignment_expression "piVar29 = piVar29 + 1" (identifier "piVar29") (= "=") (binary_expression "piVar29 + 1" (identifier "piVar29") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int **)(puVar5 + 0x18) != piVar31)" (( "(") (binary_expression "*(int **)(puVar5 + 0x18) != piVar31" (pointer_expression "*(int **)(puVar5 + 0x18)" (* "*") (cast_expression "(int **)(puVar5 + 0x18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar5 + 0x18)" (( "(") (binary_expression "puVar5 + 0x18" (identifier "puVar5") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (identifier "piVar31")) () ")")) (; ";")) (} "}"))) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" (( "(") (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" (* "*") (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x602c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x602c)" (( "(") (binary_expression "puStack_2a0 + -0x602c" (identifier "puStack_2a0") (+ "+") (number_literal "-0x602c")) () ")"))))) () ")")) (argument_list "(3,puVar20,0)" (( "(") (number_literal "3") (, ",") (identifier "puVar20") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "puVar6 = (undefined1 *)0xffffffff;" (assignment_expression "puVar6 = (undefined1 *)0xffffffff" (identifier "puVar6") (= "=") (cast_expression "(undefined1 *)0xffffffff" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (labeled_statement "LAB_0006b430:\n  puVar30 = puStack_2a0;" (statement_identifier "LAB_0006b430") (: ":") (expression_statement "puVar30 = puStack_2a0;" (assignment_expression "puVar30 = puStack_2a0" (identifier "puVar30") (= "=") (identifier "puStack_2a0")) (; ";"))) (if_statement "if (piStack_18c == (int *)*puVar27) {\n    return puVar6;\n  }" (if "if") (parenthesized_expression "(piStack_18c == (int *)*puVar27)" (( "(") (binary_expression "piStack_18c == (int *)*puVar27" (identifier "piStack_18c") (== "==") (cast_expression "(int *)*puVar27" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar27" (* "*") (identifier "puVar27")))) () ")")) (compound_statement "{\n    return puVar6;\n  }" ({ "{") (return_statement "return puVar6;" (return "return") (identifier "puVar6") (; ";")) (} "}"))) (expression_statement "piVar29 = piStack_18c;" (assignment_expression "piVar29 = piStack_18c" (identifier "piVar29") (= "=") (identifier "piStack_18c")) (; ";")) (expression_statement "(**(code **)(puStack_2a0 + -0x60b8))();" (call_expression "(**(code **)(puStack_2a0 + -0x60b8))()" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x60b8))" (( "(") (pointer_expression "**(code **)(puStack_2a0 + -0x60b8)" (* "*") (pointer_expression "*(code **)(puStack_2a0 + -0x60b8)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x60b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x60b8)" (( "(") (binary_expression "puStack_2a0 + -0x60b8" (identifier "puStack_2a0") (+ "+") (number_literal "-0x60b8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0006b730:\n  pcVar4 = *(code **)(puVar30 + -0x625c);" (statement_identifier "LAB_0006b730") (: ":") (expression_statement "pcVar4 = *(code **)(puVar30 + -0x625c);" (assignment_expression "pcVar4 = *(code **)(puVar30 + -0x625c)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(puVar30 + -0x625c)" (* "*") (cast_expression "(code **)(puVar30 + -0x625c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x625c)" (( "(") (binary_expression "puVar30 + -0x625c" (identifier "puVar30") (+ "+") (number_literal "-0x625c")) () ")"))))) (; ";"))) (expression_statement "pcVar32 = start_job;" (assignment_expression "pcVar32 = start_job" (identifier "pcVar32") (= "=") (identifier "start_job")) (; ";")) (expression_statement "puVar13 = (undefined4 *)0x1;" (assignment_expression "puVar13 = (undefined4 *)0x1" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)0x1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar17 = *(int **)(pcVar4 + 0xdada0);" (assignment_expression "piVar17 = *(int **)(pcVar4 + 0xdada0)" (identifier "piVar17") (= "=") (pointer_expression "*(int **)(pcVar4 + 0xdada0)" (* "*") (cast_expression "(int **)(pcVar4 + 0xdada0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xdada0)" (( "(") (binary_expression "pcVar4 + 0xdada0" (identifier "pcVar4") (+ "+") (number_literal "0xdada0")) () ")"))))) (; ";")) (expression_statement "iVar11 = (int)piVar29 * 4;" (assignment_expression "iVar11 = (int)piVar29 * 4" (identifier "iVar11") (= "=") (binary_expression "(int)piVar29 * 4" (cast_expression "(int)piVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar29")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "iStack_2dc = *piVar17;" (assignment_expression "iStack_2dc = *piVar17" (identifier "iStack_2dc") (= "=") (pointer_expression "*piVar17" (* "*") (identifier "piVar17"))) (; ";")) (expression_statement "piVar22 = *(int **)(pcVar4 + 0xd9720);" (assignment_expression "piVar22 = *(int **)(pcVar4 + 0xd9720)" (identifier "piVar22") (= "=") (pointer_expression "*(int **)(pcVar4 + 0xd9720)" (* "*") (cast_expression "(int **)(pcVar4 + 0xd9720)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd9720)" (( "(") (binary_expression "pcVar4 + 0xd9720" (identifier "pcVar4") (+ "+") (number_literal "0xd9720")) () ")"))))) (; ";")) (expression_statement "puStack_2d8 = puVar20;" (assignment_expression "puStack_2d8 = puVar20" (identifier "puStack_2d8") (= "=") (identifier "puVar20")) (; ";")) (expression_statement "puStack_2d4 = puVar6;" (assignment_expression "puStack_2d4 = puVar6" (identifier "puStack_2d4") (= "=") (identifier "puVar6")) (; ";")) (expression_statement "puStack_2d0 = puVar5;" (assignment_expression "puStack_2d0 = puVar5" (identifier "puStack_2d0") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "piStack_2cc = piVar23;" (assignment_expression "piStack_2cc = piVar23" (identifier "piStack_2cc") (= "=") (identifier "piVar23")) (; ";")) (expression_statement "piStack_2c8 = piVar25;" (assignment_expression "piStack_2c8 = piVar25" (identifier "piStack_2c8") (= "=") (identifier "piVar25")) (; ";")) (expression_statement "puStack_2c4 = puVar27;" (assignment_expression "puStack_2c4 = puVar27" (identifier "puStack_2c4") (= "=") (identifier "puVar27")) (; ";")) (expression_statement "piStack_2c0 = piVar28;" (assignment_expression "piStack_2c0 = piVar28" (identifier "piStack_2c0") (= "=") (identifier "piVar28")) (; ";")) (expression_statement "iStack_2bc = iVar3;" (assignment_expression "iStack_2bc = iVar3" (identifier "iStack_2bc") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "piStack_2b8 = piVar31;" (assignment_expression "piStack_2b8 = piVar31" (identifier "piStack_2b8") (= "=") (identifier "piVar31")) (; ";")) (expression_statement "pcStack_2b4 = pcVar32;" (assignment_expression "pcStack_2b4 = pcVar32" (identifier "pcStack_2b4") (= "=") (identifier "pcVar32")) (; ";")) (expression_statement "(**(code **)(pcVar4 + 0xdab98))(auStack_3dc);" (call_expression "(**(code **)(pcVar4 + 0xdab98))(auStack_3dc)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdab98))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xdab98)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xdab98)" (* "*") (cast_expression "(code **)(pcVar4 + 0xdab98)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xdab98)" (( "(") (binary_expression "pcVar4 + 0xdab98" (identifier "pcVar4") (+ "+") (number_literal "0xdab98")) () ")"))))) () ")")) (argument_list "(auStack_3dc)" (( "(") (identifier "auStack_3dc") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar4 + 0xdac28))(auStack_3dc,0x12);" (call_expression "(**(code **)(pcVar4 + 0xdac28))(auStack_3dc,0x12)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdac28))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xdac28)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xdac28)" (* "*") (cast_expression "(code **)(pcVar4 + 0xdac28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xdac28)" (( "(") (binary_expression "pcVar4 + 0xdac28" (identifier "pcVar4") (+ "+") (number_literal "0xdac28")) () ")"))))) () ")")) (argument_list "(auStack_3dc,0x12)" (( "(") (identifier "auStack_3dc") (, ",") (number_literal "0x12") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar4 + 0xdab98))(auStack_35c);" (call_expression "(**(code **)(pcVar4 + 0xdab98))(auStack_35c)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdab98))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xdab98)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xdab98)" (* "*") (cast_expression "(code **)(pcVar4 + 0xdab98)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xdab98)" (( "(") (binary_expression "pcVar4 + 0xdab98" (identifier "pcVar4") (+ "+") (number_literal "0xdab98")) () ")"))))) () ")")) (argument_list "(auStack_35c)" (( "(") (identifier "auStack_35c") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar4 + 0xdadd8))(1,auStack_3dc,auStack_35c);" (call_expression "(**(code **)(pcVar4 + 0xdadd8))(1,auStack_3dc,auStack_35c)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdadd8))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xdadd8)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xdadd8)" (* "*") (cast_expression "(code **)(pcVar4 + 0xdadd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xdadd8)" (( "(") (binary_expression "pcVar4 + 0xdadd8" (identifier "pcVar4") (+ "+") (number_literal "0xdadd8")) () ")"))))) () ")")) (argument_list "(1,auStack_3dc,auStack_35c)" (( "(") (number_literal "1") (, ",") (identifier "auStack_3dc") (, ",") (identifier "auStack_35c") () ")"))) (; ";")) (expression_statement "iVar3 = *(int *)(*(int *)(*piVar22 + iVar11) + 0xc);" (assignment_expression "iVar3 = *(int *)(*(int *)(*piVar22 + iVar11) + 0xc)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(*(int *)(*piVar22 + iVar11) + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(*piVar22 + iVar11) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*piVar22 + iVar11) + 0xc)" (( "(") (binary_expression "*(int *)(*piVar22 + iVar11) + 0xc" (pointer_expression "*(int *)(*piVar22 + iVar11)" (* "*") (cast_expression "(int *)(*piVar22 + iVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar22 + iVar11)" (( "(") (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (+ "+") (identifier "iVar11")) () ")")))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 4) {\n    puVar20 = (undefined1 *)0xffffffff;\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec));\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);\nLAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }" (if "if") (parenthesized_expression "(iVar3 == 4)" (( "(") (binary_expression "iVar3 == 4" (identifier "iVar3") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n    puVar20 = (undefined1 *)0xffffffff;\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec));\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }" ({ "{") (expression_statement "puVar20 = (undefined1 *)0xffffffff;" (assignment_expression "puVar20 = (undefined1 *)0xffffffff" (identifier "puVar20") (= "=") (cast_expression "(undefined1 *)0xffffffff" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5)" (identifier "uVar19") (= "=") (call_expression "(**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdad5c))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xdad5c)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xdad5c)" (* "*") (cast_expression "(code **)(pcVar4 + 0xdad5c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xdad5c)" (( "(") (binary_expression "pcVar4 + 0xdad5c" (identifier "pcVar4") (+ "+") (number_literal "0xdad5c")) () ")"))))) () ")")) (argument_list "(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd8e3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd8e3c)" (( "(") (binary_expression "pcVar4 + 0xd8e3c" (identifier "pcVar4") (+ "+") (number_literal "0xd8e3c")) () ")")))) (+ "+") (number_literal "0x7d9c")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec));" (call_expression "internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec))" (identifier "internal_error") (argument_list "(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec))" (( "(") (identifier "uVar19") (, ",") (pointer_expression "**(undefined4 **)(pcVar4 + 0xd8fec)" (* "*") (pointer_expression "*(undefined4 **)(pcVar4 + 0xd8fec)" (* "*") (cast_expression "(undefined4 **)(pcVar4 + 0xd8fec)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd8fec)" (( "(") (binary_expression "pcVar4 + 0xd8fec" (identifier "pcVar4") (+ "+") (number_literal "0xd8fec")) () ")"))))) () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);" (call_expression "(**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdadd8))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xdadd8)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xdadd8)" (* "*") (cast_expression "(code **)(pcVar4 + 0xdadd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xdadd8)" (( "(") (binary_expression "pcVar4 + 0xdadd8" (identifier "pcVar4") (+ "+") (number_literal "0xdadd8")) () ")"))))) () ")")) (argument_list "(3,auStack_35c,0)" (( "(") (number_literal "3") (, ",") (identifier "auStack_35c") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);\nLAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }" (else "else") (if_statement "if (puVar13 == (undefined4 *)0x0) {\n    if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);\nLAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }\n  else {\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }" (if "if") (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 == (undefined4 *)0x0" (identifier "puVar13") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }\n    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);\n    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);\nLAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n  }" ({ "{") (if_statement "if (iVar3 != 1) {\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }" (if "if") (parenthesized_expression "(iVar3 != 1)" (( "(") (binary_expression "iVar3 != 1" (identifier "iVar3") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n      uStack_3e4 = FUN_000649c8();\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      iVar12 = **(int **)(pcVar4 + 0xd8e50);\n      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;\n      if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }\n      piVar31 = *(int **)(iVar8 + 4);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;\n      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);\n      goto LAB_0006b898;\n    }" ({ "{") (expression_statement "uStack_3e4 = FUN_000649c8();" (assignment_expression "uStack_3e4 = FUN_000649c8()" (identifier "uStack_3e4") (= "=") (call_expression "FUN_000649c8()" (identifier "FUN_000649c8") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar8 = *(int *)(*piVar22 + iVar11);" (assignment_expression "iVar8 = *(int *)(*piVar22 + iVar11)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(*piVar22 + iVar11)" (* "*") (cast_expression "(int *)(*piVar22 + iVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar22 + iVar11)" (( "(") (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (+ "+") (identifier "iVar11")) () ")"))))) (; ";")) (expression_statement "iVar12 = **(int **)(pcVar4 + 0xd8e50);" (assignment_expression "iVar12 = **(int **)(pcVar4 + 0xd8e50)" (identifier "iVar12") (= "=") (pointer_expression "**(int **)(pcVar4 + 0xd8e50)" (* "*") (pointer_expression "*(int **)(pcVar4 + 0xd8e50)" (* "*") (cast_expression "(int **)(pcVar4 + 0xd8e50)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd8e50)" (( "(") (binary_expression "pcVar4 + 0xd8e50" (identifier "pcVar4") (+ "+") (number_literal "0xd8e50")) () ")")))))) (; ";")) (expression_statement "*(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;" (assignment_expression "*(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd" (pointer_expression "*(uint *)(iVar8 + 0x10)" (* "*") (cast_expression "(uint *)(iVar8 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar8 + 0x10) & 0xfffffffd" (pointer_expression "*(uint *)(iVar8 + 0x10)" (* "*") (cast_expression "(uint *)(iVar8 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "0xfffffffd"))) (; ";")) (if_statement "if (iVar12 == 0) {\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }\n      else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }\n      }" ({ "{") (if_statement "if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }\n        else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }" (if "if") (parenthesized_expression "(*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29)" (( "(") (binary_expression "*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29" (pointer_expression "*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c)" (* "*") (cast_expression "(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcVar4 + 0xd971c) + 0x2c)" (( "(") (binary_expression "*(int *)(pcVar4 + 0xd971c) + 0x2c" (pointer_expression "*(int *)(pcVar4 + 0xd971c)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd971c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd971c)" (( "(") (binary_expression "pcVar4 + 0xd971c" (identifier "pcVar4") (+ "+") (number_literal "0xd971c")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (== "==") (identifier "piVar29")) () ")")) (compound_statement "{\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;\n        }" ({ "{") (expression_statement "iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;" (assignment_expression "iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144" (identifier "iVar12") (= "=") (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7144" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd8e3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd8e3c)" (( "(") (binary_expression "pcVar4 + 0xd8e3c" (identifier "pcVar4") (+ "+") (number_literal "0xd8e3c")) () ")")))) (+ "+") (number_literal "0x7144"))) (; ";")) (} "}")) (else_clause "else {\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }" (else "else") (compound_statement "{\n          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;\n          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;\n        }" ({ "{") (if_statement "if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;" (if "if") (parenthesized_expression "(*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29)" (( "(") (binary_expression "*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29" (pointer_expression "*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30)" (* "*") (cast_expression "(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcVar4 + 0xd971c) + 0x30)" (( "(") (binary_expression "*(int *)(pcVar4 + 0xd971c) + 0x30" (pointer_expression "*(int *)(pcVar4 + 0xd971c)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd971c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd971c)" (( "(") (binary_expression "pcVar4 + 0xd971c" (identifier "pcVar4") (+ "+") (number_literal "0xd971c")) () ")")))) (+ "+") (number_literal "0x30")) () ")")))) (!= "!=") (identifier "piVar29")) () ")")) (goto_statement "goto LAB_0006b860;" (goto "goto") (statement_identifier "LAB_0006b860") (; ";"))) (expression_statement "iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;" (assignment_expression "iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98" (identifier "iVar12") (= "=") (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7d98" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd8e3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd8e3c)" (( "(") (binary_expression "pcVar4 + 0xd8e3c" (identifier "pcVar4") (+ "+") (number_literal "0xd8e3c")) () ")")))) (+ "+") (number_literal "0x7d98"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }" (else "else") (compound_statement "{\nLAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;\n      }" ({ "{") (labeled_statement "LAB_0006b860:\n        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;" (statement_identifier "LAB_0006b860") (: ":") (expression_statement "iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;" (assignment_expression "iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04" (identifier "iVar12") (= "=") (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7b04" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd8e3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd8e3c)" (( "(") (binary_expression "pcVar4 + 0xd8e3c" (identifier "pcVar4") (+ "+") (number_literal "0xd8e3c")) () ")")))) (+ "+") (number_literal "0x7b04"))) (; ";"))) (} "}")))) (expression_statement "piVar31 = *(int **)(iVar8 + 4);" (assignment_expression "piVar31 = *(int **)(iVar8 + 4)" (identifier "piVar31") (= "=") (pointer_expression "*(int **)(iVar8 + 4)" (* "*") (cast_expression "(int **)(iVar8 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "(**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)\n      ;" (call_expression "(**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdabb0))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xdabb0)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xdabb0)" (* "*") (cast_expression "(code **)(pcVar4 + 0xdabb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xdabb0)" (( "(") (binary_expression "pcVar4 + 0xdabb0" (identifier "pcVar4") (+ "+") (number_literal "0xdabb0")) () ")"))))) () ")")) (argument_list "(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)" (( "(") (number_literal "1") (, ",") (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd8e3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd8e3c)" (( "(") (binary_expression "pcVar4 + 0xd8e3c" (identifier "pcVar4") (+ "+") (number_literal "0xd8e3c")) () ")")))) (+ "+") (number_literal "0x7dd8")) (, ",") (binary_expression "(int)piVar29 + 1" (cast_expression "(int)piVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar29")) (+ "+") (number_literal "1")) (, ",") (identifier "iVar12") () ")"))) (; ";")) (expression_statement "piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);" (assignment_expression "piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(*(int *)(*piVar22 + iVar11) + 4)" (* "*") (cast_expression "(int **)(*(int *)(*piVar22 + iVar11) + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(*piVar22 + iVar11) + 4)" (( "(") (binary_expression "*(int *)(*piVar22 + iVar11) + 4" (pointer_expression "*(int *)(*piVar22 + iVar11)" (* "*") (cast_expression "(int *)(*piVar22 + iVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar22 + iVar11)" (( "(") (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (+ "+") (identifier "iVar11")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (goto_statement "goto LAB_0006b898;" (goto "goto") (statement_identifier "LAB_0006b898") (; ";")) (} "}"))) (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5)" (identifier "uVar19") (= "=") (call_expression "(**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdad5c))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xdad5c)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xdad5c)" (* "*") (cast_expression "(code **)(pcVar4 + 0xdad5c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xdad5c)" (( "(") (binary_expression "pcVar4 + 0xdad5c" (identifier "pcVar4") (+ "+") (number_literal "0xdad5c")) () ")"))))) () ")")) (argument_list "(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7db4" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd8e3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd8e3c)" (( "(") (binary_expression "pcVar4 + 0xd8e3c" (identifier "pcVar4") (+ "+") (number_literal "0xd8e3c")) () ")")))) (+ "+") (number_literal "0x7db4")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);" (call_expression "internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1)" (identifier "internal_error") (argument_list "(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1)" (( "(") (identifier "uVar19") (, ",") (pointer_expression "**(undefined4 **)(pcVar4 + 0xd8fec)" (* "*") (pointer_expression "*(undefined4 **)(pcVar4 + 0xd8fec)" (* "*") (cast_expression "(undefined4 **)(pcVar4 + 0xd8fec)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd8fec)" (( "(") (binary_expression "pcVar4 + 0xd8fec" (identifier "pcVar4") (+ "+") (number_literal "0xd8fec")) () ")"))))) (, ",") (binary_expression "(int)piVar29 + 1" (cast_expression "(int)piVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar29")) (+ "+") (number_literal "1")) () ")"))) (; ";")) (labeled_statement "LAB_0006b9dc:\n    puVar20 = (undefined1 *)0x0;" (statement_identifier "LAB_0006b9dc") (: ":") (expression_statement "puVar20 = (undefined1 *)0x0;" (assignment_expression "puVar20 = (undefined1 *)0x0" (identifier "puVar20") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "(**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);" (call_expression "(**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdadd8))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xdadd8)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xdadd8)" (* "*") (cast_expression "(code **)(pcVar4 + 0xdadd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xdadd8)" (( "(") (binary_expression "pcVar4 + 0xdadd8" (identifier "pcVar4") (+ "+") (number_literal "0xdadd8")) () ")"))))) () ")")) (argument_list "(3,auStack_35c,0)" (( "(") (number_literal "3") (, ",") (identifier "auStack_35c") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }" (else "else") (compound_statement "{\n    uStack_3e4 = FUN_000649c8();\n    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;\n    FUN_00064368(piVar29);\n    iVar8 = *(int *)(*piVar22 + iVar11);\n    piVar23 = *(int **)(iVar8 + 4);\n    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;\n    piVar31 = piVar23;\nLAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);\n    iVar8 = *(int *)(pcVar4 + 0xd8e70);\n    iVar26 = *(int *)(pcVar4 + 0xd8e3c);\n    do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);\n    if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }\n    uVar19 = *puVar27;\n    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);\n    if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }\n    (**(code **)(pcVar4 + 0xdac04))(10);\n    if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }\nLAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);\n    uVar19 = *(undefined4 *)(iVar3 + 4);\n    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);\n    puVar20 = (undefined1 *)wait_for(uVar19);\n    puVar27 = puVar21;\n    do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);\n    *puVar9 = *puVar7;\n    set_tty_state();\n  }" ({ "{") (expression_statement "uStack_3e4 = FUN_000649c8();" (assignment_expression "uStack_3e4 = FUN_000649c8()" (identifier "uStack_3e4") (= "=") (call_expression "FUN_000649c8()" (identifier "FUN_000649c8") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;" (assignment_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd" (pointer_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" (* "*") (cast_expression "(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*piVar22 + iVar11) + 0x10)" (( "(") (binary_expression "*(int *)(*piVar22 + iVar11) + 0x10" (pointer_expression "*(int *)(*piVar22 + iVar11)" (* "*") (cast_expression "(int *)(*piVar22 + iVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar22 + iVar11)" (( "(") (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (+ "+") (identifier "iVar11")) () ")")))) (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd" (pointer_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" (* "*") (cast_expression "(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*piVar22 + iVar11) + 0x10)" (( "(") (binary_expression "*(int *)(*piVar22 + iVar11) + 0x10" (pointer_expression "*(int *)(*piVar22 + iVar11)" (* "*") (cast_expression "(int *)(*piVar22 + iVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar22 + iVar11)" (( "(") (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (+ "+") (identifier "iVar11")) () ")")))) (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "0xfffffffd"))) (; ";")) (expression_statement "FUN_00064368(piVar29);" (call_expression "FUN_00064368(piVar29)" (identifier "FUN_00064368") (argument_list "(piVar29)" (( "(") (identifier "piVar29") () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)(*piVar22 + iVar11);" (assignment_expression "iVar8 = *(int *)(*piVar22 + iVar11)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(*piVar22 + iVar11)" (* "*") (cast_expression "(int *)(*piVar22 + iVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar22 + iVar11)" (( "(") (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (+ "+") (identifier "iVar11")) () ")"))))) (; ";")) (expression_statement "piVar23 = *(int **)(iVar8 + 4);" (assignment_expression "piVar23 = *(int **)(iVar8 + 4)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(iVar8 + 4)" (* "*") (cast_expression "(int **)(iVar8 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;" (assignment_expression "*(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1" (pointer_expression "*(uint *)(iVar8 + 0x10)" (* "*") (cast_expression "(uint *)(iVar8 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar8 + 0x10) | 1" (pointer_expression "*(uint *)(iVar8 + 0x10)" (* "*") (cast_expression "(uint *)(iVar8 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (expression_statement "piVar31 = piVar23;" (assignment_expression "piVar31 = piVar23" (identifier "piVar31") (= "=") (identifier "piVar23")) (; ";")) (labeled_statement "LAB_0006b898:\n    iVar12 = *(int *)(pcVar4 + 0xd8e3c);" (statement_identifier "LAB_0006b898") (: ":") (expression_statement "iVar12 = *(int *)(pcVar4 + 0xd8e3c);" (assignment_expression "iVar12 = *(int *)(pcVar4 + 0xd8e3c)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd8e3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd8e3c)" (( "(") (binary_expression "pcVar4 + 0xd8e3c" (identifier "pcVar4") (+ "+") (number_literal "0xd8e3c")) () ")"))))) (; ";"))) (expression_statement "iVar8 = *(int *)(pcVar4 + 0xd8e70);" (assignment_expression "iVar8 = *(int *)(pcVar4 + 0xd8e70)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(pcVar4 + 0xd8e70)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd8e70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd8e70)" (( "(") (binary_expression "pcVar4 + 0xd8e70" (identifier "pcVar4") (+ "+") (number_literal "0xd8e70")) () ")"))))) (; ";")) (expression_statement "iVar26 = *(int *)(pcVar4 + 0xd8e3c);" (assignment_expression "iVar26 = *(int *)(pcVar4 + 0xd8e3c)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd8e3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd8e3c)" (( "(") (binary_expression "pcVar4 + 0xd8e3c" (identifier "pcVar4") (+ "+") (number_literal "0xd8e3c")) () ")"))))) (; ";")) (do_statement "do {\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    } while (piVar23 != piVar31);" (do "do") (compound_statement "{\n      iVar15 = piVar31[4];\n      if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }\n      iVar18 = iVar26 + 0x6720;\n      if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }\n      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);\n      piVar31 = (int *)*piVar31;\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n      piVar23 = (int *)puVar27[1];\n    }" ({ "{") (expression_statement "iVar15 = piVar31[4];" (assignment_expression "iVar15 = piVar31[4]" (identifier "iVar15") (= "=") (subscript_expression "piVar31[4]" (identifier "piVar31") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (piVar31[4] == 0) {\n        iVar15 = iVar8 + -0x6800;\n      }" (if "if") (parenthesized_expression "(piVar31[4] == 0)" (( "(") (binary_expression "piVar31[4] == 0" (subscript_expression "piVar31[4]" (identifier "piVar31") ([ "[") (number_literal "4") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar15 = iVar8 + -0x6800;\n      }" ({ "{") (expression_statement "iVar15 = iVar8 + -0x6800;" (assignment_expression "iVar15 = iVar8 + -0x6800" (identifier "iVar15") (= "=") (binary_expression "iVar8 + -0x6800" (identifier "iVar8") (+ "+") (number_literal "-0x6800"))) (; ";")) (} "}"))) (expression_statement "iVar18 = iVar26 + 0x6720;" (assignment_expression "iVar18 = iVar26 + 0x6720" (identifier "iVar18") (= "=") (binary_expression "iVar26 + 0x6720" (identifier "iVar26") (+ "+") (number_literal "0x6720"))) (; ";")) (if_statement "if ((int *)*piVar31 == piVar23) {\n        iVar18 = iVar8 + -0x6800;\n      }" (if "if") (parenthesized_expression "((int *)*piVar31 == piVar23)" (( "(") (binary_expression "(int *)*piVar31 == piVar23" (cast_expression "(int *)*piVar31" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar31" (* "*") (identifier "piVar31"))) (== "==") (identifier "piVar23")) () ")")) (compound_statement "{\n        iVar18 = iVar8 + -0x6800;\n      }" ({ "{") (expression_statement "iVar18 = iVar8 + -0x6800;" (assignment_expression "iVar18 = iVar8 + -0x6800" (identifier "iVar18") (= "=") (binary_expression "iVar8 + -0x6800" (identifier "iVar8") (+ "+") (number_literal "-0x6800"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);" (call_expression "(**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdabb0))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xdabb0)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xdabb0)" (* "*") (cast_expression "(code **)(pcVar4 + 0xdabb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xdabb0)" (( "(") (binary_expression "pcVar4 + 0xdabb0" (identifier "pcVar4") (+ "+") (number_literal "0xdabb0")) () ")"))))) () ")")) (argument_list "(1,iVar12 + 0x6298,iVar15,iVar18)" (( "(") (number_literal "1") (, ",") (binary_expression "iVar12 + 0x6298" (identifier "iVar12") (+ "+") (number_literal "0x6298")) (, ",") (identifier "iVar15") (, ",") (identifier "iVar18") () ")"))) (; ";")) (expression_statement "piVar31 = (int *)*piVar31;" (assignment_expression "piVar31 = (int *)*piVar31" (identifier "piVar31") (= "=") (cast_expression "(int *)*piVar31" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar31" (* "*") (identifier "piVar31")))) (; ";")) (expression_statement "puVar27 = *(undefined4 **)(*piVar22 + iVar11);" (assignment_expression "puVar27 = *(undefined4 **)(*piVar22 + iVar11)" (identifier "puVar27") (= "=") (pointer_expression "*(undefined4 **)(*piVar22 + iVar11)" (* "*") (cast_expression "(undefined4 **)(*piVar22 + iVar11)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar22 + iVar11)" (( "(") (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (+ "+") (identifier "iVar11")) () ")"))))) (; ";")) (expression_statement "piVar23 = (int *)puVar27[1];" (assignment_expression "piVar23 = (int *)puVar27[1]" (identifier "piVar23") (= "=") (cast_expression "(int *)puVar27[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar27[1]" (identifier "puVar27") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar23 != piVar31)" (( "(") (binary_expression "piVar23 != piVar31" (identifier "piVar23") (!= "!=") (identifier "piVar31")) () ")")) (; ";")) (if_statement "if (puVar13 == (undefined4 *)0x0) {\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }" (if "if") (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 == (undefined4 *)0x0" (identifier "puVar13") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);\n      puVar27 = *(undefined4 **)(*piVar22 + iVar11);\n    }" ({ "{") (expression_statement "(**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);" (call_expression "(**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdabb0))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xdabb0)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xdabb0)" (* "*") (cast_expression "(code **)(pcVar4 + 0xdabb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xdabb0)" (( "(") (binary_expression "pcVar4 + 0xdabb0" (identifier "pcVar4") (+ "+") (number_literal "0xdabb0")) () ")"))))) () ")")) (argument_list "(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74)" (( "(") (number_literal "1") (, ",") (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7b74" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd8e3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd8e3c)" (( "(") (binary_expression "pcVar4 + 0xd8e3c" (identifier "pcVar4") (+ "+") (number_literal "0xd8e3c")) () ")")))) (+ "+") (number_literal "0x7b74")) () ")"))) (; ";")) (expression_statement "puVar27 = *(undefined4 **)(*piVar22 + iVar11);" (assignment_expression "puVar27 = *(undefined4 **)(*piVar22 + iVar11)" (identifier "puVar27") (= "=") (pointer_expression "*(undefined4 **)(*piVar22 + iVar11)" (* "*") (cast_expression "(undefined4 **)(*piVar22 + iVar11)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar22 + iVar11)" (( "(") (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (+ "+") (identifier "iVar11")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar19 = *puVar27;" (assignment_expression "uVar19 = *puVar27" (identifier "uVar19") (= "=") (pointer_expression "*puVar27" (* "*") (identifier "puVar27"))) (; ";")) (expression_statement "iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);" (assignment_expression "iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdae0c))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xdae0c)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xdae0c)" (* "*") (cast_expression "(code **)(pcVar4 + 0xdae0c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xdae0c)" (( "(") (binary_expression "pcVar4 + 0xdae0c" (identifier "pcVar4") (+ "+") (number_literal "0xdae0c")) () ")"))))) () ")")) (argument_list "(uStack_3e4,uVar19)" (( "(") (identifier "uStack_3e4") (, ",") (identifier "uVar19") () ")")))) (; ";")) (if_statement "if (iVar8 != 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);\n      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);\n    }" ({ "{") (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19)" (identifier "uVar19") (= "=") (call_expression "(**(code **)(pcVar4 + 0xd9234))(uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xd9234))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xd9234)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xd9234)" (* "*") (cast_expression "(code **)(pcVar4 + 0xd9234)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd9234)" (( "(") (binary_expression "pcVar4 + 0xd9234" (identifier "pcVar4") (+ "+") (number_literal "0xd9234")) () ")"))))) () ")")) (argument_list "(uVar19)" (( "(") (identifier "uVar19") () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);" (call_expression "(**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdabb0))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xdabb0)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xdabb0)" (* "*") (cast_expression "(code **)(pcVar4 + 0xdabb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xdabb0)" (( "(") (binary_expression "pcVar4 + 0xdabb0" (identifier "pcVar4") (+ "+") (number_literal "0xdabb0")) () ")"))))) () ")")) (argument_list "(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19)" (( "(") (number_literal "1") (, ",") (binary_expression "*(int *)(pcVar4 + 0xd8e3c) + 0x7de0" (pointer_expression "*(int *)(pcVar4 + 0xd8e3c)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd8e3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd8e3c)" (( "(") (binary_expression "pcVar4 + 0xd8e3c" (identifier "pcVar4") (+ "+") (number_literal "0xd8e3c")) () ")")))) (+ "+") (number_literal "0x7de0")) (, ",") (identifier "uVar19") () ")"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar4 + 0xdac04))(10);" (call_expression "(**(code **)(pcVar4 + 0xdac04))(10)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdac04))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xdac04)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xdac04)" (* "*") (cast_expression "(code **)(pcVar4 + 0xdac04)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xdac04)" (( "(") (binary_expression "pcVar4 + 0xdac04" (identifier "pcVar4") (+ "+") (number_literal "0xdac04")) () ")"))))) () ")")) (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (if_statement "if (iVar3 == 1) {\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }\n    else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }" (if "if") (parenthesized_expression "(iVar3 == 1)" (( "(") (binary_expression "iVar3 == 1" (identifier "iVar3") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;\n    }" ({ "{") (if_statement "if (puVar13 == (undefined4 *)0x0) {\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }" (if "if") (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 == (undefined4 *)0x0" (identifier "puVar13") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;\n        goto LAB_0006b9c8;\n      }" ({ "{") (expression_statement "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;" (assignment_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =\n             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe" (pointer_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" (* "*") (cast_expression "(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*piVar22 + iVar11) + 0x10)" (( "(") (binary_expression "*(int *)(*piVar22 + iVar11) + 0x10" (pointer_expression "*(int *)(*piVar22 + iVar11)" (* "*") (cast_expression "(int *)(*piVar22 + iVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar22 + iVar11)" (( "(") (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (+ "+") (identifier "iVar11")) () ")")))) (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe" (pointer_expression "*(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" (* "*") (cast_expression "(uint *)(*(int *)(*piVar22 + iVar11) + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*piVar22 + iVar11) + 0x10)" (( "(") (binary_expression "*(int *)(*piVar22 + iVar11) + 0x10" (pointer_expression "*(int *)(*piVar22 + iVar11)" (* "*") (cast_expression "(int *)(*piVar22 + iVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar22 + iVar11)" (( "(") (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (+ "+") (identifier "iVar11")) () ")")))) (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "0xfffffffe"))) (; ";")) (goto_statement "goto LAB_0006b9c8;" (goto "goto") (statement_identifier "LAB_0006b9c8") (; ";")) (} "}"))) (expression_statement "get_tty_state();" (call_expression "get_tty_state()" (identifier "get_tty_state") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)(pcVar4 + 0xd9a18);" (assignment_expression "iVar8 = *(int *)(pcVar4 + 0xd9a18)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(pcVar4 + 0xd9a18)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd9a18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd9a18)" (( "(") (binary_expression "pcVar4 + 0xd9a18" (identifier "pcVar4") (+ "+") (number_literal "0xd9a18")) () ")"))))) (; ";")) (expression_statement "puVar24 = (undefined4 *)(iVar8 + -0x70d0);" (assignment_expression "puVar24 = (undefined4 *)(iVar8 + -0x70d0)" (identifier "puVar24") (= "=") (cast_expression "(undefined4 *)(iVar8 + -0x70d0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -0x70d0)" (( "(") (binary_expression "iVar8 + -0x70d0" (identifier "iVar8") (+ "+") (number_literal "-0x70d0")) () ")")))) (; ";")) (expression_statement "puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);" (assignment_expression "puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8)" (identifier "puVar21") (= "=") (cast_expression "(undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8)" (( "(") (binary_expression "*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8" (pointer_expression "*(int *)(pcVar4 + 0xd8e2c)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd8e2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd8e2c)" (( "(") (binary_expression "pcVar4 + 0xd8e2c" (identifier "pcVar4") (+ "+") (number_literal "0xd8e2c")) () ")")))) (+ "+") (number_literal "0x7ee8")) () ")")))) (; ";")) (expression_statement "puVar27 = puVar24;" (assignment_expression "puVar27 = puVar24" (identifier "puVar27") (= "=") (identifier "puVar24")) (; ";")) (expression_statement "puVar9 = puVar21;" (assignment_expression "puVar9 = puVar21" (identifier "puVar9") (= "=") (identifier "puVar21")) (; ";")) (do_statement "do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));" (do "do") (compound_statement "{\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      }" ({ "{") (expression_statement "puVar7 = puVar27 + 4;" (assignment_expression "puVar7 = puVar27 + 4" (identifier "puVar7") (= "=") (binary_expression "puVar27 + 4" (identifier "puVar27") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar10 = puVar9 + 4;" (assignment_expression "puVar10 = puVar9 + 4" (identifier "puVar10") (= "=") (binary_expression "puVar9 + 4" (identifier "puVar9") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar16 = puVar27[1];" (assignment_expression "uVar16 = puVar27[1]" (identifier "uVar16") (= "=") (subscript_expression "puVar27[1]" (identifier "puVar27") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar14 = puVar27[2];" (assignment_expression "uVar14 = puVar27[2]" (identifier "uVar14") (= "=") (subscript_expression "puVar27[2]" (identifier "puVar27") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar19 = puVar27[3];" (assignment_expression "uVar19 = puVar27[3]" (identifier "uVar19") (= "=") (subscript_expression "puVar27[3]" (identifier "puVar27") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar9 = *puVar27;" (assignment_expression "*puVar9 = *puVar27" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (pointer_expression "*puVar27" (* "*") (identifier "puVar27"))) (; ";")) (expression_statement "puVar9[1] = uVar16;" (assignment_expression "puVar9[1] = uVar16" (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "puVar9[2] = uVar14;" (assignment_expression "puVar9[2] = uVar14" (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "puVar9[3] = uVar19;" (assignment_expression "puVar9[3] = uVar19" (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar27 = puVar7;" (assignment_expression "puVar27 = puVar7" (identifier "puVar27") (= "=") (identifier "puVar7")) (; ";")) (expression_statement "puVar9 = puVar10;" (assignment_expression "puVar9 = puVar10" (identifier "puVar9") (= "=") (identifier "puVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar7 != (undefined4 *)(iVar8 + -0x70a0))" (( "(") (binary_expression "puVar7 != (undefined4 *)(iVar8 + -0x70a0)" (identifier "puVar7") (!= "!=") (cast_expression "(undefined4 *)(iVar8 + -0x70a0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -0x70a0)" (( "(") (binary_expression "iVar8 + -0x70a0" (identifier "iVar8") (+ "+") (number_literal "-0x70a0")) () ")")))) () ")")) (; ";")) (expression_statement "iVar8 = *piVar22;" (assignment_expression "iVar8 = *piVar22" (identifier "iVar8") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (expression_statement "*puVar10 = *puVar7;" (assignment_expression "*puVar10 = *puVar7" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "iVar8 = *(int *)(iVar8 + iVar11);" (assignment_expression "iVar8 = *(int *)(iVar8 + iVar11)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar8 + iVar11)" (* "*") (cast_expression "(int *)(iVar8 + iVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar11)" (( "(") (binary_expression "iVar8 + iVar11" (identifier "iVar8") (+ "+") (identifier "iVar11")) () ")"))))) (; ";")) (if_statement "if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;" (if "if") (parenthesized_expression "((*(uint *)(iVar8 + 0x10) & 4) != 0)" (( "(") (binary_expression "(*(uint *)(iVar8 + 0x10) & 4) != 0" (parenthesized_expression "(*(uint *)(iVar8 + 0x10) & 4)" (( "(") (binary_expression "*(uint *)(iVar8 + 0x10) & 4" (pointer_expression "*(uint *)(iVar8 + 0x10)" (* "*") (cast_expression "(uint *)(iVar8 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006bce0;" (goto "goto") (statement_identifier "LAB_0006bce0") (; ";"))) (} "}")) (else_clause "else {\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }" (else "else") (compound_statement "{\n      iVar8 = *(int *)(*piVar22 + iVar11);\n      piVar23 = *(int **)(iVar8 + 4);\n      piVar31 = piVar23;\n      do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);\n      *(undefined4 *)(iVar8 + 0xc) = 1;\n      if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }\n      get_tty_state();\n      iVar8 = *(int *)(pcVar4 + 0xd9a18);\n      puVar24 = (undefined4 *)(iVar8 + -0x70d0);\n      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);\n      puVar27 = puVar24;\n      puVar9 = puVar21;\n      do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));\n      iVar8 = *piVar22;\n      *puVar10 = *puVar7;\n      iVar8 = *(int *)(iVar8 + iVar11);\n      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }\n      pcVar32 = *(code **)(pcVar4 + 0xdad38);\n      iVar3 = *(int *)(iVar3 + iVar11);\n      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;\n      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);\n    }" ({ "{") (expression_statement "iVar8 = *(int *)(*piVar22 + iVar11);" (assignment_expression "iVar8 = *(int *)(*piVar22 + iVar11)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(*piVar22 + iVar11)" (* "*") (cast_expression "(int *)(*piVar22 + iVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar22 + iVar11)" (( "(") (binary_expression "*piVar22 + iVar11" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (+ "+") (identifier "iVar11")) () ")"))))) (; ";")) (expression_statement "piVar23 = *(int **)(iVar8 + 4);" (assignment_expression "piVar23 = *(int **)(iVar8 + 4)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(iVar8 + 4)" (* "*") (cast_expression "(int **)(iVar8 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "piVar31 = piVar23;" (assignment_expression "piVar31 = piVar23" (identifier "piVar31") (= "=") (identifier "piVar23")) (; ";")) (do_statement "do {\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      } while (piVar23 != piVar31);" (do "do") (compound_statement "{\n        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }\n        piVar31 = (int *)*piVar31;\n      }" ({ "{") (if_statement "if (*(char *)((int)piVar31 + 0xb) == '\x7f') {\n          piVar31[3] = 1;\n        }" (if "if") (parenthesized_expression "(*(char *)((int)piVar31 + 0xb) == '\x7f')" (( "(") (binary_expression "*(char *)((int)piVar31 + 0xb) == '\x7f'" (pointer_expression "*(char *)((int)piVar31 + 0xb)" (* "*") (cast_expression "(char *)((int)piVar31 + 0xb)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar31 + 0xb)" (( "(") (binary_expression "(int)piVar31 + 0xb" (cast_expression "(int)piVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar31")) (+ "+") (number_literal "0xb")) () ")")))) (== "==") (char_literal "'\x7f'" (' "'") (escape_sequence "\x7f") (' "'"))) () ")")) (compound_statement "{\n          piVar31[3] = 1;\n        }" ({ "{") (expression_statement "piVar31[3] = 1;" (assignment_expression "piVar31[3] = 1" (subscript_expression "piVar31[3]" (identifier "piVar31") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "piVar31 = (int *)*piVar31;" (assignment_expression "piVar31 = (int *)*piVar31" (identifier "piVar31") (= "=") (cast_expression "(int *)*piVar31" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar31" (* "*") (identifier "piVar31")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar23 != piVar31)" (( "(") (binary_expression "piVar23 != piVar31" (identifier "piVar23") (!= "!=") (identifier "piVar31")) () ")")) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0xc) = 1;" (assignment_expression "*(undefined4 *)(iVar8 + 0xc) = 1" (pointer_expression "*(undefined4 *)(iVar8 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0xc)" (( "(") (binary_expression "iVar8 + 0xc" (identifier "iVar8") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (puVar13 == (undefined4 *)0x0) {\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }" (if "if") (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 == (undefined4 *)0x0" (identifier "puVar13") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        pcVar32 = *(code **)(pcVar4 + 0xdad38);\n        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;\n        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);\nLAB_0006b9c8:\n        FUN_00064490();\n        goto LAB_0006b9dc;\n      }" ({ "{") (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xdad38);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xdad38)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar4 + 0xdad38)" (* "*") (cast_expression "(code **)(pcVar4 + 0xdad38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xdad38)" (( "(") (binary_expression "pcVar4 + 0xdad38" (identifier "pcVar4") (+ "+") (number_literal "0xdad38")) () ")"))))) (; ";")) (expression_statement "*(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;" (assignment_expression "*(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2" (pointer_expression "*(uint *)(iVar8 + 0x10)" (* "*") (cast_expression "(uint *)(iVar8 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar8 + 0x10) & 0xfffffffe | 2" (binary_expression "*(uint *)(iVar8 + 0x10) & 0xfffffffe" (pointer_expression "*(uint *)(iVar8 + 0x10)" (* "*") (cast_expression "(uint *)(iVar8 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "0xfffffffe")) (| "|") (number_literal "2"))) (; ";")) (expression_statement "(*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);" (call_expression "(*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(*(undefined4 *)(iVar8 + 8),0x19)" (( "(") (pointer_expression "*(undefined4 *)(iVar8 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")")))) (, ",") (number_literal "0x19") () ")"))) (; ";")) (labeled_statement "LAB_0006b9c8:\n        FUN_00064490();" (statement_identifier "LAB_0006b9c8") (: ":") (expression_statement "FUN_00064490();" (call_expression "FUN_00064490()" (identifier "FUN_00064490") (argument_list "()" (( "(") () ")"))) (; ";"))) (goto_statement "goto LAB_0006b9dc;" (goto "goto") (statement_identifier "LAB_0006b9dc") (; ";")) (} "}"))) (expression_statement "get_tty_state();" (call_expression "get_tty_state()" (identifier "get_tty_state") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)(pcVar4 + 0xd9a18);" (assignment_expression "iVar8 = *(int *)(pcVar4 + 0xd9a18)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(pcVar4 + 0xd9a18)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd9a18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd9a18)" (( "(") (binary_expression "pcVar4 + 0xd9a18" (identifier "pcVar4") (+ "+") (number_literal "0xd9a18")) () ")"))))) (; ";")) (expression_statement "puVar24 = (undefined4 *)(iVar8 + -0x70d0);" (assignment_expression "puVar24 = (undefined4 *)(iVar8 + -0x70d0)" (identifier "puVar24") (= "=") (cast_expression "(undefined4 *)(iVar8 + -0x70d0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -0x70d0)" (( "(") (binary_expression "iVar8 + -0x70d0" (identifier "iVar8") (+ "+") (number_literal "-0x70d0")) () ")")))) (; ";")) (expression_statement "puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);" (assignment_expression "puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8)" (identifier "puVar21") (= "=") (cast_expression "(undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8)" (( "(") (binary_expression "*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8" (pointer_expression "*(int *)(pcVar4 + 0xd8e2c)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd8e2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd8e2c)" (( "(") (binary_expression "pcVar4 + 0xd8e2c" (identifier "pcVar4") (+ "+") (number_literal "0xd8e2c")) () ")")))) (+ "+") (number_literal "0x7ee8")) () ")")))) (; ";")) (expression_statement "puVar27 = puVar24;" (assignment_expression "puVar27 = puVar24" (identifier "puVar27") (= "=") (identifier "puVar24")) (; ";")) (expression_statement "puVar9 = puVar21;" (assignment_expression "puVar9 = puVar21" (identifier "puVar9") (= "=") (identifier "puVar21")) (; ";")) (do_statement "do {\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));" (do "do") (compound_statement "{\n        puVar7 = puVar27 + 4;\n        puVar10 = puVar9 + 4;\n        uVar16 = puVar27[1];\n        uVar14 = puVar27[2];\n        uVar19 = puVar27[3];\n        *puVar9 = *puVar27;\n        puVar9[1] = uVar16;\n        puVar9[2] = uVar14;\n        puVar9[3] = uVar19;\n        puVar27 = puVar7;\n        puVar9 = puVar10;\n      }" ({ "{") (expression_statement "puVar7 = puVar27 + 4;" (assignment_expression "puVar7 = puVar27 + 4" (identifier "puVar7") (= "=") (binary_expression "puVar27 + 4" (identifier "puVar27") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar10 = puVar9 + 4;" (assignment_expression "puVar10 = puVar9 + 4" (identifier "puVar10") (= "=") (binary_expression "puVar9 + 4" (identifier "puVar9") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar16 = puVar27[1];" (assignment_expression "uVar16 = puVar27[1]" (identifier "uVar16") (= "=") (subscript_expression "puVar27[1]" (identifier "puVar27") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar14 = puVar27[2];" (assignment_expression "uVar14 = puVar27[2]" (identifier "uVar14") (= "=") (subscript_expression "puVar27[2]" (identifier "puVar27") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar19 = puVar27[3];" (assignment_expression "uVar19 = puVar27[3]" (identifier "uVar19") (= "=") (subscript_expression "puVar27[3]" (identifier "puVar27") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar9 = *puVar27;" (assignment_expression "*puVar9 = *puVar27" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (pointer_expression "*puVar27" (* "*") (identifier "puVar27"))) (; ";")) (expression_statement "puVar9[1] = uVar16;" (assignment_expression "puVar9[1] = uVar16" (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "puVar9[2] = uVar14;" (assignment_expression "puVar9[2] = uVar14" (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "puVar9[3] = uVar19;" (assignment_expression "puVar9[3] = uVar19" (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar27 = puVar7;" (assignment_expression "puVar27 = puVar7" (identifier "puVar27") (= "=") (identifier "puVar7")) (; ";")) (expression_statement "puVar9 = puVar10;" (assignment_expression "puVar9 = puVar10" (identifier "puVar9") (= "=") (identifier "puVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar7 != (undefined4 *)(iVar8 + -0x70a0))" (( "(") (binary_expression "puVar7 != (undefined4 *)(iVar8 + -0x70a0)" (identifier "puVar7") (!= "!=") (cast_expression "(undefined4 *)(iVar8 + -0x70a0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -0x70a0)" (( "(") (binary_expression "iVar8 + -0x70a0" (identifier "iVar8") (+ "+") (number_literal "-0x70a0")) () ")")))) () ")")) (; ";")) (expression_statement "iVar8 = *piVar22;" (assignment_expression "iVar8 = *piVar22" (identifier "iVar8") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (expression_statement "*puVar10 = *puVar7;" (assignment_expression "*puVar10 = *puVar7" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "iVar8 = *(int *)(iVar8 + iVar11);" (assignment_expression "iVar8 = *(int *)(iVar8 + iVar11)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar8 + iVar11)" (* "*") (cast_expression "(int *)(iVar8 + iVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar11)" (( "(") (binary_expression "iVar8 + iVar11" (identifier "iVar8") (+ "+") (identifier "iVar11")) () ")"))))) (; ";")) (if_statement "if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {\n        iVar3 = *piVar22;\n      }\n      else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }" (if "if") (parenthesized_expression "((*(uint *)(iVar8 + 0x10) & 4) == 0)" (( "(") (binary_expression "(*(uint *)(iVar8 + 0x10) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar8 + 0x10) & 4)" (( "(") (binary_expression "*(uint *)(iVar8 + 0x10) & 4" (pointer_expression "*(uint *)(iVar8 + 0x10)" (* "*") (cast_expression "(uint *)(iVar8 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = *piVar22;\n      }" ({ "{") (expression_statement "iVar3 = *piVar22;" (assignment_expression "iVar3 = *piVar22" (identifier "iVar3") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (} "}")) (else_clause "else {\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }" (else "else") (compound_statement "{\nLAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);\n        if (iVar3 == 1) goto LAB_0006bbc8;\n        iVar3 = *piVar22;\n      }" ({ "{") (labeled_statement "LAB_0006bce0:\n        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);" (statement_identifier "LAB_0006bce0") (: ":") (expression_statement "give_terminal_to(*(undefined4 *)(iVar8 + 8),0);" (call_expression "give_terminal_to(*(undefined4 *)(iVar8 + 8),0)" (identifier "give_terminal_to") (argument_list "(*(undefined4 *)(iVar8 + 8),0)" (( "(") (pointer_expression "*(undefined4 *)(iVar8 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")")))) (, ",") (number_literal "0") () ")"))) (; ";"))) (if_statement "if (iVar3 == 1) goto LAB_0006bbc8;" (if "if") (parenthesized_expression "(iVar3 == 1)" (( "(") (binary_expression "iVar3 == 1" (identifier "iVar3") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_0006bbc8;" (goto "goto") (statement_identifier "LAB_0006bbc8") (; ";"))) (expression_statement "iVar3 = *piVar22;" (assignment_expression "iVar3 = *piVar22" (identifier "iVar3") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (} "}")))) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xdad38);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xdad38)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar4 + 0xdad38)" (* "*") (cast_expression "(code **)(pcVar4 + 0xdad38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xdad38)" (( "(") (binary_expression "pcVar4 + 0xdad38" (identifier "pcVar4") (+ "+") (number_literal "0xdad38")) () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(iVar3 + iVar11);" (assignment_expression "iVar3 = *(int *)(iVar3 + iVar11)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar3 + iVar11)" (* "*") (cast_expression "(int *)(iVar3 + iVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + iVar11)" (( "(") (binary_expression "iVar3 + iVar11" (identifier "iVar3") (+ "+") (identifier "iVar11")) () ")"))))) (; ";")) (expression_statement "*(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;" (assignment_expression "*(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2" (pointer_expression "*(uint *)(iVar3 + 0x10)" (* "*") (cast_expression "(uint *)(iVar3 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar3 + 0x10) | 2" (pointer_expression "*(uint *)(iVar3 + 0x10)" (* "*") (cast_expression "(uint *)(iVar3 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (expression_statement "(*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);" (call_expression "(*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(*(undefined4 *)(iVar3 + 8),0x19)" (( "(") (pointer_expression "*(undefined4 *)(iVar3 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")")))) (, ",") (number_literal "0x19") () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_0006bbc8:\n    iVar3 = FUN_00065a6c(piVar29);" (statement_identifier "LAB_0006bbc8") (: ":") (expression_statement "iVar3 = FUN_00065a6c(piVar29);" (assignment_expression "iVar3 = FUN_00065a6c(piVar29)" (identifier "iVar3") (= "=") (call_expression "FUN_00065a6c(piVar29)" (identifier "FUN_00065a6c") (argument_list "(piVar29)" (( "(") (identifier "piVar29") () ")")))) (; ";"))) (expression_statement "uVar19 = *(undefined4 *)(iVar3 + 4);" (assignment_expression "uVar19 = *(undefined4 *)(iVar3 + 4)" (identifier "uVar19") (= "=") (pointer_expression "*(undefined4 *)(iVar3 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "(**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);" (call_expression "(**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0)" (parenthesized_expression "(**(code **)(pcVar4 + 0xdadd8))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xdadd8)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xdadd8)" (* "*") (cast_expression "(code **)(pcVar4 + 0xdadd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xdadd8)" (( "(") (binary_expression "pcVar4 + 0xdadd8" (identifier "pcVar4") (+ "+") (number_literal "0xdadd8")) () ")"))))) () ")")) (argument_list "(3,auStack_35c,0)" (( "(") (number_literal "3") (, ",") (identifier "auStack_35c") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "puVar20 = (undefined1 *)wait_for(uVar19);" (assignment_expression "puVar20 = (undefined1 *)wait_for(uVar19)" (identifier "puVar20") (= "=") (cast_expression "(undefined1 *)wait_for(uVar19)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "wait_for(uVar19)" (identifier "wait_for") (argument_list "(uVar19)" (( "(") (identifier "uVar19") () ")"))))) (; ";")) (expression_statement "puVar27 = puVar21;" (assignment_expression "puVar27 = puVar21" (identifier "puVar27") (= "=") (identifier "puVar21")) (; ";")) (do_statement "do {\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    } while (puVar7 != puVar21 + 0xc);" (do "do") (compound_statement "{\n      puVar7 = puVar27 + 4;\n      puVar9 = puVar24 + 4;\n      uVar16 = puVar27[1];\n      uVar14 = puVar27[2];\n      uVar19 = puVar27[3];\n      *puVar24 = *puVar27;\n      puVar24[1] = uVar16;\n      puVar24[2] = uVar14;\n      puVar24[3] = uVar19;\n      puVar24 = puVar9;\n      puVar27 = puVar7;\n    }" ({ "{") (expression_statement "puVar7 = puVar27 + 4;" (assignment_expression "puVar7 = puVar27 + 4" (identifier "puVar7") (= "=") (binary_expression "puVar27 + 4" (identifier "puVar27") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar9 = puVar24 + 4;" (assignment_expression "puVar9 = puVar24 + 4" (identifier "puVar9") (= "=") (binary_expression "puVar24 + 4" (identifier "puVar24") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar16 = puVar27[1];" (assignment_expression "uVar16 = puVar27[1]" (identifier "uVar16") (= "=") (subscript_expression "puVar27[1]" (identifier "puVar27") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar14 = puVar27[2];" (assignment_expression "uVar14 = puVar27[2]" (identifier "uVar14") (= "=") (subscript_expression "puVar27[2]" (identifier "puVar27") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar19 = puVar27[3];" (assignment_expression "uVar19 = puVar27[3]" (identifier "uVar19") (= "=") (subscript_expression "puVar27[3]" (identifier "puVar27") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar24 = *puVar27;" (assignment_expression "*puVar24 = *puVar27" (pointer_expression "*puVar24" (* "*") (identifier "puVar24")) (= "=") (pointer_expression "*puVar27" (* "*") (identifier "puVar27"))) (; ";")) (expression_statement "puVar24[1] = uVar16;" (assignment_expression "puVar24[1] = uVar16" (subscript_expression "puVar24[1]" (identifier "puVar24") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "puVar24[2] = uVar14;" (assignment_expression "puVar24[2] = uVar14" (subscript_expression "puVar24[2]" (identifier "puVar24") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "puVar24[3] = uVar19;" (assignment_expression "puVar24[3] = uVar19" (subscript_expression "puVar24[3]" (identifier "puVar24") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar24 = puVar9;" (assignment_expression "puVar24 = puVar9" (identifier "puVar24") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "puVar27 = puVar7;" (assignment_expression "puVar27 = puVar7" (identifier "puVar27") (= "=") (identifier "puVar7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar7 != puVar21 + 0xc)" (( "(") (binary_expression "puVar7 != puVar21 + 0xc" (identifier "puVar7") (!= "!=") (binary_expression "puVar21 + 0xc" (identifier "puVar21") (+ "+") (number_literal "0xc"))) () ")")) (; ";")) (expression_statement "*puVar9 = *puVar7;" (assignment_expression "*puVar9 = *puVar7" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "set_tty_state();" (call_expression "set_tty_state()" (identifier "set_tty_state") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))))) (if_statement "if (iStack_2dc == *piVar17) {\n    return puVar20;\n  }" (if "if") (parenthesized_expression "(iStack_2dc == *piVar17)" (( "(") (binary_expression "iStack_2dc == *piVar17" (identifier "iStack_2dc") (== "==") (pointer_expression "*piVar17" (* "*") (identifier "piVar17"))) () ")")) (compound_statement "{\n    return puVar20;\n  }" ({ "{") (return_statement "return puVar20;" (return "return") (identifier "puVar20") (; ";")) (} "}"))) (expression_statement "pcVar4 = *(code **)(pcVar4 + 0xdad4c);" (assignment_expression "pcVar4 = *(code **)(pcVar4 + 0xdad4c)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(pcVar4 + 0xdad4c)" (* "*") (cast_expression "(code **)(pcVar4 + 0xdad4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xdad4c)" (( "(") (binary_expression "pcVar4 + 0xdad4c" (identifier "pcVar4") (+ "+") (number_literal "0xdad4c")) () ")"))))) (; ";")) (expression_statement "iVar3 = iStack_2dc;" (assignment_expression "iVar3 = iStack_2dc" (identifier "iVar3") (= "=") (identifier "iStack_2dc")) (; ";")) (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar31 = *(int **)(pcVar4 + 0xd8b10);" (assignment_expression "piVar31 = *(int **)(pcVar4 + 0xd8b10)" (identifier "piVar31") (= "=") (pointer_expression "*(int **)(pcVar4 + 0xd8b10)" (* "*") (cast_expression "(int **)(pcVar4 + 0xd8b10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd8b10)" (( "(") (binary_expression "pcVar4 + 0xd8b10" (identifier "pcVar4") (+ "+") (number_literal "0xd8b10")) () ")"))))) (; ";")) (expression_statement "iVar11 = (**(code **)(pcVar4 + 0xda6dc))();" (assignment_expression "iVar11 = (**(code **)(pcVar4 + 0xda6dc))()" (identifier "iVar11") (= "=") (call_expression "(**(code **)(pcVar4 + 0xda6dc))()" (parenthesized_expression "(**(code **)(pcVar4 + 0xda6dc))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda6dc)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda6dc)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda6dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda6dc)" (( "(") (binary_expression "pcVar4 + 0xda6dc" (identifier "pcVar4") (+ "+") (number_literal "0xda6dc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*piVar31 = iVar11;" (assignment_expression "*piVar31 = iVar11" (pointer_expression "*piVar31" (* "*") (identifier "piVar31")) (= "=") (identifier "iVar11")) (; ";")) (if_statement "if (iVar11 == -1) {\n    uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5);\n    sys_error(uVar19);\n    (**(code **)(pcVar4 + 0xda620))(1);\nLAB_0006c3c8:\n    uVar19 = *puVar13;\nLAB_0006be24:\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);\n    iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19);\n    *piVar22 = iVar3;\n    if (iVar3 != -1) goto LAB_0006bf80;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 == 0) goto LAB_0006bf08;\nLAB_0006be5c:\n    iVar3 = *piVar22;\n  }\n  else {\n    piVar29 = *(int **)(pcVar4 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);\n    uVar19 = *puVar13;\n    if (iVar3 == 0 && *piVar29 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar22 = *(int **)(pcVar4 + 0xd93fc);\n    iVar3 = **(int **)(pcVar4 + 0xd87e4);\n    *piVar22 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }\n    else {\n      iVar3 = *piVar22;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar22 = iVar3;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar32)();\n    pcVar32 = *(code **)(pcVar4 + 0xda4fc);\n    *piVar31 = iVar3;\n    (*pcVar32)(0,iVar3);\n    iVar3 = *piVar22;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }\n  }" (if "if") (parenthesized_expression "(iVar11 == -1)" (( "(") (binary_expression "iVar11 == -1" (identifier "iVar11") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5);\n    sys_error(uVar19);\n    (**(code **)(pcVar4 + 0xda620))(1);\nLAB_0006c3c8:\n    uVar19 = *puVar13;\nLAB_0006be24:\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);\n    iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19);\n    *piVar22 = iVar3;\n    if (iVar3 != -1) goto LAB_0006bf80;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 == 0) goto LAB_0006bf08;\nLAB_0006be5c:\n    iVar3 = *piVar22;\n  }" ({ "{") (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5)" (identifier "uVar19") (= "=") (call_expression "(**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda6fc))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda6fc)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda6fc)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda6fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda6fc)" (( "(") (binary_expression "pcVar4 + 0xda6fc" (identifier "pcVar4") (+ "+") (number_literal "0xda6fc")) () ")"))))) () ")")) (argument_list "(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(pcVar4 + 0xd87dc) + 0x7dec" (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd87dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd87dc)" (( "(") (binary_expression "pcVar4 + 0xd87dc" (identifier "pcVar4") (+ "+") (number_literal "0xd87dc")) () ")")))) (+ "+") (number_literal "0x7dec")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "sys_error(uVar19);" (call_expression "sys_error(uVar19)" (identifier "sys_error") (argument_list "(uVar19)" (( "(") (identifier "uVar19") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar4 + 0xda620))(1);" (call_expression "(**(code **)(pcVar4 + 0xda620))(1)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda620))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda620)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda620)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda620)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda620)" (( "(") (binary_expression "pcVar4 + 0xda620" (identifier "pcVar4") (+ "+") (number_literal "0xda620")) () ")"))))) () ")")) (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (labeled_statement "LAB_0006c3c8:\n    uVar19 = *puVar13;" (statement_identifier "LAB_0006c3c8") (: ":") (expression_statement "uVar19 = *puVar13;" (assignment_expression "uVar19 = *puVar13" (identifier "uVar19") (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";"))) (labeled_statement "LAB_0006be24:\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);" (statement_identifier "LAB_0006be24") (: ":") (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19)" (identifier "uVar19") (= "=") (call_expression "(**(code **)(pcVar4 + 0xda58c))(uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda58c))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda58c)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda58c)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda58c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda58c)" (( "(") (binary_expression "pcVar4 + 0xda58c" (identifier "pcVar4") (+ "+") (number_literal "0xda58c")) () ")"))))) () ")")) (argument_list "(uVar19)" (( "(") (identifier "uVar19") () ")")))) (; ";"))) (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19);" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar4 + 0xda780))(uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda780))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda780)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda780)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda780)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda780)" (( "(") (binary_expression "pcVar4 + 0xda780" (identifier "pcVar4") (+ "+") (number_literal "0xda780")) () ")"))))) () ")")) (argument_list "(uVar19)" (( "(") (identifier "uVar19") () ")")))) (; ";")) (expression_statement "*piVar22 = iVar3;" (assignment_expression "*piVar22 = iVar3" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar3 != -1) goto LAB_0006bf80;" (if "if") (parenthesized_expression "(iVar3 != -1)" (( "(") (binary_expression "iVar3 != -1" (identifier "iVar3") (!= "!=") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0006bf80;" (goto "goto") (statement_identifier "LAB_0006bf80") (; ";"))) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda670);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda670)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar4 + 0xda670)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda670)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda670)" (( "(") (binary_expression "pcVar4 + 0xda670" (identifier "pcVar4") (+ "+") (number_literal "0xda670")) () ")"))))) (; ";")) (if_statement "if (*piVar31 == 0) goto LAB_0006bf08;" (if "if") (parenthesized_expression "(*piVar31 == 0)" (( "(") (binary_expression "*piVar31 == 0" (pointer_expression "*piVar31" (* "*") (identifier "piVar31")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006bf08;" (goto "goto") (statement_identifier "LAB_0006bf08") (; ";"))) (labeled_statement "LAB_0006be5c:\n    iVar3 = *piVar22;" (statement_identifier "LAB_0006be5c") (: ":") (expression_statement "iVar3 = *piVar22;" (assignment_expression "iVar3 = *piVar22" (identifier "iVar3") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";"))) (} "}")) (else_clause "else {\n    piVar29 = *(int **)(pcVar4 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);\n    uVar19 = *puVar13;\n    if (iVar3 == 0 && *piVar29 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar22 = *(int **)(pcVar4 + 0xd93fc);\n    iVar3 = **(int **)(pcVar4 + 0xd87e4);\n    *piVar22 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }\n    else {\n      iVar3 = *piVar22;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar22 = iVar3;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar32)();\n    pcVar32 = *(code **)(pcVar4 + 0xda4fc);\n    *piVar31 = iVar3;\n    (*pcVar32)(0,iVar3);\n    iVar3 = *piVar22;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }\n  }" (else "else") (compound_statement "{\n    piVar29 = *(int **)(pcVar4 + 0xd87f4);\n    puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);\n    uVar19 = *puVar13;\n    if (iVar3 == 0 && *piVar29 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }\n    piVar22 = *(int **)(pcVar4 + 0xd93fc);\n    iVar3 = **(int **)(pcVar4 + 0xd87e4);\n    *piVar22 = -1;\n    if (iVar3 == 0) goto LAB_0006be24;\n    uVar19 = (**(code **)(pcVar4 + 0xda58c))();\n    iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);\n    if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }\n    else {\n      iVar3 = *piVar22;\n    }\n    if (iVar3 == -1) goto LAB_0006c3c8;\nLAB_0006bf80:\n    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);\n    *piVar22 = iVar3;\n    pcVar32 = *(code **)(pcVar4 + 0xda670);\n    if (*piVar31 != 0) goto LAB_0006be5c;\nLAB_0006bf08:\n    iVar3 = (*pcVar32)();\n    pcVar32 = *(code **)(pcVar4 + 0xda4fc);\n    *piVar31 = iVar3;\n    (*pcVar32)(0,iVar3);\n    iVar3 = *piVar22;\n    if (iVar3 != -1) {\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }\n  }" ({ "{") (expression_statement "piVar29 = *(int **)(pcVar4 + 0xd87f4);" (assignment_expression "piVar29 = *(int **)(pcVar4 + 0xd87f4)" (identifier "piVar29") (= "=") (pointer_expression "*(int **)(pcVar4 + 0xd87f4)" (* "*") (cast_expression "(int **)(pcVar4 + 0xd87f4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd87f4)" (( "(") (binary_expression "pcVar4 + 0xd87f4" (identifier "pcVar4") (+ "+") (number_literal "0xd87f4")) () ")"))))) (; ";")) (expression_statement "puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);" (assignment_expression "puVar13 = *(undefined4 **)(pcVar4 + 0xda77c)" (identifier "puVar13") (= "=") (pointer_expression "*(undefined4 **)(pcVar4 + 0xda77c)" (* "*") (cast_expression "(undefined4 **)(pcVar4 + 0xda77c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda77c)" (( "(") (binary_expression "pcVar4 + 0xda77c" (identifier "pcVar4") (+ "+") (number_literal "0xda77c")) () ")"))))) (; ";")) (expression_statement "uVar19 = *puVar13;" (assignment_expression "uVar19 = *puVar13" (identifier "uVar19") (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (if_statement "if (iVar3 == 0 && *piVar29 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0 && *piVar29 == 0)" (( "(") (binary_expression "iVar3 == 0 && *piVar29 == 0" (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) (&& "&&") (binary_expression "*piVar29 == 0" (pointer_expression "*piVar29" (* "*") (identifier "piVar29")) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);\n      pcVar32 = *(code **)(pcVar4 + 0xda58c);\n      piVar22 = *(int **)(pcVar4 + 0xd93fc);\n      *piVar23 = 0;\n      *puVar27 = 0xffffffff;\n      iVar3 = (*pcVar32)(uVar19);\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      *piVar22 = iVar3;\n      iVar3 = (*pcVar32)(iVar3);\n      iVar11 = *piVar31;\n      **(int **)(pcVar4 + 0xd9434) = iVar3;\n      goto LAB_0006bff4;\n    }" ({ "{") (expression_statement "piVar23 = *(int **)(pcVar4 + 0xd8b0c);" (assignment_expression "piVar23 = *(int **)(pcVar4 + 0xd8b0c)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(pcVar4 + 0xd8b0c)" (* "*") (cast_expression "(int **)(pcVar4 + 0xd8b0c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd8b0c)" (( "(") (binary_expression "pcVar4 + 0xd8b0c" (identifier "pcVar4") (+ "+") (number_literal "0xd8b0c")) () ")"))))) (; ";")) (expression_statement "puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);" (assignment_expression "puVar27 = *(undefined4 **)(pcVar4 + 0xd9070)" (identifier "puVar27") (= "=") (pointer_expression "*(undefined4 **)(pcVar4 + 0xd9070)" (* "*") (cast_expression "(undefined4 **)(pcVar4 + 0xd9070)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd9070)" (( "(") (binary_expression "pcVar4 + 0xd9070" (identifier "pcVar4") (+ "+") (number_literal "0xd9070")) () ")"))))) (; ";")) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda58c);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda58c)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar4 + 0xda58c)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda58c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda58c)" (( "(") (binary_expression "pcVar4 + 0xda58c" (identifier "pcVar4") (+ "+") (number_literal "0xda58c")) () ")"))))) (; ";")) (expression_statement "piVar22 = *(int **)(pcVar4 + 0xd93fc);" (assignment_expression "piVar22 = *(int **)(pcVar4 + 0xd93fc)" (identifier "piVar22") (= "=") (pointer_expression "*(int **)(pcVar4 + 0xd93fc)" (* "*") (cast_expression "(int **)(pcVar4 + 0xd93fc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd93fc)" (( "(") (binary_expression "pcVar4 + 0xd93fc" (identifier "pcVar4") (+ "+") (number_literal "0xd93fc")) () ")"))))) (; ";")) (expression_statement "*piVar23 = 0;" (assignment_expression "*piVar23 = 0" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar27 = 0xffffffff;" (assignment_expression "*puVar27 = 0xffffffff" (pointer_expression "*puVar27" (* "*") (identifier "puVar27")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "iVar3 = (*pcVar32)(uVar19);" (assignment_expression "iVar3 = (*pcVar32)(uVar19)" (identifier "iVar3") (= "=") (call_expression "(*pcVar32)(uVar19)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(uVar19)" (( "(") (identifier "uVar19") () ")")))) (; ";")) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda598);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda598)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar4 + 0xda598)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda598)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda598)" (( "(") (binary_expression "pcVar4 + 0xda598" (identifier "pcVar4") (+ "+") (number_literal "0xda598")) () ")"))))) (; ";")) (expression_statement "*piVar22 = iVar3;" (assignment_expression "*piVar22 = iVar3" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "iVar3 = (*pcVar32)(iVar3);" (assignment_expression "iVar3 = (*pcVar32)(iVar3)" (identifier "iVar3") (= "=") (call_expression "(*pcVar32)(iVar3)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "iVar11 = *piVar31;" (assignment_expression "iVar11 = *piVar31" (identifier "iVar11") (= "=") (pointer_expression "*piVar31" (* "*") (identifier "piVar31"))) (; ";")) (expression_statement "**(int **)(pcVar4 + 0xd9434) = iVar3;" (assignment_expression "**(int **)(pcVar4 + 0xd9434) = iVar3" (pointer_expression "**(int **)(pcVar4 + 0xd9434)" (* "*") (pointer_expression "*(int **)(pcVar4 + 0xd9434)" (* "*") (cast_expression "(int **)(pcVar4 + 0xd9434)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd9434)" (( "(") (binary_expression "pcVar4 + 0xd9434" (identifier "pcVar4") (+ "+") (number_literal "0xd9434")) () ")"))))) (= "=") (identifier "iVar3")) (; ";")) (goto_statement "goto LAB_0006bff4;" (goto "goto") (statement_identifier "LAB_0006bff4") (; ";")) (} "}"))) (expression_statement "piVar22 = *(int **)(pcVar4 + 0xd93fc);" (assignment_expression "piVar22 = *(int **)(pcVar4 + 0xd93fc)" (identifier "piVar22") (= "=") (pointer_expression "*(int **)(pcVar4 + 0xd93fc)" (* "*") (cast_expression "(int **)(pcVar4 + 0xd93fc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd93fc)" (( "(") (binary_expression "pcVar4 + 0xd93fc" (identifier "pcVar4") (+ "+") (number_literal "0xd93fc")) () ")"))))) (; ";")) (expression_statement "iVar3 = **(int **)(pcVar4 + 0xd87e4);" (assignment_expression "iVar3 = **(int **)(pcVar4 + 0xd87e4)" (identifier "iVar3") (= "=") (pointer_expression "**(int **)(pcVar4 + 0xd87e4)" (* "*") (pointer_expression "*(int **)(pcVar4 + 0xd87e4)" (* "*") (cast_expression "(int **)(pcVar4 + 0xd87e4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd87e4)" (( "(") (binary_expression "pcVar4 + 0xd87e4" (identifier "pcVar4") (+ "+") (number_literal "0xd87e4")) () ")")))))) (; ";")) (expression_statement "*piVar22 = -1;" (assignment_expression "*piVar22 = -1" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (= "=") (number_literal "-1")) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_0006be24;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006be24;" (goto "goto") (statement_identifier "LAB_0006be24") (; ";"))) (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda58c))();" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda58c))()" (identifier "uVar19") (= "=") (call_expression "(**(code **)(pcVar4 + 0xda58c))()" (parenthesized_expression "(**(code **)(pcVar4 + 0xda58c))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda58c)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda58c)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda58c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda58c)" (( "(") (binary_expression "pcVar4 + 0xda58c" (identifier "pcVar4") (+ "+") (number_literal "0xda58c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar4 + 0xda4b0))(uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda4b0))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda4b0)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda4b0)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda4b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda4b0)" (( "(") (binary_expression "pcVar4 + 0xda4b0" (identifier "pcVar4") (+ "+") (number_literal "0xda4b0")) () ")"))))) () ")")) (argument_list "(uVar19)" (( "(") (identifier "uVar19") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }\n    else {\n      iVar3 = *piVar22;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);\n      *piVar22 = iVar3;\n    }" ({ "{") (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda5dc))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda5dc)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda5dc)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda5dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda5dc)" (( "(") (binary_expression "pcVar4 + 0xda5dc" (identifier "pcVar4") (+ "+") (number_literal "0xda5dc")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82)" (( "(") (binary_expression "*(int *)(pcVar4 + 0xd87dc) + 0x62c0" (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd87dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd87dc)" (( "(") (binary_expression "pcVar4 + 0xd87dc" (identifier "pcVar4") (+ "+") (number_literal "0xd87dc")) () ")")))) (+ "+") (number_literal "0x62c0")) (, ",") (number_literal "0x82") () ")")))) (; ";")) (expression_statement "*piVar22 = iVar3;" (assignment_expression "*piVar22 = iVar3" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (= "=") (identifier "iVar3")) (; ";")) (} "}")) (else_clause "else {\n      iVar3 = *piVar22;\n    }" (else "else") (compound_statement "{\n      iVar3 = *piVar22;\n    }" ({ "{") (expression_statement "iVar3 = *piVar22;" (assignment_expression "iVar3 = *piVar22" (identifier "iVar3") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (} "}")))) (if_statement "if (iVar3 == -1) goto LAB_0006c3c8;" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0006c3c8;" (goto "goto") (statement_identifier "LAB_0006c3c8") (; ";"))) (labeled_statement "LAB_0006bf80:\n    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);" (statement_identifier "LAB_0006bf80") (: ":") (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff)" (parenthesized_expression "(**(code **)(pcVar4 + 0xd8a0c))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xd8a0c)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xd8a0c)" (* "*") (cast_expression "(code **)(pcVar4 + 0xd8a0c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd8a0c)" (( "(") (binary_expression "pcVar4 + 0xd8a0c" (identifier "pcVar4") (+ "+") (number_literal "0xd8a0c")) () ")"))))) () ")")) (argument_list "(iVar3,1,0xffffffff)" (( "(") (identifier "iVar3") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") () ")")))) (; ";"))) (expression_statement "*piVar22 = iVar3;" (assignment_expression "*piVar22 = iVar3" (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda670);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda670)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar4 + 0xda670)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda670)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda670)" (( "(") (binary_expression "pcVar4 + 0xda670" (identifier "pcVar4") (+ "+") (number_literal "0xda670")) () ")"))))) (; ";")) (if_statement "if (*piVar31 != 0) goto LAB_0006be5c;" (if "if") (parenthesized_expression "(*piVar31 != 0)" (( "(") (binary_expression "*piVar31 != 0" (pointer_expression "*piVar31" (* "*") (identifier "piVar31")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006be5c;" (goto "goto") (statement_identifier "LAB_0006be5c") (; ";"))) (labeled_statement "LAB_0006bf08:\n    iVar3 = (*pcVar32)();" (statement_identifier "LAB_0006bf08") (: ":") (expression_statement "iVar3 = (*pcVar32)();" (assignment_expression "iVar3 = (*pcVar32)()" (identifier "iVar3") (= "=") (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda4fc);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda4fc)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar4 + 0xda4fc)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda4fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda4fc)" (( "(") (binary_expression "pcVar4 + 0xda4fc" (identifier "pcVar4") (+ "+") (number_literal "0xda4fc")) () ")"))))) (; ";")) (expression_statement "*piVar31 = iVar3;" (assignment_expression "*piVar31 = iVar3" (pointer_expression "*piVar31" (* "*") (identifier "piVar31")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "(*pcVar32)(0,iVar3);" (call_expression "(*pcVar32)(0,iVar3)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(0,iVar3)" (( "(") (number_literal "0") (, ",") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "iVar3 = *piVar22;" (assignment_expression "iVar3 = *piVar22" (identifier "iVar3") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (if_statement "if (iVar3 != -1) {\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }" (if "if") (parenthesized_expression "(iVar3 != -1)" (( "(") (binary_expression "iVar3 != -1" (identifier "iVar3") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);\n      goto LAB_0006be5c;\n    }" ({ "{") (expression_statement "(**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);" (call_expression "(**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda73c))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda73c)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda73c)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda73c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda73c)" (( "(") (binary_expression "pcVar4 + 0xda73c" (identifier "pcVar4") (+ "+") (number_literal "0xda73c")) () ")"))))) () ")")) (argument_list "(iVar3,*piVar31)" (( "(") (identifier "iVar3") (, ",") (pointer_expression "*piVar31" (* "*") (identifier "piVar31")) () ")"))) (; ";")) (goto_statement "goto LAB_0006be5c;" (goto "goto") (statement_identifier "LAB_0006be5c") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar11 = 0x12;" (assignment_expression "iVar11 = 0x12" (identifier "iVar11") (= "=") (number_literal "0x12")) (; ";")) (expression_statement "piVar25 = *(int **)(pcVar4 + 0xd9434);" (assignment_expression "piVar25 = *(int **)(pcVar4 + 0xd9434)" (identifier "piVar25") (= "=") (pointer_expression "*(int **)(pcVar4 + 0xd9434)" (* "*") (cast_expression "(int **)(pcVar4 + 0xd9434)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd9434)" (( "(") (binary_expression "pcVar4 + 0xd9434" (identifier "pcVar4") (+ "+") (number_literal "0xd9434")) () ")"))))) (; ";")) (expression_statement "piVar23 = *(int **)(pcVar4 + 0xd8a98);" (assignment_expression "piVar23 = *(int **)(pcVar4 + 0xd8a98)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(pcVar4 + 0xd8a98)" (* "*") (cast_expression "(int **)(pcVar4 + 0xd8a98)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd8a98)" (( "(") (binary_expression "pcVar4 + 0xd8a98" (identifier "pcVar4") (+ "+") (number_literal "0xd8a98")) () ")"))))) (; ";")) (while_statement "while( true ) {\n    iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3);\n    *piVar25 = iVar3;\n    if (iVar3 == -1) break;\n    if (*piVar31 == iVar3) {\n      iVar8 = -1;\n      goto LAB_0006c118;\n    }\n    pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    if (*piVar23 != 0) {\n      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);\n      pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    }\n    iVar11 = iVar11 + -1;\n    uVar19 = (*pcVar32)(0x1a,0);\n    (**(code **)(pcVar4 + 0xda61c))(0,0x1a);\n    (**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19);\n    if (iVar11 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);\n      sys_error(uVar19);\n      iVar3 = *piVar25;\n      iVar11 = *piVar31;\n      *piVar23 = 0;\n      **(int **)(pcVar4 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }\n    iVar3 = *piVar22;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3);\n    *piVar25 = iVar3;\n    if (iVar3 == -1) break;\n    if (*piVar31 == iVar3) {\n      iVar8 = -1;\n      goto LAB_0006c118;\n    }\n    pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    if (*piVar23 != 0) {\n      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);\n      pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    }\n    iVar11 = iVar11 + -1;\n    uVar19 = (*pcVar32)(0x1a,0);\n    (**(code **)(pcVar4 + 0xda61c))(0,0x1a);\n    (**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19);\n    if (iVar11 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);\n      sys_error(uVar19);\n      iVar3 = *piVar25;\n      iVar11 = *piVar31;\n      *piVar23 = 0;\n      **(int **)(pcVar4 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }\n    iVar3 = *piVar22;\n  }" ({ "{") (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3);" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar4 + 0xda598))(iVar3)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda598))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda598)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda598)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda598)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda598)" (( "(") (binary_expression "pcVar4 + 0xda598" (identifier "pcVar4") (+ "+") (number_literal "0xda598")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "*piVar25 = iVar3;" (assignment_expression "*piVar25 = iVar3" (pointer_expression "*piVar25" (* "*") (identifier "piVar25")) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar3 == -1) break;" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (*piVar31 == iVar3) {\n      iVar8 = -1;\n      goto LAB_0006c118;\n    }" (if "if") (parenthesized_expression "(*piVar31 == iVar3)" (( "(") (binary_expression "*piVar31 == iVar3" (pointer_expression "*piVar31" (* "*") (identifier "piVar31")) (== "==") (identifier "iVar3")) () ")")) (compound_statement "{\n      iVar8 = -1;\n      goto LAB_0006c118;\n    }" ({ "{") (expression_statement "iVar8 = -1;" (assignment_expression "iVar8 = -1" (identifier "iVar8") (= "=") (number_literal "-1")) (; ";")) (goto_statement "goto LAB_0006c118;" (goto "goto") (statement_identifier "LAB_0006c118") (; ";")) (} "}"))) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xd8aac);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xd8aac)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar4 + 0xd8aac)" (* "*") (cast_expression "(code **)(pcVar4 + 0xd8aac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd8aac)" (( "(") (binary_expression "pcVar4 + 0xd8aac" (identifier "pcVar4") (+ "+") (number_literal "0xd8aac")) () ")"))))) (; ";")) (if_statement "if (*piVar23 != 0) {\n      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);\n      pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    }" (if "if") (parenthesized_expression "(*piVar23 != 0)" (( "(") (binary_expression "*piVar23 != 0" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);\n      pcVar32 = *(code **)(pcVar4 + 0xd8aac);\n    }" ({ "{") (expression_statement "(**(code **)(pcVar4 + 0xd8a9c))(*piVar23);" (call_expression "(**(code **)(pcVar4 + 0xd8a9c))(*piVar23)" (parenthesized_expression "(**(code **)(pcVar4 + 0xd8a9c))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xd8a9c)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xd8a9c)" (* "*") (cast_expression "(code **)(pcVar4 + 0xd8a9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd8a9c)" (( "(") (binary_expression "pcVar4 + 0xd8a9c" (identifier "pcVar4") (+ "+") (number_literal "0xd8a9c")) () ")"))))) () ")")) (argument_list "(*piVar23)" (( "(") (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) () ")"))) (; ";")) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xd8aac);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xd8aac)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar4 + 0xd8aac)" (* "*") (cast_expression "(code **)(pcVar4 + 0xd8aac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd8aac)" (( "(") (binary_expression "pcVar4 + 0xd8aac" (identifier "pcVar4") (+ "+") (number_literal "0xd8aac")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + -1" (identifier "iVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar19 = (*pcVar32)(0x1a,0);" (assignment_expression "uVar19 = (*pcVar32)(0x1a,0)" (identifier "uVar19") (= "=") (call_expression "(*pcVar32)(0x1a,0)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(0x1a,0)" (( "(") (number_literal "0x1a") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar4 + 0xda61c))(0,0x1a);" (call_expression "(**(code **)(pcVar4 + 0xda61c))(0,0x1a)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda61c))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda61c)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda61c)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda61c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda61c)" (( "(") (binary_expression "pcVar4 + 0xda61c" (identifier "pcVar4") (+ "+") (number_literal "0xda61c")) () ")"))))) () ")")) (argument_list "(0,0x1a)" (( "(") (number_literal "0") (, ",") (number_literal "0x1a") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19);" (call_expression "(**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19)" (parenthesized_expression "(**(code **)(pcVar4 + 0xd8aac))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xd8aac)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xd8aac)" (* "*") (cast_expression "(code **)(pcVar4 + 0xd8aac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd8aac)" (( "(") (binary_expression "pcVar4 + 0xd8aac" (identifier "pcVar4") (+ "+") (number_literal "0xd8aac")) () ")"))))) () ")")) (argument_list "(0x1a,uVar19)" (( "(") (number_literal "0x1a") (, ",") (identifier "uVar19") () ")"))) (; ";")) (if_statement "if (iVar11 == 0) {\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);\n      sys_error(uVar19);\n      iVar3 = *piVar25;\n      iVar11 = *piVar31;\n      *piVar23 = 0;\n      **(int **)(pcVar4 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);\n      sys_error(uVar19);\n      iVar3 = *piVar25;\n      iVar11 = *piVar31;\n      *piVar23 = 0;\n      **(int **)(pcVar4 + 0xd9070) = iVar3;\n      goto LAB_0006bff4;\n    }" ({ "{") (expression_statement "piVar23 = *(int **)(pcVar4 + 0xd8b0c);" (assignment_expression "piVar23 = *(int **)(pcVar4 + 0xd8b0c)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(pcVar4 + 0xd8b0c)" (* "*") (cast_expression "(int **)(pcVar4 + 0xd8b0c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd8b0c)" (( "(") (binary_expression "pcVar4 + 0xd8b0c" (identifier "pcVar4") (+ "+") (number_literal "0xd8b0c")) () ")"))))) (; ";")) (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5)" (identifier "uVar19") (= "=") (call_expression "(**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda6fc))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda6fc)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda6fc)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda6fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda6fc)" (( "(") (binary_expression "pcVar4 + 0xda6fc" (identifier "pcVar4") (+ "+") (number_literal "0xda6fc")) () ")"))))) () ")")) (argument_list "(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(pcVar4 + 0xd87dc) + 0x7e14" (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd87dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd87dc)" (( "(") (binary_expression "pcVar4 + 0xd87dc" (identifier "pcVar4") (+ "+") (number_literal "0xd87dc")) () ")")))) (+ "+") (number_literal "0x7e14")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "sys_error(uVar19);" (call_expression "sys_error(uVar19)" (identifier "sys_error") (argument_list "(uVar19)" (( "(") (identifier "uVar19") () ")"))) (; ";")) (expression_statement "iVar3 = *piVar25;" (assignment_expression "iVar3 = *piVar25" (identifier "iVar3") (= "=") (pointer_expression "*piVar25" (* "*") (identifier "piVar25"))) (; ";")) (expression_statement "iVar11 = *piVar31;" (assignment_expression "iVar11 = *piVar31" (identifier "iVar11") (= "=") (pointer_expression "*piVar31" (* "*") (identifier "piVar31"))) (; ";")) (expression_statement "*piVar23 = 0;" (assignment_expression "*piVar23 = 0" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (= "=") (number_literal "0")) (; ";")) (expression_statement "**(int **)(pcVar4 + 0xd9070) = iVar3;" (assignment_expression "**(int **)(pcVar4 + 0xd9070) = iVar3" (pointer_expression "**(int **)(pcVar4 + 0xd9070)" (* "*") (pointer_expression "*(int **)(pcVar4 + 0xd9070)" (* "*") (cast_expression "(int **)(pcVar4 + 0xd9070)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd9070)" (( "(") (binary_expression "pcVar4 + 0xd9070" (identifier "pcVar4") (+ "+") (number_literal "0xd9070")) () ")"))))) (= "=") (identifier "iVar3")) (; ";")) (goto_statement "goto LAB_0006bff4;" (goto "goto") (statement_identifier "LAB_0006bff4") (; ";")) (} "}"))) (expression_statement "iVar3 = *piVar22;" (assignment_expression "iVar3 = *piVar22" (identifier "iVar3") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (} "}"))) (expression_statement "piVar23 = (int *)(**(code **)(pcVar4 + 0xda5a0))();" (assignment_expression "piVar23 = (int *)(**(code **)(pcVar4 + 0xda5a0))()" (identifier "piVar23") (= "=") (cast_expression "(int *)(**(code **)(pcVar4 + 0xda5a0))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar4 + 0xda5a0))()" (parenthesized_expression "(**(code **)(pcVar4 + 0xda5a0))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda5a0)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda5a0)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda5a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda5a0)" (( "(") (binary_expression "pcVar4 + 0xda5a0" (identifier "pcVar4") (+ "+") (number_literal "0xda5a0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar8 = *piVar23;" (assignment_expression "iVar8 = *piVar23" (identifier "iVar8") (= "=") (pointer_expression "*piVar23" (* "*") (identifier "piVar23"))) (; ";")) (expression_statement "iVar3 = *piVar31;" (assignment_expression "iVar3 = *piVar31" (identifier "iVar3") (= "=") (pointer_expression "*piVar31" (* "*") (identifier "piVar31"))) (; ";")) (labeled_statement "LAB_0006c118:\n  piVar28 = *(int **)(pcVar4 + 0xd9070);" (statement_identifier "LAB_0006c118") (: ":") (expression_statement "piVar28 = *(int **)(pcVar4 + 0xd9070);" (assignment_expression "piVar28 = *(int **)(pcVar4 + 0xd9070)" (identifier "piVar28") (= "=") (pointer_expression "*(int **)(pcVar4 + 0xd9070)" (* "*") (cast_expression "(int **)(pcVar4 + 0xd9070)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd9070)" (( "(") (binary_expression "pcVar4 + 0xd9070" (identifier "pcVar4") (+ "+") (number_literal "0xd9070")) () ")"))))) (; ";"))) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda670);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda670)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar4 + 0xda670)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda670)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda670)" (( "(") (binary_expression "pcVar4 + 0xda670" (identifier "pcVar4") (+ "+") (number_literal "0xda670")) () ")"))))) (; ";")) (expression_statement "*piVar28 = iVar3;" (assignment_expression "*piVar28 = iVar3" (pointer_expression "*piVar28" (* "*") (identifier "piVar28")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "iVar3 = (*pcVar32)();" (assignment_expression "iVar3 = (*pcVar32)()" (identifier "iVar3") (= "=") (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar11 = *piVar28;" (assignment_expression "iVar11 = *piVar28" (identifier "iVar11") (= "=") (pointer_expression "*piVar28" (* "*") (identifier "piVar28"))) (; ";")) (expression_statement "*piVar31 = iVar3;" (assignment_expression "*piVar31 = iVar3" (pointer_expression "*piVar31" (* "*") (identifier "piVar31")) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar3 == iVar11) {\nLAB_0006c138:\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    *piVar23 = 1;\nLAB_0006c144:\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\nLAB_0006c148:\n    iVar11 = (*pcVar32)(*piVar22);\n    if ((iVar11 == -1) || (*piVar31 != iVar11)) {\n      if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);\n      sys_error(uVar19,iVar11);\n      *piVar23 = 0;\n      goto LAB_0006c230;\n    }\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n    if (*piVar23 != 0) {\n      iVar3 = *piVar25;\n      goto LAB_0006bff4;\n    }\n  }\n  else {\n    iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    iVar11 = *piVar31;\n    iVar3 = *piVar28;\n    *piVar23 = 1;\n    if (iVar11 == iVar3) goto LAB_0006c144;\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\n    if (*piVar25 == iVar11) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar11,0);\n    if (iVar3 < 0) {\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }\n    else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n  }" (if "if") (parenthesized_expression "(iVar3 == iVar11)" (( "(") (binary_expression "iVar3 == iVar11" (identifier "iVar3") (== "==") (identifier "iVar11")) () ")")) (compound_statement "{\nLAB_0006c138:\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    *piVar23 = 1;\nLAB_0006c144:\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\nLAB_0006c148:\n    iVar11 = (*pcVar32)(*piVar22);\n    if ((iVar11 == -1) || (*piVar31 != iVar11)) {\n      if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);\n      sys_error(uVar19,iVar11);\n      *piVar23 = 0;\n      goto LAB_0006c230;\n    }\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n    if (*piVar23 != 0) {\n      iVar3 = *piVar25;\n      goto LAB_0006bff4;\n    }\n  }" ({ "{") (labeled_statement "LAB_0006c138:\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);" (statement_identifier "LAB_0006c138") (: ":") (expression_statement "piVar23 = *(int **)(pcVar4 + 0xd8b0c);" (assignment_expression "piVar23 = *(int **)(pcVar4 + 0xd8b0c)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(pcVar4 + 0xd8b0c)" (* "*") (cast_expression "(int **)(pcVar4 + 0xd8b0c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd8b0c)" (( "(") (binary_expression "pcVar4 + 0xd8b0c" (identifier "pcVar4") (+ "+") (number_literal "0xd8b0c")) () ")"))))) (; ";"))) (expression_statement "*piVar23 = 1;" (assignment_expression "*piVar23 = 1" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_0006c144:\n    pcVar32 = *(code **)(pcVar4 + 0xda598);" (statement_identifier "LAB_0006c144") (: ":") (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda598);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda598)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar4 + 0xda598)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda598)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda598)" (( "(") (binary_expression "pcVar4 + 0xda598" (identifier "pcVar4") (+ "+") (number_literal "0xda598")) () ")"))))) (; ";"))) (labeled_statement "LAB_0006c148:\n    iVar11 = (*pcVar32)(*piVar22);" (statement_identifier "LAB_0006c148") (: ":") (expression_statement "iVar11 = (*pcVar32)(*piVar22);" (assignment_expression "iVar11 = (*pcVar32)(*piVar22)" (identifier "iVar11") (= "=") (call_expression "(*pcVar32)(*piVar22)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(*piVar22)" (( "(") (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) () ")")))) (; ";"))) (if_statement "if ((iVar11 == -1) || (*piVar31 != iVar11)) {\n      if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);\n      sys_error(uVar19,iVar11);\n      *piVar23 = 0;\n      goto LAB_0006c230;\n    }" (if "if") (parenthesized_expression "((iVar11 == -1) || (*piVar31 != iVar11))" (( "(") (binary_expression "(iVar11 == -1) || (*piVar31 != iVar11)" (parenthesized_expression "(iVar11 == -1)" (( "(") (binary_expression "iVar11 == -1" (identifier "iVar11") (== "==") (number_literal "-1")) () ")")) (|| "||") (parenthesized_expression "(*piVar31 != iVar11)" (( "(") (binary_expression "*piVar31 != iVar11" (pointer_expression "*piVar31" (* "*") (identifier "piVar31")) (!= "!=") (identifier "iVar11")) () ")"))) () ")")) (compound_statement "{\n      if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);\n      sys_error(uVar19,iVar11);\n      *piVar23 = 0;\n      goto LAB_0006c230;\n    }" ({ "{") (if_statement "if (iVar8 != -1) {\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }" (if "if") (parenthesized_expression "(iVar8 != -1)" (( "(") (binary_expression "iVar8 != -1" (identifier "iVar8") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();\n        *piVar28 = iVar8;\n      }" ({ "{") (expression_statement "piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();" (assignment_expression "piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))()" (identifier "piVar28") (= "=") (cast_expression "(int *)(**(code **)(pcVar4 + 0xda5a0))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar4 + 0xda5a0))()" (parenthesized_expression "(**(code **)(pcVar4 + 0xda5a0))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda5a0)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda5a0)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda5a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda5a0)" (( "(") (binary_expression "pcVar4 + 0xda5a0" (identifier "pcVar4") (+ "+") (number_literal "0xda5a0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*piVar28 = iVar8;" (assignment_expression "*piVar28 = iVar8" (pointer_expression "*piVar28" (* "*") (identifier "piVar28")) (= "=") (identifier "iVar8")) (; ";")) (} "}"))) (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5)" (identifier "uVar19") (= "=") (call_expression "(**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda6fc))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda6fc)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda6fc)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda6fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda6fc)" (( "(") (binary_expression "pcVar4 + 0xda6fc" (identifier "pcVar4") (+ "+") (number_literal "0xda6fc")) () ")"))))) () ")")) (argument_list "(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(pcVar4 + 0xd87dc) + 0x7e6c" (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd87dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd87dc)" (( "(") (binary_expression "pcVar4 + 0xd87dc" (identifier "pcVar4") (+ "+") (number_literal "0xd87dc")) () ")")))) (+ "+") (number_literal "0x7e6c")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "sys_error(uVar19,iVar11);" (call_expression "sys_error(uVar19,iVar11)" (identifier "sys_error") (argument_list "(uVar19,iVar11)" (( "(") (identifier "uVar19") (, ",") (identifier "iVar11") () ")"))) (; ";")) (expression_statement "*piVar23 = 0;" (assignment_expression "*piVar23 = 0" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0006c230;" (goto "goto") (statement_identifier "LAB_0006c230") (; ";")) (} "}"))) (expression_statement "iVar3 = *(int *)(pcVar4 + 0xd87dc);" (assignment_expression "iVar3 = *(int *)(pcVar4 + 0xd87dc)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd87dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd87dc)" (( "(") (binary_expression "pcVar4 + 0xd87dc" (identifier "pcVar4") (+ "+") (number_literal "0xd87dc")) () ")"))))) (; ";")) (if_statement "if (*piVar23 != 0) {\n      iVar3 = *piVar25;\n      goto LAB_0006bff4;\n    }" (if "if") (parenthesized_expression "(*piVar23 != 0)" (( "(") (binary_expression "*piVar23 != 0" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = *piVar25;\n      goto LAB_0006bff4;\n    }" ({ "{") (expression_statement "iVar3 = *piVar25;" (assignment_expression "iVar3 = *piVar25" (identifier "iVar3") (= "=") (pointer_expression "*piVar25" (* "*") (identifier "piVar25"))) (; ";")) (goto_statement "goto LAB_0006bff4;" (goto "goto") (statement_identifier "LAB_0006bff4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    iVar11 = *piVar31;\n    iVar3 = *piVar28;\n    *piVar23 = 1;\n    if (iVar11 == iVar3) goto LAB_0006c144;\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\n    if (*piVar25 == iVar11) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar11,0);\n    if (iVar3 < 0) {\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }\n    else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n  }" (else "else") (compound_statement "{\n    iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);\n    if (iVar3 < 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }\n    piVar23 = *(int **)(pcVar4 + 0xd8b0c);\n    iVar11 = *piVar31;\n    iVar3 = *piVar28;\n    *piVar23 = 1;\n    if (iVar11 == iVar3) goto LAB_0006c144;\n    pcVar32 = *(code **)(pcVar4 + 0xda598);\n    if (*piVar25 == iVar11) goto LAB_0006c148;\n    iVar3 = give_terminal_to(iVar11,0);\n    if (iVar3 < 0) {\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }\n    else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }\nLAB_0006c230:\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);\n  }" ({ "{") (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar4 + 0xda4fc))(0,iVar3)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda4fc))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda4fc)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda4fc)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda4fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda4fc)" (( "(") (binary_expression "pcVar4 + 0xda4fc" (identifier "pcVar4") (+ "+") (number_literal "0xda4fc")) () ")"))))) () ")")) (argument_list "(0,iVar3)" (( "(") (number_literal "0") (, ",") (identifier "iVar3") () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);\n      sys_error(uVar19);\n      *piVar31 = *piVar28;\n      goto LAB_0006c138;\n    }" ({ "{") (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5)" (identifier "uVar19") (= "=") (call_expression "(**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda6fc))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda6fc)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda6fc)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda6fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda6fc)" (( "(") (binary_expression "pcVar4 + 0xda6fc" (identifier "pcVar4") (+ "+") (number_literal "0xda6fc")) () ")"))))) () ")")) (argument_list "(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(pcVar4 + 0xd87dc) + 0x7e4c" (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd87dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd87dc)" (( "(") (binary_expression "pcVar4 + 0xd87dc" (identifier "pcVar4") (+ "+") (number_literal "0xd87dc")) () ")")))) (+ "+") (number_literal "0x7e4c")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "sys_error(uVar19);" (call_expression "sys_error(uVar19)" (identifier "sys_error") (argument_list "(uVar19)" (( "(") (identifier "uVar19") () ")"))) (; ";")) (expression_statement "*piVar31 = *piVar28;" (assignment_expression "*piVar31 = *piVar28" (pointer_expression "*piVar31" (* "*") (identifier "piVar31")) (= "=") (pointer_expression "*piVar28" (* "*") (identifier "piVar28"))) (; ";")) (goto_statement "goto LAB_0006c138;" (goto "goto") (statement_identifier "LAB_0006c138") (; ";")) (} "}"))) (expression_statement "piVar23 = *(int **)(pcVar4 + 0xd8b0c);" (assignment_expression "piVar23 = *(int **)(pcVar4 + 0xd8b0c)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(pcVar4 + 0xd8b0c)" (* "*") (cast_expression "(int **)(pcVar4 + 0xd8b0c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd8b0c)" (( "(") (binary_expression "pcVar4 + 0xd8b0c" (identifier "pcVar4") (+ "+") (number_literal "0xd8b0c")) () ")"))))) (; ";")) (expression_statement "iVar11 = *piVar31;" (assignment_expression "iVar11 = *piVar31" (identifier "iVar11") (= "=") (pointer_expression "*piVar31" (* "*") (identifier "piVar31"))) (; ";")) (expression_statement "iVar3 = *piVar28;" (assignment_expression "iVar3 = *piVar28" (identifier "iVar3") (= "=") (pointer_expression "*piVar28" (* "*") (identifier "piVar28"))) (; ";")) (expression_statement "*piVar23 = 1;" (assignment_expression "*piVar23 = 1" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar11 == iVar3) goto LAB_0006c144;" (if "if") (parenthesized_expression "(iVar11 == iVar3)" (( "(") (binary_expression "iVar11 == iVar3" (identifier "iVar11") (== "==") (identifier "iVar3")) () ")")) (goto_statement "goto LAB_0006c144;" (goto "goto") (statement_identifier "LAB_0006c144") (; ";"))) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda598);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda598)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar4 + 0xda598)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda598)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda598)" (( "(") (binary_expression "pcVar4 + 0xda598" (identifier "pcVar4") (+ "+") (number_literal "0xda598")) () ")"))))) (; ";")) (if_statement "if (*piVar25 == iVar11) goto LAB_0006c148;" (if "if") (parenthesized_expression "(*piVar25 == iVar11)" (( "(") (binary_expression "*piVar25 == iVar11" (pointer_expression "*piVar25" (* "*") (identifier "piVar25")) (== "==") (identifier "iVar11")) () ")")) (goto_statement "goto LAB_0006c148;" (goto "goto") (statement_identifier "LAB_0006c148") (; ";"))) (expression_statement "iVar3 = give_terminal_to(iVar11,0);" (assignment_expression "iVar3 = give_terminal_to(iVar11,0)" (identifier "iVar3") (= "=") (call_expression "give_terminal_to(iVar11,0)" (identifier "give_terminal_to") (argument_list "(iVar11,0)" (( "(") (identifier "iVar11") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }\n    else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();\n      uVar19 = *puVar27;\n      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);\n      iVar3 = *(int *)(pcVar4 + 0xd87dc);\n      pcVar32 = *(code **)(pcVar4 + 0xda6fc);\n      *piVar31 = *piVar28;\n      *puVar27 = uVar19;\n      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);\n      sys_error(uVar19,*piVar31);\n      *piVar23 = 0;\n    }" ({ "{") (expression_statement "puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();" (assignment_expression "puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))()" (identifier "puVar27") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar4 + 0xda5a0))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar4 + 0xda5a0))()" (parenthesized_expression "(**(code **)(pcVar4 + 0xda5a0))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda5a0)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda5a0)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda5a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda5a0)" (( "(") (binary_expression "pcVar4 + 0xda5a0" (identifier "pcVar4") (+ "+") (number_literal "0xda5a0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar19 = *puVar27;" (assignment_expression "uVar19 = *puVar27" (identifier "uVar19") (= "=") (pointer_expression "*puVar27" (* "*") (identifier "puVar27"))) (; ";")) (expression_statement "(**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);" (call_expression "(**(code **)(pcVar4 + 0xda4fc))(0,*piVar28)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda4fc))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda4fc)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda4fc)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda4fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda4fc)" (( "(") (binary_expression "pcVar4 + 0xda4fc" (identifier "pcVar4") (+ "+") (number_literal "0xda4fc")) () ")"))))) () ")")) (argument_list "(0,*piVar28)" (( "(") (number_literal "0") (, ",") (pointer_expression "*piVar28" (* "*") (identifier "piVar28")) () ")"))) (; ";")) (expression_statement "iVar3 = *(int *)(pcVar4 + 0xd87dc);" (assignment_expression "iVar3 = *(int *)(pcVar4 + 0xd87dc)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd87dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd87dc)" (( "(") (binary_expression "pcVar4 + 0xd87dc" (identifier "pcVar4") (+ "+") (number_literal "0xd87dc")) () ")"))))) (; ";")) (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda6fc);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda6fc)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar4 + 0xda6fc)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda6fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda6fc)" (( "(") (binary_expression "pcVar4 + 0xda6fc" (identifier "pcVar4") (+ "+") (number_literal "0xda6fc")) () ")"))))) (; ";")) (expression_statement "*piVar31 = *piVar28;" (assignment_expression "*piVar31 = *piVar28" (pointer_expression "*piVar31" (* "*") (identifier "piVar31")) (= "=") (pointer_expression "*piVar28" (* "*") (identifier "piVar28"))) (; ";")) (expression_statement "*puVar27 = uVar19;" (assignment_expression "*puVar27 = uVar19" (pointer_expression "*puVar27" (* "*") (identifier "puVar27")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);" (assignment_expression "uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5)" (identifier "uVar19") (= "=") (call_expression "(*pcVar32)(0,iVar3 + 0x7e6c,5)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(0,iVar3 + 0x7e6c,5)" (( "(") (number_literal "0") (, ",") (binary_expression "iVar3 + 0x7e6c" (identifier "iVar3") (+ "+") (number_literal "0x7e6c")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "sys_error(uVar19,*piVar31);" (call_expression "sys_error(uVar19,*piVar31)" (identifier "sys_error") (argument_list "(uVar19,*piVar31)" (( "(") (identifier "uVar19") (, ",") (pointer_expression "*piVar31" (* "*") (identifier "piVar31")) () ")"))) (; ";")) (expression_statement "*piVar23 = 0;" (assignment_expression "*piVar23 = 0" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }" (else "else") (compound_statement "{\n      pcVar32 = *(code **)(pcVar4 + 0xda598);\n      if (*piVar23 != 0) goto LAB_0006c148;\n    }" ({ "{") (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda598);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda598)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar4 + 0xda598)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda598)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda598)" (( "(") (binary_expression "pcVar4 + 0xda598" (identifier "pcVar4") (+ "+") (number_literal "0xda598")) () ")"))))) (; ";")) (if_statement "if (*piVar23 != 0) goto LAB_0006c148;" (if "if") (parenthesized_expression "(*piVar23 != 0)" (( "(") (binary_expression "*piVar23 != 0" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006c148;" (goto "goto") (statement_identifier "LAB_0006c148") (; ";"))) (} "}")))) (labeled_statement "LAB_0006c230:\n    iVar3 = *(int *)(pcVar4 + 0xd87dc);" (statement_identifier "LAB_0006c230") (: ":") (expression_statement "iVar3 = *(int *)(pcVar4 + 0xd87dc);" (assignment_expression "iVar3 = *(int *)(pcVar4 + 0xd87dc)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pcVar4 + 0xd87dc)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd87dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd87dc)" (( "(") (binary_expression "pcVar4 + 0xd87dc" (identifier "pcVar4") (+ "+") (number_literal "0xd87dc")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,iVar3 + 0x7e94,5);" (assignment_expression "uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,iVar3 + 0x7e94,5)" (identifier "uVar19") (= "=") (call_expression "(**(code **)(pcVar4 + 0xda6fc))(0,iVar3 + 0x7e94,5)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda6fc))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda6fc)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda6fc)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda6fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda6fc)" (( "(") (binary_expression "pcVar4 + 0xda6fc" (identifier "pcVar4") (+ "+") (number_literal "0xda6fc")) () ")"))))) () ")")) (argument_list "(0,iVar3 + 0x7e94,5)" (( "(") (number_literal "0") (, ",") (binary_expression "iVar3 + 0x7e94" (identifier "iVar3") (+ "+") (number_literal "0x7e94")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "internal_error(uVar19);" (call_expression "internal_error(uVar19)" (identifier "internal_error") (argument_list "(uVar19)" (( "(") (identifier "uVar19") () ")"))) (; ";")) (expression_statement "iVar3 = *piVar25;" (assignment_expression "iVar3 = *piVar25" (identifier "iVar3") (= "=") (pointer_expression "*piVar25" (* "*") (identifier "piVar25"))) (; ";")) (expression_statement "iVar11 = *piVar31;" (assignment_expression "iVar11 = *piVar31" (identifier "iVar11") (= "=") (pointer_expression "*piVar31" (* "*") (identifier "piVar31"))) (; ";")) (labeled_statement "LAB_0006bff4:\n  pcVar32 = *(code **)(pcVar4 + 0xda58c);" (statement_identifier "LAB_0006bff4") (: ":") (expression_statement "pcVar32 = *(code **)(pcVar4 + 0xda58c);" (assignment_expression "pcVar32 = *(code **)(pcVar4 + 0xda58c)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar4 + 0xda58c)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda58c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda58c)" (( "(") (binary_expression "pcVar4 + 0xda58c" (identifier "pcVar4") (+ "+") (number_literal "0xda58c")) () ")"))))) (; ";"))) (expression_statement "uVar19 = *puVar13;" (assignment_expression "uVar19 = *puVar13" (identifier "uVar19") (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "**(uint **)(pcVar4 + 0xd8954) = (uint)(iVar11 != iVar3);" (assignment_expression "**(uint **)(pcVar4 + 0xd8954) = (uint)(iVar11 != iVar3)" (pointer_expression "**(uint **)(pcVar4 + 0xd8954)" (* "*") (pointer_expression "*(uint **)(pcVar4 + 0xd8954)" (* "*") (cast_expression "(uint **)(pcVar4 + 0xd8954)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd8954)" (( "(") (binary_expression "pcVar4 + 0xd8954" (identifier "pcVar4") (+ "+") (number_literal "0xd8954")) () ")"))))) (= "=") (call_expression "(uint)(iVar11 != iVar3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar11 != iVar3)" (( "(") (binary_expression "iVar11 != iVar3" (identifier "iVar11") (!= "!=") (identifier "iVar3")) () ")")))) (; ";")) (expression_statement "iVar3 = (*pcVar32)(uVar19);" (assignment_expression "iVar3 = (*pcVar32)(uVar19)" (identifier "iVar3") (= "=") (call_expression "(*pcVar32)(uVar19)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(uVar19)" (( "(") (identifier "uVar19") () ")")))) (; ";")) (if_statement "if (iVar3 != *piVar22) {\n    (**(code **)(pcVar4 + 0xda540))(*piVar22,2,1);\n  }" (if "if") (parenthesized_expression "(iVar3 != *piVar22)" (( "(") (binary_expression "iVar3 != *piVar22" (identifier "iVar3") (!= "!=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) () ")")) (compound_statement "{\n    (**(code **)(pcVar4 + 0xda540))(*piVar22,2,1);\n  }" ({ "{") (expression_statement "(**(code **)(pcVar4 + 0xda540))(*piVar22,2,1);" (call_expression "(**(code **)(pcVar4 + 0xda540))(*piVar22,2,1)" (parenthesized_expression "(**(code **)(pcVar4 + 0xda540))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xda540)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xda540)" (* "*") (cast_expression "(code **)(pcVar4 + 0xda540)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xda540)" (( "(") (binary_expression "pcVar4 + 0xda540" (identifier "pcVar4") (+ "+") (number_literal "0xda540")) () ")"))))) () ")")) (argument_list "(*piVar22,2,1)" (( "(") (pointer_expression "*piVar22" (* "*") (identifier "piVar22")) (, ",") (number_literal "2") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar4 + 0xd8aac))(0x12,*(int *)(pcVar4 + 0xd942c) + -0x6fbc);" (call_expression "(**(code **)(pcVar4 + 0xd8aac))(0x12,*(int *)(pcVar4 + 0xd942c) + -0x6fbc)" (parenthesized_expression "(**(code **)(pcVar4 + 0xd8aac))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xd8aac)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xd8aac)" (* "*") (cast_expression "(code **)(pcVar4 + 0xd8aac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd8aac)" (( "(") (binary_expression "pcVar4 + 0xd8aac" (identifier "pcVar4") (+ "+") (number_literal "0xd8aac")) () ")"))))) () ")")) (argument_list "(0x12,*(int *)(pcVar4 + 0xd942c) + -0x6fbc)" (( "(") (number_literal "0x12") (, ",") (binary_expression "*(int *)(pcVar4 + 0xd942c) + -0x6fbc" (pointer_expression "*(int *)(pcVar4 + 0xd942c)" (* "*") (cast_expression "(int *)(pcVar4 + 0xd942c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0xd942c)" (( "(") (binary_expression "pcVar4 + 0xd942c" (identifier "pcVar4") (+ "+") (number_literal "0xd942c")) () ")")))) (+ "+") (number_literal "-0x6fbc")) () ")"))) (; ";")) (expression_statement "uVar19 = 0x2b;" (assignment_expression "uVar19 = 0x2b" (identifier "uVar19") (= "=") (number_literal "0x2b")) (; ";")) (if_statement "if (*piVar23 != 0) {\n    uVar19 = 0x2d;\n  }" (if "if") (parenthesized_expression "(*piVar23 != 0)" (( "(") (binary_expression "*piVar23 != 0" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar19 = 0x2d;\n  }" ({ "{") (expression_statement "uVar19 = 0x2d;" (assignment_expression "uVar19 = 0x2d" (identifier "uVar19") (= "=") (number_literal "0x2d")) (; ";")) (} "}"))) (expression_statement "change_flag(0x6d,uVar19);" (call_expression "change_flag(0x6d,uVar19)" (identifier "change_flag") (argument_list "(0x6d,uVar19)" (( "(") (number_literal "0x6d") (, ",") (identifier "uVar19") () ")"))) (; ";")) (if_statement "if (*piVar29 != 0) {\n    get_tty_state();\n  }" (if "if") (parenthesized_expression "(*piVar29 != 0)" (( "(") (binary_expression "*piVar29 != 0" (pointer_expression "*piVar29" (* "*") (identifier "piVar29")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    get_tty_state();\n  }" ({ "{") (expression_statement "get_tty_state();" (call_expression "get_tty_state()" (identifier "get_tty_state") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar31 = *(int **)(pcVar4 + 0xd90bc);" (assignment_expression "piVar31 = *(int **)(pcVar4 + 0xd90bc)" (identifier "piVar31") (= "=") (pointer_expression "*(int **)(pcVar4 + 0xd90bc)" (* "*") (cast_expression "(int **)(pcVar4 + 0xd90bc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd90bc)" (( "(") (binary_expression "pcVar4 + 0xd90bc" (identifier "pcVar4") (+ "+") (number_literal "0xd90bc")) () ")"))))) (; ";")) (if_statement "if (-1 < *piVar31) {\n    return (undefined1 *)*piVar23;\n  }" (if "if") (parenthesized_expression "(-1 < *piVar31)" (( "(") (binary_expression "-1 < *piVar31" (number_literal "-1") (< "<") (pointer_expression "*piVar31" (* "*") (identifier "piVar31"))) () ")")) (compound_statement "{\n    return (undefined1 *)*piVar23;\n  }" ({ "{") (return_statement "return (undefined1 *)*piVar23;" (return "return") (cast_expression "(undefined1 *)*piVar23" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar23" (* "*") (identifier "piVar23"))) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(pcVar4 + 0xd93d8))();" (assignment_expression "iVar3 = (**(code **)(pcVar4 + 0xd93d8))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar4 + 0xd93d8))()" (parenthesized_expression "(**(code **)(pcVar4 + 0xd93d8))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0xd93d8)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0xd93d8)" (* "*") (cast_expression "(code **)(pcVar4 + 0xd93d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0xd93d8)" (( "(") (binary_expression "pcVar4 + 0xd93d8" (identifier "pcVar4") (+ "+") (number_literal "0xd93d8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n    iVar3 = 0x20;\n  }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    iVar3 = 0x20;\n  }" ({ "{") (expression_statement "iVar3 = 0x20;" (assignment_expression "iVar3 = 0x20" (identifier "iVar3") (= "=") (number_literal "0x20")) (; ";")) (} "}"))) (expression_statement "*piVar31 = iVar3;" (assignment_expression "*piVar31 = iVar3" (pointer_expression "*piVar31" (* "*") (identifier "piVar31")) (= "=") (identifier "iVar3")) (; ";")) (return_statement "return (undefined1 *)*piVar23;" (return "return") (cast_expression "(undefined1 *)*piVar23" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar23" (* "*") (identifier "piVar23"))) (; ";")) (labeled_statement "LAB_0006b3b8:\n  puVar6 = (undefined1 *)job_exit_status(piVar31);" (statement_identifier "LAB_0006b3b8") (: ":") (expression_statement "puVar6 = (undefined1 *)job_exit_status(piVar31);" (assignment_expression "puVar6 = (undefined1 *)job_exit_status(piVar31)" (identifier "puVar6") (= "=") (cast_expression "(undefined1 *)job_exit_status(piVar31)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "job_exit_status(piVar31)" (identifier "job_exit_status") (argument_list "(piVar31)" (( "(") (identifier "piVar31") () ")"))))) (; ";"))) (if_statement "if (((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0)) {\n    FUN_00066b6c(piVar31,0);\n  }" (if "if") (parenthesized_expression "(((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0))" (( "(") (binary_expression "((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)) &&\n     (*(int *)(iVar3 + -0x705c) == 0)" (parenthesized_expression "((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0))" (( "(") (binary_expression "(piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)" (parenthesized_expression "(piVar17 == (int *)0x0)" (( "(") (binary_expression "piVar17 == (int *)0x0" (identifier "piVar17") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)" (( "(") (comma_expression "FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0" (call_expression "FUN_00065dcc()" (identifier "FUN_00065dcc") (argument_list "()" (( "(") () ")"))) (, ",") (binary_expression "*(int *)(puVar5 + 0x18) != 0" (pointer_expression "*(int *)(puVar5 + 0x18)" (* "*") (cast_expression "(int *)(puVar5 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0x18)" (( "(") (binary_expression "puVar5 + 0x18" (identifier "puVar5") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar3 + -0x705c) == 0)" (( "(") (binary_expression "*(int *)(iVar3 + -0x705c) == 0" (pointer_expression "*(int *)(iVar3 + -0x705c)" (* "*") (cast_expression "(int *)(iVar3 + -0x705c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + -0x705c)" (( "(") (binary_expression "iVar3 + -0x705c" (identifier "iVar3") (+ "+") (number_literal "-0x705c")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    FUN_00066b6c(piVar31,0);\n  }" ({ "{") (expression_statement "FUN_00066b6c(piVar31,0);" (call_expression "FUN_00066b6c(piVar31,0)" (identifier "FUN_00066b6c") (argument_list "(piVar31,0)" (( "(") (identifier "piVar31") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puStack_2a0 + -0x737c))();" (call_expression "(**(code **)(puStack_2a0 + -0x737c))()" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x737c))" (( "(") (pointer_expression "**(code **)(puStack_2a0 + -0x737c)" (* "*") (pointer_expression "*(code **)(puStack_2a0 + -0x737c)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x737c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x737c)" (( "(") (binary_expression "puStack_2a0 + -0x737c" (identifier "puStack_2a0") (+ "+") (number_literal "-0x737c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);" (call_expression "(**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0)" (parenthesized_expression "(**(code **)(puStack_2a0 + -0x602c))" (( "(") (pointer_expression "**(code **)(puStack_2a0 + -0x602c)" (* "*") (pointer_expression "*(code **)(puStack_2a0 + -0x602c)" (* "*") (cast_expression "(code **)(puStack_2a0 + -0x602c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_2a0 + -0x602c)" (( "(") (binary_expression "puStack_2a0 + -0x602c" (identifier "puStack_2a0") (+ "+") (number_literal "-0x602c")) () ")"))))) () ")")) (argument_list "(3,puVar20,0)" (( "(") (number_literal "3") (, ",") (identifier "puVar20") (, ",") (number_literal "0") () ")"))) (; ";")) (goto_statement "goto LAB_0006b430;" (goto "goto") (statement_identifier "LAB_0006b430") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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: (primitive_type) 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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (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: (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: (identifier)) (declaration type: (type_identifier) 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: (primitive_type) 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: (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: (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: (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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (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: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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 (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 (number_literal) (identifier) (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: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (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: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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: (identifier) right: (number_literal))))))) (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)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (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)))) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))))) (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: (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 (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 (number_literal) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_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 (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 (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 (number_literal) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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)))) (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 (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 (number_literal) (identifier) (identifier)))) (goto_statement label: (statement_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: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (number_literal))) consequence: (compound_statement (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)))) (break_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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (number_literal))))))) (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))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (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 (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 (number_literal) (identifier) (identifier)))) (labeled_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: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (labeled_statement label: (statement_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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (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: (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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 (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (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)))))) (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 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: (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: (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)))) (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 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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (do_statement body: (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)))) (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (while_statement condition: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal) (identifier) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))) (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: (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))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (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 (pointer_expression argument: (identifier))))) (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: (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))))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (identifier))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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)))))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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)))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (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)))))) 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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (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)))))) 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))))))) consequence: (goto_statement label: (statement_identifier))) (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (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))))) 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 (number_literal) (identifier) (number_literal))))) condition: (parenthesized_expression (true))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_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: (pointer_expression argument: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (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))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (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)))) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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 (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))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (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: (identifier))))))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (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))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (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))))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (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: (identifier)) right: (identifier))))) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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)))))) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (identifier))))) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (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: (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: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (identifier)) right: (identifier))))))) (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)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (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) (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)) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (identifier))))) right: (number_literal))))) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (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: (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: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (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)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) 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: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (identifier) 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)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) alternative: (else_clause (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: (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: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (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)))))) right: (identifier))) (goto_statement label: (statement_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: (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: (pointer_expression argument: (identifier)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) 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) (pointer_expression argument: (identifier))))) (goto_statement label: (statement_identifier))))))) (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 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: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) 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 (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal) (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) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (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)))))) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (labeled_statement label: (statement_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: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_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: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (goto_statement label: (statement_identifier)))) (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))))))) (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: (pointer_expression argument: (identifier)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (goto_statement label: (statement_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: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (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)))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) 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 (pointer_expression argument: (identifier)) (number_literal) (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) (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: (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: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (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: (number_literal) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (call_expression function: (identifier) arguments: (argument_list)) 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)))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) 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))) (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)))) (goto_statement label: (statement_identifier)))))

undefined1 * MASKED(int param_1,uint param_2)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  code *pcVar4;
  undefined1 *puVar5;
  undefined1 *puVar6;
  undefined4 *puVar7;
  int iVar8;
  undefined4 *puVar9;
  undefined4 *puVar10;
  int iVar11;
  int iVar12;
  undefined4 *puVar13;
  undefined4 uVar14;
  int iVar15;
  undefined4 uVar16;
  int *piVar17;
  int iVar18;
  undefined4 uVar19;
  undefined1 *puVar20;
  undefined4 *puVar21;
  int *piVar22;
  int *piVar23;
  undefined4 *puVar24;
  int *piVar25;
  int iVar26;
  undefined4 *puVar27;
  int *piVar28;
  int *piVar29;
  undefined *puVar30;
  int *piVar31;
  code *pcVar32;
  undefined4 uStack_3e4;
  undefined1 auStack_3dc [128];
  undefined1 auStack_35c [128];
  int iStack_2dc;
  undefined1 *puStack_2d8;
  undefined1 *puStack_2d4;
  undefined1 *puStack_2d0;
  int *piStack_2cc;
  int *piStack_2c8;
  undefined4 *puStack_2c4;
  int *piStack_2c0;
  int iStack_2bc;
  int *piStack_2b8;
  code *pcStack_2b4;
  undefined *puStack_2a0;
  code *pcStack_294;
  undefined1 auStack_28c [128];
  undefined1 auStack_20c [128];
  int *piStack_18c;
  undefined1 *puStack_188;
  undefined1 *puStack_184;
  undefined1 *puStack_180;
  undefined4 uStack_17c;
  int *piStack_178;
  int iStack_174;
  int *piStack_170;
  int *piStack_16c;
  undefined *puStack_168;
  code *pcStack_164;
  undefined1 auStack_12c [128];
  undefined1 auStack_ac [128];
  int local_2c;
  
  puVar30 = PTR___stack_chk_guard_001464dc;
  piVar31 = (int *)PTR_jobs_00144e5c;
  puVar20 = auStack_12c;
  piVar29 = (int *)(param_1 * 4);
  local_2c = *(int *)PTR___stack_chk_guard_001464dc;
  (*(code *)PTR_sigemptyset_001462d4)(puVar20);
  (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);
  (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);
  (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);
  if (*(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc) == 2) {
    uVar19 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x7d78,5);
    internal_warning(uVar19,param_1 + 1);
  }
  puVar2 = PTR_js_00144e58;
  puVar1 = PTR_wait_for_00144d9c;
  piVar23 = (int *)0xffffffff;
  piVar25 = (int *)(param_2 & 2);
  iVar3 = FUN_00065a6c(param_1);
  piVar28 = *(int **)(iVar3 + 4);
  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);
  pcVar4 = (code *)(PTR_LAB_00144ff0 + 0x4e60);
  do {
    puVar5 = (undefined1 *)(*(code *)puVar1)(piVar28);
    if (((puVar5 == (undefined1 *)0xffffffff) &&
        (piVar17 = (int *)(*(code *)PTR___errno_location_0014633c)(), *piVar17 == 10)) &&
       (*(int *)(puVar2 + 0x18) != 0)) {
      (*pcVar4)();
    }
    if (piVar25 == (int *)0x0) {
      (*(code *)PTR_sigemptyset_001462d4)(puVar20);
      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);
      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);
      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);
      if (param_1 == -1) goto LAB_0006b0f4;
      goto LAB_0006b0d0;
    }
    (*(code *)PTR_sigemptyset_001462d4)();
    (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);
    (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);
    (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);
    if (param_1 == -1) {
      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);
      (*(code *)PTR_sigemptyset_001462d4)(puVar20);
      (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);
      (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);
      (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);
      goto LAB_0006b0f4;
    }
    if (*(int *)(*piVar31 + (int)piVar29) == 0) {
      (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);
      break;
    }
    iVar3 = *(int *)(*(int *)(*piVar31 + (int)piVar29) + 0xc);
    (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac);
  } while (iVar3 != 4);
  (*(code *)PTR_sigemptyset_001462d4)(puVar20);
  (*(code *)PTR_sigaddset_00146364)(puVar20,0x12);
  (*(code *)PTR_sigemptyset_001462d4)(auStack_ac);
  (*(code *)PTR_sigprocmask_00146514)(1,puVar20,auStack_ac);
LAB_0006b0d0:
  piVar29 = (int *)(*piVar31 + (int)piVar29);
  iVar3 = *piVar29;
  if ((iVar3 != 0) && (*(int *)(iVar3 + 0xc) == 4)) {
    *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;
  }
LAB_0006b0f4:
  (*(code *)PTR_sigprocmask_00146514)(3,auStack_ac,0);
  if (local_2c == *(int *)puVar30) {
    return puVar5;
  }
  pcVar4 = wait_for_any_job;
  puVar30 = PTR___stack_chk_fail_00146488;
  (*(code *)PTR___stack_chk_fail_00146488)();
  puStack_2a0 = puVar30 + 0xe1290;
  iVar3 = *(int *)(puVar30 + 0xd9ea4);
  puVar27 = *(undefined4 **)(puVar30 + 0xdb22c);
  puStack_168 = (undefined *)piVar31;
  uStack_17c = 0xffffffff;
  piStack_18c = (int *)*puVar27;
  puStack_188 = puVar20;
  puStack_184 = auStack_ac;
  puStack_180 = puVar5;
  piStack_178 = piVar25;
  iStack_174 = param_1;
  piStack_170 = piVar28;
  piStack_16c = piVar29;
  pcStack_164 = pcVar4;
  if (*(int *)(iVar3 + -0x705c) == 0) {
    puVar6 = auStack_28c;
    puVar5 = *(undefined1 **)(puVar30 + 0xd9ba8);
    puVar20 = auStack_20c;
    (**(code **)(puVar30 + 0xdb024))(puVar6);
    (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);
    (**(code **)(puStack_2a0 + -0x626c))(puVar20);
    (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);
    if (0 < (int)*(int **)(puVar5 + 0x18)) {
      piVar31 = (int *)0x0;
      piVar17 = (int *)**(int **)(puStack_2a0 + -0x76e4);
      piVar29 = piVar17;
      do {
        iVar11 = *piVar29;
        if (((iVar11 != 0) && (*(int *)(iVar11 + 0xc) == 4)) &&
           ((*(uint *)(iVar11 + 0x10) & 2) == 0)) goto LAB_0006b3b8;
        piVar31 = (int *)((int)piVar31 + 1);
        piVar29 = piVar29 + 1;
      } while (piVar31 != *(int **)(puVar5 + 0x18));
    }
    piVar25 = *(int **)(puStack_2a0 + -0x76e4);
    piVar23 = *(int **)(puStack_2a0 + -0x7d0c);
    (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);
    piVar31 = *(int **)(puStack_2a0 + -0x7550);
    piVar28 = *(int **)(puStack_2a0 + -0x7d04);
    pcStack_294 = (code *)(piVar31 + 0x1398);
    do {
      (**(code **)(puStack_2a0 + -0x626c))(puVar6);
      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);
      (**(code **)(puStack_2a0 + -0x626c))(puVar20);
      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);
      iVar11 = *(int *)(puVar5 + 0x18);
      if (iVar11 < 1) {
        pcVar4 = *(code **)(puStack_2a0 + -0x602c);
        if (iVar11 == 0) {
LAB_0006b680:
          (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);
          puVar6 = (undefined1 *)0xffffffff;
          goto LAB_0006b430;
        }
      }
      else {
        piVar29 = (int *)*piVar25;
        iVar8 = 0;
        while (((iVar12 = *piVar29, iVar12 == 0 || (*(int *)(iVar12 + 0xc) != 1)) ||
               ((*(uint *)(iVar12 + 0x10) & 1) != 0))) {
          iVar8 = iVar8 + 1;
          piVar29 = piVar29 + 1;
          if (iVar8 == iVar11) goto LAB_0006b680;
        }
        pcVar4 = *(code **)(puStack_2a0 + -0x602c);
      }
      (*pcVar4)(3,puVar20,0);
      if (*piVar23 == 0) {
        pcVar4 = *(code **)(puStack_2a0 + -32000);
        if (*piVar28 == 0) goto LAB_0006b564;
LAB_0006b6f0:
        (*pcVar4)();
        if (*piVar23 != 0) {
          pcVar4 = *(code **)(puStack_2a0 + -0x7d08);
          goto LAB_0006b708;
        }
      }
      else {
        (**(code **)(puStack_2a0 + -0x7d08))(*piVar23);
        if (*piVar28 != 0) {
          pcVar4 = *(code **)(puStack_2a0 + -32000);
          goto LAB_0006b6f0;
        }
LAB_0006b564:
        pcVar4 = *(code **)(puStack_2a0 + -0x7d08);
        if (*piVar23 != 0) {
LAB_0006b708:
          (*pcVar4)(*piVar23);
        }
      }
      if (**(int **)(puStack_2a0 + -0x73d8) == 0) {
LAB_0006b5a4:
        pcVar4 = *(code **)(puStack_2a0 + -0x6204);
      }
      else {
        pcVar4 = *(code **)(puStack_2a0 + -0x6204);
        if (**(int **)(puStack_2a0 + -0x73dc) != 0) {
          if (**(int **)(puStack_2a0 + -0x7abc) != 0) {
            piVar29 = *(int **)(puStack_2a0 + -0x73d4);
            puVar30 = puStack_2a0;
            if (**(int **)(puStack_2a0 + -0x7abc) != *(int *)(puStack_2a0 + -0x73f0))
            goto LAB_0006b5a4;
            goto LAB_0006b730;
          }
        }
      }
      piVar31 = (int *)(*pcVar4)();
      *piVar31 = 0;
      iVar11 = wait_for(0xffffffff);
      if (iVar11 == -1) {
        pcVar4 = *(code **)(puStack_2a0 + -0x626c);
        if ((*piVar31 == 10) && (*(int *)(puVar5 + 0x18) != 0)) {
          (*pcStack_294)();
          goto LAB_0006b5d4;
        }
      }
      else {
LAB_0006b5d4:
        pcVar4 = *(code **)(puStack_2a0 + -0x626c);
      }
      (*pcVar4)(puVar6);
      (**(code **)(puStack_2a0 + -0x61dc))(puVar6,0x12);
      (**(code **)(puStack_2a0 + -0x626c))(puVar20);
      (**(code **)(puStack_2a0 + -0x602c))(1,puVar6,puVar20);
      if (0 < (int)*(int **)(puVar5 + 0x18)) {
        piVar17 = (int *)*piVar25;
        piVar31 = (int *)0x0;
        piVar29 = piVar17;
        do {
          if ((*piVar29 != 0) && (*(int *)(*piVar29 + 0xc) == 4)) goto LAB_0006b3b8;
          piVar31 = (int *)((int)piVar31 + 1);
          piVar29 = piVar29 + 1;
        } while (*(int **)(puVar5 + 0x18) != piVar31);
      }
      (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);
    } while( true );
  }
  puVar6 = (undefined1 *)0xffffffff;
LAB_0006b430:
  puVar30 = puStack_2a0;
  if (piStack_18c == (int *)*puVar27) {
    return puVar6;
  }
  piVar29 = piStack_18c;
  (**(code **)(puStack_2a0 + -0x60b8))();
LAB_0006b730:
  pcVar4 = *(code **)(puVar30 + -0x625c);
  pcVar32 = start_job;
  puVar13 = (undefined4 *)0x1;
  (*pcVar4)();
  piVar17 = *(int **)(pcVar4 + 0xdada0);
  iVar11 = (int)piVar29 * 4;
  iStack_2dc = *piVar17;
  piVar22 = *(int **)(pcVar4 + 0xd9720);
  puStack_2d8 = puVar20;
  puStack_2d4 = puVar6;
  puStack_2d0 = puVar5;
  piStack_2cc = piVar23;
  piStack_2c8 = piVar25;
  puStack_2c4 = puVar27;
  piStack_2c0 = piVar28;
  iStack_2bc = iVar3;
  piStack_2b8 = piVar31;
  pcStack_2b4 = pcVar32;
  (**(code **)(pcVar4 + 0xdab98))(auStack_3dc);
  (**(code **)(pcVar4 + 0xdac28))(auStack_3dc,0x12);
  (**(code **)(pcVar4 + 0xdab98))(auStack_35c);
  (**(code **)(pcVar4 + 0xdadd8))(1,auStack_3dc,auStack_35c);
  iVar3 = *(int *)(*(int *)(*piVar22 + iVar11) + 0xc);
  if (iVar3 == 4) {
    puVar20 = (undefined1 *)0xffffffff;
    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7d9c,5);
    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec));
    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);
  }
  else if (puVar13 == (undefined4 *)0x0) {
    if (iVar3 != 1) {
      uStack_3e4 = FUN_000649c8();
      iVar8 = *(int *)(*piVar22 + iVar11);
      iVar12 = **(int **)(pcVar4 + 0xd8e50);
      *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffd;
      if (iVar12 == 0) {
        if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x2c) == piVar29) {
          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7144;
        }
        else {
          if (*(int **)(*(int *)(pcVar4 + 0xd971c) + 0x30) != piVar29) goto LAB_0006b860;
          iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7d98;
        }
      }
      else {
LAB_0006b860:
        iVar12 = *(int *)(pcVar4 + 0xd8e3c) + 0x7b04;
      }
      piVar31 = *(int **)(iVar8 + 4);
      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7dd8,(int)piVar29 + 1,iVar12)
      ;
      piVar23 = *(int **)(*(int *)(*piVar22 + iVar11) + 4);
      goto LAB_0006b898;
    }
    uVar19 = (**(code **)(pcVar4 + 0xdad5c))(0,*(int *)(pcVar4 + 0xd8e3c) + 0x7db4,5);
    internal_error(uVar19,**(undefined4 **)(pcVar4 + 0xd8fec),(int)piVar29 + 1);
LAB_0006b9dc:
    puVar20 = (undefined1 *)0x0;
    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);
  }
  else {
    uStack_3e4 = FUN_000649c8();
    *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =
         *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffd;
    FUN_00064368(piVar29);
    iVar8 = *(int *)(*piVar22 + iVar11);
    piVar23 = *(int **)(iVar8 + 4);
    *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) | 1;
    piVar31 = piVar23;
LAB_0006b898:
    iVar12 = *(int *)(pcVar4 + 0xd8e3c);
    iVar8 = *(int *)(pcVar4 + 0xd8e70);
    iVar26 = *(int *)(pcVar4 + 0xd8e3c);
    do {
      iVar15 = piVar31[4];
      if (piVar31[4] == 0) {
        iVar15 = iVar8 + -0x6800;
      }
      iVar18 = iVar26 + 0x6720;
      if ((int *)*piVar31 == piVar23) {
        iVar18 = iVar8 + -0x6800;
      }
      (**(code **)(pcVar4 + 0xdabb0))(1,iVar12 + 0x6298,iVar15,iVar18);
      piVar31 = (int *)*piVar31;
      puVar27 = *(undefined4 **)(*piVar22 + iVar11);
      piVar23 = (int *)puVar27[1];
    } while (piVar23 != piVar31);
    if (puVar13 == (undefined4 *)0x0) {
      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7b74);
      puVar27 = *(undefined4 **)(*piVar22 + iVar11);
    }
    uVar19 = *puVar27;
    iVar8 = (**(code **)(pcVar4 + 0xdae0c))(uStack_3e4,uVar19);
    if (iVar8 != 0) {
      uVar19 = (**(code **)(pcVar4 + 0xd9234))(uVar19);
      (**(code **)(pcVar4 + 0xdabb0))(1,*(int *)(pcVar4 + 0xd8e3c) + 0x7de0,uVar19);
    }
    (**(code **)(pcVar4 + 0xdac04))(10);
    if (iVar3 == 1) {
      if (puVar13 == (undefined4 *)0x0) {
        *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) =
             *(uint *)(*(int *)(*piVar22 + iVar11) + 0x10) & 0xfffffffe;
        goto LAB_0006b9c8;
      }
      get_tty_state();
      iVar8 = *(int *)(pcVar4 + 0xd9a18);
      puVar24 = (undefined4 *)(iVar8 + -0x70d0);
      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);
      puVar27 = puVar24;
      puVar9 = puVar21;
      do {
        puVar7 = puVar27 + 4;
        puVar10 = puVar9 + 4;
        uVar16 = puVar27[1];
        uVar14 = puVar27[2];
        uVar19 = puVar27[3];
        *puVar9 = *puVar27;
        puVar9[1] = uVar16;
        puVar9[2] = uVar14;
        puVar9[3] = uVar19;
        puVar27 = puVar7;
        puVar9 = puVar10;
      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));
      iVar8 = *piVar22;
      *puVar10 = *puVar7;
      iVar8 = *(int *)(iVar8 + iVar11);
      if ((*(uint *)(iVar8 + 0x10) & 4) != 0) goto LAB_0006bce0;
    }
    else {
      iVar8 = *(int *)(*piVar22 + iVar11);
      piVar23 = *(int **)(iVar8 + 4);
      piVar31 = piVar23;
      do {
        if (*(char *)((int)piVar31 + 0xb) == '\x7f') {
          piVar31[3] = 1;
        }
        piVar31 = (int *)*piVar31;
      } while (piVar23 != piVar31);
      *(undefined4 *)(iVar8 + 0xc) = 1;
      if (puVar13 == (undefined4 *)0x0) {
        pcVar32 = *(code **)(pcVar4 + 0xdad38);
        *(uint *)(iVar8 + 0x10) = *(uint *)(iVar8 + 0x10) & 0xfffffffe | 2;
        (*pcVar32)(*(undefined4 *)(iVar8 + 8),0x19);
LAB_0006b9c8:
        FUN_00064490();
        goto LAB_0006b9dc;
      }
      get_tty_state();
      iVar8 = *(int *)(pcVar4 + 0xd9a18);
      puVar24 = (undefined4 *)(iVar8 + -0x70d0);
      puVar21 = (undefined4 *)(*(int *)(pcVar4 + 0xd8e2c) + 0x7ee8);
      puVar27 = puVar24;
      puVar9 = puVar21;
      do {
        puVar7 = puVar27 + 4;
        puVar10 = puVar9 + 4;
        uVar16 = puVar27[1];
        uVar14 = puVar27[2];
        uVar19 = puVar27[3];
        *puVar9 = *puVar27;
        puVar9[1] = uVar16;
        puVar9[2] = uVar14;
        puVar9[3] = uVar19;
        puVar27 = puVar7;
        puVar9 = puVar10;
      } while (puVar7 != (undefined4 *)(iVar8 + -0x70a0));
      iVar8 = *piVar22;
      *puVar10 = *puVar7;
      iVar8 = *(int *)(iVar8 + iVar11);
      if ((*(uint *)(iVar8 + 0x10) & 4) == 0) {
        iVar3 = *piVar22;
      }
      else {
LAB_0006bce0:
        give_terminal_to(*(undefined4 *)(iVar8 + 8),0);
        if (iVar3 == 1) goto LAB_0006bbc8;
        iVar3 = *piVar22;
      }
      pcVar32 = *(code **)(pcVar4 + 0xdad38);
      iVar3 = *(int *)(iVar3 + iVar11);
      *(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) | 2;
      (*pcVar32)(*(undefined4 *)(iVar3 + 8),0x19);
    }
LAB_0006bbc8:
    iVar3 = FUN_00065a6c(piVar29);
    uVar19 = *(undefined4 *)(iVar3 + 4);
    (**(code **)(pcVar4 + 0xdadd8))(3,auStack_35c,0);
    puVar20 = (undefined1 *)wait_for(uVar19);
    puVar27 = puVar21;
    do {
      puVar7 = puVar27 + 4;
      puVar9 = puVar24 + 4;
      uVar16 = puVar27[1];
      uVar14 = puVar27[2];
      uVar19 = puVar27[3];
      *puVar24 = *puVar27;
      puVar24[1] = uVar16;
      puVar24[2] = uVar14;
      puVar24[3] = uVar19;
      puVar24 = puVar9;
      puVar27 = puVar7;
    } while (puVar7 != puVar21 + 0xc);
    *puVar9 = *puVar7;
    set_tty_state();
  }
  if (iStack_2dc == *piVar17) {
    return puVar20;
  }
  pcVar4 = *(code **)(pcVar4 + 0xdad4c);
  iVar3 = iStack_2dc;
  (*pcVar4)();
  piVar31 = *(int **)(pcVar4 + 0xd8b10);
  iVar11 = (**(code **)(pcVar4 + 0xda6dc))();
  *piVar31 = iVar11;
  if (iVar11 == -1) {
    uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7dec,5);
    sys_error(uVar19);
    (**(code **)(pcVar4 + 0xda620))(1);
LAB_0006c3c8:
    uVar19 = *puVar13;
LAB_0006be24:
    uVar19 = (**(code **)(pcVar4 + 0xda58c))(uVar19);
    iVar3 = (**(code **)(pcVar4 + 0xda780))(uVar19);
    *piVar22 = iVar3;
    if (iVar3 != -1) goto LAB_0006bf80;
    pcVar32 = *(code **)(pcVar4 + 0xda670);
    if (*piVar31 == 0) goto LAB_0006bf08;
LAB_0006be5c:
    iVar3 = *piVar22;
  }
  else {
    piVar29 = *(int **)(pcVar4 + 0xd87f4);
    puVar13 = *(undefined4 **)(pcVar4 + 0xda77c);
    uVar19 = *puVar13;
    if (iVar3 == 0 && *piVar29 == 0) {
      piVar23 = *(int **)(pcVar4 + 0xd8b0c);
      puVar27 = *(undefined4 **)(pcVar4 + 0xd9070);
      pcVar32 = *(code **)(pcVar4 + 0xda58c);
      piVar22 = *(int **)(pcVar4 + 0xd93fc);
      *piVar23 = 0;
      *puVar27 = 0xffffffff;
      iVar3 = (*pcVar32)(uVar19);
      pcVar32 = *(code **)(pcVar4 + 0xda598);
      *piVar22 = iVar3;
      iVar3 = (*pcVar32)(iVar3);
      iVar11 = *piVar31;
      **(int **)(pcVar4 + 0xd9434) = iVar3;
      goto LAB_0006bff4;
    }
    piVar22 = *(int **)(pcVar4 + 0xd93fc);
    iVar3 = **(int **)(pcVar4 + 0xd87e4);
    *piVar22 = -1;
    if (iVar3 == 0) goto LAB_0006be24;
    uVar19 = (**(code **)(pcVar4 + 0xda58c))();
    iVar3 = (**(code **)(pcVar4 + 0xda4b0))(uVar19);
    if (iVar3 == 0) {
      iVar3 = (**(code **)(pcVar4 + 0xda5dc))(*(int *)(pcVar4 + 0xd87dc) + 0x62c0,0x82);
      *piVar22 = iVar3;
    }
    else {
      iVar3 = *piVar22;
    }
    if (iVar3 == -1) goto LAB_0006c3c8;
LAB_0006bf80:
    iVar3 = (**(code **)(pcVar4 + 0xd8a0c))(iVar3,1,0xffffffff);
    *piVar22 = iVar3;
    pcVar32 = *(code **)(pcVar4 + 0xda670);
    if (*piVar31 != 0) goto LAB_0006be5c;
LAB_0006bf08:
    iVar3 = (*pcVar32)();
    pcVar32 = *(code **)(pcVar4 + 0xda4fc);
    *piVar31 = iVar3;
    (*pcVar32)(0,iVar3);
    iVar3 = *piVar22;
    if (iVar3 != -1) {
      (**(code **)(pcVar4 + 0xda73c))(iVar3,*piVar31);
      goto LAB_0006be5c;
    }
  }
  iVar11 = 0x12;
  piVar25 = *(int **)(pcVar4 + 0xd9434);
  piVar23 = *(int **)(pcVar4 + 0xd8a98);
  while( true ) {
    iVar3 = (**(code **)(pcVar4 + 0xda598))(iVar3);
    *piVar25 = iVar3;
    if (iVar3 == -1) break;
    if (*piVar31 == iVar3) {
      iVar8 = -1;
      goto LAB_0006c118;
    }
    pcVar32 = *(code **)(pcVar4 + 0xd8aac);
    if (*piVar23 != 0) {
      (**(code **)(pcVar4 + 0xd8a9c))(*piVar23);
      pcVar32 = *(code **)(pcVar4 + 0xd8aac);
    }
    iVar11 = iVar11 + -1;
    uVar19 = (*pcVar32)(0x1a,0);
    (**(code **)(pcVar4 + 0xda61c))(0,0x1a);
    (**(code **)(pcVar4 + 0xd8aac))(0x1a,uVar19);
    if (iVar11 == 0) {
      piVar23 = *(int **)(pcVar4 + 0xd8b0c);
      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e14,5);
      sys_error(uVar19);
      iVar3 = *piVar25;
      iVar11 = *piVar31;
      *piVar23 = 0;
      **(int **)(pcVar4 + 0xd9070) = iVar3;
      goto LAB_0006bff4;
    }
    iVar3 = *piVar22;
  }
  piVar23 = (int *)(**(code **)(pcVar4 + 0xda5a0))();
  iVar8 = *piVar23;
  iVar3 = *piVar31;
LAB_0006c118:
  piVar28 = *(int **)(pcVar4 + 0xd9070);
  pcVar32 = *(code **)(pcVar4 + 0xda670);
  *piVar28 = iVar3;
  iVar3 = (*pcVar32)();
  iVar11 = *piVar28;
  *piVar31 = iVar3;
  if (iVar3 == iVar11) {
LAB_0006c138:
    piVar23 = *(int **)(pcVar4 + 0xd8b0c);
    *piVar23 = 1;
LAB_0006c144:
    pcVar32 = *(code **)(pcVar4 + 0xda598);
LAB_0006c148:
    iVar11 = (*pcVar32)(*piVar22);
    if ((iVar11 == -1) || (*piVar31 != iVar11)) {
      if (iVar8 != -1) {
        piVar28 = (int *)(**(code **)(pcVar4 + 0xda5a0))();
        *piVar28 = iVar8;
      }
      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e6c,5);
      sys_error(uVar19,iVar11);
      *piVar23 = 0;
      goto LAB_0006c230;
    }
    iVar3 = *(int *)(pcVar4 + 0xd87dc);
    if (*piVar23 != 0) {
      iVar3 = *piVar25;
      goto LAB_0006bff4;
    }
  }
  else {
    iVar3 = (**(code **)(pcVar4 + 0xda4fc))(0,iVar3);
    if (iVar3 < 0) {
      uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,*(int *)(pcVar4 + 0xd87dc) + 0x7e4c,5);
      sys_error(uVar19);
      *piVar31 = *piVar28;
      goto LAB_0006c138;
    }
    piVar23 = *(int **)(pcVar4 + 0xd8b0c);
    iVar11 = *piVar31;
    iVar3 = *piVar28;
    *piVar23 = 1;
    if (iVar11 == iVar3) goto LAB_0006c144;
    pcVar32 = *(code **)(pcVar4 + 0xda598);
    if (*piVar25 == iVar11) goto LAB_0006c148;
    iVar3 = give_terminal_to(iVar11,0);
    if (iVar3 < 0) {
      puVar27 = (undefined4 *)(**(code **)(pcVar4 + 0xda5a0))();
      uVar19 = *puVar27;
      (**(code **)(pcVar4 + 0xda4fc))(0,*piVar28);
      iVar3 = *(int *)(pcVar4 + 0xd87dc);
      pcVar32 = *(code **)(pcVar4 + 0xda6fc);
      *piVar31 = *piVar28;
      *puVar27 = uVar19;
      uVar19 = (*pcVar32)(0,iVar3 + 0x7e6c,5);
      sys_error(uVar19,*piVar31);
      *piVar23 = 0;
    }
    else {
      pcVar32 = *(code **)(pcVar4 + 0xda598);
      if (*piVar23 != 0) goto LAB_0006c148;
    }
LAB_0006c230:
    iVar3 = *(int *)(pcVar4 + 0xd87dc);
  }
  uVar19 = (**(code **)(pcVar4 + 0xda6fc))(0,iVar3 + 0x7e94,5);
  internal_error(uVar19);
  iVar3 = *piVar25;
  iVar11 = *piVar31;
LAB_0006bff4:
  pcVar32 = *(code **)(pcVar4 + 0xda58c);
  uVar19 = *puVar13;
  **(uint **)(pcVar4 + 0xd8954) = (uint)(iVar11 != iVar3);
  iVar3 = (*pcVar32)(uVar19);
  if (iVar3 != *piVar22) {
    (**(code **)(pcVar4 + 0xda540))(*piVar22,2,1);
  }
  (**(code **)(pcVar4 + 0xd8aac))(0x12,*(int *)(pcVar4 + 0xd942c) + -0x6fbc);
  uVar19 = 0x2b;
  if (*piVar23 != 0) {
    uVar19 = 0x2d;
  }
  change_flag(0x6d,uVar19);
  if (*piVar29 != 0) {
    get_tty_state();
  }
  piVar31 = *(int **)(pcVar4 + 0xd90bc);
  if (-1 < *piVar31) {
    return (undefined1 *)*piVar23;
  }
  iVar3 = (**(code **)(pcVar4 + 0xd93d8))();
  if (iVar3 < 0) {
    iVar3 = 0x20;
  }
  *piVar31 = iVar3;
  return (undefined1 *)*piVar23;
LAB_0006b3b8:
  puVar6 = (undefined1 *)job_exit_status(piVar31);
  if (((piVar17 == (int *)0x0) || (FUN_00065dcc(), *(int *)(puVar5 + 0x18) != 0)) &&
     (*(int *)(iVar3 + -0x705c) == 0)) {
    FUN_00066b6c(piVar31,0);
  }
  (**(code **)(puStack_2a0 + -0x737c))();
  (**(code **)(puStack_2a0 + -0x602c))(3,puVar20,0);
  goto LAB_0006b430;
}

