
int unixGetTempname(int nBuf,char *zBuf)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  undefined4 uVar5;
  int iVar6;
  int *piVar7;
  int iVar8;
  int iVar9;
  undefined *puVar10;
  u64 r;
  stat buf;
  
  puVar2 = PTR___stack_chk_guard_0015ba2c;
  puVar1 = PTR_sqlite3_temp_directory_0015b854;
  puVar10 = PTR_DAT_0015b5d8;
  iVar6 = *(int *)PTR___stack_chk_guard_0015ba2c;
  *zBuf = '\0';
  iVar8 = *(int *)puVar1;
  if (*(int *)(puVar10 + -0x4eb0) == 0) {
    uVar5 = (*(code *)PTR_getenv_0015b9e4)(PTR_DAT_0015b5fc + -0x73bc);
    *(undefined4 *)(puVar10 + -0x4eb0) = uVar5;
    iVar3 = *(int *)(puVar10 + -0x4eac);
  }
  else {
    iVar3 = *(int *)(puVar10 + -0x4eac);
  }
  if (iVar3 == 0) {
    uVar5 = (*(code *)PTR_getenv_0015b9e4)(PTR_DAT_0015b5fc + -0x73ac);
    *(undefined4 *)(puVar10 + -0x4eac) = uVar5;
  }
  puVar1 = PTR_DAT_0015b5d8;
  piVar7 = (int *)(puVar10 + -0x4eb0);
  while( true ) {
    if ((((iVar8 != 0) && (iVar3 = (**(code **)(puVar1 + -0x4b84))(iVar8,&buf), iVar3 == 0)) &&
        ((buf.st_mode & 0xf000) == 0x4000)) &&
       (iVar3 = (**(code **)(puVar1 + -0x4b9c))(iVar8,3), iVar3 == 0)) {
      iVar3 = 0xc;
      puVar10 = PTR_DAT_0015b5fc + -0x73a4;
      goto LAB_0009aa88;
    }
    iVar9 = 0x190a;
    if (piVar7 == (int *)(puVar10 + -0x4e98)) break;
    iVar8 = *piVar7;
    piVar7 = piVar7 + 1;
  }
  goto LAB_0009a9fc;
  while( true ) {
    iVar4 = (**(code **)(puVar1 + -0x4b9c))(zBuf,0);
    iVar9 = 0;
    if (iVar4 != 0) break;
LAB_0009aa88:
    sqlite3_randomness(8,&r);
    zBuf[nBuf + -2] = '\0';
    (*(code *)PTR_sqlite3_snprintf_0015b610)(nBuf,zBuf,puVar10,iVar8,r._0_4_,r._4_4_,0);
    if ((zBuf[nBuf + -2] != '\0') || (iVar3 = iVar3 + -1, iVar3 == 0)) {
      iVar9 = 1;
      break;
    }
  }
LAB_0009a9fc:
  if (iVar6 != *(int *)puVar2) {
    iVar6 = (*(code *)PTR___stack_chk_fail_0015ba10)();
    return iVar6;
  }
  return iVar9;
}



/* WARNING: Type propagation algorithm not settling */

uint FUN_0009a92c(int param_1,undefined4 *param_2,int *param_3,uint param_4)

{
  char cVar1;
  bool bVar2;
  longlong lVar3;
  undefined *puVar4;
  int in_zero;
  int iVar5;
  uint uVar6;
  int iVar7;
  int iVar8;
  uint uVar9;
  int *piVar10;
  int iVar11;
  int iVar12;
  int *piVar13;
  uint uVar14;
  undefined4 *puVar15;
  int iVar16;
  int *piVar17;
  undefined4 *puVar18;
  uint *puVar19;
  uint uVar20;
  uint uVar21;
  undefined4 *puVar22;
  undefined *puVar23;
  uint uVar24;
  int iVar25;
  uint *puVar26;
  undefined *puVar27;
  code *pcVar28;
  code *pcVar29;
  int *piVar30;
  int *piVar31;
  undefined4 uVar32;
  longlong lVar33;
  undefined4 local_734;
  uint local_72c;
  undefined4 local_724;
  code *local_714;
  undefined4 local_710;
  int local_70c;
  int local_708;
  int local_704;
  int local_700 [4];
  int local_6f0;
  int local_6ec;
  uint local_6e8;
  undefined4 local_6e0;
  undefined4 local_6dc;
  undefined1 auStack_65c [516];
  undefined4 auStack_458 [129];
  int local_254;
  uint *local_250;
  uint local_24c;
  undefined *local_248;
  undefined4 *local_244;
  int local_240;
  undefined4 *local_23c;
  uint *local_238;
  uint local_234;
  int *local_230;
  undefined4 local_22c;
  uint *local_218;
  undefined *local_208;
  int local_134;
  uint *local_130;
  uint local_12c;
  undefined *local_128;
  undefined4 *local_124;
  int local_120;
  undefined4 *local_11c;
  uint *local_118;
  uint local_114;
  int *local_110;
  undefined4 local_10c;
  undefined4 local_f8;
  undefined4 local_f4;
  undefined4 local_f0;
  undefined4 local_d8;
  undefined4 local_d4;
  undefined4 auStack_d0 [6];
  uint local_b8;
  int local_2c;
  
  puVar4 = PTR___stack_chk_guard_0015ba2c;
  puVar27 = PTR_sqlite3_temp_directory_0015b854;
  puVar23 = PTR_DAT_0015b5d8;
  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;
  *(undefined1 *)param_2 = 0;
  uVar20 = *(uint *)puVar27;
  if (*(int *)(puVar23 + -0x4eb0) == 0) {
    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc);
    *(undefined4 *)(puVar23 + -0x4eb0) = uVar32;
    iVar5 = *(int *)(puVar23 + -0x4eac);
  }
  else {
    iVar5 = *(int *)(puVar23 + -0x4eac);
  }
  if (iVar5 == 0) {
    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac);
    *(undefined4 *)(puVar23 + -0x4eac) = uVar32;
  }
  puVar27 = PTR_DAT_0015b5d8;
  puVar19 = (uint *)(puVar23 + -0x4eb0);
  puVar26 = (uint *)(puVar23 + -0x4e98);
  puVar22 = auStack_d0;
  piVar30 = (int *)0x4000;
  puVar23 = PTR_DAT_0015b5d8 + -0x4bb8;
  while( true ) {
    puVar15 = puVar22;
    if ((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&
        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&
       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)) {
      puVar19 = (uint *)&DAT_0000000c;
      puVar26 = (uint *)((int)param_2 + param_1 + -2);
      puVar22 = &local_d8;
      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);
      goto LAB_0009aa88;
    }
    local_234 = 0x190a;
    if (puVar19 == puVar26) break;
    uVar20 = *puVar19;
    puVar19 = puVar19 + 1;
  }
  goto LAB_0009a9fc;
joined_r0x0009b6fc:
  if (param_4 == uVar20) goto LAB_0009bb18;
  piVar10 = (int *)piVar13[2];
  if (piVar10 == (int *)0x0) goto LAB_0009b728;
  uVar20 = piVar10[1];
  piVar17 = piVar13 + 2;
  piVar13 = piVar10;
  goto joined_r0x0009b6fc;
LAB_0009bb18:
  pcVar29 = *(code **)(pcVar28 + 0xc0508);
  *piVar17 = piVar13[2];
  (*pcVar29)(piVar31[4]);
  (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));
  iVar7 = *piVar13;
  param_3[7] = (int)piVar13;
  goto LAB_0009b2a0;
LAB_0009b728:
  (**(code **)(pcVar28 + 0xc0508))(piVar31[4]);
  (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));
  goto LAB_0009b7e8;
  while( true ) {
    puVar19 = (uint *)((int)puVar19 + -1);
    puVar15 = (undefined4 *)0x0;
    if (puVar19 == (uint *)0x0) goto LAB_0009aae4;
    iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2);
    local_234 = 0;
    if (iVar5 != 0) break;
LAB_0009aa88:
    sqlite3_randomness(8,puVar22);
    *(char *)puVar26 = '\0';
    local_f0 = 0;
    local_f4 = local_d4;
    local_f8 = local_d8;
    puVar15 = param_2;
    param_3 = piVar30;
    param_4 = uVar20;
    (*(code *)PTR_sqlite3_snprintf_0015b610)(param_1);
    if (*(char *)puVar26 != '\0') {
LAB_0009aae4:
      local_234 = 1;
      break;
    }
  }
LAB_0009a9fc:
  if (local_2c == *(int *)puVar4) {
    return local_234;
  }
  uVar32 = 0x9ab38;
  puVar27 = PTR___stack_chk_fail_0015ba10;
  (*(code *)PTR___stack_chk_fail_0015ba10)();
  local_208 = puVar27 + 0xc8a78;
  piVar31 = *(int **)(puVar27 + 0xc0ef4);
  iVar5 = *piVar31;
  local_134 = iVar5;
  local_130 = puVar19;
  local_12c = uVar20;
  local_128 = puVar23;
  local_124 = param_2;
  local_120 = param_1;
  local_11c = puVar22;
  local_118 = puVar26;
  local_114 = local_234;
  local_110 = piVar30;
  local_10c = uVar32;
  if (puVar15 < (undefined4 *)0x15) {
                    /* WARNING: Could not recover jumptable at 0x0009aba0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)
                       ))();
    return uVar20;
  }
  if (iVar5 == *piVar31) {
    return 0xc;
  }
  pcVar28 = *(code **)(puVar27 + 0xc0ed8);
  uVar32 = 0x9b1ac;
  (*pcVar28)();
  uVar21 = param_4 & 8;
  uVar24 = param_4 & 0xffffff00;
  piVar30 = *(int **)(pcVar28 + 0xc0880);
  local_254 = *piVar30;
  local_72c = param_4 & 1;
  uVar6 = param_4 & 2;
  puVar18 = puVar15;
  local_250 = puVar19;
  local_24c = uVar20;
  local_248 = puVar23;
  local_244 = param_2;
  local_240 = param_1;
  local_23c = puVar22;
  local_238 = puVar26;
  local_230 = piVar31;
  local_22c = uVar32;
  if ((param_4 & 4) == 0) {
    iVar25 = *(int *)(pcVar28 + 0xc042c);
    bVar2 = false;
    iVar7 = (**(code **)(pcVar28 + 0xc0840))();
    if (iVar7 != *(int *)(iVar25 + -0x4354)) goto LAB_0009b46c;
LAB_0009b270:
    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);
    if (uVar24 == 0x100) {
      iVar7 = *(int *)(pcVar28 + 0xc042c);
      iVar25 = *(int *)(pcVar28 + 0xc042c);
      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));
      if ((*(int *)(iVar25 + -0x435c) != 0) &&
         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),
         iVar8 == 0)) {
        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;
            piVar31 = (int *)piVar31[0xb]) {
          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&
             (piVar31[3] == local_6ec)) {
            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);
            piVar13 = (int *)piVar31[8];
            if (piVar13 == (int *)0x0) goto LAB_0009b728;
            uVar20 = piVar13[1];
            piVar17 = piVar31 + 8;
            goto joined_r0x0009b6fc;
          }
        }
      }
      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));
LAB_0009b7e8:
      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);
      if (iVar25 != 0) {
        iVar7 = -1;
        param_3[7] = iVar25;
        goto LAB_0009b2a0;
      }
      uVar20 = 7;
    }
    else {
      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;
LAB_0009b618:
      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);
      if (uVar20 == 0) {
        iVar7 = -1;
        puVar18 = auStack_458;
        goto LAB_0009b2a0;
      }
    }
  }
  else {
    if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {
      iVar25 = *(int *)(pcVar28 + 0xc042c);
      bVar2 = uVar24 == 0x80000;
      iVar7 = (**(code **)(pcVar28 + 0xc0840))();
      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;
LAB_0009b46c:
      uVar32 = (**(code **)(pcVar28 + 0xc0840))();
      *(undefined4 *)(iVar25 + -0x4354) = uVar32;
      sqlite3_randomness(0,0);
      goto LAB_0009b270;
    }
    iVar25 = *(int *)(pcVar28 + 0xc042c);
    iVar7 = (**(code **)(pcVar28 + 0xc0840))();
    if (*(int *)(iVar25 + -0x4354) != iVar7) {
      bVar2 = true;
      goto LAB_0009b46c;
    }
    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);
    bVar2 = true;
    if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;
LAB_0009b298:
    iVar7 = -1;
LAB_0009b2a0:
    uVar20 = uVar6;
    if ((param_4 & 4) != 0) {
      uVar20 = uVar6 | 0x100;
    }
    if ((param_4 & 0x10) == 0) {
      if (-1 < iVar7) goto LAB_0009b2c4;
LAB_0009b4a8:
      uVar14 = param_4 & 0x80800;
      if (uVar14 != 0) {
        if (puVar18 == (undefined4 *)0x0) {
          cVar1 = *(char *)(in_zero + -1);
          iVar7 = -1;
          if (cVar1 != '-') goto joined_r0x0009b50c;
          pcVar29 = *(code **)(pcVar28 + 0xc0828);
        }
        else {
          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);
          iVar7 = (uVar9 & 0x3fffffff) - 1;
          cVar1 = *(char *)((int)puVar18 + iVar7);
          while (cVar1 != '-') {
            if (iVar7 == 0) {
LAB_0009b934:
              uVar9 = 0;
              local_734 = 0;
              local_724 = 0;
              goto LAB_0009b93c;
            }
joined_r0x0009b50c:
            if (cVar1 == '.') goto LAB_0009b934;
            iVar7 = iVar7 + -1;
            cVar1 = *(char *)((int)puVar18 + iVar7);
          }
          pcVar29 = *(code **)(pcVar28 + 0xc0828);
        }
        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);
        iVar25 = *(int *)(pcVar28 + 0xc042c);
        auStack_65c[iVar7] = 0;
        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);
        if (iVar7 != 0) {
LAB_0009bc08:
          uVar20 = 0x70a;
          goto LAB_0009b410;
        }
        uVar9 = local_6e8 & 0x1ff;
        local_724 = local_6e0;
        local_734 = local_6dc;
LAB_0009b93c:
        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);
        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);
        if (iVar7 < 0) goto LAB_0009b9ec;
LAB_0009b97c:
        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);
        goto LAB_0009b2c4;
      }
      uVar9 = 0x180;
      if (uVar21 == 0) {
        if (((param_4 & 0x40) == 0) ||
           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),
           iVar7 == 0)) {
          local_734 = 0;
          uVar9 = 0;
          local_724 = 0;
        }
        else {
          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);
          if (iVar7 != 0) goto LAB_0009bc08;
          local_724 = local_6e0;
          uVar9 = local_6e8 & 0x1ff;
          local_734 = local_6dc;
        }
      }
      else {
        local_734 = 0;
        local_724 = 0;
      }
      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);
      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);
      if (-1 < iVar7) goto LAB_0009b2c4;
LAB_0009b9ec:
      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();
      iVar7 = *piVar31;
      if ((bVar2) && (iVar7 == 0xd)) {
        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);
        if (iVar7 == 0) {
          iVar7 = *piVar31;
          goto LAB_0009ba2c;
        }
        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);
        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))
                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);
        uVar20 = 0x608;
        goto LAB_0009b84c;
      }
LAB_0009ba2c:
      if ((iVar7 != 0x15) && (uVar6 != 0)) {
        param_4 = param_4 & 0xfffffff9 | 1;
        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);
        if (-1 < iVar7) {
          local_72c = 1;
          if (uVar14 == 0) goto LAB_0009b2c4;
          goto LAB_0009b97c;
        }
      }
      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);
      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))
                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);
      if (uVar20 == 0) goto LAB_0009b410;
      pcVar29 = *(code **)(pcVar28 + 0xc0474);
    }
    else {
      uVar20 = uVar20 | 0x20400;
      if (iVar7 < 0) goto LAB_0009b4a8;
LAB_0009b2c4:
      if (local_218 != (uint *)0x0) {
        *local_218 = param_4;
      }
      if ((int *)param_3[7] != (int *)0x0) {
        *(int *)param_3[7] = iVar7;
        *(uint *)(param_3[7] + 4) = param_4;
      }
      if (uVar21 != 0) {
        uVar21 = 0x20;
        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);
      }
      if (local_72c != 0) {
        uVar21 = uVar21 | 2;
      }
      if (uVar24 != 0x100) {
        uVar21 = uVar21 | 0x80;
      }
      if (bVar2) {
        uVar21 = uVar21 | 8;
      }
      iVar25 = *(int *)(pcVar28 + 0xc042c);
      if ((param_4 & 0x40) == 0) {
        param_3[3] = iVar7;
        puVar22 = (undefined4 *)0x0;
      }
      else {
        uVar21 = uVar21 | 0x40;
        param_3[3] = iVar7;
        puVar22 = puVar15;
      }
      iVar16 = *(int *)(pcVar28 + 0xc0450);
      pcVar29 = *(code **)(pcVar28 + 0xc0648);
      param_3[1] = iVar5;
      param_3[8] = (int)puVar15;
      *(short *)((int)param_3 + 0x12) = (short)uVar21;
      iVar8 = *(int *)(iVar25 + -0x5d20);
      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);
      param_3[0x10] = iVar8;
      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);
      if (iVar8 != 0) {
        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;
      }
      iVar8 = (**(code **)(pcVar28 + 0xc08b0))
                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);
      if (iVar8 == 0) {
        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;
      }
      if ((uVar21 & 0x80) != 0) {
        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;
        goto LAB_0009b3f0;
      }
      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);
      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {
        iVar8 = *(int *)(pcVar28 + 0xc042c);
        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));
        iVar12 = *(int *)(pcVar28 + 0xc042c);
        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);
        if (iVar16 == 0) {
          iVar16 = *(int *)(pcVar28 + 0xc042c);
          local_710 = 0;
          local_70c = local_700[0];
          local_704 = local_6ec;
          puVar22 = *(undefined4 **)(iVar16 + -0x435c);
          local_708 = local_6f0;
          if (puVar22 == (undefined4 *)0x0) {
            pcVar29 = *(code **)(pcVar28 + 0xc05b4);
          }
          else {
            do {
              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);
              if (iVar11 == 0) {
                puVar22[9] = puVar22[9] + 1;
                goto LAB_0009b910;
              }
              puVar22 = (undefined4 *)puVar22[0xb];
              pcVar29 = *(code **)(pcVar28 + 0xc05b4);
            } while (puVar22 != (undefined4 *)0x0);
          }
          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);
          if (puVar22 != (undefined4 *)0x0) {
            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);
            *puVar22 = local_710;
            puVar22[1] = local_70c;
            puVar22[2] = local_708;
            puVar22[3] = local_704;
            if (*(int *)(iVar25 + -0x5dd4) != 0) {
              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);
              puVar22[4] = iVar25;
              if (iVar25 == 0) {
                (**(code **)(pcVar28 + 0xc0474))(puVar22);
                uVar20 = 7;
                goto LAB_0009bb74;
              }
            }
            iVar7 = *(int *)(iVar16 + -0x435c);
            puVar22[0xc] = 0;
            puVar22[9] = 1;
            puVar22[0xb] = iVar7;
            if (iVar7 != 0) {
              *(undefined4 **)(iVar7 + 0x30) = puVar22;
            }
            *(undefined4 **)(iVar16 + -0x435c) = puVar22;
LAB_0009b910:
            pcVar29 = *(code **)(pcVar28 + 0xc0508);
            param_3[2] = (int)puVar22;
            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));
            param_3[5] = 0;
            goto LAB_0009b3f4;
          }
          uVar20 = 7;
        }
        else {
          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();
          uVar20 = 10;
          param_3[5] = *piVar31;
        }
LAB_0009bb74:
        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);
        if (iVar5 == 0) {
          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));
          param_3[5] = 0;
        }
        else {
          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);
          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));
          param_3[5] = 0;
        }
      }
      else {
        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {
LAB_0009b3f0:
          param_3[5] = 0;
LAB_0009b3f4:
          iVar7 = *(int *)(pcVar28 + 0xc0594);
          *param_3 = iVar5;
          (*(code *)(iVar7 + -0x1bfc))(param_3);
          uVar20 = 0;
          goto LAB_0009b410;
        }
        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);
        iVar25 = iVar25 + 6;
        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);
        if (iVar8 != 0) {
          (**(code **)(pcVar28 + 0xc0464))
                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);
          param_3[6] = iVar8;
          goto LAB_0009b3f0;
        }
        iVar5 = *(int *)(pcVar28 + 0xc042c);
        param_3[6] = 0;
        param_3[5] = 0;
        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);
        if (iVar5 == 0) {
          uVar20 = 7;
        }
        else {
          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);
          uVar20 = 7;
        }
      }
LAB_0009b84c:
      pcVar29 = *(code **)(pcVar28 + 0xc0474);
    }
    (*pcVar29)(param_3[7]);
  }
LAB_0009b410:
  if (local_254 == *piVar30) {
    return uVar20;
  }
  pcVar28 = *(code **)(pcVar28 + 0xc0864);
  iVar5 = local_254;
  (*pcVar28)();
  iVar7 = *(int *)(iVar5 + 0x60);
  puVar22 = *(undefined4 **)(iVar5 + 0xd0);
  uVar6 = *(uint *)(iVar5 + 0x4c);
  uVar20 = *(uint *)(iVar5 + 0x98);
  if (*(uint *)(iVar5 + 0x94) <= *(uint *)(iVar5 + 0x98)) {
    uVar20 = *(uint *)(iVar5 + 0x94);
  }
  iVar25 = *(int *)(iVar5 + 0x48);
  if (0 < iVar7) {
    iVar16 = 0;
    iVar8 = 0;
    do {
      iVar8 = iVar8 + 1;
      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;
      iVar16 = iVar16 + 0x30;
      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {
        *(uint *)(iVar12 + 0xc) = uVar6;
        *(int *)(iVar12 + 8) = iVar25;
        iVar7 = *(int *)(iVar5 + 0x60);
        uVar6 = *(uint *)(iVar5 + 0x4c);
        iVar25 = *(int *)(iVar5 + 0x48);
      }
    } while (iVar8 < iVar7);
  }
  if (iVar25 != 0 || uVar6 != 0) {
    uVar21 = *(uint *)(iVar5 + 0x94);
    lVar33 = (**(code **)(pcVar28 + 0xbf8fc))
                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21);
    lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;
    uVar6 = (uint)lVar3;
    iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20);
  }
  *(uint *)(iVar5 + 0x4c) = uVar6;
  *(int *)(iVar5 + 0x48) = iVar25;
  *(uint *)(iVar5 + 0x54) = uVar6;
  *(int *)(iVar5 + 0x50) = iVar25;
  if (*(char *)(iVar5 + 7) == '\0') {
    iVar7 = *(int *)(pcVar28 + 0xbf8f0);
    if (*(char *)(iVar5 + 5) != '\x04') {
      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));
      if ((uVar6 & 0x200) == 0) {
        *(undefined1 *)puVar22 = 0;
        *(undefined1 *)((int)puVar22 + 1) = 0;
        *(undefined1 *)((int)puVar22 + 2) = 0;
        *(undefined1 *)((int)puVar22 + 3) = 0;
        *(undefined1 *)(puVar22 + 1) = 0;
        *(undefined1 *)((int)puVar22 + 5) = 0;
        *(undefined1 *)((int)puVar22 + 6) = 0;
        *(undefined1 *)((int)puVar22 + 7) = 0;
        *(undefined1 *)(puVar22 + 2) = 0;
        *(undefined1 *)((int)puVar22 + 9) = 0;
        *(undefined1 *)((int)puVar22 + 10) = 0;
        *(undefined1 *)((int)puVar22 + 0xb) = 0;
        goto LAB_0009becc;
      }
      goto LAB_0009be98;
    }
  }
  else {
LAB_0009be98:
    iVar7 = *(int *)(pcVar28 + 0xbf8f0);
  }
  uVar32 = *(undefined4 *)(iVar7 + -0x7ce8);
  *puVar22 = *(undefined4 *)(iVar7 + -0x7cec);
  puVar22[1] = uVar32;
  *(undefined1 *)(puVar22 + 2) = 0xff;
  *(undefined1 *)((int)puVar22 + 9) = 0xff;
  *(undefined1 *)((int)puVar22 + 10) = 0xff;
  *(undefined1 *)((int)puVar22 + 0xb) = 0xff;
LAB_0009becc:
  uVar6 = 0;
  sqlite3_randomness(4,iVar5 + 0x30);
  uVar32 = *(undefined4 *)(iVar5 + 0x30);
  *(char *)((int)puVar22 + 0xf) = (char)uVar32;
  *(char *)(puVar22 + 3) = (char)((uint)uVar32 >> 0x18);
  *(char *)((int)puVar22 + 0xd) = (char)((uint)uVar32 >> 0x10);
  *(char *)((int)puVar22 + 0xe) = (char)((uint)uVar32 >> 8);
  uVar32 = *(undefined4 *)(iVar5 + 0x1c);
  pcVar28 = *(code **)(pcVar28 + 0xbfc10);
  *(char *)((int)puVar22 + 0x13) = (char)uVar32;
  *(char *)(puVar22 + 4) = (char)((uint)uVar32 >> 0x18);
  *(char *)((int)puVar22 + 0x11) = (char)((uint)uVar32 >> 0x10);
  *(char *)((int)puVar22 + 0x12) = (char)((uint)uVar32 >> 8);
  uVar32 = *(undefined4 *)(iVar5 + 0x94);
  *(char *)((int)puVar22 + 0x17) = (char)uVar32;
  *(char *)(puVar22 + 5) = (char)((uint)uVar32 >> 0x18);
  *(char *)((int)puVar22 + 0x15) = (char)((uint)uVar32 >> 0x10);
  *(char *)((int)puVar22 + 0x16) = (char)((uint)uVar32 >> 8);
  uVar32 = *(undefined4 *)(iVar5 + 0x98);
  *(char *)((int)puVar22 + 0x1b) = (char)uVar32;
  *(char *)(puVar22 + 6) = (char)((uint)uVar32 >> 0x18);
  *(char *)((int)puVar22 + 0x19) = (char)((uint)uVar32 >> 0x10);
  *(char *)((int)puVar22 + 0x1a) = (char)((uint)uVar32 >> 8);
  (*pcVar28)(puVar22 + 7,0,uVar20 - 0x1c);
  do {
    if (*(uint *)(iVar5 + 0x94) <= uVar6) {
      return 0;
    }
    iVar7 = **(int **)(iVar5 + 0x40);
    uVar6 = uVar6 + uVar20;
    uVar21 = (**(code **)(iVar7 + 0xc))
                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),
                        *(undefined4 *)(iVar5 + 0x4c));
    uVar24 = *(uint *)(iVar5 + 0x4c);
    uVar14 = uVar24 + uVar20;
    *(uint *)(iVar5 + 0x4c) = uVar14;
    *(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48);
  } while (uVar21 == 0);
  return uVar21;
}


lui gp,0xd
addiu gp,gp,-0x737c
addu gp,gp,t9
addiu sp,sp,-0x108
lw v0,-0x7b84(gp)
sw s0,0xe0(sp)
sw s4,0xf0(sp)
or s4,a0,zero
sw s3,0xec(sp)
or s3,a1,zero
sw gp,0x20(sp)
sw ra,0x104(sp)
sw s8,0x100(sp)
sw s7,0xfc(sp)
sw s6,0xf8(sp)
sw s5,0xf4(sp)
sw s2,0xe8(sp)
sw s1,0xe4(sp)
sw v0,0x2c(sp)
lw s0,-0x7fd8(gp)
lw v1,0x0(v0)
lw a0,-0x7d5c(gp)
sb zero,0x0(a1)
sw v1,0xdc(sp)
lw v0,-0x4eb0(s0)
beq v0,zero,0x0009aaec
_lw s1,0x0(a0)
addiu s0,s0,-0x4eb0
lw v0,0x4(s0)
beq v0,zero,0x0009ab10
_nop
lw s2,-0x7fd8(gp)
addiu s6,s0,0x18
addiu s5,sp,0x38
li s8,0x4000
b 0x0009a9c8
_addiu s2,s2,-0x4bb8
lw s1,0x0(s0)
addiu s0,s0,0x4
beq s1,zero,0x0009a9f4
_or a1,s5,zero
lw t9,0x34(s2)
jalr t9
_or a0,s1,zero
bne v0,zero,0x0009a9f4
_lw gp,0x20(sp)
lw v0,0x50(sp)
andi v0,v0,0xf000
beq v0,s8,0x0009aa40
_li a1,0x3
bne s0,s6,0x0009a9c0
_li s7,0x190a
lw v1,0x2c(sp)
or v0,s7,zero
lw a0,0xdc(sp)
lw v1,0x0(v1)
bne a0,v1,0x0009ab2c
_lw ra,0x104(sp)
lw s8,0x100(sp)
lw s7,0xfc(sp)
lw s6,0xf8(sp)
lw s5,0xf4(sp)
lw s4,0xf0(sp)
lw s3,0xec(sp)
lw s2,0xe8(sp)
lw s1,0xe4(sp)
lw s0,0xe0(sp)
jr ra
_addiu sp,sp,0x108
lw t9,0x1c(s2)
jalr t9
_or a0,s1,zero
lw gp,0x20(sp)
bne v0,zero,0x0009a9f4
_or s7,v0,zero
lw s8,-0x7fb4(gp)
addiu s6,s4,-0x2
li s0,0xc
addu s6,s3,s6
addiu s5,sp,0x30
b 0x0009aa88
_addiu s8,s8,-0x73a4
lw t9,0x1c(s2)
jalr t9
_or a0,s3,zero
bne v0,zero,0x0009a9fc
_lw gp,0x20(sp)
lw t9,-0x7d58(gp)
li a0,0x8
bal 0x0009a6f8
_or a1,s5,zero
or a3,s1,zero
lw gp,0x20(sp)
or a2,s8,zero
lw v1,0x34(sp)
or a1,s3,zero
lw v0,0x30(sp)
or a0,s4,zero
sb zero,0x0(s6)
sw zero,0x18(sp)
sw v1,0x14(sp)
lw t9,-0x7fa0(gp)
jalr t9
_sw v0,0x10(sp)
lb v0,0x0(s6)
bne v0,zero,0x0009aae4
_lw gp,0x20(sp)
addiu s0,s0,-0x1
bne s0,zero,0x0009aa74
_or a1,zero,zero
b 0x0009a9fc
_li s7,0x1
lw a0,-0x7fb4(gp)
lw t9,-0x7bcc(gp)
jalr t9
_addiu a0,a0,-0x73bc
sw v0,-0x4eb0(s0)
addiu s0,s0,-0x4eb0
lw v0,0x4(s0)
bne v0,zero,0x0009a9a8
_lw gp,0x20(sp)
lw a0,-0x7fb4(gp)
lw t9,-0x7bcc(gp)
jalr t9
_addiu a0,a0,-0x73ac
lw gp,0x20(sp)
b 0x0009a9a8
_sw v0,0x4(s0)
lw t9,-0x7ba0(gp)
jalr t9
_nop
lui gp,0xd
addiu gp,gp,-0x7588
addu gp,gp,t9
addiu sp,sp,-0x120
sltiu v0,a1,0x15
sw s8,0x118(sp)
sw gp,0x20(sp)
sw ra,0x11c(sp)
sw s7,0x114(sp)
sw s6,0x110(sp)
sw s5,0x10c(sp)
sw s4,0x108(sp)
sw s3,0x104(sp)
sw s2,0x100(sp)
sw s1,0xfc(sp)
sw s0,0xf8(sp)
lw s8,-0x7b84(gp)
lw v1,0x0(s8)
sw v1,0xf4(sp)
beq v0,zero,0x0009b030
_sll v0,a1,0x2
lw a1,-0x7fb4(gp)
addiu a1,a1,0xd74
addu a1,a1,v0
lw v0,0x0(a1)
addu v0,v0,gp
jr v0
_or s3,a0,zero
lw a0,0xf4(sp)
or v0,v1,zero
lw v1,0x0(s8)
bne a0,v1,0x0009b1a0
_lw ra,0x11c(sp)
lw s8,0x118(sp)
lw s7,0x114(sp)
lw s6,0x110(sp)
lw s5,0x10c(sp)
lw s4,0x108(sp)
lw s3,0x104(sp)
lw s2,0x100(sp)
lw s1,0xfc(sp)
lw s0,0xf8(sp)
jr ra
_addiu sp,sp,0x120
b 0x0009abd0
_li v1,0xc
lw t9,-0x7ba0(gp)
jalr t9
_nop
lui gp,0xd
addiu gp,gp,-0x7bfc
addu gp,gp,t9
addiu sp,sp,-0x528
lw v0,0x538(sp)
sw s6,0x518(sp)
sw s8,0x520(sp)
or s8,a3,zero
sw s7,0x51c(sp)
andi s7,a3,0x4
sw s5,0x514(sp)
or s5,a0,zero
sw s3,0x50c(sp)
or s3,a1,zero
sw s2,0x508(sp)
li s2,-0x100
sw s1,0x504(sp)
andi s1,a3,0x8
sw s0,0x500(sp)
and s2,a3,s2
sw gp,0x10(sp)
or s0,a2,zero
sw ra,0x524(sp)
sw s4,0x510(sp)
sw v0,0x28(sp)
lw s6,-0x7b84(gp)
lw v0,0x0(s6)
sw v0,0x4fc(sp)
andi v0,a3,0x10
sw v0,0x1c(sp)
andi v0,a3,0x1
sw v0,0x24(sp)
andi v0,a3,0x2
beq s7,zero,0x0009b450
_sw v0,0x18(sp)
li v0,0x4000
beq s2,v0,0x0009b5d4
_li v0,0x800
beq s2,v0,0x0009b5d4
_lui v0,0xfff8
lw s4,-0x7fd8(gp)
lw t9,-0x7bc4(gp)
addu v0,s2,v0
sltiu v0,v0,0x1
jalr t9
_sw v0,0x20(sp)
lw a0,-0x4354(s4)
bne v0,a0,0x0009b46c
_lw gp,0x10(sp)
lw t9,-0x7bfc(gp)
li a2,0x58
or a1,zero,zero
jalr t9
_or a0,s0,zero
li v0,0x100
beq s2,v0,0x0009b650
_lw gp,0x10(sp)
beq s3,zero,0x0009b618
_lw t9,-0x7eac(gp)
li s4,-0x1
or t1,s3,zero
beq s7,zero,0x0009b2ac
_lw t0,0x18(sp)
ori t0,t0,0x100
lw v0,0x1c(sp)
bne v0,zero,0x0009b498
_lui v0,0x2
bltz s4,0x0009b4a8
_lui s7,0x8
lw v0,0x28(sp)
beq v0,zero,0x0009b2d0
_nop
sw s8,0x0(v0)
lw v0,0x1c(s0)
beq v0,zero,0x0009b2e8
_nop
sw s4,0x0(v0)
lw v0,0x1c(s0)
sw s8,0x4(v0)
beq s1,zero,0x0009b30c
_lw v0,0x24(sp)
lw v0,-0x7fd8(gp)
or a0,t1,zero
lw t9,-0x4af4(v0)
jalr t9
_li s1,0x20
lw gp,0x10(sp)
lw v0,0x24(sp)
bne v0,zero,0x0009b5cc
_nop
li v0,0x100
beq s2,v0,0x0009b324
_lw v0,0x20(sp)
ori s1,s1,0x80
beq v0,zero,0x0009b330
_andi v1,s8,0x40
ori s1,s1,0x8
bne v1,zero,0x0009b5bc
_lw s2,-0x7fd8(gp)
or a0,zero,zero
sw s4,0xc(s0)
addiu s2,s2,-0x5dd8
lw a1,-0x7fb4(gp)
lw t9,-0x7dbc(gp)
li a2,0x1
sw s5,0x4(s0)
sw s3,0x20(s0)
addiu a1,a1,-0x7388
sh s1,0x12(s0)
lw v1,0xbc(s2)
lw v0,0xb8(s2)
sw v1,0x44(s0)
jalr t9
_sw v0,0x40(s0)
beq v0,zero,0x0009b388
_lw gp,0x10(sp)
lhu v0,0x12(s0)
ori v0,v0,0x10
sh v0,0x12(s0)
lw a1,-0x7fb4(gp)
lw t9,-0x7b54(gp)
lw a0,0x10(s5)
jalr t9
_addiu a1,a1,-0x7380
bne v0,zero,0x0009b3b0
_lw gp,0x10(sp)
lhu v0,0x12(s0)
ori v0,v0,0x1
sh v0,0x12(s0)
andi s1,s1,0x80
bne s1,zero,0x0009b644
_or a1,s0,zero
lw v0,0x14(s5)
lw t9,0x0(v0)
jalr t9
_or a0,s3,zero
lw gp,0x10(sp)
or s5,v0,zero
lw v0,-0x7fd8(gp)
addiu v0,v0,-0x651c
beq s5,v0,0x0009b870
_lw v0,-0x7fd8(gp)
addiu v0,v0,-0x65bc
beq s5,v0,0x0009b780
_lw t9,-0x7bec(gp)
sw zero,0x14(s0)
lw t9,-0x7e70(gp)
or a0,s0,zero
addiu t9,t9,-0x1bfc
jalr t9
_sw s5,0x0(s0)
or a2,zero,zero
lw gp,0x10(sp)
lw a0,0x4fc(sp)
or v0,a2,zero
lw v1,0x0(s6)
bne a0,v1,0x0009bd98
_lw ra,0x524(sp)
lw s8,0x520(sp)
lw s7,0x51c(sp)
lw s6,0x518(sp)
lw s5,0x514(sp)
lw s4,0x510(sp)
lw s3,0x50c(sp)
lw s2,0x508(sp)
lw s1,0x504(sp)
lw s0,0x500(sp)
jr ra
_addiu sp,sp,0x528
lw s4,-0x7fd8(gp)
lw t9,-0x7bc4(gp)
jalr t9
_sw zero,0x20(sp)
lw a0,-0x4354(s4)
beq v0,a0,0x0009b270
_lw gp,0x10(sp)
lw t9,-0x7bc4(gp)
jalr t9
_nop
or a1,zero,zero
lw gp,0x10(sp)
or a0,zero,zero
lw t9,-0x7d58(gp)
bal 0x0009a6f8
_sw v0,-0x4354(s4)
b 0x0009b270
_lw gp,0x10(sp)
addiu v0,v0,0x400
bgez s4,0x0009b2c0
_or t0,t0,v0
lui s7,0x8
addiu s7,s7,0x800
and s7,s8,s7
beq s7,zero,0x0009b75c
_ori t2,t0,0x2000
beq t1,zero,0x0009bbec
_lw t9,-0x7bec(gp)
or a0,t1,zero
sw t2,0x30(sp)
sw t0,0x2c(sp)
jalr t9
_sw t1,0x1c(sp)
li a0,0x2d
ext v0,v0,0x0,0x1e
lw t1,0x1c(sp)
lw gp,0x10(sp)
addiu s4,v0,-0x1
lw t0,0x2c(sp)
lw t2,0x30(sp)
addu v0,t1,s4
lb v0,0x0(v0)
beq v0,a0,0x0009b540
_or a2,s4,zero
beq s4,zero,0x0009b934
_or a3,zero,zero
li a0,0x2e
beq v0,a0,0x0009b930
_li a0,0x2d
b 0x0009b52c
_li a1,0x2e
beq s4,zero,0x0009b934
_or a3,zero,zero
beq v0,a1,0x0009b934
_nop
addiu s4,s4,-0x1
addu v0,t1,s4
lb v0,0x0(v0)
bne v0,a0,0x0009b51c
_or a2,s4,zero
lw t9,-0x7bdc(gp)
addiu t3,sp,0xf4
li a3,0x201
sw t2,0x38(sp)
or a1,t1,zero
sw t0,0x34(sp)
or a0,t3,zero
jalr t9
_sw t1,0x30(sp)
addiu a1,sp,0x50
lw gp,0x10(sp)
or t3,v0,zero
addiu v0,sp,0x500
addu s4,v0,s4
lw v0,-0x7fd8(gp)
sb zero,-0x40c(s4)
lw t9,-0x4b84(v0)
jalr t9
_or a0,t3,zero
bne v0,zero,0x0009bc08
_lw gp,0x10(sp)
lw v0,0x70(sp)
lw a3,0x68(sp)
lw t1,0x30(sp)
lw t0,0x34(sp)
lw t2,0x38(sp)
andi a3,a3,0x1ff
sw v0,0x2c(sp)
lw v0,0x74(sp)
b 0x0009b93c
_sw v0,0x1c(sp)
ori s1,s1,0x40
sw s4,0xc(s0)
b 0x0009b340
_or a0,s3,zero
b 0x0009b314
_ori s1,s1,0x2
lw s4,-0x7fd8(gp)
lw t9,-0x7bc4(gp)
jalr t9
_nop
lw a0,-0x4354(s4)
bne a0,v0,0x0009b750
_lw gp,0x10(sp)
lw t9,-0x7bfc(gp)
li a2,0x58
or a1,zero,zero
jalr t9
_or a0,s0,zero
li v0,0x1
lw gp,0x10(sp)
bne s3,zero,0x0009b298
_sw v0,0x20(sp)
lw t9,-0x7eac(gp)
addiu s4,sp,0x2f8
lw a0,0x8(s5)
addiu t9,t9,-0x56d4
bal 0x0009a92c
_or a1,s4,zero
lw gp,0x10(sp)
bne v0,zero,0x0009b410
_or a2,v0,zero
or t1,s4,zero
b 0x0009b2a0
_li s4,-0x1
lw s5,-0x7fd8(gp)
b 0x0009b3f0
_addiu s5,s5,-0x656c
lw v0,-0x7fd8(gp)
lw s4,-0x7fd8(gp)
lw t9,-0x7f00(gp)
sw v0,0x2c(sp)
jalr t9
_lw a0,-0x4358(v0)
lw v0,-0x435c(s4)
beq v0,zero,0x0009b7d4
_lw gp,0x10(sp)
lw v0,-0x7fd8(gp)
addiu a1,sp,0x50
lw t9,-0x4b84(v0)
jalr t9
_or a0,s3,zero
bne v0,zero,0x0009b7d4
_lw gp,0x10(sp)
lw s4,-0x435c(s4)
beq s4,zero,0x0009b7d4
_lw a1,0x50(sp)
lw a0,0x60(sp)
b 0x0009b6b4
_lw a2,0x64(sp)
lw s4,0x2c(s4)
beq s4,zero,0x0009b7d8
_lw v0,0x2c(sp)
lw v0,0x0(s4)
bne v0,zero,0x0009b6a8
_nop
lw v0,0x4(s4)
bne v0,a1,0x0009b6a8
_nop
lw v0,0x8(s4)
bne v0,a0,0x0009b6a8
_nop
lw v0,0xc(s4)
bne v0,a2,0x0009b6a8
_lw t9,-0x7f00(gp)
jalr t9
_lw a0,0x10(s4)
lw a0,0x20(s4)
beq a0,zero,0x0009b728
_lw gp,0x10(sp)
lw v0,0x4(a0)
bne s8,v0,0x0009b71c
_addiu a1,s4,0x20
b 0x0009bb18
_or v0,a0,zero
lw a1,0x4(v0)
beq s8,a1,0x0009bb18
_addiu a1,a0,0x8
or a0,v0,zero
lw v0,0x8(a0)
bne v0,zero,0x0009b70c
_nop
lw t9,-0x7efc(gp)
jalr t9
_lw a0,0x10(s4)
lw gp,0x10(sp)
lw v0,0x2c(sp)
lw t9,-0x7efc(gp)
jalr t9
_lw a0,-0x4358(v0)
b 0x0009b7e8
_lw gp,0x10(sp)
li v0,0x1
b 0x0009b46c
_sw v0,0x20(sp)
bne s1,zero,0x0009b9a4
_li a3,0x180
andi v0,s8,0x40
bne v0,zero,0x0009ba90
_lw a1,-0x7fb4(gp)
sw zero,0x1c(sp)
or a3,zero,zero
b 0x0009b9ac
_sw zero,0x2c(sp)
jalr t9
_or a0,s3,zero
lw gp,0x10(sp)
addiu s1,v0,0x6
sra a0,s1,0x1f
lw t9,-0x7e50(gp)
jalr t9
_or a1,s1,zero
lw gp,0x10(sp)
beq v0,zero,0x0009b810
_or s2,v0,zero
lw a2,-0x7fb4(gp)
or a3,s3,zero
lw t9,-0x7fa0(gp)
or a1,v0,zero
or a0,s1,zero
jalr t9
_addiu a2,a2,-0x7374
lw gp,0x10(sp)
b 0x0009b3f0
_sw s2,0x18(s0)
lw v0,0x2c(sp)
lw t9,-0x7efc(gp)
jalr t9
_lw a0,-0x4358(v0)
lw gp,0x10(sp)
lw t9,-0x7e50(gp)
li a1,0xc
jalr t9
_or a0,zero,zero
beq v0,zero,0x0009bb10
_lw gp,0x10(sp)
li s4,-0x1
sw v0,0x1c(s0)
b 0x0009b2a0
_or t1,s3,zero
lw v0,-0x7fd8(gp)
sw zero,0x18(s0)
sw zero,0x14(s0)
lw t9,-0x4ba8(v0)
jalr t9
_or a0,s4,zero
beq v0,zero,0x0009b868
_lw gp,0x10(sp)
lw t9,-0x7e70(gp)
ori a1,zero,0x9497
addiu t9,t9,-0x37ac
jalr t9
_or a0,s0,zero
li a2,0x7
lw gp,0x10(sp)
lw t9,-0x7f90(gp)
lw a0,0x1c(s0)
jalr t9
_sw a2,0x18(sp)
lw gp,0x10(sp)
b 0x0009b410
_lw a2,0x18(sp)
b 0x0009b84c
_li a2,0x7
lw v0,-0x7fd8(gp)
lw t9,-0x7f00(gp)
sw v0,0x2c(sp)
jalr t9
_lw a0,-0x4358(v0)
addiu a1,sp,0x50
lw gp,0x10(sp)
lw s3,-0x7fd8(gp)
addiu s3,s3,-0x4bb8
lw t9,0x40(s3)
jalr t9
_lw a0,0xc(s0)
bne v0,zero,0x0009bb5c
_lw gp,0x10(sp)
lw s7,-0x7fd8(gp)
addiu s8,sp,0x40
lw v0,0x50(sp)
lw v1,0x64(sp)
sw zero,0x40(sp)
sw v0,0x44(sp)
sw v1,0x4c(sp)
lw v0,0x60(sp)
lw s1,-0x435c(s7)
bne s1,zero,0x0009b8e8
_sw v0,0x48(sp)
b 0x0009bc10
_lw t9,-0x7e50(gp)
lw s1,0x2c(s1)
beq s1,zero,0x0009bc10
_lw t9,-0x7e50(gp)
lw t9,-0x7b94(gp)
li a2,0x10
or a1,s1,zero
jalr t9
_or a0,s8,zero
bne v0,zero,0x0009b8dc
_lw gp,0x10(sp)
lw v0,0x24(s1)
addiu v0,v0,0x1
sw v0,0x24(s1)
lw v0,0x2c(sp)
lw t9,-0x7efc(gp)
sw s1,0x8(s0)
jalr t9
_lw a0,-0x4358(v0)
lw gp,0x10(sp)
b 0x0009b3f4
_sw zero,0x14(s0)
or a3,zero,zero
sw zero,0x1c(sp)
sw zero,0x2c(sp)
lw v0,-0x7e70(gp)
or a2,a3,zero
sw t0,0x38(sp)
or a0,t1,zero
sw a3,0x34(sp)
or a1,t2,zero
addiu t9,v0,-0x3efc
sw t1,0x30(sp)
jalr t9
_sw t9,0x3c(sp)
lw gp,0x10(sp)
or s4,v0,zero
lw t1,0x30(sp)
lw a3,0x34(sp)
bltz v0,0x0009b9ec
_lw t0,0x38(sp)
lw t9,-0x7ed8(gp)
or a0,s4,zero
lw a2,0x1c(sp)
lw a1,0x2c(sp)
addiu t9,t9,0xfd8
jalr t9
_sw t1,0x18(sp)
lw gp,0x10(sp)
b 0x0009b2c0
_lw t1,0x18(sp)
sw zero,0x1c(sp)
sw zero,0x2c(sp)
lw v0,-0x7e70(gp)
or a0,t1,zero
sw t1,0x30(sp)
or a2,a3,zero
sw t0,0x38(sp)
or a1,t2,zero
addiu t9,v0,-0x3efc
sw a3,0x34(sp)
jalr t9
_sw t9,0x3c(sp)
lw gp,0x10(sp)
or s4,v0,zero
bgez v0,0x0009b2c0
_lw t1,0x30(sp)
lw a3,0x34(sp)
lw t0,0x38(sp)
lw t9,-0x7c04(gp)
sw a3,0x34(sp)
sw t1,0x30(sp)
jalr t9
_sw t0,0x24(sp)
lw v1,0x20(sp)
or s4,v0,zero
lw gp,0x10(sp)
lw v0,0x0(v0)
lw t0,0x24(sp)
lw t1,0x30(sp)
beq v1,zero,0x0009ba2c
_lw a3,0x34(sp)
li a0,0xd
beq v0,a0,0x0009bcec
_or a1,zero,zero
li a0,0x15
beq v0,a0,0x0009ba40
_lw v0,0x18(sp)
bne v0,zero,0x0009bca0
_li a1,-0x103
lw t9,-0x7e70(gp)
ori a0,zero,0x9634
addiu t9,t9,-0x7628
jalr t9
_sw t1,0x18(sp)
ori a3,zero,0x9634
lw gp,0x10(sp)
or a0,v0,zero
lw t1,0x18(sp)
lw a1,-0x7fc8(gp)
or a2,t1,zero
lw t9,-0x7e70(gp)
addiu t9,t9,-0x3d4c
jalr t9
_addiu a1,a1,0x7284
or a2,v0,zero
beq a2,zero,0x0009b410
_lw gp,0x10(sp)
b 0x0009b850
_lw t9,-0x7f90(gp)
or a0,t1,zero
lw t9,-0x7e88(gp)
sw t2,0x30(sp)
addiu a1,a1,-0x7390
sw t0,0x2c(sp)
jalr t9
_sw t1,0x1c(sp)
lw gp,0x10(sp)
lw t1,0x1c(sp)
lw t0,0x2c(sp)
beq v0,zero,0x0009b770
_lw t2,0x30(sp)
or a0,v0,zero
lw v0,-0x7fd8(gp)
sw t2,0x38(sp)
sw t1,0x34(sp)
sw t0,0x30(sp)
lw t9,-0x4b84(v0)
jalr t9
_addiu a1,sp,0x50
bne v0,zero,0x0009bc08
_lw gp,0x10(sp)
lw v0,0x70(sp)
lw a3,0x68(sp)
lw t0,0x30(sp)
lw t1,0x34(sp)
lw t2,0x38(sp)
andi a3,a3,0x1ff
sw v0,0x2c(sp)
lw v0,0x74(sp)
b 0x0009b9ac
_sw v0,0x1c(sp)
b 0x0009b410
_li a2,0x7
lw a0,0x8(v0)
lw t9,-0x7efc(gp)
sw v0,0x30(sp)
sw a0,0x0(a1)
jalr t9
_lw a0,0x10(s4)
lw gp,0x10(sp)
lw v0,0x2c(sp)
lw t9,-0x7efc(gp)
jalr t9
_lw a0,-0x4358(v0)
or t1,s3,zero
lw v0,0x30(sp)
lw gp,0x10(sp)
lw s4,0x0(v0)
b 0x0009b2a0
_sw v0,0x1c(s0)
lw t9,-0x7c04(gp)
jalr t9
_nop
li a2,0xa
lw v0,0x0(v0)
sw v0,0x14(s0)
lw t9,0x10(s3)
or a0,s4,zero
jalr t9
_sw a2,0x18(sp)
lw gp,0x10(sp)
beq v0,zero,0x0009bbc8
_lw a2,0x18(sp)
lw t9,-0x7e70(gp)
ori a1,zero,0x9442
addiu t9,t9,-0x37ac
jalr t9
_or a0,s0,zero
lw gp,0x10(sp)
lw v0,0x2c(sp)
lw t9,-0x7efc(gp)
jalr t9
_lw a0,-0x4358(v0)
lw gp,0x10(sp)
lw a2,0x18(sp)
b 0x0009b84c
_sw zero,0x14(s0)
lw v0,0x2c(sp)
lw t9,-0x7efc(gp)
sw a2,0x18(sp)
jalr t9
_lw a0,-0x4358(v0)
lw gp,0x10(sp)
lw a2,0x18(sp)
b 0x0009b84c
_sw zero,0x14(s0)
lb v0,-0x1(zero)
li a0,0x2d
li s4,-0x1
bne v0,a0,0x0009b508
_li a2,-0x1
b 0x0009b544
_lw t9,-0x7bdc(gp)
b 0x0009b410
_li a2,0x70a
li a1,0x38
jalr t9
_or a0,zero,zero
lw gp,0x10(sp)
beq v0,zero,0x0009bd90
_or s1,v0,zero
lw t9,-0x7bfc(gp)
or a1,zero,zero
addiu a0,s1,0x10
jalr t9
_li a2,0x28
lw a1,0x40(sp)
lw a0,0x44(sp)
lw gp,0x10(sp)
lw v1,0x48(sp)
lw v0,0x4c(sp)
swl a1,0x0(s1)
swr a1,0x3(s1)
swl a0,0x4(s1)
swr a0,0x7(s1)
swl v1,0x8(s1)
swr v1,0xb(s1)
swl v0,0xc(s1)
swr v0,0xf(s1)
lw v0,0x4(s2)
bne v0,zero,0x0009bd20
_lw t9,-0x7dc0(gp)
lw v0,-0x435c(s7)
li v1,0x1
sw zero,0x30(s1)
sw v1,0x24(s1)
beq v0,zero,0x0009bc98
_sw v0,0x2c(s1)
sw s1,0x30(v0)
b 0x0009b910
_sw s1,-0x435c(s7)
lw t9,0x3c(sp)
li v0,-0x7
sw t1,0x18(sp)
and a1,t0,a1
and v1,s8,v0
or a0,t1,zero
or a2,a3,zero
ori a1,a1,0x2000
jalr t9
_ori s8,v1,0x1
lw gp,0x10(sp)
or s4,v0,zero
bltz v0,0x0009ba40
_lw t1,0x18(sp)
li v0,0x1
bne s7,zero,0x0009b97c
_sw v0,0x24(sp)
b 0x0009b2c4
_lw v0,0x28(sp)
lw v0,-0x7fd8(gp)
sw t1,0x24(sp)
sw t0,0x30(sp)
lw t9,-0x4b9c(v0)
jalr t9
_or a0,t1,zero
lw gp,0x10(sp)
bne v0,zero,0x0009bd48
_lw t1,0x24(sp)
lw v0,0x0(s4)
lw a3,0x34(sp)
b 0x0009ba2c
_lw t0,0x30(sp)
jalr t9
_or a0,zero,zero
lw gp,0x10(sp)
bne v0,zero,0x0009bc7c
_sw v0,0x10(s1)
lw t9,-0x7f90(gp)
jalr t9
_or a0,s1,zero
b 0x0009bb74
_li a2,0x7
lw t9,-0x7e70(gp)
ori a0,zero,0x9634
addiu t9,t9,-0x7628
jalr t9
_sw t1,0x18(sp)
ori a3,zero,0x9634
lw gp,0x10(sp)
or a0,v0,zero
lw t1,0x18(sp)
lw a1,-0x7fc8(gp)
or a2,t1,zero
lw t9,-0x7e70(gp)
addiu t9,t9,-0x3d4c
jalr t9
_addiu a1,a1,0x7284
li a2,0x608
b 0x0009b84c
_lw gp,0x10(sp)
b 0x0009bb74
_li a2,0x7
lw t9,-0x7ba0(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nuint FUN_0009a92c(int param_1,undefined4 *param_2,int *param_3,uint param_4)\n\n{\n  char cVar1;\n  bool bVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  int in_zero;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  uint uVar14;\n  undefined4 *puVar15;\n  int iVar16;\n  int *piVar17;\n  undefined4 *puVar18;\n  uint *puVar19;\n  uint uVar20;\n  uint uVar21;\n  undefined4 *puVar22;\n  undefined *puVar23;\n  uint uVar24;\n  int iVar25;\n  uint *puVar26;\n  undefined *puVar27;\n  code *pcVar28;\n  code *pcVar29;\n  int *piVar30;\n  int *piVar31;\n  undefined4 uVar32;\n  longlong lVar33;\n  undefined4 local_734;\n  uint local_72c;\n  undefined4 local_724;\n  code *local_714;\n  undefined4 local_710;\n  int local_70c;\n  int local_708;\n  int local_704;\n  int local_700 [4];\n  int local_6f0;\n  int local_6ec;\n  uint local_6e8;\n  undefined4 local_6e0;\n  undefined4 local_6dc;\n  undefined1 auStack_65c [516];\n  undefined4 auStack_458 [129];\n  int local_254;\n  uint *local_250;\n  uint local_24c;\n  undefined *local_248;\n  undefined4 *local_244;\n  int local_240;\n  undefined4 *local_23c;\n  uint *local_238;\n  uint local_234;\n  int *local_230;\n  undefined4 local_22c;\n  uint *local_218;\n  undefined *local_208;\n  int local_134;\n  uint *local_130;\n  uint local_12c;\n  undefined *local_128;\n  undefined4 *local_124;\n  int local_120;\n  undefined4 *local_11c;\n  uint *local_118;\n  uint local_114;\n  int *local_110;\n  undefined4 local_10c;\n  undefined4 local_f8;\n  undefined4 local_f4;\n  undefined4 local_f0;\n  undefined4 local_d8;\n  undefined4 local_d4;\n  undefined4 auStack_d0 [6];\n  uint local_b8;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0015ba2c;\n  puVar27 = PTR_sqlite3_temp_directory_0015b854;\n  puVar23 = PTR_DAT_0015b5d8;\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  *(undefined1 *)param_2 = 0;\n  uVar20 = *(uint *)puVar27;\n  if (*(int *)(puVar23 + -0x4eb0) == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc);\n    *(undefined4 *)(puVar23 + -0x4eb0) = uVar32;\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }\n  else {\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }\n  if (iVar5 == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac);\n    *(undefined4 *)(puVar23 + -0x4eac) = uVar32;\n  }\n  puVar27 = PTR_DAT_0015b5d8;\n  puVar19 = (uint *)(puVar23 + -0x4eb0);\n  puVar26 = (uint *)(puVar23 + -0x4e98);\n  puVar22 = auStack_d0;\n  piVar30 = (int *)0x4000;\n  puVar23 = PTR_DAT_0015b5d8 + -0x4bb8;\n  while( true ) {\n    puVar15 = puVar22;\n    if ((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)) {\n      puVar19 = (uint *)&DAT_0000000c;\n      puVar26 = (uint *)((int)param_2 + param_1 + -2);\n      puVar22 = &local_d8;\n      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);\n      goto LAB_0009aa88;\n    }\n    local_234 = 0x190a;\n    if (puVar19 == puVar26) break;\n    uVar20 = *puVar19;\n    puVar19 = puVar19 + 1;\n  }\n  goto LAB_0009a9fc;\njoined_r0x0009b6fc:\n  if (param_4 == uVar20) goto LAB_0009bb18;\n  piVar10 = (int *)piVar13[2];\n  if (piVar10 == (int *)0x0) goto LAB_0009b728;\n  uVar20 = piVar10[1];\n  piVar17 = piVar13 + 2;\n  piVar13 = piVar10;\n  goto joined_r0x0009b6fc;\nLAB_0009bb18:\n  pcVar29 = *(code **)(pcVar28 + 0xc0508);\n  *piVar17 = piVar13[2];\n  (*pcVar29)(piVar31[4]);\n  (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\n  iVar7 = *piVar13;\n  param_3[7] = (int)piVar13;\n  goto LAB_0009b2a0;\nLAB_0009b728:\n  (**(code **)(pcVar28 + 0xc0508))(piVar31[4]);\n  (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\n  goto LAB_0009b7e8;\n  while( true ) {\n    puVar19 = (uint *)((int)puVar19 + -1);\n    puVar15 = (undefined4 *)0x0;\n    if (puVar19 == (uint *)0x0) goto LAB_0009aae4;\n    iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2);\n    local_234 = 0;\n    if (iVar5 != 0) break;\nLAB_0009aa88:\n    sqlite3_randomness(8,puVar22);\n    *(char *)puVar26 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar15 = param_2;\n    param_3 = piVar30;\n    param_4 = uVar20;\n    (*(code *)PTR_sqlite3_snprintf_0015b610)(param_1);\n    if (*(char *)puVar26 != '\0') {\nLAB_0009aae4:\n      local_234 = 1;\n      break;\n    }\n  }\nLAB_0009a9fc:\n  if (local_2c == *(int *)puVar4) {\n    return local_234;\n  }\n  uVar32 = 0x9ab38;\n  puVar27 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  local_208 = puVar27 + 0xc8a78;\n  piVar31 = *(int **)(puVar27 + 0xc0ef4);\n  iVar5 = *piVar31;\n  local_134 = iVar5;\n  local_130 = puVar19;\n  local_12c = uVar20;\n  local_128 = puVar23;\n  local_124 = param_2;\n  local_120 = param_1;\n  local_11c = puVar22;\n  local_118 = puVar26;\n  local_114 = local_234;\n  local_110 = piVar30;\n  local_10c = uVar32;\n  if (puVar15 < (undefined4 *)0x15) {\n                    /* WARNING: Could not recover jumptable at 0x0009aba0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))();\n    return uVar20;\n  }\n  if (iVar5 == *piVar31) {\n    return 0xc;\n  }\n  pcVar28 = *(code **)(puVar27 + 0xc0ed8);\n  uVar32 = 0x9b1ac;\n  (*pcVar28)();\n  uVar21 = param_4 & 8;\n  uVar24 = param_4 & 0xffffff00;\n  piVar30 = *(int **)(pcVar28 + 0xc0880);\n  local_254 = *piVar30;\n  local_72c = param_4 & 1;\n  uVar6 = param_4 & 2;\n  puVar18 = puVar15;\n  local_250 = puVar19;\n  local_24c = uVar20;\n  local_248 = puVar23;\n  local_244 = param_2;\n  local_240 = param_1;\n  local_23c = puVar22;\n  local_238 = puVar26;\n  local_230 = piVar31;\n  local_22c = uVar32;\n  if ((param_4 & 4) == 0) {\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    bVar2 = false;\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (iVar7 != *(int *)(iVar25 + -0x4354)) goto LAB_0009b46c;\nLAB_0009b270:\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    if (uVar24 == 0x100) {\n      iVar7 = *(int *)(pcVar28 + 0xc042c);\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));\n      if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }\n      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\nLAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);\n      if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }\n      uVar20 = 7;\n    }\n    else {\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }\n  }\n  else {\n    if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (*(int *)(iVar25 + -0x4354) != iVar7) {\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    bVar2 = true;\n    if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;\nLAB_0009b298:\n    iVar7 = -1;\nLAB_0009b2a0:\n    uVar20 = uVar6;\n    if ((param_4 & 4) != 0) {\n      uVar20 = uVar6 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    (*pcVar29)(param_3[7]);\n  }\nLAB_0009b410:\n  if (local_254 == *piVar30) {\n    return uVar20;\n  }\n  pcVar28 = *(code **)(pcVar28 + 0xc0864);\n  iVar5 = local_254;\n  (*pcVar28)();\n  iVar7 = *(int *)(iVar5 + 0x60);\n  puVar22 = *(undefined4 **)(iVar5 + 0xd0);\n  uVar6 = *(uint *)(iVar5 + 0x4c);\n  uVar20 = *(uint *)(iVar5 + 0x98);\n  if (*(uint *)(iVar5 + 0x94) <= *(uint *)(iVar5 + 0x98)) {\n    uVar20 = *(uint *)(iVar5 + 0x94);\n  }\n  iVar25 = *(int *)(iVar5 + 0x48);\n  if (0 < iVar7) {\n    iVar16 = 0;\n    iVar8 = 0;\n    do {\n      iVar8 = iVar8 + 1;\n      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;\n      iVar16 = iVar16 + 0x30;\n      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }\n    } while (iVar8 < iVar7);\n  }\n  if (iVar25 != 0 || uVar6 != 0) {\n    uVar21 = *(uint *)(iVar5 + 0x94);\n    lVar33 = (**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21);\n    lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar6 = (uint)lVar3;\n    iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20);\n  }\n  *(uint *)(iVar5 + 0x4c) = uVar6;\n  *(int *)(iVar5 + 0x48) = iVar25;\n  *(uint *)(iVar5 + 0x54) = uVar6;\n  *(int *)(iVar5 + 0x50) = iVar25;\n  if (*(char *)(iVar5 + 7) == '\0') {\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n    if (*(char *)(iVar5 + 5) != '\x04') {\n      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }\n      goto LAB_0009be98;\n    }\n  }\n  else {\nLAB_0009be98:\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n  }\n  uVar32 = *(undefined4 *)(iVar7 + -0x7ce8);\n  *puVar22 = *(undefined4 *)(iVar7 + -0x7cec);\n  puVar22[1] = uVar32;\n  *(undefined1 *)(puVar22 + 2) = 0xff;\n  *(undefined1 *)((int)puVar22 + 9) = 0xff;\n  *(undefined1 *)((int)puVar22 + 10) = 0xff;\n  *(undefined1 *)((int)puVar22 + 0xb) = 0xff;\nLAB_0009becc:\n  uVar6 = 0;\n  sqlite3_randomness(4,iVar5 + 0x30);\n  uVar32 = *(undefined4 *)(iVar5 + 0x30);\n  *(char *)((int)puVar22 + 0xf) = (char)uVar32;\n  *(char *)(puVar22 + 3) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0xd) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0xe) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x1c);\n  pcVar28 = *(code **)(pcVar28 + 0xbfc10);\n  *(char *)((int)puVar22 + 0x13) = (char)uVar32;\n  *(char *)(puVar22 + 4) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x11) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x12) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x94);\n  *(char *)((int)puVar22 + 0x17) = (char)uVar32;\n  *(char *)(puVar22 + 5) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x15) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x16) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x98);\n  *(char *)((int)puVar22 + 0x1b) = (char)uVar32;\n  *(char *)(puVar22 + 6) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x19) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x1a) = (char)((uint)uVar32 >> 8);\n  (*pcVar28)(puVar22 + 7,0,uVar20 - 0x1c);\n  do {\n    if (*(uint *)(iVar5 + 0x94) <= uVar6) {\n      return 0;\n    }\n    iVar7 = **(int **)(iVar5 + 0x40);\n    uVar6 = uVar6 + uVar20;\n    uVar21 = (**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c));\n    uVar24 = *(uint *)(iVar5 + 0x4c);\n    uVar14 = uVar24 + uVar20;\n    *(uint *)(iVar5 + 0x4c) = uVar14;\n    *(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48);\n  } while (uVar21 == 0);\n  return uVar21;\n}\n\n" comment (function_definition "uint FUN_0009a92c(int param_1,undefined4 *param_2,int *param_3,uint param_4)\n\n{\n  char cVar1;\n  bool bVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  int in_zero;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  uint uVar14;\n  undefined4 *puVar15;\n  int iVar16;\n  int *piVar17;\n  undefined4 *puVar18;\n  uint *puVar19;\n  uint uVar20;\n  uint uVar21;\n  undefined4 *puVar22;\n  undefined *puVar23;\n  uint uVar24;\n  int iVar25;\n  uint *puVar26;\n  undefined *puVar27;\n  code *pcVar28;\n  code *pcVar29;\n  int *piVar30;\n  int *piVar31;\n  undefined4 uVar32;\n  longlong lVar33;\n  undefined4 local_734;\n  uint local_72c;\n  undefined4 local_724;\n  code *local_714;\n  undefined4 local_710;\n  int local_70c;\n  int local_708;\n  int local_704;\n  int local_700 [4];\n  int local_6f0;\n  int local_6ec;\n  uint local_6e8;\n  undefined4 local_6e0;\n  undefined4 local_6dc;\n  undefined1 auStack_65c [516];\n  undefined4 auStack_458 [129];\n  int local_254;\n  uint *local_250;\n  uint local_24c;\n  undefined *local_248;\n  undefined4 *local_244;\n  int local_240;\n  undefined4 *local_23c;\n  uint *local_238;\n  uint local_234;\n  int *local_230;\n  undefined4 local_22c;\n  uint *local_218;\n  undefined *local_208;\n  int local_134;\n  uint *local_130;\n  uint local_12c;\n  undefined *local_128;\n  undefined4 *local_124;\n  int local_120;\n  undefined4 *local_11c;\n  uint *local_118;\n  uint local_114;\n  int *local_110;\n  undefined4 local_10c;\n  undefined4 local_f8;\n  undefined4 local_f4;\n  undefined4 local_f0;\n  undefined4 local_d8;\n  undefined4 local_d4;\n  undefined4 auStack_d0 [6];\n  uint local_b8;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0015ba2c;\n  puVar27 = PTR_sqlite3_temp_directory_0015b854;\n  puVar23 = PTR_DAT_0015b5d8;\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  *(undefined1 *)param_2 = 0;\n  uVar20 = *(uint *)puVar27;\n  if (*(int *)(puVar23 + -0x4eb0) == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc);\n    *(undefined4 *)(puVar23 + -0x4eb0) = uVar32;\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }\n  else {\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }\n  if (iVar5 == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac);\n    *(undefined4 *)(puVar23 + -0x4eac) = uVar32;\n  }\n  puVar27 = PTR_DAT_0015b5d8;\n  puVar19 = (uint *)(puVar23 + -0x4eb0);\n  puVar26 = (uint *)(puVar23 + -0x4e98);\n  puVar22 = auStack_d0;\n  piVar30 = (int *)0x4000;\n  puVar23 = PTR_DAT_0015b5d8 + -0x4bb8;\n  while( true ) {\n    puVar15 = puVar22;\n    if ((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)) {\n      puVar19 = (uint *)&DAT_0000000c;\n      puVar26 = (uint *)((int)param_2 + param_1 + -2);\n      puVar22 = &local_d8;\n      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);\n      goto LAB_0009aa88;\n    }\n    local_234 = 0x190a;\n    if (puVar19 == puVar26) break;\n    uVar20 = *puVar19;\n    puVar19 = puVar19 + 1;\n  }\n  goto LAB_0009a9fc;\njoined_r0x0009b6fc:\n  if (param_4 == uVar20) goto LAB_0009bb18;\n  piVar10 = (int *)piVar13[2];\n  if (piVar10 == (int *)0x0) goto LAB_0009b728;\n  uVar20 = piVar10[1];\n  piVar17 = piVar13 + 2;\n  piVar13 = piVar10;\n  goto joined_r0x0009b6fc;\nLAB_0009bb18:\n  pcVar29 = *(code **)(pcVar28 + 0xc0508);\n  *piVar17 = piVar13[2];\n  (*pcVar29)(piVar31[4]);\n  (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\n  iVar7 = *piVar13;\n  param_3[7] = (int)piVar13;\n  goto LAB_0009b2a0;\nLAB_0009b728:\n  (**(code **)(pcVar28 + 0xc0508))(piVar31[4]);\n  (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\n  goto LAB_0009b7e8;\n  while( true ) {\n    puVar19 = (uint *)((int)puVar19 + -1);\n    puVar15 = (undefined4 *)0x0;\n    if (puVar19 == (uint *)0x0) goto LAB_0009aae4;\n    iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2);\n    local_234 = 0;\n    if (iVar5 != 0) break;\nLAB_0009aa88:\n    sqlite3_randomness(8,puVar22);\n    *(char *)puVar26 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar15 = param_2;\n    param_3 = piVar30;\n    param_4 = uVar20;\n    (*(code *)PTR_sqlite3_snprintf_0015b610)(param_1);\n    if (*(char *)puVar26 != '\0') {\nLAB_0009aae4:\n      local_234 = 1;\n      break;\n    }\n  }\nLAB_0009a9fc:\n  if (local_2c == *(int *)puVar4) {\n    return local_234;\n  }\n  uVar32 = 0x9ab38;\n  puVar27 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  local_208 = puVar27 + 0xc8a78;\n  piVar31 = *(int **)(puVar27 + 0xc0ef4);\n  iVar5 = *piVar31;\n  local_134 = iVar5;\n  local_130 = puVar19;\n  local_12c = uVar20;\n  local_128 = puVar23;\n  local_124 = param_2;\n  local_120 = param_1;\n  local_11c = puVar22;\n  local_118 = puVar26;\n  local_114 = local_234;\n  local_110 = piVar30;\n  local_10c = uVar32;\n  if (puVar15 < (undefined4 *)0x15) {\n                    /* WARNING: Could not recover jumptable at 0x0009aba0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))();\n    return uVar20;\n  }\n  if (iVar5 == *piVar31) {\n    return 0xc;\n  }\n  pcVar28 = *(code **)(puVar27 + 0xc0ed8);\n  uVar32 = 0x9b1ac;\n  (*pcVar28)();\n  uVar21 = param_4 & 8;\n  uVar24 = param_4 & 0xffffff00;\n  piVar30 = *(int **)(pcVar28 + 0xc0880);\n  local_254 = *piVar30;\n  local_72c = param_4 & 1;\n  uVar6 = param_4 & 2;\n  puVar18 = puVar15;\n  local_250 = puVar19;\n  local_24c = uVar20;\n  local_248 = puVar23;\n  local_244 = param_2;\n  local_240 = param_1;\n  local_23c = puVar22;\n  local_238 = puVar26;\n  local_230 = piVar31;\n  local_22c = uVar32;\n  if ((param_4 & 4) == 0) {\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    bVar2 = false;\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (iVar7 != *(int *)(iVar25 + -0x4354)) goto LAB_0009b46c;\nLAB_0009b270:\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    if (uVar24 == 0x100) {\n      iVar7 = *(int *)(pcVar28 + 0xc042c);\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));\n      if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }\n      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\nLAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);\n      if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }\n      uVar20 = 7;\n    }\n    else {\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }\n  }\n  else {\n    if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (*(int *)(iVar25 + -0x4354) != iVar7) {\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    bVar2 = true;\n    if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;\nLAB_0009b298:\n    iVar7 = -1;\nLAB_0009b2a0:\n    uVar20 = uVar6;\n    if ((param_4 & 4) != 0) {\n      uVar20 = uVar6 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    (*pcVar29)(param_3[7]);\n  }\nLAB_0009b410:\n  if (local_254 == *piVar30) {\n    return uVar20;\n  }\n  pcVar28 = *(code **)(pcVar28 + 0xc0864);\n  iVar5 = local_254;\n  (*pcVar28)();\n  iVar7 = *(int *)(iVar5 + 0x60);\n  puVar22 = *(undefined4 **)(iVar5 + 0xd0);\n  uVar6 = *(uint *)(iVar5 + 0x4c);\n  uVar20 = *(uint *)(iVar5 + 0x98);\n  if (*(uint *)(iVar5 + 0x94) <= *(uint *)(iVar5 + 0x98)) {\n    uVar20 = *(uint *)(iVar5 + 0x94);\n  }\n  iVar25 = *(int *)(iVar5 + 0x48);\n  if (0 < iVar7) {\n    iVar16 = 0;\n    iVar8 = 0;\n    do {\n      iVar8 = iVar8 + 1;\n      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;\n      iVar16 = iVar16 + 0x30;\n      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }\n    } while (iVar8 < iVar7);\n  }\n  if (iVar25 != 0 || uVar6 != 0) {\n    uVar21 = *(uint *)(iVar5 + 0x94);\n    lVar33 = (**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21);\n    lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar6 = (uint)lVar3;\n    iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20);\n  }\n  *(uint *)(iVar5 + 0x4c) = uVar6;\n  *(int *)(iVar5 + 0x48) = iVar25;\n  *(uint *)(iVar5 + 0x54) = uVar6;\n  *(int *)(iVar5 + 0x50) = iVar25;\n  if (*(char *)(iVar5 + 7) == '\0') {\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n    if (*(char *)(iVar5 + 5) != '\x04') {\n      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }\n      goto LAB_0009be98;\n    }\n  }\n  else {\nLAB_0009be98:\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n  }\n  uVar32 = *(undefined4 *)(iVar7 + -0x7ce8);\n  *puVar22 = *(undefined4 *)(iVar7 + -0x7cec);\n  puVar22[1] = uVar32;\n  *(undefined1 *)(puVar22 + 2) = 0xff;\n  *(undefined1 *)((int)puVar22 + 9) = 0xff;\n  *(undefined1 *)((int)puVar22 + 10) = 0xff;\n  *(undefined1 *)((int)puVar22 + 0xb) = 0xff;\nLAB_0009becc:\n  uVar6 = 0;\n  sqlite3_randomness(4,iVar5 + 0x30);\n  uVar32 = *(undefined4 *)(iVar5 + 0x30);\n  *(char *)((int)puVar22 + 0xf) = (char)uVar32;\n  *(char *)(puVar22 + 3) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0xd) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0xe) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x1c);\n  pcVar28 = *(code **)(pcVar28 + 0xbfc10);\n  *(char *)((int)puVar22 + 0x13) = (char)uVar32;\n  *(char *)(puVar22 + 4) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x11) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x12) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x94);\n  *(char *)((int)puVar22 + 0x17) = (char)uVar32;\n  *(char *)(puVar22 + 5) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x15) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x16) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x98);\n  *(char *)((int)puVar22 + 0x1b) = (char)uVar32;\n  *(char *)(puVar22 + 6) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x19) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x1a) = (char)((uint)uVar32 >> 8);\n  (*pcVar28)(puVar22 + 7,0,uVar20 - 0x1c);\n  do {\n    if (*(uint *)(iVar5 + 0x94) <= uVar6) {\n      return 0;\n    }\n    iVar7 = **(int **)(iVar5 + 0x40);\n    uVar6 = uVar6 + uVar20;\n    uVar21 = (**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c));\n    uVar24 = *(uint *)(iVar5 + 0x4c);\n    uVar14 = uVar24 + uVar20;\n    *(uint *)(iVar5 + 0x4c) = uVar14;\n    *(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48);\n  } while (uVar21 == 0);\n  return uVar21;\n}" type_identifier (function_declarator "FUN_0009a92c(int param_1,undefined4 *param_2,int *param_3,uint param_4)" identifier (parameter_list "(int param_1,undefined4 *param_2,int *param_3,uint param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  int in_zero;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  uint uVar14;\n  undefined4 *puVar15;\n  int iVar16;\n  int *piVar17;\n  undefined4 *puVar18;\n  uint *puVar19;\n  uint uVar20;\n  uint uVar21;\n  undefined4 *puVar22;\n  undefined *puVar23;\n  uint uVar24;\n  int iVar25;\n  uint *puVar26;\n  undefined *puVar27;\n  code *pcVar28;\n  code *pcVar29;\n  int *piVar30;\n  int *piVar31;\n  undefined4 uVar32;\n  longlong lVar33;\n  undefined4 local_734;\n  uint local_72c;\n  undefined4 local_724;\n  code *local_714;\n  undefined4 local_710;\n  int local_70c;\n  int local_708;\n  int local_704;\n  int local_700 [4];\n  int local_6f0;\n  int local_6ec;\n  uint local_6e8;\n  undefined4 local_6e0;\n  undefined4 local_6dc;\n  undefined1 auStack_65c [516];\n  undefined4 auStack_458 [129];\n  int local_254;\n  uint *local_250;\n  uint local_24c;\n  undefined *local_248;\n  undefined4 *local_244;\n  int local_240;\n  undefined4 *local_23c;\n  uint *local_238;\n  uint local_234;\n  int *local_230;\n  undefined4 local_22c;\n  uint *local_218;\n  undefined *local_208;\n  int local_134;\n  uint *local_130;\n  uint local_12c;\n  undefined *local_128;\n  undefined4 *local_124;\n  int local_120;\n  undefined4 *local_11c;\n  uint *local_118;\n  uint local_114;\n  int *local_110;\n  undefined4 local_10c;\n  undefined4 local_f8;\n  undefined4 local_f4;\n  undefined4 local_f0;\n  undefined4 local_d8;\n  undefined4 local_d4;\n  undefined4 auStack_d0 [6];\n  uint local_b8;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0015ba2c;\n  puVar27 = PTR_sqlite3_temp_directory_0015b854;\n  puVar23 = PTR_DAT_0015b5d8;\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  *(undefined1 *)param_2 = 0;\n  uVar20 = *(uint *)puVar27;\n  if (*(int *)(puVar23 + -0x4eb0) == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc);\n    *(undefined4 *)(puVar23 + -0x4eb0) = uVar32;\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }\n  else {\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }\n  if (iVar5 == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac);\n    *(undefined4 *)(puVar23 + -0x4eac) = uVar32;\n  }\n  puVar27 = PTR_DAT_0015b5d8;\n  puVar19 = (uint *)(puVar23 + -0x4eb0);\n  puVar26 = (uint *)(puVar23 + -0x4e98);\n  puVar22 = auStack_d0;\n  piVar30 = (int *)0x4000;\n  puVar23 = PTR_DAT_0015b5d8 + -0x4bb8;\n  while( true ) {\n    puVar15 = puVar22;\n    if ((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)) {\n      puVar19 = (uint *)&DAT_0000000c;\n      puVar26 = (uint *)((int)param_2 + param_1 + -2);\n      puVar22 = &local_d8;\n      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);\n      goto LAB_0009aa88;\n    }\n    local_234 = 0x190a;\n    if (puVar19 == puVar26) break;\n    uVar20 = *puVar19;\n    puVar19 = puVar19 + 1;\n  }\n  goto LAB_0009a9fc;\njoined_r0x0009b6fc:\n  if (param_4 == uVar20) goto LAB_0009bb18;\n  piVar10 = (int *)piVar13[2];\n  if (piVar10 == (int *)0x0) goto LAB_0009b728;\n  uVar20 = piVar10[1];\n  piVar17 = piVar13 + 2;\n  piVar13 = piVar10;\n  goto joined_r0x0009b6fc;\nLAB_0009bb18:\n  pcVar29 = *(code **)(pcVar28 + 0xc0508);\n  *piVar17 = piVar13[2];\n  (*pcVar29)(piVar31[4]);\n  (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\n  iVar7 = *piVar13;\n  param_3[7] = (int)piVar13;\n  goto LAB_0009b2a0;\nLAB_0009b728:\n  (**(code **)(pcVar28 + 0xc0508))(piVar31[4]);\n  (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\n  goto LAB_0009b7e8;\n  while( true ) {\n    puVar19 = (uint *)((int)puVar19 + -1);\n    puVar15 = (undefined4 *)0x0;\n    if (puVar19 == (uint *)0x0) goto LAB_0009aae4;\n    iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2);\n    local_234 = 0;\n    if (iVar5 != 0) break;\nLAB_0009aa88:\n    sqlite3_randomness(8,puVar22);\n    *(char *)puVar26 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar15 = param_2;\n    param_3 = piVar30;\n    param_4 = uVar20;\n    (*(code *)PTR_sqlite3_snprintf_0015b610)(param_1);\n    if (*(char *)puVar26 != '\0') {\nLAB_0009aae4:\n      local_234 = 1;\n      break;\n    }\n  }\nLAB_0009a9fc:\n  if (local_2c == *(int *)puVar4) {\n    return local_234;\n  }\n  uVar32 = 0x9ab38;\n  puVar27 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  local_208 = puVar27 + 0xc8a78;\n  piVar31 = *(int **)(puVar27 + 0xc0ef4);\n  iVar5 = *piVar31;\n  local_134 = iVar5;\n  local_130 = puVar19;\n  local_12c = uVar20;\n  local_128 = puVar23;\n  local_124 = param_2;\n  local_120 = param_1;\n  local_11c = puVar22;\n  local_118 = puVar26;\n  local_114 = local_234;\n  local_110 = piVar30;\n  local_10c = uVar32;\n  if (puVar15 < (undefined4 *)0x15) {\n                    /* WARNING: Could not recover jumptable at 0x0009aba0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))();\n    return uVar20;\n  }\n  if (iVar5 == *piVar31) {\n    return 0xc;\n  }\n  pcVar28 = *(code **)(puVar27 + 0xc0ed8);\n  uVar32 = 0x9b1ac;\n  (*pcVar28)();\n  uVar21 = param_4 & 8;\n  uVar24 = param_4 & 0xffffff00;\n  piVar30 = *(int **)(pcVar28 + 0xc0880);\n  local_254 = *piVar30;\n  local_72c = param_4 & 1;\n  uVar6 = param_4 & 2;\n  puVar18 = puVar15;\n  local_250 = puVar19;\n  local_24c = uVar20;\n  local_248 = puVar23;\n  local_244 = param_2;\n  local_240 = param_1;\n  local_23c = puVar22;\n  local_238 = puVar26;\n  local_230 = piVar31;\n  local_22c = uVar32;\n  if ((param_4 & 4) == 0) {\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    bVar2 = false;\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (iVar7 != *(int *)(iVar25 + -0x4354)) goto LAB_0009b46c;\nLAB_0009b270:\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    if (uVar24 == 0x100) {\n      iVar7 = *(int *)(pcVar28 + 0xc042c);\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));\n      if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }\n      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\nLAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);\n      if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }\n      uVar20 = 7;\n    }\n    else {\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }\n  }\n  else {\n    if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (*(int *)(iVar25 + -0x4354) != iVar7) {\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    bVar2 = true;\n    if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;\nLAB_0009b298:\n    iVar7 = -1;\nLAB_0009b2a0:\n    uVar20 = uVar6;\n    if ((param_4 & 4) != 0) {\n      uVar20 = uVar6 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    (*pcVar29)(param_3[7]);\n  }\nLAB_0009b410:\n  if (local_254 == *piVar30) {\n    return uVar20;\n  }\n  pcVar28 = *(code **)(pcVar28 + 0xc0864);\n  iVar5 = local_254;\n  (*pcVar28)();\n  iVar7 = *(int *)(iVar5 + 0x60);\n  puVar22 = *(undefined4 **)(iVar5 + 0xd0);\n  uVar6 = *(uint *)(iVar5 + 0x4c);\n  uVar20 = *(uint *)(iVar5 + 0x98);\n  if (*(uint *)(iVar5 + 0x94) <= *(uint *)(iVar5 + 0x98)) {\n    uVar20 = *(uint *)(iVar5 + 0x94);\n  }\n  iVar25 = *(int *)(iVar5 + 0x48);\n  if (0 < iVar7) {\n    iVar16 = 0;\n    iVar8 = 0;\n    do {\n      iVar8 = iVar8 + 1;\n      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;\n      iVar16 = iVar16 + 0x30;\n      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }\n    } while (iVar8 < iVar7);\n  }\n  if (iVar25 != 0 || uVar6 != 0) {\n    uVar21 = *(uint *)(iVar5 + 0x94);\n    lVar33 = (**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21);\n    lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar6 = (uint)lVar3;\n    iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20);\n  }\n  *(uint *)(iVar5 + 0x4c) = uVar6;\n  *(int *)(iVar5 + 0x48) = iVar25;\n  *(uint *)(iVar5 + 0x54) = uVar6;\n  *(int *)(iVar5 + 0x50) = iVar25;\n  if (*(char *)(iVar5 + 7) == '\0') {\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n    if (*(char *)(iVar5 + 5) != '\x04') {\n      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }\n      goto LAB_0009be98;\n    }\n  }\n  else {\nLAB_0009be98:\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n  }\n  uVar32 = *(undefined4 *)(iVar7 + -0x7ce8);\n  *puVar22 = *(undefined4 *)(iVar7 + -0x7cec);\n  puVar22[1] = uVar32;\n  *(undefined1 *)(puVar22 + 2) = 0xff;\n  *(undefined1 *)((int)puVar22 + 9) = 0xff;\n  *(undefined1 *)((int)puVar22 + 10) = 0xff;\n  *(undefined1 *)((int)puVar22 + 0xb) = 0xff;\nLAB_0009becc:\n  uVar6 = 0;\n  sqlite3_randomness(4,iVar5 + 0x30);\n  uVar32 = *(undefined4 *)(iVar5 + 0x30);\n  *(char *)((int)puVar22 + 0xf) = (char)uVar32;\n  *(char *)(puVar22 + 3) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0xd) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0xe) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x1c);\n  pcVar28 = *(code **)(pcVar28 + 0xbfc10);\n  *(char *)((int)puVar22 + 0x13) = (char)uVar32;\n  *(char *)(puVar22 + 4) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x11) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x12) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x94);\n  *(char *)((int)puVar22 + 0x17) = (char)uVar32;\n  *(char *)(puVar22 + 5) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x15) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x16) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x98);\n  *(char *)((int)puVar22 + 0x1b) = (char)uVar32;\n  *(char *)(puVar22 + 6) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x19) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x1a) = (char)((uint)uVar32 >> 8);\n  (*pcVar28)(puVar22 + 7,0,uVar20 - 0x1c);\n  do {\n    if (*(uint *)(iVar5 + 0x94) <= uVar6) {\n      return 0;\n    }\n    iVar7 = **(int **)(iVar5 + 0x40);\n    uVar6 = uVar6 + uVar20;\n    uVar21 = (**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c));\n    uVar24 = *(uint *)(iVar5 + 0x4c);\n    uVar14 = uVar24 + uVar20;\n    *(uint *)(iVar5 + 0x4c) = uVar14;\n    *(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48);\n  } while (uVar21 == 0);\n  return uVar21;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "longlong lVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int in_zero;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "uint *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "undefined *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "code *pcVar29;" type_identifier (pointer_declarator "*pcVar29" * identifier) ;) (declaration "int *piVar30;" primitive_type (pointer_declarator "*piVar30" * identifier) ;) (declaration "int *piVar31;" primitive_type (pointer_declarator "*piVar31" * identifier) ;) (declaration "undefined4 uVar32;" type_identifier identifier ;) (declaration "longlong lVar33;" type_identifier identifier ;) (declaration "undefined4 local_734;" type_identifier identifier ;) (declaration "uint local_72c;" type_identifier identifier ;) (declaration "undefined4 local_724;" type_identifier identifier ;) (declaration "code *local_714;" type_identifier (pointer_declarator "*local_714" * identifier) ;) (declaration "undefined4 local_710;" type_identifier identifier ;) (declaration "int local_70c;" primitive_type identifier ;) (declaration "int local_708;" primitive_type identifier ;) (declaration "int local_704;" primitive_type identifier ;) (declaration "int local_700 [4];" primitive_type (array_declarator "local_700 [4]" identifier [ number_literal ]) ;) (declaration "int local_6f0;" primitive_type identifier ;) (declaration "int local_6ec;" primitive_type identifier ;) (declaration "uint local_6e8;" type_identifier identifier ;) (declaration "undefined4 local_6e0;" type_identifier identifier ;) (declaration "undefined4 local_6dc;" type_identifier identifier ;) (declaration "undefined1 auStack_65c [516];" type_identifier (array_declarator "auStack_65c [516]" identifier [ number_literal ]) ;) (declaration "undefined4 auStack_458 [129];" type_identifier (array_declarator "auStack_458 [129]" identifier [ number_literal ]) ;) (declaration "int local_254;" primitive_type identifier ;) (declaration "uint *local_250;" type_identifier (pointer_declarator "*local_250" * identifier) ;) (declaration "uint local_24c;" type_identifier identifier ;) (declaration "undefined *local_248;" type_identifier (pointer_declarator "*local_248" * identifier) ;) (declaration "undefined4 *local_244;" type_identifier (pointer_declarator "*local_244" * identifier) ;) (declaration "int local_240;" primitive_type identifier ;) (declaration "undefined4 *local_23c;" type_identifier (pointer_declarator "*local_23c" * identifier) ;) (declaration "uint *local_238;" type_identifier (pointer_declarator "*local_238" * identifier) ;) (declaration "uint local_234;" type_identifier identifier ;) (declaration "int *local_230;" primitive_type (pointer_declarator "*local_230" * identifier) ;) (declaration "undefined4 local_22c;" type_identifier identifier ;) (declaration "uint *local_218;" type_identifier (pointer_declarator "*local_218" * identifier) ;) (declaration "undefined *local_208;" type_identifier (pointer_declarator "*local_208" * identifier) ;) (declaration "int local_134;" primitive_type identifier ;) (declaration "uint *local_130;" type_identifier (pointer_declarator "*local_130" * identifier) ;) (declaration "uint local_12c;" type_identifier identifier ;) (declaration "undefined *local_128;" type_identifier (pointer_declarator "*local_128" * identifier) ;) (declaration "undefined4 *local_124;" type_identifier (pointer_declarator "*local_124" * identifier) ;) (declaration "int local_120;" primitive_type identifier ;) (declaration "undefined4 *local_11c;" type_identifier (pointer_declarator "*local_11c" * identifier) ;) (declaration "uint *local_118;" type_identifier (pointer_declarator "*local_118" * identifier) ;) (declaration "uint local_114;" type_identifier identifier ;) (declaration "int *local_110;" primitive_type (pointer_declarator "*local_110" * identifier) ;) (declaration "undefined4 local_10c;" type_identifier identifier ;) (declaration "undefined4 local_f8;" type_identifier identifier ;) (declaration "undefined4 local_f4;" type_identifier identifier ;) (declaration "undefined4 local_f0;" type_identifier identifier ;) (declaration "undefined4 local_d8;" type_identifier identifier ;) (declaration "undefined4 local_d4;" type_identifier identifier ;) (declaration "undefined4 auStack_d0 [6];" type_identifier (array_declarator "auStack_d0 [6]" identifier [ number_literal ]) ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar4 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar4 = PTR___stack_chk_guard_0015ba2c" identifier = identifier) ;) (expression_statement "puVar27 = PTR_sqlite3_temp_directory_0015b854;" (assignment_expression "puVar27 = PTR_sqlite3_temp_directory_0015b854" identifier = identifier) ;) (expression_statement "puVar23 = PTR_DAT_0015b5d8;" (assignment_expression "puVar23 = PTR_DAT_0015b5d8" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0015ba2c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ba2c" * (cast_expression "(int *)PTR___stack_chk_guard_0015ba2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined1 *)param_2 = 0;" (assignment_expression "*(undefined1 *)param_2 = 0" (pointer_expression "*(undefined1 *)param_2" * (cast_expression "(undefined1 *)param_2" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar20 = *(uint *)puVar27;" (assignment_expression "uVar20 = *(uint *)puVar27" identifier = (pointer_expression "*(uint *)puVar27" * (cast_expression "(uint *)puVar27" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)(puVar23 + -0x4eb0) == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc);\n    *(undefined4 *)(puVar23 + -0x4eb0) = uVar32;\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }\n  else {\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }" if (parenthesized_expression "(*(int *)(puVar23 + -0x4eb0) == 0)" ( (binary_expression "*(int *)(puVar23 + -0x4eb0) == 0" (pointer_expression "*(int *)(puVar23 + -0x4eb0)" * (cast_expression "(int *)(puVar23 + -0x4eb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -0x4eb0)" ( (binary_expression "puVar23 + -0x4eb0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc);\n    *(undefined4 *)(puVar23 + -0x4eb0) = uVar32;\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }" { (expression_statement "uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc);" (assignment_expression "uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc)" identifier = (call_expression "(*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc)" (parenthesized_expression "(*(code *)PTR_getenv_0015b9e4)" ( (pointer_expression "*(code *)PTR_getenv_0015b9e4" * (cast_expression "(code *)PTR_getenv_0015b9e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0015b5fc + -0x73bc)" ( (binary_expression "PTR_UINT_0015b5fc + -0x73bc" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar23 + -0x4eb0) = uVar32;" (assignment_expression "*(undefined4 *)(puVar23 + -0x4eb0) = uVar32" (pointer_expression "*(undefined4 *)(puVar23 + -0x4eb0)" * (cast_expression "(undefined4 *)(puVar23 + -0x4eb0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -0x4eb0)" ( (binary_expression "puVar23 + -0x4eb0" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar5 = *(int *)(puVar23 + -0x4eac);" (assignment_expression "iVar5 = *(int *)(puVar23 + -0x4eac)" identifier = (pointer_expression "*(int *)(puVar23 + -0x4eac)" * (cast_expression "(int *)(puVar23 + -0x4eac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -0x4eac)" ( (binary_expression "puVar23 + -0x4eac" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }" else (compound_statement "{\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }" { (expression_statement "iVar5 = *(int *)(puVar23 + -0x4eac);" (assignment_expression "iVar5 = *(int *)(puVar23 + -0x4eac)" identifier = (pointer_expression "*(int *)(puVar23 + -0x4eac)" * (cast_expression "(int *)(puVar23 + -0x4eac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -0x4eac)" ( (binary_expression "puVar23 + -0x4eac" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar5 == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac);\n    *(undefined4 *)(puVar23 + -0x4eac) = uVar32;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac);\n    *(undefined4 *)(puVar23 + -0x4eac) = uVar32;\n  }" { (expression_statement "uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac);" (assignment_expression "uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac)" identifier = (call_expression "(*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac)" (parenthesized_expression "(*(code *)PTR_getenv_0015b9e4)" ( (pointer_expression "*(code *)PTR_getenv_0015b9e4" * (cast_expression "(code *)PTR_getenv_0015b9e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0015b5fc + -0x73ac)" ( (binary_expression "PTR_UINT_0015b5fc + -0x73ac" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar23 + -0x4eac) = uVar32;" (assignment_expression "*(undefined4 *)(puVar23 + -0x4eac) = uVar32" (pointer_expression "*(undefined4 *)(puVar23 + -0x4eac)" * (cast_expression "(undefined4 *)(puVar23 + -0x4eac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -0x4eac)" ( (binary_expression "puVar23 + -0x4eac" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "puVar27 = PTR_DAT_0015b5d8;" (assignment_expression "puVar27 = PTR_DAT_0015b5d8" identifier = identifier) ;) (expression_statement "puVar19 = (uint *)(puVar23 + -0x4eb0);" (assignment_expression "puVar19 = (uint *)(puVar23 + -0x4eb0)" identifier = (cast_expression "(uint *)(puVar23 + -0x4eb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -0x4eb0)" ( (binary_expression "puVar23 + -0x4eb0" identifier + number_literal) )))) ;) (expression_statement "puVar26 = (uint *)(puVar23 + -0x4e98);" (assignment_expression "puVar26 = (uint *)(puVar23 + -0x4e98)" identifier = (cast_expression "(uint *)(puVar23 + -0x4e98)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -0x4e98)" ( (binary_expression "puVar23 + -0x4e98" identifier + number_literal) )))) ;) (expression_statement "puVar22 = auStack_d0;" (assignment_expression "puVar22 = auStack_d0" identifier = identifier) ;) (expression_statement "piVar30 = (int *)0x4000;" (assignment_expression "piVar30 = (int *)0x4000" identifier = (cast_expression "(int *)0x4000" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar23 = PTR_DAT_0015b5d8 + -0x4bb8;" (assignment_expression "puVar23 = PTR_DAT_0015b5d8 + -0x4bb8" identifier = (binary_expression "PTR_DAT_0015b5d8 + -0x4bb8" identifier + number_literal)) ;) (while_statement "while( true ) {\n    puVar15 = puVar22;\n    if ((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)) {\n      puVar19 = (uint *)&DAT_0000000c;\n      puVar26 = (uint *)((int)param_2 + param_1 + -2);\n      puVar22 = &local_d8;\n      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);\n      goto LAB_0009aa88;\n    }\n    local_234 = 0x190a;\n    if (puVar19 == puVar26) break;\n    uVar20 = *puVar19;\n    puVar19 = puVar19 + 1;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    puVar15 = puVar22;\n    if ((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)) {\n      puVar19 = (uint *)&DAT_0000000c;\n      puVar26 = (uint *)((int)param_2 + param_1 + -2);\n      puVar22 = &local_d8;\n      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);\n      goto LAB_0009aa88;\n    }\n    local_234 = 0x190a;\n    if (puVar19 == puVar26) break;\n    uVar20 = *puVar19;\n    puVar19 = puVar19 + 1;\n  }" { (expression_statement "puVar15 = puVar22;" (assignment_expression "puVar15 = puVar22" identifier = identifier) ;) (if_statement "if ((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)) {\n      puVar19 = (uint *)&DAT_0000000c;\n      puVar26 = (uint *)((int)param_2 + param_1 + -2);\n      puVar22 = &local_d8;\n      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);\n      goto LAB_0009aa88;\n    }" if (parenthesized_expression "((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0))" ( (binary_expression "(((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)" (parenthesized_expression "(((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000))" ( (binary_expression "((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)" (parenthesized_expression "((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0))" ( (binary_expression "(uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)" (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)" ( (comma_expression "iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0" (assignment_expression "iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20)" identifier = (call_expression "(**(code **)(puVar27 + -0x4b84))(uVar20)" (parenthesized_expression "(**(code **)(puVar27 + -0x4b84))" ( (pointer_expression "**(code **)(puVar27 + -0x4b84)" * (pointer_expression "*(code **)(puVar27 + -0x4b84)" * (cast_expression "(code **)(puVar27 + -0x4b84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x4b84)" ( (binary_expression "puVar27 + -0x4b84" identifier + number_literal) ))))) )) (argument_list "(uVar20)" ( identifier )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)" ( (comma_expression "puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000" (assignment_expression "puVar15 = (undefined4 *)0x3" identifier = (cast_expression "(undefined4 *)0x3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "(local_b8 & 0xf000) == 0x4000" (parenthesized_expression "(local_b8 & 0xf000)" ( (binary_expression "local_b8 & 0xf000" identifier & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "(iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)" ( (comma_expression "iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0" (assignment_expression "iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20)" identifier = (call_expression "(**(code **)(puVar27 + -0x4b9c))(uVar20)" (parenthesized_expression "(**(code **)(puVar27 + -0x4b9c))" ( (pointer_expression "**(code **)(puVar27 + -0x4b9c)" * (pointer_expression "*(code **)(puVar27 + -0x4b9c)" * (cast_expression "(code **)(puVar27 + -0x4b9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x4b9c)" ( (binary_expression "puVar27 + -0x4b9c" identifier + number_literal) ))))) )) (argument_list "(uVar20)" ( identifier )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      puVar19 = (uint *)&DAT_0000000c;\n      puVar26 = (uint *)((int)param_2 + param_1 + -2);\n      puVar22 = &local_d8;\n      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);\n      goto LAB_0009aa88;\n    }" { (expression_statement "puVar19 = (uint *)&DAT_0000000c;" (assignment_expression "puVar19 = (uint *)&DAT_0000000c" identifier = (cast_expression "(uint *)&DAT_0000000c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000c" & identifier))) ;) (expression_statement "puVar26 = (uint *)((int)param_2 + param_1 + -2);" (assignment_expression "puVar26 = (uint *)((int)param_2 + param_1 + -2)" identifier = (cast_expression "(uint *)((int)param_2 + param_1 + -2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + param_1 + -2)" ( (binary_expression "(int)param_2 + param_1 + -2" (binary_expression "(int)param_2 + param_1" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "puVar22 = &local_d8;" (assignment_expression "puVar22 = &local_d8" identifier = (pointer_expression "&local_d8" & identifier)) ;) (expression_statement "piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);" (assignment_expression "piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4)" identifier = (cast_expression "(int *)(PTR_UINT_0015b5fc + -0x73a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_0015b5fc + -0x73a4)" ( (binary_expression "PTR_UINT_0015b5fc + -0x73a4" identifier + number_literal) )))) ;) (goto_statement "goto LAB_0009aa88;" goto statement_identifier ;) })) (expression_statement "local_234 = 0x190a;" (assignment_expression "local_234 = 0x190a" identifier = number_literal) ;) (if_statement "if (puVar19 == puVar26) break;" if (parenthesized_expression "(puVar19 == puVar26)" ( (binary_expression "puVar19 == puVar26" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar20 = *puVar19;" (assignment_expression "uVar20 = *puVar19" identifier = (pointer_expression "*puVar19" * identifier)) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) })) (goto_statement "goto LAB_0009a9fc;" goto statement_identifier ;) (labeled_statement "joined_r0x0009b6fc:\n  if (param_4 == uVar20) goto LAB_0009bb18;" statement_identifier : (if_statement "if (param_4 == uVar20) goto LAB_0009bb18;" if (parenthesized_expression "(param_4 == uVar20)" ( (binary_expression "param_4 == uVar20" identifier == identifier) )) (goto_statement "goto LAB_0009bb18;" goto statement_identifier ;))) (expression_statement "piVar10 = (int *)piVar13[2];" (assignment_expression "piVar10 = (int *)piVar13[2]" identifier = (cast_expression "(int *)piVar13[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar13[2]" identifier [ number_literal ]))) ;) (if_statement "if (piVar10 == (int *)0x0) goto LAB_0009b728;" if (parenthesized_expression "(piVar10 == (int *)0x0)" ( (binary_expression "piVar10 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0009b728;" goto statement_identifier ;)) (expression_statement "uVar20 = piVar10[1];" (assignment_expression "uVar20 = piVar10[1]" identifier = (subscript_expression "piVar10[1]" identifier [ number_literal ])) ;) (expression_statement "piVar17 = piVar13 + 2;" (assignment_expression "piVar17 = piVar13 + 2" identifier = (binary_expression "piVar13 + 2" identifier + number_literal)) ;) (expression_statement "piVar13 = piVar10;" (assignment_expression "piVar13 = piVar10" identifier = identifier) ;) (goto_statement "goto joined_r0x0009b6fc;" goto statement_identifier ;) (labeled_statement "LAB_0009bb18:\n  pcVar29 = *(code **)(pcVar28 + 0xc0508);" statement_identifier : (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0508);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0508)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xc0508)" * (cast_expression "(code **)(pcVar28 + 0xc0508)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0508)" ( (binary_expression "pcVar28 + 0xc0508" identifier + number_literal) ))))) ;)) (expression_statement "*piVar17 = piVar13[2];" (assignment_expression "*piVar17 = piVar13[2]" (pointer_expression "*piVar17" * identifier) = (subscript_expression "piVar13[2]" identifier [ number_literal ])) ;) (expression_statement "(*pcVar29)(piVar31[4]);" (call_expression "(*pcVar29)(piVar31[4])" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(piVar31[4])" ( (subscript_expression "piVar31[4]" identifier [ number_literal ]) ))) ;) (expression_statement "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0508))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0508)" * (pointer_expression "*(code **)(pcVar28 + 0xc0508)" * (cast_expression "(code **)(pcVar28 + 0xc0508)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0508)" ( (binary_expression "pcVar28 + 0xc0508" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar7 + -0x4358))" ( (pointer_expression "*(undefined4 *)(iVar7 + -0x4358)" * (cast_expression "(undefined4 *)(iVar7 + -0x4358)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x4358)" ( (binary_expression "iVar7 + -0x4358" identifier + number_literal) )))) ))) ;) (expression_statement "iVar7 = *piVar13;" (assignment_expression "iVar7 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "param_3[7] = (int)piVar13;" (assignment_expression "param_3[7] = (int)piVar13" (subscript_expression "param_3[7]" identifier [ number_literal ]) = (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0009b2a0;" goto statement_identifier ;) (labeled_statement "LAB_0009b728:\n  (**(code **)(pcVar28 + 0xc0508))(piVar31[4]);" statement_identifier : (expression_statement "(**(code **)(pcVar28 + 0xc0508))(piVar31[4]);" (call_expression "(**(code **)(pcVar28 + 0xc0508))(piVar31[4])" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0508))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0508)" * (pointer_expression "*(code **)(pcVar28 + 0xc0508)" * (cast_expression "(code **)(pcVar28 + 0xc0508)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0508)" ( (binary_expression "pcVar28 + 0xc0508" identifier + number_literal) ))))) )) (argument_list "(piVar31[4])" ( (subscript_expression "piVar31[4]" identifier [ number_literal ]) ))) ;)) (expression_statement "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0508))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0508)" * (pointer_expression "*(code **)(pcVar28 + 0xc0508)" * (cast_expression "(code **)(pcVar28 + 0xc0508)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0508)" ( (binary_expression "pcVar28 + 0xc0508" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar7 + -0x4358))" ( (pointer_expression "*(undefined4 *)(iVar7 + -0x4358)" * (cast_expression "(undefined4 *)(iVar7 + -0x4358)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x4358)" ( (binary_expression "iVar7 + -0x4358" identifier + number_literal) )))) ))) ;) (goto_statement "goto LAB_0009b7e8;" goto statement_identifier ;) (while_statement "while( true ) {\n    puVar19 = (uint *)((int)puVar19 + -1);\n    puVar15 = (undefined4 *)0x0;\n    if (puVar19 == (uint *)0x0) goto LAB_0009aae4;\n    iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2);\n    local_234 = 0;\n    if (iVar5 != 0) break;\nLAB_0009aa88:\n    sqlite3_randomness(8,puVar22);\n    *(char *)puVar26 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar15 = param_2;\n    param_3 = piVar30;\n    param_4 = uVar20;\n    (*(code *)PTR_sqlite3_snprintf_0015b610)(param_1);\n    if (*(char *)puVar26 != '\0') {\nLAB_0009aae4:\n      local_234 = 1;\n      break;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    puVar19 = (uint *)((int)puVar19 + -1);\n    puVar15 = (undefined4 *)0x0;\n    if (puVar19 == (uint *)0x0) goto LAB_0009aae4;\n    iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2);\n    local_234 = 0;\n    if (iVar5 != 0) break;\nLAB_0009aa88:\n    sqlite3_randomness(8,puVar22);\n    *(char *)puVar26 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar15 = param_2;\n    param_3 = piVar30;\n    param_4 = uVar20;\n    (*(code *)PTR_sqlite3_snprintf_0015b610)(param_1);\n    if (*(char *)puVar26 != '\0') {\nLAB_0009aae4:\n      local_234 = 1;\n      break;\n    }\n  }" { (expression_statement "puVar19 = (uint *)((int)puVar19 + -1);" (assignment_expression "puVar19 = (uint *)((int)puVar19 + -1)" identifier = (cast_expression "(uint *)((int)puVar19 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + -1)" ( (binary_expression "(int)puVar19 + -1" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar15 = (undefined4 *)0x0;" (assignment_expression "puVar15 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (puVar19 == (uint *)0x0) goto LAB_0009aae4;" if (parenthesized_expression "(puVar19 == (uint *)0x0)" ( (binary_expression "puVar19 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0009aae4;" goto statement_identifier ;)) (expression_statement "iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2);" (assignment_expression "iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2)" identifier = (call_expression "(**(code **)(puVar27 + -0x4b9c))(param_2)" (parenthesized_expression "(**(code **)(puVar27 + -0x4b9c))" ( (pointer_expression "**(code **)(puVar27 + -0x4b9c)" * (pointer_expression "*(code **)(puVar27 + -0x4b9c)" * (cast_expression "(code **)(puVar27 + -0x4b9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x4b9c)" ( (binary_expression "puVar27 + -0x4b9c" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "local_234 = 0;" (assignment_expression "local_234 = 0" identifier = number_literal) ;) (if_statement "if (iVar5 != 0) break;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0009aa88:\n    sqlite3_randomness(8,puVar22);" statement_identifier : (expression_statement "sqlite3_randomness(8,puVar22);" (call_expression "sqlite3_randomness(8,puVar22)" identifier (argument_list "(8,puVar22)" ( number_literal , identifier ))) ;)) (expression_statement "*(char *)puVar26 = '\0';" (assignment_expression "*(char *)puVar26 = '\0'" (pointer_expression "*(char *)puVar26" * (cast_expression "(char *)puVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (expression_statement "local_f4 = local_d4;" (assignment_expression "local_f4 = local_d4" identifier = identifier) ;) (expression_statement "local_f8 = local_d8;" (assignment_expression "local_f8 = local_d8" identifier = identifier) ;) (expression_statement "puVar15 = param_2;" (assignment_expression "puVar15 = param_2" identifier = identifier) ;) (expression_statement "param_3 = piVar30;" (assignment_expression "param_3 = piVar30" identifier = identifier) ;) (expression_statement "param_4 = uVar20;" (assignment_expression "param_4 = uVar20" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sqlite3_snprintf_0015b610)(param_1);" (call_expression "(*(code *)PTR_sqlite3_snprintf_0015b610)(param_1)" (parenthesized_expression "(*(code *)PTR_sqlite3_snprintf_0015b610)" ( (pointer_expression "*(code *)PTR_sqlite3_snprintf_0015b610" * (cast_expression "(code *)PTR_sqlite3_snprintf_0015b610" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (if_statement "if (*(char *)puVar26 != '\0') {\nLAB_0009aae4:\n      local_234 = 1;\n      break;\n    }" if (parenthesized_expression "(*(char *)puVar26 != '\0')" ( (binary_expression "*(char *)puVar26 != '\0'" (pointer_expression "*(char *)puVar26" * (cast_expression "(char *)puVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0009aae4:\n      local_234 = 1;\n      break;\n    }" { (labeled_statement "LAB_0009aae4:\n      local_234 = 1;" statement_identifier : (expression_statement "local_234 = 1;" (assignment_expression "local_234 = 1" identifier = number_literal) ;)) (break_statement "break;" break ;) })) })) (labeled_statement "LAB_0009a9fc:\n  if (local_2c == *(int *)puVar4) {\n    return local_234;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar4) {\n    return local_234;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar4)" ( (binary_expression "local_2c == *(int *)puVar4" identifier == (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return local_234;\n  }" { (return_statement "return local_234;" return identifier ;) }))) (expression_statement "uVar32 = 0x9ab38;" (assignment_expression "uVar32 = 0x9ab38" identifier = number_literal) ;) (expression_statement "puVar27 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar27 = PTR___stack_chk_fail_0015ba10" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" * (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_208 = puVar27 + 0xc8a78;" (assignment_expression "local_208 = puVar27 + 0xc8a78" identifier = (binary_expression "puVar27 + 0xc8a78" identifier + number_literal)) ;) (expression_statement "piVar31 = *(int **)(puVar27 + 0xc0ef4);" (assignment_expression "piVar31 = *(int **)(puVar27 + 0xc0ef4)" identifier = (pointer_expression "*(int **)(puVar27 + 0xc0ef4)" * (cast_expression "(int **)(puVar27 + 0xc0ef4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + 0xc0ef4)" ( (binary_expression "puVar27 + 0xc0ef4" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *piVar31;" (assignment_expression "iVar5 = *piVar31" identifier = (pointer_expression "*piVar31" * identifier)) ;) (expression_statement "local_134 = iVar5;" (assignment_expression "local_134 = iVar5" identifier = identifier) ;) (expression_statement "local_130 = puVar19;" (assignment_expression "local_130 = puVar19" identifier = identifier) ;) (expression_statement "local_12c = uVar20;" (assignment_expression "local_12c = uVar20" identifier = identifier) ;) (expression_statement "local_128 = puVar23;" (assignment_expression "local_128 = puVar23" identifier = identifier) ;) (expression_statement "local_124 = param_2;" (assignment_expression "local_124 = param_2" identifier = identifier) ;) (expression_statement "local_120 = param_1;" (assignment_expression "local_120 = param_1" identifier = identifier) ;) (expression_statement "local_11c = puVar22;" (assignment_expression "local_11c = puVar22" identifier = identifier) ;) (expression_statement "local_118 = puVar26;" (assignment_expression "local_118 = puVar26" identifier = identifier) ;) (expression_statement "local_114 = local_234;" (assignment_expression "local_114 = local_234" identifier = identifier) ;) (expression_statement "local_110 = piVar30;" (assignment_expression "local_110 = piVar30" identifier = identifier) ;) (expression_statement "local_10c = uVar32;" (assignment_expression "local_10c = uVar32" identifier = identifier) ;) (if_statement "if (puVar15 < (undefined4 *)0x15) {\n                    /* WARNING: Could not recover jumptable at 0x0009aba0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))();\n    return uVar20;\n  }" if (parenthesized_expression "(puVar15 < (undefined4 *)0x15)" ( (binary_expression "puVar15 < (undefined4 *)0x15" identifier < (cast_expression "(undefined4 *)0x15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0009aba0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))();\n    return uVar20;\n  }" { comment comment (expression_statement "uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))();" (assignment_expression "uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))()" identifier = (call_expression "(*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))()" (parenthesized_expression "(*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))" ( (pointer_expression "*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       )" * (cast_expression "(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       )" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       )" ( (binary_expression "local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)" * (cast_expression "(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)" ( (binary_expression "*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4" (binary_expression "*(int *)(puVar27 + 0xc0ac4) + 0xd74" (pointer_expression "*(int *)(puVar27 + 0xc0ac4)" * (cast_expression "(int *)(puVar27 + 0xc0ac4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 0xc0ac4)" ( (binary_expression "puVar27 + 0xc0ac4" identifier + number_literal) )))) + number_literal) + (binary_expression "(int)puVar15 * 4" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar20;" return identifier ;) })) (if_statement "if (iVar5 == *piVar31) {\n    return 0xc;\n  }" if (parenthesized_expression "(iVar5 == *piVar31)" ( (binary_expression "iVar5 == *piVar31" identifier == (pointer_expression "*piVar31" * identifier)) )) (compound_statement "{\n    return 0xc;\n  }" { (return_statement "return 0xc;" return number_literal ;) })) (expression_statement "pcVar28 = *(code **)(puVar27 + 0xc0ed8);" (assignment_expression "pcVar28 = *(code **)(puVar27 + 0xc0ed8)" identifier = (pointer_expression "*(code **)(puVar27 + 0xc0ed8)" * (cast_expression "(code **)(puVar27 + 0xc0ed8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + 0xc0ed8)" ( (binary_expression "puVar27 + 0xc0ed8" identifier + number_literal) ))))) ;) (expression_statement "uVar32 = 0x9b1ac;" (assignment_expression "uVar32 = 0x9b1ac" identifier = number_literal) ;) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar21 = param_4 & 8;" (assignment_expression "uVar21 = param_4 & 8" identifier = (binary_expression "param_4 & 8" identifier & number_literal)) ;) (expression_statement "uVar24 = param_4 & 0xffffff00;" (assignment_expression "uVar24 = param_4 & 0xffffff00" identifier = (binary_expression "param_4 & 0xffffff00" identifier & number_literal)) ;) (expression_statement "piVar30 = *(int **)(pcVar28 + 0xc0880);" (assignment_expression "piVar30 = *(int **)(pcVar28 + 0xc0880)" identifier = (pointer_expression "*(int **)(pcVar28 + 0xc0880)" * (cast_expression "(int **)(pcVar28 + 0xc0880)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0880)" ( (binary_expression "pcVar28 + 0xc0880" identifier + number_literal) ))))) ;) (expression_statement "local_254 = *piVar30;" (assignment_expression "local_254 = *piVar30" identifier = (pointer_expression "*piVar30" * identifier)) ;) (expression_statement "local_72c = param_4 & 1;" (assignment_expression "local_72c = param_4 & 1" identifier = (binary_expression "param_4 & 1" identifier & number_literal)) ;) (expression_statement "uVar6 = param_4 & 2;" (assignment_expression "uVar6 = param_4 & 2" identifier = (binary_expression "param_4 & 2" identifier & number_literal)) ;) (expression_statement "puVar18 = puVar15;" (assignment_expression "puVar18 = puVar15" identifier = identifier) ;) (expression_statement "local_250 = puVar19;" (assignment_expression "local_250 = puVar19" identifier = identifier) ;) (expression_statement "local_24c = uVar20;" (assignment_expression "local_24c = uVar20" identifier = identifier) ;) (expression_statement "local_248 = puVar23;" (assignment_expression "local_248 = puVar23" identifier = identifier) ;) (expression_statement "local_244 = param_2;" (assignment_expression "local_244 = param_2" identifier = identifier) ;) (expression_statement "local_240 = param_1;" (assignment_expression "local_240 = param_1" identifier = identifier) ;) (expression_statement "local_23c = puVar22;" (assignment_expression "local_23c = puVar22" identifier = identifier) ;) (expression_statement "local_238 = puVar26;" (assignment_expression "local_238 = puVar26" identifier = identifier) ;) (expression_statement "local_230 = piVar31;" (assignment_expression "local_230 = piVar31" identifier = identifier) ;) (expression_statement "local_22c = uVar32;" (assignment_expression "local_22c = uVar32" identifier = identifier) ;) (if_statement "if ((param_4 & 4) == 0) {\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    bVar2 = false;\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (iVar7 != *(int *)(iVar25 + -0x4354)) goto LAB_0009b46c;\nLAB_0009b270:\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    if (uVar24 == 0x100) {\n      iVar7 = *(int *)(pcVar28 + 0xc042c);\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));\n      if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }\n      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\nLAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);\n      if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }\n      uVar20 = 7;\n    }\n    else {\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }\n  }\n  else {\n    if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (*(int *)(iVar25 + -0x4354) != iVar7) {\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    bVar2 = true;\n    if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;\nLAB_0009b298:\n    iVar7 = -1;\nLAB_0009b2a0:\n    uVar20 = uVar6;\n    if ((param_4 & 4) != 0) {\n      uVar20 = uVar6 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    (*pcVar29)(param_3[7]);\n  }" if (parenthesized_expression "((param_4 & 4) == 0)" ( (binary_expression "(param_4 & 4) == 0" (parenthesized_expression "(param_4 & 4)" ( (binary_expression "param_4 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    bVar2 = false;\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (iVar7 != *(int *)(iVar25 + -0x4354)) goto LAB_0009b46c;\nLAB_0009b270:\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    if (uVar24 == 0x100) {\n      iVar7 = *(int *)(pcVar28 + 0xc042c);\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));\n      if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }\n      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\nLAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);\n      if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }\n      uVar20 = 7;\n    }\n    else {\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }\n  }" { (expression_statement "iVar25 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar25 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "iVar7 = (**(code **)(pcVar28 + 0xc0840))();" (assignment_expression "iVar7 = (**(code **)(pcVar28 + 0xc0840))()" identifier = (call_expression "(**(code **)(pcVar28 + 0xc0840))()" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0840))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0840)" * (pointer_expression "*(code **)(pcVar28 + 0xc0840)" * (cast_expression "(code **)(pcVar28 + 0xc0840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0840)" ( (binary_expression "pcVar28 + 0xc0840" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar7 != *(int *)(iVar25 + -0x4354)) goto LAB_0009b46c;" if (parenthesized_expression "(iVar7 != *(int *)(iVar25 + -0x4354))" ( (binary_expression "iVar7 != *(int *)(iVar25 + -0x4354)" identifier != (pointer_expression "*(int *)(iVar25 + -0x4354)" * (cast_expression "(int *)(iVar25 + -0x4354)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x4354)" ( (binary_expression "iVar25 + -0x4354" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0009b46c;" goto statement_identifier ;)) (labeled_statement "LAB_0009b270:\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);" statement_identifier : (expression_statement "(**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);" (call_expression "(**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0808))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0808)" * (pointer_expression "*(code **)(pcVar28 + 0xc0808)" * (cast_expression "(code **)(pcVar28 + 0xc0808)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0808)" ( (binary_expression "pcVar28 + 0xc0808" identifier + number_literal) ))))) )) (argument_list "(param_3,0,0x58)" ( identifier , number_literal , number_literal ))) ;)) (if_statement "if (uVar24 == 0x100) {\n      iVar7 = *(int *)(pcVar28 + 0xc042c);\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));\n      if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }\n      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\nLAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);\n      if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }\n      uVar20 = 7;\n    }\n    else {\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }" if (parenthesized_expression "(uVar24 == 0x100)" ( (binary_expression "uVar24 == 0x100" identifier == number_literal) )) (compound_statement "{\n      iVar7 = *(int *)(pcVar28 + 0xc042c);\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));\n      if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }\n      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\nLAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);\n      if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }\n      uVar20 = 7;\n    }" { (expression_statement "iVar7 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar7 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar25 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0504))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0504)" * (pointer_expression "*(code **)(pcVar28 + 0xc0504)" * (cast_expression "(code **)(pcVar28 + 0xc0504)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0504)" ( (binary_expression "pcVar28 + 0xc0504" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar7 + -0x4358))" ( (pointer_expression "*(undefined4 *)(iVar7 + -0x4358)" * (cast_expression "(undefined4 *)(iVar7 + -0x4358)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x4358)" ( (binary_expression "iVar7 + -0x4358" identifier + number_literal) )))) ))) ;) (if_statement "if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }" if (parenthesized_expression "((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0))" ( (binary_expression "(*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)" (parenthesized_expression "(*(int *)(iVar25 + -0x435c) != 0)" ( (binary_expression "*(int *)(iVar25 + -0x435c) != 0" (pointer_expression "*(int *)(iVar25 + -0x435c)" * (cast_expression "(int *)(iVar25 + -0x435c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x435c)" ( (binary_expression "iVar25 + -0x435c" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)" ( (comma_expression "iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0" (assignment_expression "iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700)" identifier = (call_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700)" (parenthesized_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))" ( (pointer_expression "**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" * (pointer_expression "*(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" * (cast_expression "(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" ( (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x4b84" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar15,local_700)" ( identifier , identifier )))) , (binary_expression "iVar8 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }" { (for_statement "for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }" for ( (assignment_expression "piVar31 = *(int **)(iVar25 + -0x435c)" identifier = (pointer_expression "*(int **)(iVar25 + -0x435c)" * (cast_expression "(int **)(iVar25 + -0x435c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x435c)" ( (binary_expression "iVar25 + -0x435c" identifier + number_literal) ))))) ; (binary_expression "piVar31 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar31 = (int *)piVar31[0xb]" identifier = (cast_expression "(int *)piVar31[0xb]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar31[0xb]" identifier [ number_literal ]))) ) (compound_statement "{\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }" { (if_statement "if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }" if (parenthesized_expression "((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec))" ( (binary_expression "(((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)" (parenthesized_expression "(((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0))" ( (binary_expression "((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)" (parenthesized_expression "((*piVar31 == 0) && (piVar31[1] == local_700[0]))" ( (binary_expression "(*piVar31 == 0) && (piVar31[1] == local_700[0])" (parenthesized_expression "(*piVar31 == 0)" ( (binary_expression "*piVar31 == 0" (pointer_expression "*piVar31" * identifier) == number_literal) )) && (parenthesized_expression "(piVar31[1] == local_700[0])" ( (binary_expression "piVar31[1] == local_700[0]" (subscript_expression "piVar31[1]" identifier [ number_literal ]) == (subscript_expression "local_700[0]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "(piVar31[2] == local_6f0)" ( (binary_expression "piVar31[2] == local_6f0" (subscript_expression "piVar31[2]" identifier [ number_literal ]) == identifier) ))) )) && (parenthesized_expression "(piVar31[3] == local_6ec)" ( (binary_expression "piVar31[3] == local_6ec" (subscript_expression "piVar31[3]" identifier [ number_literal ]) == identifier) ))) )) (compound_statement "{\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }" { (expression_statement "(**(code **)(pcVar28 + 0xc0504))(piVar31[4]);" (call_expression "(**(code **)(pcVar28 + 0xc0504))(piVar31[4])" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0504))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0504)" * (pointer_expression "*(code **)(pcVar28 + 0xc0504)" * (cast_expression "(code **)(pcVar28 + 0xc0504)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0504)" ( (binary_expression "pcVar28 + 0xc0504" identifier + number_literal) ))))) )) (argument_list "(piVar31[4])" ( (subscript_expression "piVar31[4]" identifier [ number_literal ]) ))) ;) (expression_statement "piVar13 = (int *)piVar31[8];" (assignment_expression "piVar13 = (int *)piVar31[8]" identifier = (cast_expression "(int *)piVar31[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar31[8]" identifier [ number_literal ]))) ;) (if_statement "if (piVar13 == (int *)0x0) goto LAB_0009b728;" if (parenthesized_expression "(piVar13 == (int *)0x0)" ( (binary_expression "piVar13 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0009b728;" goto statement_identifier ;)) (expression_statement "uVar20 = piVar13[1];" (assignment_expression "uVar20 = piVar13[1]" identifier = (subscript_expression "piVar13[1]" identifier [ number_literal ])) ;) (expression_statement "piVar17 = piVar31 + 8;" (assignment_expression "piVar17 = piVar31 + 8" identifier = (binary_expression "piVar31 + 8" identifier + number_literal)) ;) (goto_statement "goto joined_r0x0009b6fc;" goto statement_identifier ;) })) })) })) (expression_statement "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0508))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0508)" * (pointer_expression "*(code **)(pcVar28 + 0xc0508)" * (cast_expression "(code **)(pcVar28 + 0xc0508)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0508)" ( (binary_expression "pcVar28 + 0xc0508" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar7 + -0x4358))" ( (pointer_expression "*(undefined4 *)(iVar7 + -0x4358)" * (cast_expression "(undefined4 *)(iVar7 + -0x4358)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x4358)" ( (binary_expression "iVar7 + -0x4358" identifier + number_literal) )))) ))) ;) (labeled_statement "LAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);" statement_identifier : (expression_statement "iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);" (assignment_expression "iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc)" identifier = (call_expression "(**(code **)(pcVar28 + 0xc05b4))(0,0xc)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc05b4))" ( (pointer_expression "**(code **)(pcVar28 + 0xc05b4)" * (pointer_expression "*(code **)(pcVar28 + 0xc05b4)" * (cast_expression "(code **)(pcVar28 + 0xc05b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc05b4)" ( (binary_expression "pcVar28 + 0xc05b4" identifier + number_literal) ))))) )) (argument_list "(0,0xc)" ( number_literal , number_literal )))) ;)) (if_statement "if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }" { (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) (expression_statement "param_3[7] = iVar25;" (assignment_expression "param_3[7] = iVar25" (subscript_expression "param_3[7]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_0009b2a0;" goto statement_identifier ;) })) (expression_statement "uVar20 = 7;" (assignment_expression "uVar20 = 7" identifier = number_literal) ;) }) (else_clause "else {\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }" else (compound_statement "{\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }" { (if_statement "if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;" if (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" ( (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0009b298;" goto statement_identifier ;)) (labeled_statement "LAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);" statement_identifier : (expression_statement "uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);" (assignment_expression "uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458)" identifier = (call_expression "FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458)" identifier (argument_list "(*(undefined4 *)(iVar5 + 8),auStack_458)" ( (pointer_expression "*(undefined4 *)(iVar5 + 8)" * (cast_expression "(undefined4 *)(iVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) , identifier )))) ;)) (if_statement "if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }" { (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) (expression_statement "puVar18 = auStack_458;" (assignment_expression "puVar18 = auStack_458" identifier = identifier) ;) (goto_statement "goto LAB_0009b2a0;" goto statement_identifier ;) })) }))) }) (else_clause "else {\n    if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (*(int *)(iVar25 + -0x4354) != iVar7) {\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    bVar2 = true;\n    if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;\nLAB_0009b298:\n    iVar7 = -1;\nLAB_0009b2a0:\n    uVar20 = uVar6;\n    if ((param_4 & 4) != 0) {\n      uVar20 = uVar6 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    (*pcVar29)(param_3[7]);\n  }" else (compound_statement "{\n    if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (*(int *)(iVar25 + -0x4354) != iVar7) {\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    bVar2 = true;\n    if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;\nLAB_0009b298:\n    iVar7 = -1;\nLAB_0009b2a0:\n    uVar20 = uVar6;\n    if ((param_4 & 4) != 0) {\n      uVar20 = uVar6 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    (*pcVar29)(param_3[7]);\n  }" { (if_statement "if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }" if (parenthesized_expression "((uVar24 != 0x4000) && (uVar24 != 0x800))" ( (binary_expression "(uVar24 != 0x4000) && (uVar24 != 0x800)" (parenthesized_expression "(uVar24 != 0x4000)" ( (binary_expression "uVar24 != 0x4000" identifier != number_literal) )) && (parenthesized_expression "(uVar24 != 0x800)" ( (binary_expression "uVar24 != 0x800" identifier != number_literal) ))) )) (compound_statement "{\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }" { (expression_statement "iVar25 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar25 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (expression_statement "bVar2 = uVar24 == 0x80000;" (assignment_expression "bVar2 = uVar24 == 0x80000" identifier = (binary_expression "uVar24 == 0x80000" identifier == number_literal)) ;) (expression_statement "iVar7 = (**(code **)(pcVar28 + 0xc0840))();" (assignment_expression "iVar7 = (**(code **)(pcVar28 + 0xc0840))()" identifier = (call_expression "(**(code **)(pcVar28 + 0xc0840))()" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0840))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0840)" * (pointer_expression "*(code **)(pcVar28 + 0xc0840)" * (cast_expression "(code **)(pcVar28 + 0xc0840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0840)" ( (binary_expression "pcVar28 + 0xc0840" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;" if (parenthesized_expression "(iVar7 == *(int *)(iVar25 + -0x4354))" ( (binary_expression "iVar7 == *(int *)(iVar25 + -0x4354)" identifier == (pointer_expression "*(int *)(iVar25 + -0x4354)" * (cast_expression "(int *)(iVar25 + -0x4354)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x4354)" ( (binary_expression "iVar25 + -0x4354" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0009b270;" goto statement_identifier ;)) (labeled_statement "LAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();" statement_identifier : (expression_statement "uVar32 = (**(code **)(pcVar28 + 0xc0840))();" (assignment_expression "uVar32 = (**(code **)(pcVar28 + 0xc0840))()" identifier = (call_expression "(**(code **)(pcVar28 + 0xc0840))()" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0840))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0840)" * (pointer_expression "*(code **)(pcVar28 + 0xc0840)" * (cast_expression "(code **)(pcVar28 + 0xc0840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0840)" ( (binary_expression "pcVar28 + 0xc0840" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;)) (expression_statement "*(undefined4 *)(iVar25 + -0x4354) = uVar32;" (assignment_expression "*(undefined4 *)(iVar25 + -0x4354) = uVar32" (pointer_expression "*(undefined4 *)(iVar25 + -0x4354)" * (cast_expression "(undefined4 *)(iVar25 + -0x4354)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x4354)" ( (binary_expression "iVar25 + -0x4354" identifier + number_literal) )))) = identifier) ;) (expression_statement "sqlite3_randomness(0,0);" (call_expression "sqlite3_randomness(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal ))) ;) (goto_statement "goto LAB_0009b270;" goto statement_identifier ;) })) (expression_statement "iVar25 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar25 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = (**(code **)(pcVar28 + 0xc0840))();" (assignment_expression "iVar7 = (**(code **)(pcVar28 + 0xc0840))()" identifier = (call_expression "(**(code **)(pcVar28 + 0xc0840))()" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0840))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0840)" * (pointer_expression "*(code **)(pcVar28 + 0xc0840)" * (cast_expression "(code **)(pcVar28 + 0xc0840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0840)" ( (binary_expression "pcVar28 + 0xc0840" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (*(int *)(iVar25 + -0x4354) != iVar7) {\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }" if (parenthesized_expression "(*(int *)(iVar25 + -0x4354) != iVar7)" ( (binary_expression "*(int *)(iVar25 + -0x4354) != iVar7" (pointer_expression "*(int *)(iVar25 + -0x4354)" * (cast_expression "(int *)(iVar25 + -0x4354)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x4354)" ( (binary_expression "iVar25 + -0x4354" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (goto_statement "goto LAB_0009b46c;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);" (call_expression "(**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0808))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0808)" * (pointer_expression "*(code **)(pcVar28 + 0xc0808)" * (cast_expression "(code **)(pcVar28 + 0xc0808)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0808)" ( (binary_expression "pcVar28 + 0xc0808" identifier + number_literal) ))))) )) (argument_list "(param_3,0,0x58)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (if_statement "if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;" if (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" ( (binary_expression "puVar15 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0009b618;" goto statement_identifier ;)) (labeled_statement "LAB_0009b298:\n    iVar7 = -1;" statement_identifier : (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;)) (labeled_statement "LAB_0009b2a0:\n    uVar20 = uVar6;" statement_identifier : (expression_statement "uVar20 = uVar6;" (assignment_expression "uVar20 = uVar6" identifier = identifier) ;)) (if_statement "if ((param_4 & 4) != 0) {\n      uVar20 = uVar6 | 0x100;\n    }" if (parenthesized_expression "((param_4 & 4) != 0)" ( (binary_expression "(param_4 & 4) != 0" (parenthesized_expression "(param_4 & 4)" ( (binary_expression "param_4 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar20 = uVar6 | 0x100;\n    }" { (expression_statement "uVar20 = uVar6 | 0x100;" (assignment_expression "uVar20 = uVar6 | 0x100" identifier = (binary_expression "uVar6 | 0x100" identifier | number_literal)) ;) })) (if_statement "if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }" if (parenthesized_expression "((param_4 & 0x10) == 0)" ( (binary_expression "(param_4 & 0x10) == 0" (parenthesized_expression "(param_4 & 0x10)" ( (binary_expression "param_4 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }" { (if_statement "if (-1 < iVar7) goto LAB_0009b2c4;" if (parenthesized_expression "(-1 < iVar7)" ( (binary_expression "-1 < iVar7" number_literal < identifier) )) (goto_statement "goto LAB_0009b2c4;" goto statement_identifier ;)) (labeled_statement "LAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;" statement_identifier : (expression_statement "uVar14 = param_4 & 0x80800;" (assignment_expression "uVar14 = param_4 & 0x80800" identifier = (binary_expression "param_4 & 0x80800" identifier & number_literal)) ;)) (if_statement "if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }" { (if_statement "if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }" if (parenthesized_expression "(puVar18 == (undefined4 *)0x0)" ( (binary_expression "puVar18 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }" { (expression_statement "cVar1 = *(char *)(in_zero + -1);" (assignment_expression "cVar1 = *(char *)(in_zero + -1)" identifier = (pointer_expression "*(char *)(in_zero + -1)" * (cast_expression "(char *)(in_zero + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_zero + -1)" ( (binary_expression "in_zero + -1" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) (if_statement "if (cVar1 != '-') goto joined_r0x0009b50c;" if (parenthesized_expression "(cVar1 != '-')" ( (binary_expression "cVar1 != '-'" identifier != (char_literal "'-'" ' character ')) )) (goto_statement "goto joined_r0x0009b50c;" goto statement_identifier ;)) (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0828);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0828)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xc0828)" * (cast_expression "(code **)(pcVar28 + 0xc0828)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0828)" ( (binary_expression "pcVar28 + 0xc0828" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }" else (compound_statement "{\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }" { (expression_statement "uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);" (assignment_expression "uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18)" identifier = (call_expression "(**(code **)(pcVar28 + 0xc0818))(puVar18)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0818))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0818)" * (pointer_expression "*(code **)(pcVar28 + 0xc0818)" * (cast_expression "(code **)(pcVar28 + 0xc0818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0818)" ( (binary_expression "pcVar28 + 0xc0818" identifier + number_literal) ))))) )) (argument_list "(puVar18)" ( identifier )))) ;) (expression_statement "iVar7 = (uVar9 & 0x3fffffff) - 1;" (assignment_expression "iVar7 = (uVar9 & 0x3fffffff) - 1" identifier = (binary_expression "(uVar9 & 0x3fffffff) - 1" (parenthesized_expression "(uVar9 & 0x3fffffff)" ( (binary_expression "uVar9 & 0x3fffffff" identifier & number_literal) )) - number_literal)) ;) (expression_statement "cVar1 = *(char *)((int)puVar18 + iVar7);" (assignment_expression "cVar1 = *(char *)((int)puVar18 + iVar7)" identifier = (pointer_expression "*(char *)((int)puVar18 + iVar7)" * (cast_expression "(char *)((int)puVar18 + iVar7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + iVar7)" ( (binary_expression "(int)puVar18 + iVar7" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (while_statement "while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }" while (parenthesized_expression "(cVar1 != '-')" ( (binary_expression "cVar1 != '-'" identifier != (char_literal "'-'" ' character ')) )) (compound_statement "{\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }" { (if_statement "if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }" { (labeled_statement "LAB_0009b934:\n              uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) (expression_statement "local_734 = 0;" (assignment_expression "local_734 = 0" identifier = number_literal) ;) (expression_statement "local_724 = 0;" (assignment_expression "local_724 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0009b93c;" goto statement_identifier ;) })) (labeled_statement "joined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;" statement_identifier : (if_statement "if (cVar1 == '.') goto LAB_0009b934;" if (parenthesized_expression "(cVar1 == '.')" ( (binary_expression "cVar1 == '.'" identifier == (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_0009b934;" goto statement_identifier ;))) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "cVar1 = *(char *)((int)puVar18 + iVar7);" (assignment_expression "cVar1 = *(char *)((int)puVar18 + iVar7)" identifier = (pointer_expression "*(char *)((int)puVar18 + iVar7)" * (cast_expression "(char *)((int)puVar18 + iVar7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + iVar7)" ( (binary_expression "(int)puVar18 + iVar7" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) })) (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0828);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0828)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xc0828)" * (cast_expression "(code **)(pcVar28 + 0xc0828)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0828)" ( (binary_expression "pcVar28 + 0xc0828" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);" (assignment_expression "uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201)" identifier = (call_expression "(*pcVar29)(auStack_65c,puVar18,iVar7,0x201)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(auStack_65c,puVar18,iVar7,0x201)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar25 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar25 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (expression_statement "auStack_65c[iVar7] = 0;" (assignment_expression "auStack_65c[iVar7] = 0" (subscript_expression "auStack_65c[iVar7]" identifier [ identifier ]) = number_literal) ;) (expression_statement "iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);" (assignment_expression "iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700)" identifier = (call_expression "(**(code **)(iVar25 + -0x4b84))(uVar32,local_700)" (parenthesized_expression "(**(code **)(iVar25 + -0x4b84))" ( (pointer_expression "**(code **)(iVar25 + -0x4b84)" * (pointer_expression "*(code **)(iVar25 + -0x4b84)" * (cast_expression "(code **)(iVar25 + -0x4b84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x4b84)" ( (binary_expression "iVar25 + -0x4b84" identifier + number_literal) ))))) )) (argument_list "(uVar32,local_700)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }" { (labeled_statement "LAB_0009bc08:\n          uVar20 = 0x70a;" statement_identifier : (expression_statement "uVar20 = 0x70a;" (assignment_expression "uVar20 = 0x70a" identifier = number_literal) ;)) (goto_statement "goto LAB_0009b410;" goto statement_identifier ;) })) (expression_statement "uVar9 = local_6e8 & 0x1ff;" (assignment_expression "uVar9 = local_6e8 & 0x1ff" identifier = (binary_expression "local_6e8 & 0x1ff" identifier & number_literal)) ;) (expression_statement "local_724 = local_6e0;" (assignment_expression "local_724 = local_6e0" identifier = identifier) ;) (expression_statement "local_734 = local_6dc;" (assignment_expression "local_734 = local_6dc" identifier = identifier) ;) (labeled_statement "LAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);" statement_identifier : (expression_statement "local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);" (assignment_expression "local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc)" identifier = (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x3efc)" ( (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x3efc" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" * (cast_expression "(int *)(pcVar28 + 0xc0594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0594)" ( (binary_expression "pcVar28 + 0xc0594" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);" (assignment_expression "iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9)" identifier = (call_expression "(*local_714)(puVar18,uVar20 | 0x2000,uVar9)" (parenthesized_expression "(*local_714)" ( (pointer_expression "*local_714" * identifier) )) (argument_list "(puVar18,uVar20 | 0x2000,uVar9)" ( identifier , (binary_expression "uVar20 | 0x2000" identifier | number_literal) , identifier )))) ;) (if_statement "if (iVar7 < 0) goto LAB_0009b9ec;" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0009b9ec;" goto statement_identifier ;)) (labeled_statement "LAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);" statement_identifier : (expression_statement "(*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);" (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))" ( (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8)" * (cast_expression "(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc052c) + 0xfd8)" ( (binary_expression "*(int *)(pcVar28 + 0xc052c) + 0xfd8" (pointer_expression "*(int *)(pcVar28 + 0xc052c)" * (cast_expression "(int *)(pcVar28 + 0xc052c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc052c)" ( (binary_expression "pcVar28 + 0xc052c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(iVar7,local_724,local_734)" ( identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_0009b2c4;" goto statement_identifier ;) })) (expression_statement "uVar9 = 0x180;" (assignment_expression "uVar9 = 0x180" identifier = number_literal) ;) (if_statement "if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }" { (if_statement "if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }" if (parenthesized_expression "(((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0))" ( (binary_expression "((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)" (parenthesized_expression "((param_4 & 0x40) == 0)" ( (binary_expression "(param_4 & 0x40) == 0" (parenthesized_expression "(param_4 & 0x40)" ( (binary_expression "param_4 & 0x40" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)" ( (comma_expression "iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390)" identifier = (call_expression "(**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc057c))" ( (pointer_expression "**(code **)(pcVar28 + 0xc057c)" * (pointer_expression "*(code **)(pcVar28 + 0xc057c)" * (cast_expression "(code **)(pcVar28 + 0xc057c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc057c)" ( (binary_expression "pcVar28 + 0xc057c" identifier + number_literal) ))))) )) (argument_list "(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390)" ( identifier , (binary_expression "*(int *)(pcVar28 + 0xc0450) + -0x7390" (pointer_expression "*(int *)(pcVar28 + 0xc0450)" * (cast_expression "(int *)(pcVar28 + 0xc0450)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0450)" ( (binary_expression "pcVar28 + 0xc0450" identifier + number_literal) )))) + number_literal) )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }" { (expression_statement "local_734 = 0;" (assignment_expression "local_734 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "local_724 = 0;" (assignment_expression "local_724 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }" else (compound_statement "{\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }" { (expression_statement "iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);" (assignment_expression "iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700)" identifier = (call_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700)" (parenthesized_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))" ( (pointer_expression "**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" * (pointer_expression "*(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" * (cast_expression "(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" ( (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x4b84" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar7,local_700)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) goto LAB_0009bc08;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0009bc08;" goto statement_identifier ;)) (expression_statement "local_724 = local_6e0;" (assignment_expression "local_724 = local_6e0" identifier = identifier) ;) (expression_statement "uVar9 = local_6e8 & 0x1ff;" (assignment_expression "uVar9 = local_6e8 & 0x1ff" identifier = (binary_expression "local_6e8 & 0x1ff" identifier & number_literal)) ;) (expression_statement "local_734 = local_6dc;" (assignment_expression "local_734 = local_6dc" identifier = identifier) ;) }))) }) (else_clause "else {\n        local_734 = 0;\n        local_724 = 0;\n      }" else (compound_statement "{\n        local_734 = 0;\n        local_724 = 0;\n      }" { (expression_statement "local_734 = 0;" (assignment_expression "local_734 = 0" identifier = number_literal) ;) (expression_statement "local_724 = 0;" (assignment_expression "local_724 = 0" identifier = number_literal) ;) }))) (expression_statement "local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);" (assignment_expression "local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc)" identifier = (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x3efc)" ( (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x3efc" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" * (cast_expression "(int *)(pcVar28 + 0xc0594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0594)" ( (binary_expression "pcVar28 + 0xc0594" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);" (assignment_expression "iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9)" identifier = (call_expression "(*local_714)(puVar18,uVar20 | 0x2000,uVar9)" (parenthesized_expression "(*local_714)" ( (pointer_expression "*local_714" * identifier) )) (argument_list "(puVar18,uVar20 | 0x2000,uVar9)" ( identifier , (binary_expression "uVar20 | 0x2000" identifier | number_literal) , identifier )))) ;) (if_statement "if (-1 < iVar7) goto LAB_0009b2c4;" if (parenthesized_expression "(-1 < iVar7)" ( (binary_expression "-1 < iVar7" number_literal < identifier) )) (goto_statement "goto LAB_0009b2c4;" goto statement_identifier ;)) (labeled_statement "LAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();" statement_identifier : (expression_statement "piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();" (assignment_expression "piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))()" identifier = (cast_expression "(int *)(**(code **)(pcVar28 + 0xc0800))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar28 + 0xc0800))()" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0800))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0800)" * (pointer_expression "*(code **)(pcVar28 + 0xc0800)" * (cast_expression "(code **)(pcVar28 + 0xc0800)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0800)" ( (binary_expression "pcVar28 + 0xc0800" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;)) (expression_statement "iVar7 = *piVar31;" (assignment_expression "iVar7 = *piVar31" identifier = (pointer_expression "*piVar31" * identifier)) ;) (if_statement "if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }" if (parenthesized_expression "((bVar2) && (iVar7 == 0xd))" ( (binary_expression "(bVar2) && (iVar7 == 0xd)" (parenthesized_expression "(bVar2)" ( identifier )) && (parenthesized_expression "(iVar7 == 0xd)" ( (binary_expression "iVar7 == 0xd" identifier == number_literal) ))) )) (compound_statement "{\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }" { (expression_statement "iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);" (assignment_expression "iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0)" identifier = (call_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0)" (parenthesized_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))" ( (pointer_expression "**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c)" * (pointer_expression "*(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c)" * (cast_expression "(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc042c) + -0x4b9c)" ( (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x4b9c" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar18,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }" { (expression_statement "iVar7 = *piVar31;" (assignment_expression "iVar7 = *piVar31" identifier = (pointer_expression "*piVar31" * identifier)) ;) (goto_statement "goto LAB_0009ba2c;" goto statement_identifier ;) })) (expression_statement "uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);" (assignment_expression "uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634)" identifier = (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))" ( (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628)" * (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x7628)" ( (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x7628" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" * (cast_expression "(int *)(pcVar28 + 0xc0594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0594)" ( (binary_expression "pcVar28 + 0xc0594" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(0x9634)" ( number_literal )))) ;) (expression_statement "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);" (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))" ( (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c)" * (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x3d4c)" ( (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x3d4c" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" * (cast_expression "(int *)(pcVar28 + 0xc0594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0594)" ( (binary_expression "pcVar28 + 0xc0594" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634)" ( identifier , (binary_expression "*(int *)(pcVar28 + 0xc043c) + 0x7284" (pointer_expression "*(int *)(pcVar28 + 0xc043c)" * (cast_expression "(int *)(pcVar28 + 0xc043c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc043c)" ( (binary_expression "pcVar28 + 0xc043c" identifier + number_literal) )))) + number_literal) , identifier , number_literal ))) ;) (expression_statement "uVar20 = 0x608;" (assignment_expression "uVar20 = 0x608" identifier = number_literal) ;) (goto_statement "goto LAB_0009b84c;" goto statement_identifier ;) })) (labeled_statement "LAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }" statement_identifier : (if_statement "if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }" if (parenthesized_expression "((iVar7 != 0x15) && (uVar6 != 0))" ( (binary_expression "(iVar7 != 0x15) && (uVar6 != 0)" (parenthesized_expression "(iVar7 != 0x15)" ( (binary_expression "iVar7 != 0x15" identifier != number_literal) )) && (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) ))) )) (compound_statement "{\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }" { (expression_statement "param_4 = param_4 & 0xfffffff9 | 1;" (assignment_expression "param_4 = param_4 & 0xfffffff9 | 1" identifier = (binary_expression "param_4 & 0xfffffff9 | 1" (binary_expression "param_4 & 0xfffffff9" identifier & number_literal) | number_literal)) ;) (expression_statement "iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);" (assignment_expression "iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9)" identifier = (call_expression "(*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9)" (parenthesized_expression "(*local_714)" ( (pointer_expression "*local_714" * identifier) )) (argument_list "(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9)" ( identifier , (binary_expression "uVar20 & 0xfffffefd | 0x2000" (binary_expression "uVar20 & 0xfffffefd" identifier & number_literal) | number_literal) , identifier )))) ;) (if_statement "if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }" if (parenthesized_expression "(-1 < iVar7)" ( (binary_expression "-1 < iVar7" number_literal < identifier) )) (compound_statement "{\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }" { (expression_statement "local_72c = 1;" (assignment_expression "local_72c = 1" identifier = number_literal) ;) (if_statement "if (uVar14 == 0) goto LAB_0009b2c4;" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0009b2c4;" goto statement_identifier ;)) (goto_statement "goto LAB_0009b97c;" goto statement_identifier ;) })) }))) (expression_statement "uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);" (assignment_expression "uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634)" identifier = (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))" ( (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628)" * (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x7628)" ( (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x7628" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" * (cast_expression "(int *)(pcVar28 + 0xc0594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0594)" ( (binary_expression "pcVar28 + 0xc0594" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(0x9634)" ( number_literal )))) ;) (expression_statement "uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);" (assignment_expression "uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634)" identifier = (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))" ( (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c)" * (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x3d4c)" ( (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x3d4c" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" * (cast_expression "(int *)(pcVar28 + 0xc0594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0594)" ( (binary_expression "pcVar28 + 0xc0594" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634)" ( identifier , (binary_expression "*(int *)(pcVar28 + 0xc043c) + 0x7284" (pointer_expression "*(int *)(pcVar28 + 0xc043c)" * (cast_expression "(int *)(pcVar28 + 0xc043c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc043c)" ( (binary_expression "pcVar28 + 0xc043c" identifier + number_literal) )))) + number_literal) , identifier , number_literal )))) ;) (if_statement "if (uVar20 == 0) goto LAB_0009b410;" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0009b410;" goto statement_identifier ;)) (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0474);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0474)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xc0474)" * (cast_expression "(code **)(pcVar28 + 0xc0474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0474)" ( (binary_expression "pcVar28 + 0xc0474" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }" else (compound_statement "{\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }" { (expression_statement "uVar20 = uVar20 | 0x20400;" (assignment_expression "uVar20 = uVar20 | 0x20400" identifier = (binary_expression "uVar20 | 0x20400" identifier | number_literal)) ;) (if_statement "if (iVar7 < 0) goto LAB_0009b4a8;" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0009b4a8;" goto statement_identifier ;)) (labeled_statement "LAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }" statement_identifier : (if_statement "if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }" if (parenthesized_expression "(local_218 != (uint *)0x0)" ( (binary_expression "local_218 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *local_218 = param_4;\n      }" { (expression_statement "*local_218 = param_4;" (assignment_expression "*local_218 = param_4" (pointer_expression "*local_218" * identifier) = identifier) ;) }))) (if_statement "if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }" if (parenthesized_expression "((int *)param_3[7] != (int *)0x0)" ( (binary_expression "(int *)param_3[7] != (int *)0x0" (cast_expression "(int *)param_3[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[7]" identifier [ number_literal ])) != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }" { (expression_statement "*(int *)param_3[7] = iVar7;" (assignment_expression "*(int *)param_3[7] = iVar7" (pointer_expression "*(int *)param_3[7]" * (cast_expression "(int *)param_3[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[7]" identifier [ number_literal ]))) = identifier) ;) (expression_statement "*(uint *)(param_3[7] + 4) = param_4;" (assignment_expression "*(uint *)(param_3[7] + 4) = param_4" (pointer_expression "*(uint *)(param_3[7] + 4)" * (cast_expression "(uint *)(param_3[7] + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3[7] + 4)" ( (binary_expression "param_3[7] + 4" (subscript_expression "param_3[7]" identifier [ number_literal ]) + number_literal) )))) = identifier) ;) })) (if_statement "if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }" if (parenthesized_expression "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }" { (expression_statement "uVar21 = 0x20;" (assignment_expression "uVar21 = 0x20" identifier = number_literal) ;) (expression_statement "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);" (call_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18)" (parenthesized_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))" ( (pointer_expression "**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4)" * (pointer_expression "*(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4)" * (cast_expression "(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc042c) + -0x4af4)" ( (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x4af4" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar18)" ( identifier ))) ;) })) (if_statement "if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }" if (parenthesized_expression "(local_72c != 0)" ( (binary_expression "local_72c != 0" identifier != number_literal) )) (compound_statement "{\n        uVar21 = uVar21 | 2;\n      }" { (expression_statement "uVar21 = uVar21 | 2;" (assignment_expression "uVar21 = uVar21 | 2" identifier = (binary_expression "uVar21 | 2" identifier | number_literal)) ;) })) (if_statement "if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }" if (parenthesized_expression "(uVar24 != 0x100)" ( (binary_expression "uVar24 != 0x100" identifier != number_literal) )) (compound_statement "{\n        uVar21 = uVar21 | 0x80;\n      }" { (expression_statement "uVar21 = uVar21 | 0x80;" (assignment_expression "uVar21 = uVar21 | 0x80" identifier = (binary_expression "uVar21 | 0x80" identifier | number_literal)) ;) })) (if_statement "if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n        uVar21 = uVar21 | 8;\n      }" { (expression_statement "uVar21 = uVar21 | 8;" (assignment_expression "uVar21 = uVar21 | 8" identifier = (binary_expression "uVar21 | 8" identifier | number_literal)) ;) })) (expression_statement "iVar25 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar25 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (if_statement "if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }" if (parenthesized_expression "((param_4 & 0x40) == 0)" ( (binary_expression "(param_4 & 0x40) == 0" (parenthesized_expression "(param_4 & 0x40)" ( (binary_expression "param_4 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }" { (expression_statement "param_3[3] = iVar7;" (assignment_expression "param_3[3] = iVar7" (subscript_expression "param_3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22 = (undefined4 *)0x0;" (assignment_expression "puVar22 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }" else (compound_statement "{\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }" { (expression_statement "uVar21 = uVar21 | 0x40;" (assignment_expression "uVar21 = uVar21 | 0x40" identifier = (binary_expression "uVar21 | 0x40" identifier | number_literal)) ;) (expression_statement "param_3[3] = iVar7;" (assignment_expression "param_3[3] = iVar7" (subscript_expression "param_3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22 = puVar15;" (assignment_expression "puVar22 = puVar15" identifier = identifier) ;) }))) (expression_statement "iVar16 = *(int *)(pcVar28 + 0xc0450);" (assignment_expression "iVar16 = *(int *)(pcVar28 + 0xc0450)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc0450)" * (cast_expression "(int *)(pcVar28 + 0xc0450)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0450)" ( (binary_expression "pcVar28 + 0xc0450" identifier + number_literal) ))))) ;) (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0648);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0648)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xc0648)" * (cast_expression "(code **)(pcVar28 + 0xc0648)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0648)" ( (binary_expression "pcVar28 + 0xc0648" identifier + number_literal) ))))) ;) (expression_statement "param_3[1] = iVar5;" (assignment_expression "param_3[1] = iVar5" (subscript_expression "param_3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[8] = (int)puVar15;" (assignment_expression "param_3[8] = (int)puVar15" (subscript_expression "param_3[8]" identifier [ number_literal ]) = (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(short *)((int)param_3 + 0x12) = (short)uVar21;" (assignment_expression "*(short *)((int)param_3 + 0x12) = (short)uVar21" (pointer_expression "*(short *)((int)param_3 + 0x12)" * (cast_expression "(short *)((int)param_3 + 0x12)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x12)" ( (binary_expression "(int)param_3 + 0x12" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(short)uVar21" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "iVar8 = *(int *)(iVar25 + -0x5d20);" (assignment_expression "iVar8 = *(int *)(iVar25 + -0x5d20)" identifier = (pointer_expression "*(int *)(iVar25 + -0x5d20)" * (cast_expression "(int *)(iVar25 + -0x5d20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x5d20)" ( (binary_expression "iVar25 + -0x5d20" identifier + number_literal) ))))) ;) (expression_statement "param_3[0x11] = *(int *)(iVar25 + -0x5d1c);" (assignment_expression "param_3[0x11] = *(int *)(iVar25 + -0x5d1c)" (subscript_expression "param_3[0x11]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar25 + -0x5d1c)" * (cast_expression "(int *)(iVar25 + -0x5d1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x5d1c)" ( (binary_expression "iVar25 + -0x5d1c" identifier + number_literal) ))))) ;) (expression_statement "param_3[0x10] = iVar8;" (assignment_expression "param_3[0x10] = iVar8" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);" (assignment_expression "iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1)" identifier = (call_expression "(*pcVar29)(puVar22,iVar16 + -0x7388,1)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(puVar22,iVar16 + -0x7388,1)" ( identifier , (binary_expression "iVar16 + -0x7388" identifier + number_literal) , number_literal )))) ;) (if_statement "if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }" { (expression_statement "*(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;" (assignment_expression "*(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10" (pointer_expression "*(ushort *)((int)param_3 + 0x12)" * (cast_expression "(ushort *)((int)param_3 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x12)" ( (binary_expression "(int)param_3 + 0x12" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(ushort *)((int)param_3 + 0x12) | 0x10" (pointer_expression "*(ushort *)((int)param_3 + 0x12)" * (cast_expression "(ushort *)((int)param_3 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x12)" ( (binary_expression "(int)param_3 + 0x12" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) })) (expression_statement "iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);" (assignment_expression "iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380)" identifier = (call_expression "(**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc08b0))" ( (pointer_expression "**(code **)(pcVar28 + 0xc08b0)" * (pointer_expression "*(code **)(pcVar28 + 0xc08b0)" * (cast_expression "(code **)(pcVar28 + 0xc08b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc08b0)" ( (binary_expression "pcVar28 + 0xc08b0" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380)" ( (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" * (cast_expression "(undefined4 *)(iVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar28 + 0xc0450) + -0x7380" (pointer_expression "*(int *)(pcVar28 + 0xc0450)" * (cast_expression "(int *)(pcVar28 + 0xc0450)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0450)" ( (binary_expression "pcVar28 + 0xc0450" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }" { (expression_statement "*(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;" (assignment_expression "*(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1" (pointer_expression "*(ushort *)((int)param_3 + 0x12)" * (cast_expression "(ushort *)((int)param_3 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x12)" ( (binary_expression "(int)param_3 + 0x12" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(ushort *)((int)param_3 + 0x12) | 1" (pointer_expression "*(ushort *)((int)param_3 + 0x12)" * (cast_expression "(ushort *)((int)param_3 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x12)" ( (binary_expression "(int)param_3 + 0x12" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) })) (if_statement "if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }" if (parenthesized_expression "((uVar21 & 0x80) != 0)" ( (binary_expression "(uVar21 & 0x80) != 0" (parenthesized_expression "(uVar21 & 0x80)" ( (binary_expression "uVar21 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }" { (expression_statement "iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;" (assignment_expression "iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c" identifier = (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x656c" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_0009b3f0;" goto statement_identifier ;) })) (expression_statement "iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);" (assignment_expression "iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3)" identifier = (call_expression "(*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3)" (parenthesized_expression "(*(code *)**(undefined4 **)(iVar5 + 0x14))" ( (pointer_expression "*(code *)**(undefined4 **)(iVar5 + 0x14)" * (cast_expression "(code *)**(undefined4 **)(iVar5 + 0x14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(iVar5 + 0x14)" * (pointer_expression "*(undefined4 **)(iVar5 + 0x14)" * (cast_expression "(undefined4 **)(iVar5 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))))) )) (argument_list "(puVar15,param_3)" ( identifier , identifier )))) ;) (if_statement "if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }" if (parenthesized_expression "(iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c)" ( (binary_expression "iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c" identifier == (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x651c" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) )))) + number_literal)) )) (compound_statement "{\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }" { (expression_statement "iVar8 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar8 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0504))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0504)" * (pointer_expression "*(code **)(pcVar28 + 0xc0504)" * (cast_expression "(code **)(pcVar28 + 0xc0504)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0504)" ( (binary_expression "pcVar28 + 0xc0504" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar8 + -0x4358))" ( (pointer_expression "*(undefined4 *)(iVar8 + -0x4358)" * (cast_expression "(undefined4 *)(iVar8 + -0x4358)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x4358)" ( (binary_expression "iVar8 + -0x4358" identifier + number_literal) )))) ))) ;) (expression_statement "iVar12 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar12 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (expression_statement "iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);" (assignment_expression "iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700)" identifier = (call_expression "(**(code **)(iVar12 + -0x4b78))(param_3[3],local_700)" (parenthesized_expression "(**(code **)(iVar12 + -0x4b78))" ( (pointer_expression "**(code **)(iVar12 + -0x4b78)" * (pointer_expression "*(code **)(iVar12 + -0x4b78)" * (cast_expression "(code **)(iVar12 + -0x4b78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x4b78)" ( (binary_expression "iVar12 + -0x4b78" identifier + number_literal) ))))) )) (argument_list "(param_3[3],local_700)" ( (subscript_expression "param_3[3]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }" { (expression_statement "iVar16 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar16 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (expression_statement "local_710 = 0;" (assignment_expression "local_710 = 0" identifier = number_literal) ;) (expression_statement "local_70c = local_700[0];" (assignment_expression "local_70c = local_700[0]" identifier = (subscript_expression "local_700[0]" identifier [ number_literal ])) ;) (expression_statement "local_704 = local_6ec;" (assignment_expression "local_704 = local_6ec" identifier = identifier) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar16 + -0x435c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar16 + -0x435c)" identifier = (pointer_expression "*(undefined4 **)(iVar16 + -0x435c)" * (cast_expression "(undefined4 **)(iVar16 + -0x435c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + -0x435c)" ( (binary_expression "iVar16 + -0x435c" identifier + number_literal) ))))) ;) (expression_statement "local_708 = local_6f0;" (assignment_expression "local_708 = local_6f0" identifier = identifier) ;) (if_statement "if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }" if (parenthesized_expression "(puVar22 == (undefined4 *)0x0)" ( (binary_expression "puVar22 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }" { (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc05b4);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc05b4)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xc05b4)" * (cast_expression "(code **)(pcVar28 + 0xc05b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc05b4)" ( (binary_expression "pcVar28 + 0xc05b4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }" else (compound_statement "{\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }" { (do_statement "do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);" do (compound_statement "{\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            }" { (expression_statement "iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);" (assignment_expression "iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10)" identifier = (call_expression "(**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0870))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0870)" * (pointer_expression "*(code **)(pcVar28 + 0xc0870)" * (cast_expression "(code **)(pcVar28 + 0xc0870)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0870)" ( (binary_expression "pcVar28 + 0xc0870" identifier + number_literal) ))))) )) (argument_list "(&local_710,puVar22,0x10)" ( (pointer_expression "&local_710" & identifier) , identifier , number_literal )))) ;) (if_statement "if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }" { (expression_statement "puVar22[9] = puVar22[9] + 1;" (assignment_expression "puVar22[9] = puVar22[9] + 1" (subscript_expression "puVar22[9]" identifier [ number_literal ]) = (binary_expression "puVar22[9] + 1" (subscript_expression "puVar22[9]" identifier [ number_literal ]) + number_literal)) ;) (goto_statement "goto LAB_0009b910;" goto statement_identifier ;) })) (expression_statement "puVar22 = (undefined4 *)puVar22[0xb];" (assignment_expression "puVar22 = (undefined4 *)puVar22[0xb]" identifier = (cast_expression "(undefined4 *)puVar22[0xb]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar22[0xb]" identifier [ number_literal ]))) ;) (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc05b4);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc05b4)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xc05b4)" * (cast_expression "(code **)(pcVar28 + 0xc05b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc05b4)" ( (binary_expression "pcVar28 + 0xc05b4" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(puVar22 != (undefined4 *)0x0)" ( (binary_expression "puVar22 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (expression_statement "puVar22 = (undefined4 *)(*pcVar29)(0,0x38);" (assignment_expression "puVar22 = (undefined4 *)(*pcVar29)(0,0x38)" identifier = (cast_expression "(undefined4 *)(*pcVar29)(0,0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar29)(0,0x38)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(0,0x38)" ( number_literal , number_literal ))))) ;) (if_statement "if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }" if (parenthesized_expression "(puVar22 != (undefined4 *)0x0)" ( (binary_expression "puVar22 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }" { (expression_statement "(**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);" (call_expression "(**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0808))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0808)" * (pointer_expression "*(code **)(pcVar28 + 0xc0808)" * (cast_expression "(code **)(pcVar28 + 0xc0808)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0808)" ( (binary_expression "pcVar28 + 0xc0808" identifier + number_literal) ))))) )) (argument_list "(puVar22 + 4,0,0x28)" ( (binary_expression "puVar22 + 4" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "*puVar22 = local_710;" (assignment_expression "*puVar22 = local_710" (pointer_expression "*puVar22" * identifier) = identifier) ;) (expression_statement "puVar22[1] = local_70c;" (assignment_expression "puVar22[1] = local_70c" (subscript_expression "puVar22[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[2] = local_708;" (assignment_expression "puVar22[2] = local_708" (subscript_expression "puVar22[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[3] = local_704;" (assignment_expression "puVar22[3] = local_704" (subscript_expression "puVar22[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }" if (parenthesized_expression "(*(int *)(iVar25 + -0x5dd4) != 0)" ( (binary_expression "*(int *)(iVar25 + -0x5dd4) != 0" (pointer_expression "*(int *)(iVar25 + -0x5dd4)" * (cast_expression "(int *)(iVar25 + -0x5dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x5dd4)" ( (binary_expression "iVar25 + -0x5dd4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }" { (expression_statement "iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);" (assignment_expression "iVar25 = (**(code **)(pcVar28 + 0xc0644))(0)" identifier = (call_expression "(**(code **)(pcVar28 + 0xc0644))(0)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0644))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0644)" * (pointer_expression "*(code **)(pcVar28 + 0xc0644)" * (cast_expression "(code **)(pcVar28 + 0xc0644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0644)" ( (binary_expression "pcVar28 + 0xc0644" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "puVar22[4] = iVar25;" (assignment_expression "puVar22[4] = iVar25" (subscript_expression "puVar22[4]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }" { (expression_statement "(**(code **)(pcVar28 + 0xc0474))(puVar22);" (call_expression "(**(code **)(pcVar28 + 0xc0474))(puVar22)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0474))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0474)" * (pointer_expression "*(code **)(pcVar28 + 0xc0474)" * (cast_expression "(code **)(pcVar28 + 0xc0474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0474)" ( (binary_expression "pcVar28 + 0xc0474" identifier + number_literal) ))))) )) (argument_list "(puVar22)" ( identifier ))) ;) (expression_statement "uVar20 = 7;" (assignment_expression "uVar20 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_0009bb74;" goto statement_identifier ;) })) })) (expression_statement "iVar7 = *(int *)(iVar16 + -0x435c);" (assignment_expression "iVar7 = *(int *)(iVar16 + -0x435c)" identifier = (pointer_expression "*(int *)(iVar16 + -0x435c)" * (cast_expression "(int *)(iVar16 + -0x435c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + -0x435c)" ( (binary_expression "iVar16 + -0x435c" identifier + number_literal) ))))) ;) (expression_statement "puVar22[0xc] = 0;" (assignment_expression "puVar22[0xc] = 0" (subscript_expression "puVar22[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar22[9] = 1;" (assignment_expression "puVar22[9] = 1" (subscript_expression "puVar22[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar22[0xb] = iVar7;" (assignment_expression "puVar22[0xb] = iVar7" (subscript_expression "puVar22[0xb]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }" { (expression_statement "*(undefined4 **)(iVar7 + 0x30) = puVar22;" (assignment_expression "*(undefined4 **)(iVar7 + 0x30) = puVar22" (pointer_expression "*(undefined4 **)(iVar7 + 0x30)" * (cast_expression "(undefined4 **)(iVar7 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(undefined4 **)(iVar16 + -0x435c) = puVar22;" (assignment_expression "*(undefined4 **)(iVar16 + -0x435c) = puVar22" (pointer_expression "*(undefined4 **)(iVar16 + -0x435c)" * (cast_expression "(undefined4 **)(iVar16 + -0x435c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + -0x435c)" ( (binary_expression "iVar16 + -0x435c" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);" statement_identifier : (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0508);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0508)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xc0508)" * (cast_expression "(code **)(pcVar28 + 0xc0508)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0508)" ( (binary_expression "pcVar28 + 0xc0508" identifier + number_literal) ))))) ;)) (expression_statement "param_3[2] = (int)puVar22;" (assignment_expression "param_3[2] = (int)puVar22" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "(*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));" (call_expression "(*pcVar29)(*(undefined4 *)(iVar8 + -0x4358))" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(*(undefined4 *)(iVar8 + -0x4358))" ( (pointer_expression "*(undefined4 *)(iVar8 + -0x4358)" * (cast_expression "(undefined4 *)(iVar8 + -0x4358)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x4358)" ( (binary_expression "iVar8 + -0x4358" identifier + number_literal) )))) ))) ;) (expression_statement "param_3[5] = 0;" (assignment_expression "param_3[5] = 0" (subscript_expression "param_3[5]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0009b3f4;" goto statement_identifier ;) })) (expression_statement "uVar20 = 7;" (assignment_expression "uVar20 = 7" identifier = number_literal) ;) }) (else_clause "else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }" else (compound_statement "{\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }" { (expression_statement "piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();" (assignment_expression "piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))()" identifier = (cast_expression "(int *)(**(code **)(pcVar28 + 0xc0800))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar28 + 0xc0800))()" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0800))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0800)" * (pointer_expression "*(code **)(pcVar28 + 0xc0800)" * (cast_expression "(code **)(pcVar28 + 0xc0800)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0800)" ( (binary_expression "pcVar28 + 0xc0800" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar20 = 10;" (assignment_expression "uVar20 = 10" identifier = number_literal) ;) (expression_statement "param_3[5] = *piVar31;" (assignment_expression "param_3[5] = *piVar31" (subscript_expression "param_3[5]" identifier [ number_literal ]) = (pointer_expression "*piVar31" * identifier)) ;) }))) (labeled_statement "LAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);" statement_identifier : (expression_statement "iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);" (assignment_expression "iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7)" identifier = (call_expression "(**(code **)(iVar12 + -0x4ba8))(iVar7)" (parenthesized_expression "(**(code **)(iVar12 + -0x4ba8))" ( (pointer_expression "**(code **)(iVar12 + -0x4ba8)" * (pointer_expression "*(code **)(iVar12 + -0x4ba8)" * (cast_expression "(code **)(iVar12 + -0x4ba8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x4ba8)" ( (binary_expression "iVar12 + -0x4ba8" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;)) (if_statement "if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }" { (expression_statement "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0508))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0508)" * (pointer_expression "*(code **)(pcVar28 + 0xc0508)" * (cast_expression "(code **)(pcVar28 + 0xc0508)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0508)" ( (binary_expression "pcVar28 + 0xc0508" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar8 + -0x4358))" ( (pointer_expression "*(undefined4 *)(iVar8 + -0x4358)" * (cast_expression "(undefined4 *)(iVar8 + -0x4358)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x4358)" ( (binary_expression "iVar8 + -0x4358" identifier + number_literal) )))) ))) ;) (expression_statement "param_3[5] = 0;" (assignment_expression "param_3[5] = 0" (subscript_expression "param_3[5]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }" else (compound_statement "{\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }" { (expression_statement "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);" (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))" ( (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac)" * (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x37ac)" ( (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x37ac" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" * (cast_expression "(int *)(pcVar28 + 0xc0594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0594)" ( (binary_expression "pcVar28 + 0xc0594" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(param_3,0x9442)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0508))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0508)" * (pointer_expression "*(code **)(pcVar28 + 0xc0508)" * (cast_expression "(code **)(pcVar28 + 0xc0508)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0508)" ( (binary_expression "pcVar28 + 0xc0508" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar8 + -0x4358))" ( (pointer_expression "*(undefined4 *)(iVar8 + -0x4358)" * (cast_expression "(undefined4 *)(iVar8 + -0x4358)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x4358)" ( (binary_expression "iVar8 + -0x4358" identifier + number_literal) )))) ))) ;) (expression_statement "param_3[5] = 0;" (assignment_expression "param_3[5] = 0" (subscript_expression "param_3[5]" identifier [ number_literal ]) = number_literal) ;) }))) }) (else_clause "else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }" else (compound_statement "{\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }" { (if_statement "if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }" if (parenthesized_expression "(iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc)" ( (binary_expression "iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc" identifier != (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x65bc" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) )))) + number_literal)) )) (compound_statement "{\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }" { (labeled_statement "LAB_0009b3f0:\n          param_3[5] = 0;" statement_identifier : (expression_statement "param_3[5] = 0;" (assignment_expression "param_3[5] = 0" (subscript_expression "param_3[5]" identifier [ number_literal ]) = number_literal) ;)) (labeled_statement "LAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);" statement_identifier : (expression_statement "iVar7 = *(int *)(pcVar28 + 0xc0594);" (assignment_expression "iVar7 = *(int *)(pcVar28 + 0xc0594)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc0594)" * (cast_expression "(int *)(pcVar28 + 0xc0594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0594)" ( (binary_expression "pcVar28 + 0xc0594" identifier + number_literal) ))))) ;)) (expression_statement "*param_3 = iVar5;" (assignment_expression "*param_3 = iVar5" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "(*(code *)(iVar7 + -0x1bfc))(param_3);" (call_expression "(*(code *)(iVar7 + -0x1bfc))(param_3)" (parenthesized_expression "(*(code *)(iVar7 + -0x1bfc))" ( (pointer_expression "*(code *)(iVar7 + -0x1bfc)" * (cast_expression "(code *)(iVar7 + -0x1bfc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x1bfc)" ( (binary_expression "iVar7 + -0x1bfc" identifier + number_literal) )))) )) (argument_list "(param_3)" ( identifier ))) ;) (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0009b410;" goto statement_identifier ;) })) (expression_statement "iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);" (assignment_expression "iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15)" identifier = (call_expression "(**(code **)(pcVar28 + 0xc0818))(puVar15)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0818))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0818)" * (pointer_expression "*(code **)(pcVar28 + 0xc0818)" * (cast_expression "(code **)(pcVar28 + 0xc0818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0818)" ( (binary_expression "pcVar28 + 0xc0818" identifier + number_literal) ))))) )) (argument_list "(puVar15)" ( identifier )))) ;) (expression_statement "iVar25 = iVar25 + 6;" (assignment_expression "iVar25 = iVar25 + 6" identifier = (binary_expression "iVar25 + 6" identifier + number_literal)) ;) (expression_statement "iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);" (assignment_expression "iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25)" identifier = (call_expression "(**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc05b4))" ( (pointer_expression "**(code **)(pcVar28 + 0xc05b4)" * (pointer_expression "*(code **)(pcVar28 + 0xc05b4)" * (cast_expression "(code **)(pcVar28 + 0xc05b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc05b4)" ( (binary_expression "pcVar28 + 0xc05b4" identifier + number_literal) ))))) )) (argument_list "(iVar25 >> 0x1f,iVar25)" ( (binary_expression "iVar25 >> 0x1f" identifier >> number_literal) , identifier )))) ;) (if_statement "if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }" { (expression_statement "(**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);" (call_expression "(**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0464))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0464)" * (pointer_expression "*(code **)(pcVar28 + 0xc0464)" * (cast_expression "(code **)(pcVar28 + 0xc0464)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0464)" ( (binary_expression "pcVar28 + 0xc0464" identifier + number_literal) ))))) )) (argument_list "(iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15)" ( identifier , identifier , (binary_expression "*(int *)(pcVar28 + 0xc0450) + -0x7374" (pointer_expression "*(int *)(pcVar28 + 0xc0450)" * (cast_expression "(int *)(pcVar28 + 0xc0450)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0450)" ( (binary_expression "pcVar28 + 0xc0450" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "param_3[6] = iVar8;" (assignment_expression "param_3[6] = iVar8" (subscript_expression "param_3[6]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_0009b3f0;" goto statement_identifier ;) })) (expression_statement "iVar5 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar5 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (expression_statement "param_3[6] = 0;" (assignment_expression "param_3[6] = 0" (subscript_expression "param_3[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_3[5] = 0;" (assignment_expression "param_3[5] = 0" (subscript_expression "param_3[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);" (assignment_expression "iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7)" identifier = (call_expression "(**(code **)(iVar5 + -0x4ba8))(iVar7)" (parenthesized_expression "(**(code **)(iVar5 + -0x4ba8))" ( (pointer_expression "**(code **)(iVar5 + -0x4ba8)" * (pointer_expression "*(code **)(iVar5 + -0x4ba8)" * (cast_expression "(code **)(iVar5 + -0x4ba8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0x4ba8)" ( (binary_expression "iVar5 + -0x4ba8" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar20 = 7;\n        }" { (expression_statement "uVar20 = 7;" (assignment_expression "uVar20 = 7" identifier = number_literal) ;) }) (else_clause "else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }" else (compound_statement "{\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }" { (expression_statement "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);" (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))" ( (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac)" * (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x37ac)" ( (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x37ac" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" * (cast_expression "(int *)(pcVar28 + 0xc0594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0594)" ( (binary_expression "pcVar28 + 0xc0594" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(param_3,0x9497)" ( identifier , number_literal ))) ;) (expression_statement "uVar20 = 7;" (assignment_expression "uVar20 = 7" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);" statement_identifier : (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0474);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0474)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xc0474)" * (cast_expression "(code **)(pcVar28 + 0xc0474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0474)" ( (binary_expression "pcVar28 + 0xc0474" identifier + number_literal) ))))) ;)) }))) (expression_statement "(*pcVar29)(param_3[7]);" (call_expression "(*pcVar29)(param_3[7])" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(param_3[7])" ( (subscript_expression "param_3[7]" identifier [ number_literal ]) ))) ;) }))) (labeled_statement "LAB_0009b410:\n  if (local_254 == *piVar30) {\n    return uVar20;\n  }" statement_identifier : (if_statement "if (local_254 == *piVar30) {\n    return uVar20;\n  }" if (parenthesized_expression "(local_254 == *piVar30)" ( (binary_expression "local_254 == *piVar30" identifier == (pointer_expression "*piVar30" * identifier)) )) (compound_statement "{\n    return uVar20;\n  }" { (return_statement "return uVar20;" return identifier ;) }))) (expression_statement "pcVar28 = *(code **)(pcVar28 + 0xc0864);" (assignment_expression "pcVar28 = *(code **)(pcVar28 + 0xc0864)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xc0864)" * (cast_expression "(code **)(pcVar28 + 0xc0864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0864)" ( (binary_expression "pcVar28 + 0xc0864" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = local_254;" (assignment_expression "iVar5 = local_254" identifier = identifier) ;) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar7 = *(int *)(iVar5 + 0x60);" (assignment_expression "iVar7 = *(int *)(iVar5 + 0x60)" identifier = (pointer_expression "*(int *)(iVar5 + 0x60)" * (cast_expression "(int *)(iVar5 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x60)" ( (binary_expression "iVar5 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar5 + 0xd0);" (assignment_expression "puVar22 = *(undefined4 **)(iVar5 + 0xd0)" identifier = (pointer_expression "*(undefined4 **)(iVar5 + 0xd0)" * (cast_expression "(undefined4 **)(iVar5 + 0xd0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xd0)" ( (binary_expression "iVar5 + 0xd0" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(uint *)(iVar5 + 0x4c);" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x4c)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x4c)" * (cast_expression "(uint *)(iVar5 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "uVar20 = *(uint *)(iVar5 + 0x98);" (assignment_expression "uVar20 = *(uint *)(iVar5 + 0x98)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x98)" * (cast_expression "(uint *)(iVar5 + 0x98)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x98)" ( (binary_expression "iVar5 + 0x98" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar5 + 0x94) <= *(uint *)(iVar5 + 0x98)) {\n    uVar20 = *(uint *)(iVar5 + 0x94);\n  }" if (parenthesized_expression "(*(uint *)(iVar5 + 0x94) <= *(uint *)(iVar5 + 0x98))" ( (binary_expression "*(uint *)(iVar5 + 0x94) <= *(uint *)(iVar5 + 0x98)" (pointer_expression "*(uint *)(iVar5 + 0x94)" * (cast_expression "(uint *)(iVar5 + 0x94)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x94)" ( (binary_expression "iVar5 + 0x94" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(iVar5 + 0x98)" * (cast_expression "(uint *)(iVar5 + 0x98)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x98)" ( (binary_expression "iVar5 + 0x98" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar20 = *(uint *)(iVar5 + 0x94);\n  }" { (expression_statement "uVar20 = *(uint *)(iVar5 + 0x94);" (assignment_expression "uVar20 = *(uint *)(iVar5 + 0x94)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x94)" * (cast_expression "(uint *)(iVar5 + 0x94)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x94)" ( (binary_expression "iVar5 + 0x94" identifier + number_literal) ))))) ;) })) (expression_statement "iVar25 = *(int *)(iVar5 + 0x48);" (assignment_expression "iVar25 = *(int *)(iVar5 + 0x48)" identifier = (pointer_expression "*(int *)(iVar5 + 0x48)" * (cast_expression "(int *)(iVar5 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x48)" ( (binary_expression "iVar5 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar7) {\n    iVar16 = 0;\n    iVar8 = 0;\n    do {\n      iVar8 = iVar8 + 1;\n      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;\n      iVar16 = iVar16 + 0x30;\n      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }\n    } while (iVar8 < iVar7);\n  }" if (parenthesized_expression "(0 < iVar7)" ( (binary_expression "0 < iVar7" number_literal < identifier) )) (compound_statement "{\n    iVar16 = 0;\n    iVar8 = 0;\n    do {\n      iVar8 = iVar8 + 1;\n      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;\n      iVar16 = iVar16 + 0x30;\n      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }\n    } while (iVar8 < iVar7);\n  }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar8 = iVar8 + 1;\n      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;\n      iVar16 = iVar16 + 0x30;\n      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }\n    } while (iVar8 < iVar7);" do (compound_statement "{\n      iVar8 = iVar8 + 1;\n      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;\n      iVar16 = iVar16 + 0x30;\n      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }\n    }" { (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;" (assignment_expression "iVar12 = *(int *)(iVar5 + 0x5c) + iVar16" identifier = (binary_expression "*(int *)(iVar5 + 0x5c) + iVar16" (pointer_expression "*(int *)(iVar5 + 0x5c)" * (cast_expression "(int *)(iVar5 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x5c)" ( (binary_expression "iVar5 + 0x5c" identifier + number_literal) )))) + identifier)) ;) (expression_statement "iVar16 = iVar16 + 0x30;" (assignment_expression "iVar16 = iVar16 + 0x30" identifier = (binary_expression "iVar16 + 0x30" identifier + number_literal)) ;) (if_statement "if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }" if (parenthesized_expression "(*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0" (binary_expression "*(int *)(iVar12 + 8) == 0" (pointer_expression "*(int *)(iVar12 + 8)" * (cast_expression "(int *)(iVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(iVar12 + 0xc) == 0" (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)) )) (compound_statement "{\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }" { (expression_statement "*(uint *)(iVar12 + 0xc) = uVar6;" (assignment_expression "*(uint *)(iVar12 + 0xc) = uVar6" (pointer_expression "*(uint *)(iVar12 + 0xc)" * (cast_expression "(uint *)(iVar12 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar12 + 8) = iVar25;" (assignment_expression "*(int *)(iVar12 + 8) = iVar25" (pointer_expression "*(int *)(iVar12 + 8)" * (cast_expression "(int *)(iVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = *(int *)(iVar5 + 0x60);" (assignment_expression "iVar7 = *(int *)(iVar5 + 0x60)" identifier = (pointer_expression "*(int *)(iVar5 + 0x60)" * (cast_expression "(int *)(iVar5 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x60)" ( (binary_expression "iVar5 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(uint *)(iVar5 + 0x4c);" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x4c)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x4c)" * (cast_expression "(uint *)(iVar5 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = *(int *)(iVar5 + 0x48);" (assignment_expression "iVar25 = *(int *)(iVar5 + 0x48)" identifier = (pointer_expression "*(int *)(iVar5 + 0x48)" * (cast_expression "(int *)(iVar5 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x48)" ( (binary_expression "iVar5 + 0x48" identifier + number_literal) ))))) ;) })) }) while (parenthesized_expression "(iVar8 < iVar7)" ( (binary_expression "iVar8 < iVar7" identifier < identifier) )) ;) })) (if_statement "if (iVar25 != 0 || uVar6 != 0) {\n    uVar21 = *(uint *)(iVar5 + 0x94);\n    lVar33 = (**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21);\n    lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar6 = (uint)lVar3;\n    iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20);\n  }" if (parenthesized_expression "(iVar25 != 0 || uVar6 != 0)" ( (binary_expression "iVar25 != 0 || uVar6 != 0" (binary_expression "iVar25 != 0" identifier != number_literal) || (binary_expression "uVar6 != 0" identifier != number_literal)) )) (compound_statement "{\n    uVar21 = *(uint *)(iVar5 + 0x94);\n    lVar33 = (**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21);\n    lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar6 = (uint)lVar3;\n    iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20);\n  }" { (expression_statement "uVar21 = *(uint *)(iVar5 + 0x94);" (assignment_expression "uVar21 = *(uint *)(iVar5 + 0x94)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x94)" * (cast_expression "(uint *)(iVar5 + 0x94)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x94)" ( (binary_expression "iVar5 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "lVar33 = (**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21);" (assignment_expression "lVar33 = (**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21)" identifier = (call_expression "(**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21)" (parenthesized_expression "(**(code **)(pcVar28 + 0xbf8fc))" ( (pointer_expression "**(code **)(pcVar28 + 0xbf8fc)" * (pointer_expression "*(code **)(pcVar28 + 0xbf8fc)" * (cast_expression "(code **)(pcVar28 + 0xbf8fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xbf8fc)" ( (binary_expression "pcVar28 + 0xbf8fc" identifier + number_literal) ))))) )) (argument_list "((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21)" ( (binary_expression "(uint)(uVar6 - 1 < uVar6) + iVar25 + -1" (binary_expression "(uint)(uVar6 - 1 < uVar6) + iVar25" (call_expression "(uint)(uVar6 - 1 < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 - 1 < uVar6)" ( (binary_expression "uVar6 - 1 < uVar6" (binary_expression "uVar6 - 1" identifier - number_literal) < identifier) ))) + identifier) + number_literal) , (binary_expression "uVar6 - 1" identifier - number_literal) , number_literal , identifier )))) ;) (expression_statement "lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;" (assignment_expression "lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21" identifier = (binary_expression "(lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21" (parenthesized_expression "(lVar33 + 1U & 0xffffffff)" ( (binary_expression "lVar33 + 1U & 0xffffffff" (binary_expression "lVar33 + 1U" identifier + number_literal) & number_literal) )) * (cast_expression "(ulonglong)uVar21" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (expression_statement "uVar6 = (uint)lVar3;" (assignment_expression "uVar6 = (uint)lVar3" identifier = (cast_expression "(uint)lVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20)" identifier = (binary_expression "(int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20)" (binary_expression "(int)(lVar33 + 1U >> 0x20) * uVar21" (cast_expression "(int)(lVar33 + 1U >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar33 + 1U >> 0x20)" ( (binary_expression "lVar33 + 1U >> 0x20" (binary_expression "lVar33 + 1U" identifier + number_literal) >> number_literal) ))) * identifier) + (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))))) ;) })) (expression_statement "*(uint *)(iVar5 + 0x4c) = uVar6;" (assignment_expression "*(uint *)(iVar5 + 0x4c) = uVar6" (pointer_expression "*(uint *)(iVar5 + 0x4c)" * (cast_expression "(uint *)(iVar5 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar5 + 0x48) = iVar25;" (assignment_expression "*(int *)(iVar5 + 0x48) = iVar25" (pointer_expression "*(int *)(iVar5 + 0x48)" * (cast_expression "(int *)(iVar5 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x48)" ( (binary_expression "iVar5 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar5 + 0x54) = uVar6;" (assignment_expression "*(uint *)(iVar5 + 0x54) = uVar6" (pointer_expression "*(uint *)(iVar5 + 0x54)" * (cast_expression "(uint *)(iVar5 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x54)" ( (binary_expression "iVar5 + 0x54" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar5 + 0x50) = iVar25;" (assignment_expression "*(int *)(iVar5 + 0x50) = iVar25" (pointer_expression "*(int *)(iVar5 + 0x50)" * (cast_expression "(int *)(iVar5 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x50)" ( (binary_expression "iVar5 + 0x50" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(char *)(iVar5 + 7) == '\0') {\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n    if (*(char *)(iVar5 + 5) != '\x04') {\n      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }\n      goto LAB_0009be98;\n    }\n  }\n  else {\nLAB_0009be98:\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n  }" if (parenthesized_expression "(*(char *)(iVar5 + 7) == '\0')" ( (binary_expression "*(char *)(iVar5 + 7) == '\0'" (pointer_expression "*(char *)(iVar5 + 7)" * (cast_expression "(char *)(iVar5 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 7)" ( (binary_expression "iVar5 + 7" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n    if (*(char *)(iVar5 + 5) != '\x04') {\n      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }\n      goto LAB_0009be98;\n    }\n  }" { (expression_statement "iVar7 = *(int *)(pcVar28 + 0xbf8f0);" (assignment_expression "iVar7 = *(int *)(pcVar28 + 0xbf8f0)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xbf8f0)" * (cast_expression "(int *)(pcVar28 + 0xbf8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xbf8f0)" ( (binary_expression "pcVar28 + 0xbf8f0" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar5 + 5) != '\x04') {\n      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }\n      goto LAB_0009be98;\n    }" if (parenthesized_expression "(*(char *)(iVar5 + 5) != '\x04')" ( (binary_expression "*(char *)(iVar5 + 5) != '\x04'" (pointer_expression "*(char *)(iVar5 + 5)" * (cast_expression "(char *)(iVar5 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 5)" ( (binary_expression "iVar5 + 5" identifier + number_literal) )))) != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }\n      goto LAB_0009be98;\n    }" { (expression_statement "uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));" (assignment_expression "uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c))" identifier = (call_expression "(**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c))" (parenthesized_expression "(**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))" ( (pointer_expression "**(code **)(**(int **)(iVar5 + 0x3c) + 0x30)" * (pointer_expression "*(code **)(**(int **)(iVar5 + 0x3c) + 0x30)" * (cast_expression "(code **)(**(int **)(iVar5 + 0x3c) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar5 + 0x3c) + 0x30)" ( (binary_expression "**(int **)(iVar5 + 0x3c) + 0x30" (pointer_expression "**(int **)(iVar5 + 0x3c)" * (pointer_expression "*(int **)(iVar5 + 0x3c)" * (cast_expression "(int **)(iVar5 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x3c)" ( (binary_expression "iVar5 + 0x3c" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar5 + 0x3c))" ( (pointer_expression "*(int **)(iVar5 + 0x3c)" * (cast_expression "(int **)(iVar5 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x3c)" ( (binary_expression "iVar5 + 0x3c" identifier + number_literal) )))) )))) ;) (if_statement "if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }" if (parenthesized_expression "((uVar6 & 0x200) == 0)" ( (binary_expression "(uVar6 & 0x200) == 0" (parenthesized_expression "(uVar6 & 0x200)" ( (binary_expression "uVar6 & 0x200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }" { (expression_statement "*(undefined1 *)puVar22 = 0;" (assignment_expression "*(undefined1 *)puVar22 = 0" (pointer_expression "*(undefined1 *)puVar22" * (cast_expression "(undefined1 *)puVar22" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 1) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 1) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 1)" * (cast_expression "(undefined1 *)((int)puVar22 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 1)" ( (binary_expression "(int)puVar22 + 1" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 2) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 2) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 2)" * (cast_expression "(undefined1 *)((int)puVar22 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 2)" ( (binary_expression "(int)puVar22 + 2" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 3) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 3) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 3)" * (cast_expression "(undefined1 *)((int)puVar22 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 3)" ( (binary_expression "(int)puVar22 + 3" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar22 + 1) = 0;" (assignment_expression "*(undefined1 *)(puVar22 + 1) = 0" (pointer_expression "*(undefined1 *)(puVar22 + 1)" * (cast_expression "(undefined1 *)(puVar22 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 1)" ( (binary_expression "puVar22 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 5) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 5) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 5)" * (cast_expression "(undefined1 *)((int)puVar22 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 5)" ( (binary_expression "(int)puVar22 + 5" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 6) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 6) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 6)" * (cast_expression "(undefined1 *)((int)puVar22 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 6)" ( (binary_expression "(int)puVar22 + 6" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 7) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 7)" * (cast_expression "(undefined1 *)((int)puVar22 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 7)" ( (binary_expression "(int)puVar22 + 7" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar22 + 2) = 0;" (assignment_expression "*(undefined1 *)(puVar22 + 2) = 0" (pointer_expression "*(undefined1 *)(puVar22 + 2)" * (cast_expression "(undefined1 *)(puVar22 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 2)" ( (binary_expression "puVar22 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 9) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 9) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 9)" * (cast_expression "(undefined1 *)((int)puVar22 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 9)" ( (binary_expression "(int)puVar22 + 9" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 10) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 10) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 10)" * (cast_expression "(undefined1 *)((int)puVar22 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 10)" ( (binary_expression "(int)puVar22 + 10" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 0xb) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 0xb) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 0xb)" * (cast_expression "(undefined1 *)((int)puVar22 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0xb)" ( (binary_expression "(int)puVar22 + 0xb" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0009becc;" goto statement_identifier ;) })) (goto_statement "goto LAB_0009be98;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0009be98:\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n  }" else (compound_statement "{\nLAB_0009be98:\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n  }" { (labeled_statement "LAB_0009be98:\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);" statement_identifier : (expression_statement "iVar7 = *(int *)(pcVar28 + 0xbf8f0);" (assignment_expression "iVar7 = *(int *)(pcVar28 + 0xbf8f0)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xbf8f0)" * (cast_expression "(int *)(pcVar28 + 0xbf8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xbf8f0)" ( (binary_expression "pcVar28 + 0xbf8f0" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar32 = *(undefined4 *)(iVar7 + -0x7ce8);" (assignment_expression "uVar32 = *(undefined4 *)(iVar7 + -0x7ce8)" identifier = (pointer_expression "*(undefined4 *)(iVar7 + -0x7ce8)" * (cast_expression "(undefined4 *)(iVar7 + -0x7ce8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x7ce8)" ( (binary_expression "iVar7 + -0x7ce8" identifier + number_literal) ))))) ;) (expression_statement "*puVar22 = *(undefined4 *)(iVar7 + -0x7cec);" (assignment_expression "*puVar22 = *(undefined4 *)(iVar7 + -0x7cec)" (pointer_expression "*puVar22" * identifier) = (pointer_expression "*(undefined4 *)(iVar7 + -0x7cec)" * (cast_expression "(undefined4 *)(iVar7 + -0x7cec)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x7cec)" ( (binary_expression "iVar7 + -0x7cec" identifier + number_literal) ))))) ;) (expression_statement "puVar22[1] = uVar32;" (assignment_expression "puVar22[1] = uVar32" (subscript_expression "puVar22[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar22 + 2) = 0xff;" (assignment_expression "*(undefined1 *)(puVar22 + 2) = 0xff" (pointer_expression "*(undefined1 *)(puVar22 + 2)" * (cast_expression "(undefined1 *)(puVar22 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 2)" ( (binary_expression "puVar22 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 9) = 0xff;" (assignment_expression "*(undefined1 *)((int)puVar22 + 9) = 0xff" (pointer_expression "*(undefined1 *)((int)puVar22 + 9)" * (cast_expression "(undefined1 *)((int)puVar22 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 9)" ( (binary_expression "(int)puVar22 + 9" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 10) = 0xff;" (assignment_expression "*(undefined1 *)((int)puVar22 + 10) = 0xff" (pointer_expression "*(undefined1 *)((int)puVar22 + 10)" * (cast_expression "(undefined1 *)((int)puVar22 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 10)" ( (binary_expression "(int)puVar22 + 10" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 0xb) = 0xff;" (assignment_expression "*(undefined1 *)((int)puVar22 + 0xb) = 0xff" (pointer_expression "*(undefined1 *)((int)puVar22 + 0xb)" * (cast_expression "(undefined1 *)((int)puVar22 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0xb)" ( (binary_expression "(int)puVar22 + 0xb" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0009becc:\n  uVar6 = 0;" statement_identifier : (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;)) (expression_statement "sqlite3_randomness(4,iVar5 + 0x30);" (call_expression "sqlite3_randomness(4,iVar5 + 0x30)" identifier (argument_list "(4,iVar5 + 0x30)" ( number_literal , (binary_expression "iVar5 + 0x30" identifier + number_literal) ))) ;) (expression_statement "uVar32 = *(undefined4 *)(iVar5 + 0x30);" (assignment_expression "uVar32 = *(undefined4 *)(iVar5 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x30)" * (cast_expression "(undefined4 *)(iVar5 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x30)" ( (binary_expression "iVar5 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(char *)((int)puVar22 + 0xf) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar22 + 0xf) = (char)uVar32" (pointer_expression "*(char *)((int)puVar22 + 0xf)" * (cast_expression "(char *)((int)puVar22 + 0xf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0xf)" ( (binary_expression "(int)puVar22 + 0xf" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)uVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(puVar22 + 3) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar22 + 3) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar22 + 3)" * (cast_expression "(char *)(puVar22 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 3)" ( (binary_expression "puVar22 + 3" identifier + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x18)" ( (binary_expression "(uint)uVar32 >> 0x18" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)((int)puVar22 + 0xd) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar22 + 0xd) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar22 + 0xd)" * (cast_expression "(char *)((int)puVar22 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0xd)" ( (binary_expression "(int)puVar22 + 0xd" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x10)" ( (binary_expression "(uint)uVar32 >> 0x10" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)((int)puVar22 + 0xe) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar22 + 0xe) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar22 + 0xe)" * (cast_expression "(char *)((int)puVar22 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0xe)" ( (binary_expression "(int)puVar22 + 0xe" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 8)" ( (binary_expression "(uint)uVar32 >> 8" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar32 = *(undefined4 *)(iVar5 + 0x1c);" (assignment_expression "uVar32 = *(undefined4 *)(iVar5 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x1c)" * (cast_expression "(undefined4 *)(iVar5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "pcVar28 = *(code **)(pcVar28 + 0xbfc10);" (assignment_expression "pcVar28 = *(code **)(pcVar28 + 0xbfc10)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xbfc10)" * (cast_expression "(code **)(pcVar28 + 0xbfc10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xbfc10)" ( (binary_expression "pcVar28 + 0xbfc10" identifier + number_literal) ))))) ;) (expression_statement "*(char *)((int)puVar22 + 0x13) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar22 + 0x13) = (char)uVar32" (pointer_expression "*(char *)((int)puVar22 + 0x13)" * (cast_expression "(char *)((int)puVar22 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0x13)" ( (binary_expression "(int)puVar22 + 0x13" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)uVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(puVar22 + 4) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar22 + 4) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar22 + 4)" * (cast_expression "(char *)(puVar22 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 4)" ( (binary_expression "puVar22 + 4" identifier + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x18)" ( (binary_expression "(uint)uVar32 >> 0x18" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)((int)puVar22 + 0x11) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar22 + 0x11) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar22 + 0x11)" * (cast_expression "(char *)((int)puVar22 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0x11)" ( (binary_expression "(int)puVar22 + 0x11" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x10)" ( (binary_expression "(uint)uVar32 >> 0x10" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)((int)puVar22 + 0x12) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar22 + 0x12) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar22 + 0x12)" * (cast_expression "(char *)((int)puVar22 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0x12)" ( (binary_expression "(int)puVar22 + 0x12" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 8)" ( (binary_expression "(uint)uVar32 >> 8" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar32 = *(undefined4 *)(iVar5 + 0x94);" (assignment_expression "uVar32 = *(undefined4 *)(iVar5 + 0x94)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x94)" * (cast_expression "(undefined4 *)(iVar5 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x94)" ( (binary_expression "iVar5 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(char *)((int)puVar22 + 0x17) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar22 + 0x17) = (char)uVar32" (pointer_expression "*(char *)((int)puVar22 + 0x17)" * (cast_expression "(char *)((int)puVar22 + 0x17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0x17)" ( (binary_expression "(int)puVar22 + 0x17" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)uVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(puVar22 + 5) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar22 + 5) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar22 + 5)" * (cast_expression "(char *)(puVar22 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 5)" ( (binary_expression "puVar22 + 5" identifier + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x18)" ( (binary_expression "(uint)uVar32 >> 0x18" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)((int)puVar22 + 0x15) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar22 + 0x15) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar22 + 0x15)" * (cast_expression "(char *)((int)puVar22 + 0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0x15)" ( (binary_expression "(int)puVar22 + 0x15" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x10)" ( (binary_expression "(uint)uVar32 >> 0x10" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)((int)puVar22 + 0x16) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar22 + 0x16) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar22 + 0x16)" * (cast_expression "(char *)((int)puVar22 + 0x16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0x16)" ( (binary_expression "(int)puVar22 + 0x16" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 8)" ( (binary_expression "(uint)uVar32 >> 8" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar32 = *(undefined4 *)(iVar5 + 0x98);" (assignment_expression "uVar32 = *(undefined4 *)(iVar5 + 0x98)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x98)" * (cast_expression "(undefined4 *)(iVar5 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x98)" ( (binary_expression "iVar5 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(char *)((int)puVar22 + 0x1b) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar22 + 0x1b) = (char)uVar32" (pointer_expression "*(char *)((int)puVar22 + 0x1b)" * (cast_expression "(char *)((int)puVar22 + 0x1b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0x1b)" ( (binary_expression "(int)puVar22 + 0x1b" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)uVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(puVar22 + 6) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar22 + 6) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar22 + 6)" * (cast_expression "(char *)(puVar22 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 6)" ( (binary_expression "puVar22 + 6" identifier + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x18)" ( (binary_expression "(uint)uVar32 >> 0x18" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)((int)puVar22 + 0x19) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar22 + 0x19) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar22 + 0x19)" * (cast_expression "(char *)((int)puVar22 + 0x19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0x19)" ( (binary_expression "(int)puVar22 + 0x19" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x10)" ( (binary_expression "(uint)uVar32 >> 0x10" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)((int)puVar22 + 0x1a) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar22 + 0x1a) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar22 + 0x1a)" * (cast_expression "(char *)((int)puVar22 + 0x1a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0x1a)" ( (binary_expression "(int)puVar22 + 0x1a" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 8)" ( (binary_expression "(uint)uVar32 >> 8" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "(*pcVar28)(puVar22 + 7,0,uVar20 - 0x1c);" (call_expression "(*pcVar28)(puVar22 + 7,0,uVar20 - 0x1c)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(puVar22 + 7,0,uVar20 - 0x1c)" ( (binary_expression "puVar22 + 7" identifier + number_literal) , number_literal , (binary_expression "uVar20 - 0x1c" identifier - number_literal) ))) ;) (do_statement "do {\n    if (*(uint *)(iVar5 + 0x94) <= uVar6) {\n      return 0;\n    }\n    iVar7 = **(int **)(iVar5 + 0x40);\n    uVar6 = uVar6 + uVar20;\n    uVar21 = (**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c));\n    uVar24 = *(uint *)(iVar5 + 0x4c);\n    uVar14 = uVar24 + uVar20;\n    *(uint *)(iVar5 + 0x4c) = uVar14;\n    *(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48);\n  } while (uVar21 == 0);" do (compound_statement "{\n    if (*(uint *)(iVar5 + 0x94) <= uVar6) {\n      return 0;\n    }\n    iVar7 = **(int **)(iVar5 + 0x40);\n    uVar6 = uVar6 + uVar20;\n    uVar21 = (**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c));\n    uVar24 = *(uint *)(iVar5 + 0x4c);\n    uVar14 = uVar24 + uVar20;\n    *(uint *)(iVar5 + 0x4c) = uVar14;\n    *(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48);\n  }" { (if_statement "if (*(uint *)(iVar5 + 0x94) <= uVar6) {\n      return 0;\n    }" if (parenthesized_expression "(*(uint *)(iVar5 + 0x94) <= uVar6)" ( (binary_expression "*(uint *)(iVar5 + 0x94) <= uVar6" (pointer_expression "*(uint *)(iVar5 + 0x94)" * (cast_expression "(uint *)(iVar5 + 0x94)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x94)" ( (binary_expression "iVar5 + 0x94" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar7 = **(int **)(iVar5 + 0x40);" (assignment_expression "iVar7 = **(int **)(iVar5 + 0x40)" identifier = (pointer_expression "**(int **)(iVar5 + 0x40)" * (pointer_expression "*(int **)(iVar5 + 0x40)" * (cast_expression "(int **)(iVar5 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x40)" ( (binary_expression "iVar5 + 0x40" identifier + number_literal) )))))) ;) (expression_statement "uVar6 = uVar6 + uVar20;" (assignment_expression "uVar6 = uVar6 + uVar20" identifier = (binary_expression "uVar6 + uVar20" identifier + identifier)) ;) (expression_statement "uVar21 = (**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c));" (assignment_expression "uVar21 = (**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c))" identifier = (call_expression "(**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c))" (parenthesized_expression "(**(code **)(iVar7 + 0xc))" ( (pointer_expression "**(code **)(iVar7 + 0xc)" * (pointer_expression "*(code **)(iVar7 + 0xc)" * (cast_expression "(code **)(iVar7 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) )) (argument_list "(*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c))" ( (pointer_expression "*(int **)(iVar5 + 0x40)" * (cast_expression "(int **)(iVar5 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x40)" ( (binary_expression "iVar5 + 0x40" identifier + number_literal) )))) , identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(iVar5 + 0x48)" * (cast_expression "(undefined4 *)(iVar5 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x48)" ( (binary_expression "iVar5 + 0x48" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar5 + 0x4c)" * (cast_expression "(undefined4 *)(iVar5 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar24 = *(uint *)(iVar5 + 0x4c);" (assignment_expression "uVar24 = *(uint *)(iVar5 + 0x4c)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x4c)" * (cast_expression "(uint *)(iVar5 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = uVar24 + uVar20;" (assignment_expression "uVar14 = uVar24 + uVar20" identifier = (binary_expression "uVar24 + uVar20" identifier + identifier)) ;) (expression_statement "*(uint *)(iVar5 + 0x4c) = uVar14;" (assignment_expression "*(uint *)(iVar5 + 0x4c) = uVar14" (pointer_expression "*(uint *)(iVar5 + 0x4c)" * (cast_expression "(uint *)(iVar5 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48);" (assignment_expression "*(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48)" (pointer_expression "*(uint *)(iVar5 + 0x48)" * (cast_expression "(uint *)(iVar5 + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x48)" ( (binary_expression "iVar5 + 0x48" identifier + number_literal) )))) = (binary_expression "(uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48)" (call_expression "(uint)(uVar14 < uVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < uVar24)" ( (binary_expression "uVar14 < uVar24" identifier < identifier) ))) + (pointer_expression "*(int *)(iVar5 + 0x48)" * (cast_expression "(int *)(iVar5 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x48)" ( (binary_expression "iVar5 + 0x48" identifier + number_literal) )))))) ;) }) while (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) ;) (return_statement "return uVar21;" return identifier ;) })))
(translation_unit "int unixGetTempname(int nBuf,char *zBuf)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int *piVar7;\n  int iVar8;\n  int iVar9;\n  undefined *puVar10;\n  u64 r;\n  stat buf;\n  \n  puVar2 = PTR___stack_chk_guard_0015ba2c;\n  puVar1 = PTR_sqlite3_temp_directory_0015b854;\n  puVar10 = PTR_DAT_0015b5d8;\n  iVar6 = *(int *)PTR___stack_chk_guard_0015ba2c;\n  *zBuf = '\0';\n  iVar8 = *(int *)puVar1;\n  if (*(int *)(puVar10 + -0x4eb0) == 0) {\n    uVar5 = (*(code *)PTR_getenv_0015b9e4)(PTR_DAT_0015b5fc + -0x73bc);\n    *(undefined4 *)(puVar10 + -0x4eb0) = uVar5;\n    iVar3 = *(int *)(puVar10 + -0x4eac);\n  }\n  else {\n    iVar3 = *(int *)(puVar10 + -0x4eac);\n  }\n  if (iVar3 == 0) {\n    uVar5 = (*(code *)PTR_getenv_0015b9e4)(PTR_DAT_0015b5fc + -0x73ac);\n    *(undefined4 *)(puVar10 + -0x4eac) = uVar5;\n  }\n  puVar1 = PTR_DAT_0015b5d8;\n  piVar7 = (int *)(puVar10 + -0x4eb0);\n  while( true ) {\n    if ((((iVar8 != 0) && (iVar3 = (**(code **)(puVar1 + -0x4b84))(iVar8,&buf), iVar3 == 0)) &&\n        ((buf.st_mode & 0xf000) == 0x4000)) &&\n       (iVar3 = (**(code **)(puVar1 + -0x4b9c))(iVar8,3), iVar3 == 0)) {\n      iVar3 = 0xc;\n      puVar10 = PTR_DAT_0015b5fc + -0x73a4;\n      goto LAB_0009aa88;\n    }\n    iVar9 = 0x190a;\n    if (piVar7 == (int *)(puVar10 + -0x4e98)) break;\n    iVar8 = *piVar7;\n    piVar7 = piVar7 + 1;\n  }\n  goto LAB_0009a9fc;\n  while( true ) {\n    iVar4 = (**(code **)(puVar1 + -0x4b9c))(zBuf,0);\n    iVar9 = 0;\n    if (iVar4 != 0) break;\nLAB_0009aa88:\n    sqlite3_randomness(8,&r);\n    zBuf[nBuf + -2] = '\0';\n    (*(code *)PTR_sqlite3_snprintf_0015b610)(nBuf,zBuf,puVar10,iVar8,r._0_4_,r._4_4_,0);\n    if ((zBuf[nBuf + -2] != '\0') || (iVar3 = iVar3 + -1, iVar3 == 0)) {\n      iVar9 = 1;\n      break;\n    }\n  }\nLAB_0009a9fc:\n  if (iVar6 != *(int *)puVar2) {\n    iVar6 = (*(code *)PTR___stack_chk_fail_0015ba10)();\n    return iVar6;\n  }\n  return iVar9;\n}\n\n" (function_definition "int unixGetTempname(int nBuf,char *zBuf)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int *piVar7;\n  int iVar8;\n  int iVar9;\n  undefined *puVar10;\n  u64 r;\n  stat buf;\n  \n  puVar2 = PTR___stack_chk_guard_0015ba2c;\n  puVar1 = PTR_sqlite3_temp_directory_0015b854;\n  puVar10 = PTR_DAT_0015b5d8;\n  iVar6 = *(int *)PTR___stack_chk_guard_0015ba2c;\n  *zBuf = '\0';\n  iVar8 = *(int *)puVar1;\n  if (*(int *)(puVar10 + -0x4eb0) == 0) {\n    uVar5 = (*(code *)PTR_getenv_0015b9e4)(PTR_DAT_0015b5fc + -0x73bc);\n    *(undefined4 *)(puVar10 + -0x4eb0) = uVar5;\n    iVar3 = *(int *)(puVar10 + -0x4eac);\n  }\n  else {\n    iVar3 = *(int *)(puVar10 + -0x4eac);\n  }\n  if (iVar3 == 0) {\n    uVar5 = (*(code *)PTR_getenv_0015b9e4)(PTR_DAT_0015b5fc + -0x73ac);\n    *(undefined4 *)(puVar10 + -0x4eac) = uVar5;\n  }\n  puVar1 = PTR_DAT_0015b5d8;\n  piVar7 = (int *)(puVar10 + -0x4eb0);\n  while( true ) {\n    if ((((iVar8 != 0) && (iVar3 = (**(code **)(puVar1 + -0x4b84))(iVar8,&buf), iVar3 == 0)) &&\n        ((buf.st_mode & 0xf000) == 0x4000)) &&\n       (iVar3 = (**(code **)(puVar1 + -0x4b9c))(iVar8,3), iVar3 == 0)) {\n      iVar3 = 0xc;\n      puVar10 = PTR_DAT_0015b5fc + -0x73a4;\n      goto LAB_0009aa88;\n    }\n    iVar9 = 0x190a;\n    if (piVar7 == (int *)(puVar10 + -0x4e98)) break;\n    iVar8 = *piVar7;\n    piVar7 = piVar7 + 1;\n  }\n  goto LAB_0009a9fc;\n  while( true ) {\n    iVar4 = (**(code **)(puVar1 + -0x4b9c))(zBuf,0);\n    iVar9 = 0;\n    if (iVar4 != 0) break;\nLAB_0009aa88:\n    sqlite3_randomness(8,&r);\n    zBuf[nBuf + -2] = '\0';\n    (*(code *)PTR_sqlite3_snprintf_0015b610)(nBuf,zBuf,puVar10,iVar8,r._0_4_,r._4_4_,0);\n    if ((zBuf[nBuf + -2] != '\0') || (iVar3 = iVar3 + -1, iVar3 == 0)) {\n      iVar9 = 1;\n      break;\n    }\n  }\nLAB_0009a9fc:\n  if (iVar6 != *(int *)puVar2) {\n    iVar6 = (*(code *)PTR___stack_chk_fail_0015ba10)();\n    return iVar6;\n  }\n  return iVar9;\n}" primitive_type (function_declarator "unixGetTempname(int nBuf,char *zBuf)" identifier (parameter_list "(int nBuf,char *zBuf)" ( (parameter_declaration "int nBuf" primitive_type identifier) , (parameter_declaration "char *zBuf" primitive_type (pointer_declarator "*zBuf" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int *piVar7;\n  int iVar8;\n  int iVar9;\n  undefined *puVar10;\n  u64 r;\n  stat buf;\n  \n  puVar2 = PTR___stack_chk_guard_0015ba2c;\n  puVar1 = PTR_sqlite3_temp_directory_0015b854;\n  puVar10 = PTR_DAT_0015b5d8;\n  iVar6 = *(int *)PTR___stack_chk_guard_0015ba2c;\n  *zBuf = '\0';\n  iVar8 = *(int *)puVar1;\n  if (*(int *)(puVar10 + -0x4eb0) == 0) {\n    uVar5 = (*(code *)PTR_getenv_0015b9e4)(PTR_DAT_0015b5fc + -0x73bc);\n    *(undefined4 *)(puVar10 + -0x4eb0) = uVar5;\n    iVar3 = *(int *)(puVar10 + -0x4eac);\n  }\n  else {\n    iVar3 = *(int *)(puVar10 + -0x4eac);\n  }\n  if (iVar3 == 0) {\n    uVar5 = (*(code *)PTR_getenv_0015b9e4)(PTR_DAT_0015b5fc + -0x73ac);\n    *(undefined4 *)(puVar10 + -0x4eac) = uVar5;\n  }\n  puVar1 = PTR_DAT_0015b5d8;\n  piVar7 = (int *)(puVar10 + -0x4eb0);\n  while( true ) {\n    if ((((iVar8 != 0) && (iVar3 = (**(code **)(puVar1 + -0x4b84))(iVar8,&buf), iVar3 == 0)) &&\n        ((buf.st_mode & 0xf000) == 0x4000)) &&\n       (iVar3 = (**(code **)(puVar1 + -0x4b9c))(iVar8,3), iVar3 == 0)) {\n      iVar3 = 0xc;\n      puVar10 = PTR_DAT_0015b5fc + -0x73a4;\n      goto LAB_0009aa88;\n    }\n    iVar9 = 0x190a;\n    if (piVar7 == (int *)(puVar10 + -0x4e98)) break;\n    iVar8 = *piVar7;\n    piVar7 = piVar7 + 1;\n  }\n  goto LAB_0009a9fc;\n  while( true ) {\n    iVar4 = (**(code **)(puVar1 + -0x4b9c))(zBuf,0);\n    iVar9 = 0;\n    if (iVar4 != 0) break;\nLAB_0009aa88:\n    sqlite3_randomness(8,&r);\n    zBuf[nBuf + -2] = '\0';\n    (*(code *)PTR_sqlite3_snprintf_0015b610)(nBuf,zBuf,puVar10,iVar8,r._0_4_,r._4_4_,0);\n    if ((zBuf[nBuf + -2] != '\0') || (iVar3 = iVar3 + -1, iVar3 == 0)) {\n      iVar9 = 1;\n      break;\n    }\n  }\nLAB_0009a9fc:\n  if (iVar6 != *(int *)puVar2) {\n    iVar6 = (*(code *)PTR___stack_chk_fail_0015ba10)();\n    return iVar6;\n  }\n  return iVar9;\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 "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "u64 r;" type_identifier identifier ;) (declaration "stat buf;" type_identifier identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0015ba2c" identifier = identifier) ;) (expression_statement "puVar1 = PTR_sqlite3_temp_directory_0015b854;" (assignment_expression "puVar1 = PTR_sqlite3_temp_directory_0015b854" identifier = identifier) ;) (expression_statement "puVar10 = PTR_DAT_0015b5d8;" (assignment_expression "puVar10 = PTR_DAT_0015b5d8" identifier = identifier) ;) (expression_statement "iVar6 = *(int *)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "iVar6 = *(int *)PTR___stack_chk_guard_0015ba2c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ba2c" * (cast_expression "(int *)PTR___stack_chk_guard_0015ba2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*zBuf = '\0';" (assignment_expression "*zBuf = '\0'" (pointer_expression "*zBuf" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar8 = *(int *)puVar1;" (assignment_expression "iVar8 = *(int *)puVar1" identifier = (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)(puVar10 + -0x4eb0) == 0) {\n    uVar5 = (*(code *)PTR_getenv_0015b9e4)(PTR_DAT_0015b5fc + -0x73bc);\n    *(undefined4 *)(puVar10 + -0x4eb0) = uVar5;\n    iVar3 = *(int *)(puVar10 + -0x4eac);\n  }\n  else {\n    iVar3 = *(int *)(puVar10 + -0x4eac);\n  }" if (parenthesized_expression "(*(int *)(puVar10 + -0x4eb0) == 0)" ( (binary_expression "*(int *)(puVar10 + -0x4eb0) == 0" (pointer_expression "*(int *)(puVar10 + -0x4eb0)" * (cast_expression "(int *)(puVar10 + -0x4eb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x4eb0)" ( (binary_expression "puVar10 + -0x4eb0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar5 = (*(code *)PTR_getenv_0015b9e4)(PTR_DAT_0015b5fc + -0x73bc);\n    *(undefined4 *)(puVar10 + -0x4eb0) = uVar5;\n    iVar3 = *(int *)(puVar10 + -0x4eac);\n  }" { (expression_statement "uVar5 = (*(code *)PTR_getenv_0015b9e4)(PTR_DAT_0015b5fc + -0x73bc);" (assignment_expression "uVar5 = (*(code *)PTR_getenv_0015b9e4)(PTR_DAT_0015b5fc + -0x73bc)" identifier = (call_expression "(*(code *)PTR_getenv_0015b9e4)(PTR_DAT_0015b5fc + -0x73bc)" (parenthesized_expression "(*(code *)PTR_getenv_0015b9e4)" ( (pointer_expression "*(code *)PTR_getenv_0015b9e4" * (cast_expression "(code *)PTR_getenv_0015b9e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0015b5fc + -0x73bc)" ( (binary_expression "PTR_DAT_0015b5fc + -0x73bc" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x4eb0) = uVar5;" (assignment_expression "*(undefined4 *)(puVar10 + -0x4eb0) = uVar5" (pointer_expression "*(undefined4 *)(puVar10 + -0x4eb0)" * (cast_expression "(undefined4 *)(puVar10 + -0x4eb0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x4eb0)" ( (binary_expression "puVar10 + -0x4eb0" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = *(int *)(puVar10 + -0x4eac);" (assignment_expression "iVar3 = *(int *)(puVar10 + -0x4eac)" identifier = (pointer_expression "*(int *)(puVar10 + -0x4eac)" * (cast_expression "(int *)(puVar10 + -0x4eac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x4eac)" ( (binary_expression "puVar10 + -0x4eac" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    iVar3 = *(int *)(puVar10 + -0x4eac);\n  }" else (compound_statement "{\n    iVar3 = *(int *)(puVar10 + -0x4eac);\n  }" { (expression_statement "iVar3 = *(int *)(puVar10 + -0x4eac);" (assignment_expression "iVar3 = *(int *)(puVar10 + -0x4eac)" identifier = (pointer_expression "*(int *)(puVar10 + -0x4eac)" * (cast_expression "(int *)(puVar10 + -0x4eac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x4eac)" ( (binary_expression "puVar10 + -0x4eac" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar3 == 0) {\n    uVar5 = (*(code *)PTR_getenv_0015b9e4)(PTR_DAT_0015b5fc + -0x73ac);\n    *(undefined4 *)(puVar10 + -0x4eac) = uVar5;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar5 = (*(code *)PTR_getenv_0015b9e4)(PTR_DAT_0015b5fc + -0x73ac);\n    *(undefined4 *)(puVar10 + -0x4eac) = uVar5;\n  }" { (expression_statement "uVar5 = (*(code *)PTR_getenv_0015b9e4)(PTR_DAT_0015b5fc + -0x73ac);" (assignment_expression "uVar5 = (*(code *)PTR_getenv_0015b9e4)(PTR_DAT_0015b5fc + -0x73ac)" identifier = (call_expression "(*(code *)PTR_getenv_0015b9e4)(PTR_DAT_0015b5fc + -0x73ac)" (parenthesized_expression "(*(code *)PTR_getenv_0015b9e4)" ( (pointer_expression "*(code *)PTR_getenv_0015b9e4" * (cast_expression "(code *)PTR_getenv_0015b9e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0015b5fc + -0x73ac)" ( (binary_expression "PTR_DAT_0015b5fc + -0x73ac" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x4eac) = uVar5;" (assignment_expression "*(undefined4 *)(puVar10 + -0x4eac) = uVar5" (pointer_expression "*(undefined4 *)(puVar10 + -0x4eac)" * (cast_expression "(undefined4 *)(puVar10 + -0x4eac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x4eac)" ( (binary_expression "puVar10 + -0x4eac" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "puVar1 = PTR_DAT_0015b5d8;" (assignment_expression "puVar1 = PTR_DAT_0015b5d8" identifier = identifier) ;) (expression_statement "piVar7 = (int *)(puVar10 + -0x4eb0);" (assignment_expression "piVar7 = (int *)(puVar10 + -0x4eb0)" identifier = (cast_expression "(int *)(puVar10 + -0x4eb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x4eb0)" ( (binary_expression "puVar10 + -0x4eb0" identifier + number_literal) )))) ;) (while_statement "while( true ) {\n    if ((((iVar8 != 0) && (iVar3 = (**(code **)(puVar1 + -0x4b84))(iVar8,&buf), iVar3 == 0)) &&\n        ((buf.st_mode & 0xf000) == 0x4000)) &&\n       (iVar3 = (**(code **)(puVar1 + -0x4b9c))(iVar8,3), iVar3 == 0)) {\n      iVar3 = 0xc;\n      puVar10 = PTR_DAT_0015b5fc + -0x73a4;\n      goto LAB_0009aa88;\n    }\n    iVar9 = 0x190a;\n    if (piVar7 == (int *)(puVar10 + -0x4e98)) break;\n    iVar8 = *piVar7;\n    piVar7 = piVar7 + 1;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if ((((iVar8 != 0) && (iVar3 = (**(code **)(puVar1 + -0x4b84))(iVar8,&buf), iVar3 == 0)) &&\n        ((buf.st_mode & 0xf000) == 0x4000)) &&\n       (iVar3 = (**(code **)(puVar1 + -0x4b9c))(iVar8,3), iVar3 == 0)) {\n      iVar3 = 0xc;\n      puVar10 = PTR_DAT_0015b5fc + -0x73a4;\n      goto LAB_0009aa88;\n    }\n    iVar9 = 0x190a;\n    if (piVar7 == (int *)(puVar10 + -0x4e98)) break;\n    iVar8 = *piVar7;\n    piVar7 = piVar7 + 1;\n  }" { (if_statement "if ((((iVar8 != 0) && (iVar3 = (**(code **)(puVar1 + -0x4b84))(iVar8,&buf), iVar3 == 0)) &&\n        ((buf.st_mode & 0xf000) == 0x4000)) &&\n       (iVar3 = (**(code **)(puVar1 + -0x4b9c))(iVar8,3), iVar3 == 0)) {\n      iVar3 = 0xc;\n      puVar10 = PTR_DAT_0015b5fc + -0x73a4;\n      goto LAB_0009aa88;\n    }" if (parenthesized_expression "((((iVar8 != 0) && (iVar3 = (**(code **)(puVar1 + -0x4b84))(iVar8,&buf), iVar3 == 0)) &&\n        ((buf.st_mode & 0xf000) == 0x4000)) &&\n       (iVar3 = (**(code **)(puVar1 + -0x4b9c))(iVar8,3), iVar3 == 0))" ( (binary_expression "(((iVar8 != 0) && (iVar3 = (**(code **)(puVar1 + -0x4b84))(iVar8,&buf), iVar3 == 0)) &&\n        ((buf.st_mode & 0xf000) == 0x4000)) &&\n       (iVar3 = (**(code **)(puVar1 + -0x4b9c))(iVar8,3), iVar3 == 0)" (parenthesized_expression "(((iVar8 != 0) && (iVar3 = (**(code **)(puVar1 + -0x4b84))(iVar8,&buf), iVar3 == 0)) &&\n        ((buf.st_mode & 0xf000) == 0x4000))" ( (binary_expression "((iVar8 != 0) && (iVar3 = (**(code **)(puVar1 + -0x4b84))(iVar8,&buf), iVar3 == 0)) &&\n        ((buf.st_mode & 0xf000) == 0x4000)" (parenthesized_expression "((iVar8 != 0) && (iVar3 = (**(code **)(puVar1 + -0x4b84))(iVar8,&buf), iVar3 == 0))" ( (binary_expression "(iVar8 != 0) && (iVar3 = (**(code **)(puVar1 + -0x4b84))(iVar8,&buf), iVar3 == 0)" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = (**(code **)(puVar1 + -0x4b84))(iVar8,&buf), iVar3 == 0)" ( (comma_expression "iVar3 = (**(code **)(puVar1 + -0x4b84))(iVar8,&buf), iVar3 == 0" (assignment_expression "iVar3 = (**(code **)(puVar1 + -0x4b84))(iVar8,&buf)" identifier = (call_expression "(**(code **)(puVar1 + -0x4b84))(iVar8,&buf)" (parenthesized_expression "(**(code **)(puVar1 + -0x4b84))" ( (pointer_expression "**(code **)(puVar1 + -0x4b84)" * (pointer_expression "*(code **)(puVar1 + -0x4b84)" * (cast_expression "(code **)(puVar1 + -0x4b84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -0x4b84)" ( (binary_expression "puVar1 + -0x4b84" identifier + number_literal) ))))) )) (argument_list "(iVar8,&buf)" ( identifier , (pointer_expression "&buf" & identifier) )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "((buf.st_mode & 0xf000) == 0x4000)" ( (binary_expression "(buf.st_mode & 0xf000) == 0x4000" (parenthesized_expression "(buf.st_mode & 0xf000)" ( (binary_expression "buf.st_mode & 0xf000" (field_expression "buf.st_mode" identifier . field_identifier) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(iVar3 = (**(code **)(puVar1 + -0x4b9c))(iVar8,3), iVar3 == 0)" ( (comma_expression "iVar3 = (**(code **)(puVar1 + -0x4b9c))(iVar8,3), iVar3 == 0" (assignment_expression "iVar3 = (**(code **)(puVar1 + -0x4b9c))(iVar8,3)" identifier = (call_expression "(**(code **)(puVar1 + -0x4b9c))(iVar8,3)" (parenthesized_expression "(**(code **)(puVar1 + -0x4b9c))" ( (pointer_expression "**(code **)(puVar1 + -0x4b9c)" * (pointer_expression "*(code **)(puVar1 + -0x4b9c)" * (cast_expression "(code **)(puVar1 + -0x4b9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -0x4b9c)" ( (binary_expression "puVar1 + -0x4b9c" identifier + number_literal) ))))) )) (argument_list "(iVar8,3)" ( identifier , number_literal )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      iVar3 = 0xc;\n      puVar10 = PTR_DAT_0015b5fc + -0x73a4;\n      goto LAB_0009aa88;\n    }" { (expression_statement "iVar3 = 0xc;" (assignment_expression "iVar3 = 0xc" identifier = number_literal) ;) (expression_statement "puVar10 = PTR_DAT_0015b5fc + -0x73a4;" (assignment_expression "puVar10 = PTR_DAT_0015b5fc + -0x73a4" identifier = (binary_expression "PTR_DAT_0015b5fc + -0x73a4" identifier + number_literal)) ;) (goto_statement "goto LAB_0009aa88;" goto statement_identifier ;) })) (expression_statement "iVar9 = 0x190a;" (assignment_expression "iVar9 = 0x190a" identifier = number_literal) ;) (if_statement "if (piVar7 == (int *)(puVar10 + -0x4e98)) break;" if (parenthesized_expression "(piVar7 == (int *)(puVar10 + -0x4e98))" ( (binary_expression "piVar7 == (int *)(puVar10 + -0x4e98)" identifier == (cast_expression "(int *)(puVar10 + -0x4e98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x4e98)" ( (binary_expression "puVar10 + -0x4e98" identifier + number_literal) )))) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = *piVar7;" (assignment_expression "iVar8 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "piVar7 = piVar7 + 1;" (assignment_expression "piVar7 = piVar7 + 1" identifier = (binary_expression "piVar7 + 1" identifier + number_literal)) ;) })) (goto_statement "goto LAB_0009a9fc;" goto statement_identifier ;) (while_statement "while( true ) {\n    iVar4 = (**(code **)(puVar1 + -0x4b9c))(zBuf,0);\n    iVar9 = 0;\n    if (iVar4 != 0) break;\nLAB_0009aa88:\n    sqlite3_randomness(8,&r);\n    zBuf[nBuf + -2] = '\0';\n    (*(code *)PTR_sqlite3_snprintf_0015b610)(nBuf,zBuf,puVar10,iVar8,r._0_4_,r._4_4_,0);\n    if ((zBuf[nBuf + -2] != '\0') || (iVar3 = iVar3 + -1, iVar3 == 0)) {\n      iVar9 = 1;\n      break;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar4 = (**(code **)(puVar1 + -0x4b9c))(zBuf,0);\n    iVar9 = 0;\n    if (iVar4 != 0) break;\nLAB_0009aa88:\n    sqlite3_randomness(8,&r);\n    zBuf[nBuf + -2] = '\0';\n    (*(code *)PTR_sqlite3_snprintf_0015b610)(nBuf,zBuf,puVar10,iVar8,r._0_4_,r._4_4_,0);\n    if ((zBuf[nBuf + -2] != '\0') || (iVar3 = iVar3 + -1, iVar3 == 0)) {\n      iVar9 = 1;\n      break;\n    }\n  }" { (expression_statement "iVar4 = (**(code **)(puVar1 + -0x4b9c))(zBuf,0);" (assignment_expression "iVar4 = (**(code **)(puVar1 + -0x4b9c))(zBuf,0)" identifier = (call_expression "(**(code **)(puVar1 + -0x4b9c))(zBuf,0)" (parenthesized_expression "(**(code **)(puVar1 + -0x4b9c))" ( (pointer_expression "**(code **)(puVar1 + -0x4b9c)" * (pointer_expression "*(code **)(puVar1 + -0x4b9c)" * (cast_expression "(code **)(puVar1 + -0x4b9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -0x4b9c)" ( (binary_expression "puVar1 + -0x4b9c" identifier + number_literal) ))))) )) (argument_list "(zBuf,0)" ( identifier , number_literal )))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (if_statement "if (iVar4 != 0) break;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0009aa88:\n    sqlite3_randomness(8,&r);" statement_identifier : (expression_statement "sqlite3_randomness(8,&r);" (call_expression "sqlite3_randomness(8,&r)" identifier (argument_list "(8,&r)" ( number_literal , (pointer_expression "&r" & identifier) ))) ;)) (expression_statement "zBuf[nBuf + -2] = '\0';" (assignment_expression "zBuf[nBuf + -2] = '\0'" (subscript_expression "zBuf[nBuf + -2]" identifier [ (binary_expression "nBuf + -2" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*(code *)PTR_sqlite3_snprintf_0015b610)(nBuf,zBuf,puVar10,iVar8,r._0_4_,r._4_4_,0);" (call_expression "(*(code *)PTR_sqlite3_snprintf_0015b610)(nBuf,zBuf,puVar10,iVar8,r._0_4_,r._4_4_,0)" (parenthesized_expression "(*(code *)PTR_sqlite3_snprintf_0015b610)" ( (pointer_expression "*(code *)PTR_sqlite3_snprintf_0015b610" * (cast_expression "(code *)PTR_sqlite3_snprintf_0015b610" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(nBuf,zBuf,puVar10,iVar8,r._0_4_,r._4_4_,0)" ( identifier , identifier , identifier , identifier , (field_expression "r._0_4_" identifier . field_identifier) , (field_expression "r._4_4_" identifier . field_identifier) , number_literal ))) ;) (if_statement "if ((zBuf[nBuf + -2] != '\0') || (iVar3 = iVar3 + -1, iVar3 == 0)) {\n      iVar9 = 1;\n      break;\n    }" if (parenthesized_expression "((zBuf[nBuf + -2] != '\0') || (iVar3 = iVar3 + -1, iVar3 == 0))" ( (binary_expression "(zBuf[nBuf + -2] != '\0') || (iVar3 = iVar3 + -1, iVar3 == 0)" (parenthesized_expression "(zBuf[nBuf + -2] != '\0')" ( (binary_expression "zBuf[nBuf + -2] != '\0'" (subscript_expression "zBuf[nBuf + -2]" identifier [ (binary_expression "nBuf + -2" identifier + number_literal) ]) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar3 = iVar3 + -1, iVar3 == 0)" ( (comma_expression "iVar3 = iVar3 + -1, iVar3 == 0" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      iVar9 = 1;\n      break;\n    }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (break_statement "break;" break ;) })) })) (labeled_statement "LAB_0009a9fc:\n  if (iVar6 != *(int *)puVar2) {\n    iVar6 = (*(code *)PTR___stack_chk_fail_0015ba10)();\n    return iVar6;\n  }" statement_identifier : (if_statement "if (iVar6 != *(int *)puVar2) {\n    iVar6 = (*(code *)PTR___stack_chk_fail_0015ba10)();\n    return iVar6;\n  }" if (parenthesized_expression "(iVar6 != *(int *)puVar2)" ( (binary_expression "iVar6 != *(int *)puVar2" identifier != (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    iVar6 = (*(code *)PTR___stack_chk_fail_0015ba10)();\n    return iVar6;\n  }" { (expression_statement "iVar6 = (*(code *)PTR___stack_chk_fail_0015ba10)();" (assignment_expression "iVar6 = (*(code *)PTR___stack_chk_fail_0015ba10)()" identifier = (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" * (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (return_statement "return iVar6;" return identifier ;) }))) (return_statement "return iVar9;" return identifier ;) })))
(translation_unit "uint FUN_0009a92c(int param_1,undefined4 *param_2,int *param_3,uint param_4)\n\n{\n  char cVar1;\n  bool bVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  int in_zero;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  uint uVar14;\n  undefined4 *puVar15;\n  int iVar16;\n  int *piVar17;\n  undefined4 *puVar18;\n  uint *puVar19;\n  uint uVar20;\n  uint uVar21;\n  undefined4 *puVar22;\n  undefined *puVar23;\n  uint uVar24;\n  int iVar25;\n  uint *puVar26;\n  undefined *puVar27;\n  code *pcVar28;\n  code *pcVar29;\n  int *piVar30;\n  int *piVar31;\n  undefined4 uVar32;\n  longlong lVar33;\n  undefined4 local_734;\n  uint local_72c;\n  undefined4 local_724;\n  code *local_714;\n  undefined4 local_710;\n  int local_70c;\n  int local_708;\n  int local_704;\n  int local_700 [4];\n  int local_6f0;\n  int local_6ec;\n  uint local_6e8;\n  undefined4 local_6e0;\n  undefined4 local_6dc;\n  undefined1 auStack_65c [516];\n  undefined4 auStack_458 [129];\n  int local_254;\n  uint *local_250;\n  uint local_24c;\n  undefined *local_248;\n  undefined4 *local_244;\n  int local_240;\n  undefined4 *local_23c;\n  uint *local_238;\n  uint local_234;\n  int *local_230;\n  undefined4 local_22c;\n  uint *local_218;\n  undefined *local_208;\n  int local_134;\n  uint *local_130;\n  uint local_12c;\n  undefined *local_128;\n  undefined4 *local_124;\n  int local_120;\n  undefined4 *local_11c;\n  uint *local_118;\n  uint local_114;\n  int *local_110;\n  undefined4 local_10c;\n  undefined4 local_f8;\n  undefined4 local_f4;\n  undefined4 local_f0;\n  undefined4 local_d8;\n  undefined4 local_d4;\n  undefined4 auStack_d0 [6];\n  uint local_b8;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0015ba2c;\n  puVar27 = PTR_sqlite3_temp_directory_0015b854;\n  puVar23 = PTR_DAT_0015b5d8;\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  *(undefined1 *)param_2 = 0;\n  uVar20 = *(uint *)puVar27;\n  if (*(int *)(puVar23 + -0x4eb0) == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc);\n    *(undefined4 *)(puVar23 + -0x4eb0) = uVar32;\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }\n  else {\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }\n  if (iVar5 == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac);\n    *(undefined4 *)(puVar23 + -0x4eac) = uVar32;\n  }\n  puVar27 = PTR_DAT_0015b5d8;\n  puVar19 = (uint *)(puVar23 + -0x4eb0);\n  puVar26 = (uint *)(puVar23 + -0x4e98);\n  puVar22 = auStack_d0;\n  piVar30 = (int *)0x4000;\n  puVar23 = PTR_DAT_0015b5d8 + -0x4bb8;\n  while( true ) {\n    puVar15 = puVar22;\n    if ((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)) {\n      puVar19 = (uint *)&DAT_0000000c;\n      puVar26 = (uint *)((int)param_2 + param_1 + -2);\n      puVar22 = &local_d8;\n      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);\n      goto LAB_0009aa88;\n    }\n    local_234 = 0x190a;\n    if (puVar19 == puVar26) break;\n    uVar20 = *puVar19;\n    puVar19 = puVar19 + 1;\n  }\n  goto LAB_0009a9fc;\njoined_r0x0009b6fc:\n  if (param_4 == uVar20) goto LAB_0009bb18;\n  piVar10 = (int *)piVar13[2];\n  if (piVar10 == (int *)0x0) goto LAB_0009b728;\n  uVar20 = piVar10[1];\n  piVar17 = piVar13 + 2;\n  piVar13 = piVar10;\n  goto joined_r0x0009b6fc;\nLAB_0009bb18:\n  pcVar29 = *(code **)(pcVar28 + 0xc0508);\n  *piVar17 = piVar13[2];\n  (*pcVar29)(piVar31[4]);\n  (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\n  iVar7 = *piVar13;\n  param_3[7] = (int)piVar13;\n  goto LAB_0009b2a0;\nLAB_0009b728:\n  (**(code **)(pcVar28 + 0xc0508))(piVar31[4]);\n  (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\n  goto LAB_0009b7e8;\n  while( true ) {\n    puVar19 = (uint *)((int)puVar19 + -1);\n    puVar15 = (undefined4 *)0x0;\n    if (puVar19 == (uint *)0x0) goto LAB_0009aae4;\n    iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2);\n    local_234 = 0;\n    if (iVar5 != 0) break;\nLAB_0009aa88:\n    sqlite3_randomness(8,puVar22);\n    *(char *)puVar26 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar15 = param_2;\n    param_3 = piVar30;\n    param_4 = uVar20;\n    (*(code *)PTR_sqlite3_snprintf_0015b610)(param_1);\n    if (*(char *)puVar26 != '\0') {\nLAB_0009aae4:\n      local_234 = 1;\n      break;\n    }\n  }\nLAB_0009a9fc:\n  if (local_2c == *(int *)puVar4) {\n    return local_234;\n  }\n  uVar32 = 0x9ab38;\n  puVar27 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  local_208 = puVar27 + 0xc8a78;\n  piVar31 = *(int **)(puVar27 + 0xc0ef4);\n  iVar5 = *piVar31;\n  local_134 = iVar5;\n  local_130 = puVar19;\n  local_12c = uVar20;\n  local_128 = puVar23;\n  local_124 = param_2;\n  local_120 = param_1;\n  local_11c = puVar22;\n  local_118 = puVar26;\n  local_114 = local_234;\n  local_110 = piVar30;\n  local_10c = uVar32;\n  if (puVar15 < (undefined4 *)0x15) {\n                    \n                    \n    uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))();\n    return uVar20;\n  }\n  if (iVar5 == *piVar31) {\n    return 0xc;\n  }\n  pcVar28 = *(code **)(puVar27 + 0xc0ed8);\n  uVar32 = 0x9b1ac;\n  (*pcVar28)();\n  uVar21 = param_4 & 8;\n  uVar24 = param_4 & 0xffffff00;\n  piVar30 = *(int **)(pcVar28 + 0xc0880);\n  local_254 = *piVar30;\n  local_72c = param_4 & 1;\n  uVar6 = param_4 & 2;\n  puVar18 = puVar15;\n  local_250 = puVar19;\n  local_24c = uVar20;\n  local_248 = puVar23;\n  local_244 = param_2;\n  local_240 = param_1;\n  local_23c = puVar22;\n  local_238 = puVar26;\n  local_230 = piVar31;\n  local_22c = uVar32;\n  if ((param_4 & 4) == 0) {\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    bVar2 = false;\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (iVar7 != *(int *)(iVar25 + -0x4354)) goto LAB_0009b46c;\nLAB_0009b270:\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    if (uVar24 == 0x100) {\n      iVar7 = *(int *)(pcVar28 + 0xc042c);\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));\n      if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }\n      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\nLAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);\n      if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }\n      uVar20 = 7;\n    }\n    else {\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }\n  }\n  else {\n    if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (*(int *)(iVar25 + -0x4354) != iVar7) {\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    bVar2 = true;\n    if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;\nLAB_0009b298:\n    iVar7 = -1;\nLAB_0009b2a0:\n    uVar20 = uVar6;\n    if ((param_4 & 4) != 0) {\n      uVar20 = uVar6 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    (*pcVar29)(param_3[7]);\n  }\nLAB_0009b410:\n  if (local_254 == *piVar30) {\n    return uVar20;\n  }\n  pcVar28 = *(code **)(pcVar28 + 0xc0864);\n  iVar5 = local_254;\n  (*pcVar28)();\n  iVar7 = *(int *)(iVar5 + 0x60);\n  puVar22 = *(undefined4 **)(iVar5 + 0xd0);\n  uVar6 = *(uint *)(iVar5 + 0x4c);\n  uVar20 = *(uint *)(iVar5 + 0x98);\n  if (*(uint *)(iVar5 + 0x94) <= *(uint *)(iVar5 + 0x98)) {\n    uVar20 = *(uint *)(iVar5 + 0x94);\n  }\n  iVar25 = *(int *)(iVar5 + 0x48);\n  if (0 < iVar7) {\n    iVar16 = 0;\n    iVar8 = 0;\n    do {\n      iVar8 = iVar8 + 1;\n      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;\n      iVar16 = iVar16 + 0x30;\n      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }\n    } while (iVar8 < iVar7);\n  }\n  if (iVar25 != 0 || uVar6 != 0) {\n    uVar21 = *(uint *)(iVar5 + 0x94);\n    lVar33 = (**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21);\n    lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar6 = (uint)lVar3;\n    iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20);\n  }\n  *(uint *)(iVar5 + 0x4c) = uVar6;\n  *(int *)(iVar5 + 0x48) = iVar25;\n  *(uint *)(iVar5 + 0x54) = uVar6;\n  *(int *)(iVar5 + 0x50) = iVar25;\n  if (*(char *)(iVar5 + 7) == '\0') {\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n    if (*(char *)(iVar5 + 5) != '\x04') {\n      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }\n      goto LAB_0009be98;\n    }\n  }\n  else {\nLAB_0009be98:\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n  }\n  uVar32 = *(undefined4 *)(iVar7 + -0x7ce8);\n  *puVar22 = *(undefined4 *)(iVar7 + -0x7cec);\n  puVar22[1] = uVar32;\n  *(undefined1 *)(puVar22 + 2) = 0xff;\n  *(undefined1 *)((int)puVar22 + 9) = 0xff;\n  *(undefined1 *)((int)puVar22 + 10) = 0xff;\n  *(undefined1 *)((int)puVar22 + 0xb) = 0xff;\nLAB_0009becc:\n  uVar6 = 0;\n  sqlite3_randomness(4,iVar5 + 0x30);\n  uVar32 = *(undefined4 *)(iVar5 + 0x30);\n  *(char *)((int)puVar22 + 0xf) = (char)uVar32;\n  *(char *)(puVar22 + 3) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0xd) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0xe) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x1c);\n  pcVar28 = *(code **)(pcVar28 + 0xbfc10);\n  *(char *)((int)puVar22 + 0x13) = (char)uVar32;\n  *(char *)(puVar22 + 4) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x11) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x12) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x94);\n  *(char *)((int)puVar22 + 0x17) = (char)uVar32;\n  *(char *)(puVar22 + 5) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x15) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x16) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x98);\n  *(char *)((int)puVar22 + 0x1b) = (char)uVar32;\n  *(char *)(puVar22 + 6) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x19) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x1a) = (char)((uint)uVar32 >> 8);\n  (*pcVar28)(puVar22 + 7,0,uVar20 - 0x1c);\n  do {\n    if (*(uint *)(iVar5 + 0x94) <= uVar6) {\n      return 0;\n    }\n    iVar7 = **(int **)(iVar5 + 0x40);\n    uVar6 = uVar6 + uVar20;\n    uVar21 = (**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c));\n    uVar24 = *(uint *)(iVar5 + 0x4c);\n    uVar14 = uVar24 + uVar20;\n    *(uint *)(iVar5 + 0x4c) = uVar14;\n    *(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48);\n  } while (uVar21 == 0);\n  return uVar21;\n}\n\n" (function_definition "uint FUN_0009a92c(int param_1,undefined4 *param_2,int *param_3,uint param_4)\n\n{\n  char cVar1;\n  bool bVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  int in_zero;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  uint uVar14;\n  undefined4 *puVar15;\n  int iVar16;\n  int *piVar17;\n  undefined4 *puVar18;\n  uint *puVar19;\n  uint uVar20;\n  uint uVar21;\n  undefined4 *puVar22;\n  undefined *puVar23;\n  uint uVar24;\n  int iVar25;\n  uint *puVar26;\n  undefined *puVar27;\n  code *pcVar28;\n  code *pcVar29;\n  int *piVar30;\n  int *piVar31;\n  undefined4 uVar32;\n  longlong lVar33;\n  undefined4 local_734;\n  uint local_72c;\n  undefined4 local_724;\n  code *local_714;\n  undefined4 local_710;\n  int local_70c;\n  int local_708;\n  int local_704;\n  int local_700 [4];\n  int local_6f0;\n  int local_6ec;\n  uint local_6e8;\n  undefined4 local_6e0;\n  undefined4 local_6dc;\n  undefined1 auStack_65c [516];\n  undefined4 auStack_458 [129];\n  int local_254;\n  uint *local_250;\n  uint local_24c;\n  undefined *local_248;\n  undefined4 *local_244;\n  int local_240;\n  undefined4 *local_23c;\n  uint *local_238;\n  uint local_234;\n  int *local_230;\n  undefined4 local_22c;\n  uint *local_218;\n  undefined *local_208;\n  int local_134;\n  uint *local_130;\n  uint local_12c;\n  undefined *local_128;\n  undefined4 *local_124;\n  int local_120;\n  undefined4 *local_11c;\n  uint *local_118;\n  uint local_114;\n  int *local_110;\n  undefined4 local_10c;\n  undefined4 local_f8;\n  undefined4 local_f4;\n  undefined4 local_f0;\n  undefined4 local_d8;\n  undefined4 local_d4;\n  undefined4 auStack_d0 [6];\n  uint local_b8;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0015ba2c;\n  puVar27 = PTR_sqlite3_temp_directory_0015b854;\n  puVar23 = PTR_DAT_0015b5d8;\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  *(undefined1 *)param_2 = 0;\n  uVar20 = *(uint *)puVar27;\n  if (*(int *)(puVar23 + -0x4eb0) == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc);\n    *(undefined4 *)(puVar23 + -0x4eb0) = uVar32;\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }\n  else {\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }\n  if (iVar5 == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac);\n    *(undefined4 *)(puVar23 + -0x4eac) = uVar32;\n  }\n  puVar27 = PTR_DAT_0015b5d8;\n  puVar19 = (uint *)(puVar23 + -0x4eb0);\n  puVar26 = (uint *)(puVar23 + -0x4e98);\n  puVar22 = auStack_d0;\n  piVar30 = (int *)0x4000;\n  puVar23 = PTR_DAT_0015b5d8 + -0x4bb8;\n  while( true ) {\n    puVar15 = puVar22;\n    if ((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)) {\n      puVar19 = (uint *)&DAT_0000000c;\n      puVar26 = (uint *)((int)param_2 + param_1 + -2);\n      puVar22 = &local_d8;\n      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);\n      goto LAB_0009aa88;\n    }\n    local_234 = 0x190a;\n    if (puVar19 == puVar26) break;\n    uVar20 = *puVar19;\n    puVar19 = puVar19 + 1;\n  }\n  goto LAB_0009a9fc;\njoined_r0x0009b6fc:\n  if (param_4 == uVar20) goto LAB_0009bb18;\n  piVar10 = (int *)piVar13[2];\n  if (piVar10 == (int *)0x0) goto LAB_0009b728;\n  uVar20 = piVar10[1];\n  piVar17 = piVar13 + 2;\n  piVar13 = piVar10;\n  goto joined_r0x0009b6fc;\nLAB_0009bb18:\n  pcVar29 = *(code **)(pcVar28 + 0xc0508);\n  *piVar17 = piVar13[2];\n  (*pcVar29)(piVar31[4]);\n  (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\n  iVar7 = *piVar13;\n  param_3[7] = (int)piVar13;\n  goto LAB_0009b2a0;\nLAB_0009b728:\n  (**(code **)(pcVar28 + 0xc0508))(piVar31[4]);\n  (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\n  goto LAB_0009b7e8;\n  while( true ) {\n    puVar19 = (uint *)((int)puVar19 + -1);\n    puVar15 = (undefined4 *)0x0;\n    if (puVar19 == (uint *)0x0) goto LAB_0009aae4;\n    iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2);\n    local_234 = 0;\n    if (iVar5 != 0) break;\nLAB_0009aa88:\n    sqlite3_randomness(8,puVar22);\n    *(char *)puVar26 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar15 = param_2;\n    param_3 = piVar30;\n    param_4 = uVar20;\n    (*(code *)PTR_sqlite3_snprintf_0015b610)(param_1);\n    if (*(char *)puVar26 != '\0') {\nLAB_0009aae4:\n      local_234 = 1;\n      break;\n    }\n  }\nLAB_0009a9fc:\n  if (local_2c == *(int *)puVar4) {\n    return local_234;\n  }\n  uVar32 = 0x9ab38;\n  puVar27 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  local_208 = puVar27 + 0xc8a78;\n  piVar31 = *(int **)(puVar27 + 0xc0ef4);\n  iVar5 = *piVar31;\n  local_134 = iVar5;\n  local_130 = puVar19;\n  local_12c = uVar20;\n  local_128 = puVar23;\n  local_124 = param_2;\n  local_120 = param_1;\n  local_11c = puVar22;\n  local_118 = puVar26;\n  local_114 = local_234;\n  local_110 = piVar30;\n  local_10c = uVar32;\n  if (puVar15 < (undefined4 *)0x15) {\n                    \n                    \n    uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))();\n    return uVar20;\n  }\n  if (iVar5 == *piVar31) {\n    return 0xc;\n  }\n  pcVar28 = *(code **)(puVar27 + 0xc0ed8);\n  uVar32 = 0x9b1ac;\n  (*pcVar28)();\n  uVar21 = param_4 & 8;\n  uVar24 = param_4 & 0xffffff00;\n  piVar30 = *(int **)(pcVar28 + 0xc0880);\n  local_254 = *piVar30;\n  local_72c = param_4 & 1;\n  uVar6 = param_4 & 2;\n  puVar18 = puVar15;\n  local_250 = puVar19;\n  local_24c = uVar20;\n  local_248 = puVar23;\n  local_244 = param_2;\n  local_240 = param_1;\n  local_23c = puVar22;\n  local_238 = puVar26;\n  local_230 = piVar31;\n  local_22c = uVar32;\n  if ((param_4 & 4) == 0) {\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    bVar2 = false;\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (iVar7 != *(int *)(iVar25 + -0x4354)) goto LAB_0009b46c;\nLAB_0009b270:\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    if (uVar24 == 0x100) {\n      iVar7 = *(int *)(pcVar28 + 0xc042c);\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));\n      if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }\n      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\nLAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);\n      if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }\n      uVar20 = 7;\n    }\n    else {\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }\n  }\n  else {\n    if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (*(int *)(iVar25 + -0x4354) != iVar7) {\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    bVar2 = true;\n    if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;\nLAB_0009b298:\n    iVar7 = -1;\nLAB_0009b2a0:\n    uVar20 = uVar6;\n    if ((param_4 & 4) != 0) {\n      uVar20 = uVar6 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    (*pcVar29)(param_3[7]);\n  }\nLAB_0009b410:\n  if (local_254 == *piVar30) {\n    return uVar20;\n  }\n  pcVar28 = *(code **)(pcVar28 + 0xc0864);\n  iVar5 = local_254;\n  (*pcVar28)();\n  iVar7 = *(int *)(iVar5 + 0x60);\n  puVar22 = *(undefined4 **)(iVar5 + 0xd0);\n  uVar6 = *(uint *)(iVar5 + 0x4c);\n  uVar20 = *(uint *)(iVar5 + 0x98);\n  if (*(uint *)(iVar5 + 0x94) <= *(uint *)(iVar5 + 0x98)) {\n    uVar20 = *(uint *)(iVar5 + 0x94);\n  }\n  iVar25 = *(int *)(iVar5 + 0x48);\n  if (0 < iVar7) {\n    iVar16 = 0;\n    iVar8 = 0;\n    do {\n      iVar8 = iVar8 + 1;\n      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;\n      iVar16 = iVar16 + 0x30;\n      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }\n    } while (iVar8 < iVar7);\n  }\n  if (iVar25 != 0 || uVar6 != 0) {\n    uVar21 = *(uint *)(iVar5 + 0x94);\n    lVar33 = (**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21);\n    lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar6 = (uint)lVar3;\n    iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20);\n  }\n  *(uint *)(iVar5 + 0x4c) = uVar6;\n  *(int *)(iVar5 + 0x48) = iVar25;\n  *(uint *)(iVar5 + 0x54) = uVar6;\n  *(int *)(iVar5 + 0x50) = iVar25;\n  if (*(char *)(iVar5 + 7) == '\0') {\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n    if (*(char *)(iVar5 + 5) != '\x04') {\n      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }\n      goto LAB_0009be98;\n    }\n  }\n  else {\nLAB_0009be98:\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n  }\n  uVar32 = *(undefined4 *)(iVar7 + -0x7ce8);\n  *puVar22 = *(undefined4 *)(iVar7 + -0x7cec);\n  puVar22[1] = uVar32;\n  *(undefined1 *)(puVar22 + 2) = 0xff;\n  *(undefined1 *)((int)puVar22 + 9) = 0xff;\n  *(undefined1 *)((int)puVar22 + 10) = 0xff;\n  *(undefined1 *)((int)puVar22 + 0xb) = 0xff;\nLAB_0009becc:\n  uVar6 = 0;\n  sqlite3_randomness(4,iVar5 + 0x30);\n  uVar32 = *(undefined4 *)(iVar5 + 0x30);\n  *(char *)((int)puVar22 + 0xf) = (char)uVar32;\n  *(char *)(puVar22 + 3) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0xd) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0xe) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x1c);\n  pcVar28 = *(code **)(pcVar28 + 0xbfc10);\n  *(char *)((int)puVar22 + 0x13) = (char)uVar32;\n  *(char *)(puVar22 + 4) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x11) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x12) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x94);\n  *(char *)((int)puVar22 + 0x17) = (char)uVar32;\n  *(char *)(puVar22 + 5) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x15) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x16) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x98);\n  *(char *)((int)puVar22 + 0x1b) = (char)uVar32;\n  *(char *)(puVar22 + 6) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x19) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x1a) = (char)((uint)uVar32 >> 8);\n  (*pcVar28)(puVar22 + 7,0,uVar20 - 0x1c);\n  do {\n    if (*(uint *)(iVar5 + 0x94) <= uVar6) {\n      return 0;\n    }\n    iVar7 = **(int **)(iVar5 + 0x40);\n    uVar6 = uVar6 + uVar20;\n    uVar21 = (**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c));\n    uVar24 = *(uint *)(iVar5 + 0x4c);\n    uVar14 = uVar24 + uVar20;\n    *(uint *)(iVar5 + 0x4c) = uVar14;\n    *(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48);\n  } while (uVar21 == 0);\n  return uVar21;\n}" type_identifier (function_declarator "FUN_0009a92c(int param_1,undefined4 *param_2,int *param_3,uint param_4)" identifier (parameter_list "(int param_1,undefined4 *param_2,int *param_3,uint param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  int in_zero;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  uint uVar14;\n  undefined4 *puVar15;\n  int iVar16;\n  int *piVar17;\n  undefined4 *puVar18;\n  uint *puVar19;\n  uint uVar20;\n  uint uVar21;\n  undefined4 *puVar22;\n  undefined *puVar23;\n  uint uVar24;\n  int iVar25;\n  uint *puVar26;\n  undefined *puVar27;\n  code *pcVar28;\n  code *pcVar29;\n  int *piVar30;\n  int *piVar31;\n  undefined4 uVar32;\n  longlong lVar33;\n  undefined4 local_734;\n  uint local_72c;\n  undefined4 local_724;\n  code *local_714;\n  undefined4 local_710;\n  int local_70c;\n  int local_708;\n  int local_704;\n  int local_700 [4];\n  int local_6f0;\n  int local_6ec;\n  uint local_6e8;\n  undefined4 local_6e0;\n  undefined4 local_6dc;\n  undefined1 auStack_65c [516];\n  undefined4 auStack_458 [129];\n  int local_254;\n  uint *local_250;\n  uint local_24c;\n  undefined *local_248;\n  undefined4 *local_244;\n  int local_240;\n  undefined4 *local_23c;\n  uint *local_238;\n  uint local_234;\n  int *local_230;\n  undefined4 local_22c;\n  uint *local_218;\n  undefined *local_208;\n  int local_134;\n  uint *local_130;\n  uint local_12c;\n  undefined *local_128;\n  undefined4 *local_124;\n  int local_120;\n  undefined4 *local_11c;\n  uint *local_118;\n  uint local_114;\n  int *local_110;\n  undefined4 local_10c;\n  undefined4 local_f8;\n  undefined4 local_f4;\n  undefined4 local_f0;\n  undefined4 local_d8;\n  undefined4 local_d4;\n  undefined4 auStack_d0 [6];\n  uint local_b8;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0015ba2c;\n  puVar27 = PTR_sqlite3_temp_directory_0015b854;\n  puVar23 = PTR_DAT_0015b5d8;\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  *(undefined1 *)param_2 = 0;\n  uVar20 = *(uint *)puVar27;\n  if (*(int *)(puVar23 + -0x4eb0) == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc);\n    *(undefined4 *)(puVar23 + -0x4eb0) = uVar32;\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }\n  else {\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }\n  if (iVar5 == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac);\n    *(undefined4 *)(puVar23 + -0x4eac) = uVar32;\n  }\n  puVar27 = PTR_DAT_0015b5d8;\n  puVar19 = (uint *)(puVar23 + -0x4eb0);\n  puVar26 = (uint *)(puVar23 + -0x4e98);\n  puVar22 = auStack_d0;\n  piVar30 = (int *)0x4000;\n  puVar23 = PTR_DAT_0015b5d8 + -0x4bb8;\n  while( true ) {\n    puVar15 = puVar22;\n    if ((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)) {\n      puVar19 = (uint *)&DAT_0000000c;\n      puVar26 = (uint *)((int)param_2 + param_1 + -2);\n      puVar22 = &local_d8;\n      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);\n      goto LAB_0009aa88;\n    }\n    local_234 = 0x190a;\n    if (puVar19 == puVar26) break;\n    uVar20 = *puVar19;\n    puVar19 = puVar19 + 1;\n  }\n  goto LAB_0009a9fc;\njoined_r0x0009b6fc:\n  if (param_4 == uVar20) goto LAB_0009bb18;\n  piVar10 = (int *)piVar13[2];\n  if (piVar10 == (int *)0x0) goto LAB_0009b728;\n  uVar20 = piVar10[1];\n  piVar17 = piVar13 + 2;\n  piVar13 = piVar10;\n  goto joined_r0x0009b6fc;\nLAB_0009bb18:\n  pcVar29 = *(code **)(pcVar28 + 0xc0508);\n  *piVar17 = piVar13[2];\n  (*pcVar29)(piVar31[4]);\n  (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\n  iVar7 = *piVar13;\n  param_3[7] = (int)piVar13;\n  goto LAB_0009b2a0;\nLAB_0009b728:\n  (**(code **)(pcVar28 + 0xc0508))(piVar31[4]);\n  (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\n  goto LAB_0009b7e8;\n  while( true ) {\n    puVar19 = (uint *)((int)puVar19 + -1);\n    puVar15 = (undefined4 *)0x0;\n    if (puVar19 == (uint *)0x0) goto LAB_0009aae4;\n    iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2);\n    local_234 = 0;\n    if (iVar5 != 0) break;\nLAB_0009aa88:\n    sqlite3_randomness(8,puVar22);\n    *(char *)puVar26 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar15 = param_2;\n    param_3 = piVar30;\n    param_4 = uVar20;\n    (*(code *)PTR_sqlite3_snprintf_0015b610)(param_1);\n    if (*(char *)puVar26 != '\0') {\nLAB_0009aae4:\n      local_234 = 1;\n      break;\n    }\n  }\nLAB_0009a9fc:\n  if (local_2c == *(int *)puVar4) {\n    return local_234;\n  }\n  uVar32 = 0x9ab38;\n  puVar27 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  local_208 = puVar27 + 0xc8a78;\n  piVar31 = *(int **)(puVar27 + 0xc0ef4);\n  iVar5 = *piVar31;\n  local_134 = iVar5;\n  local_130 = puVar19;\n  local_12c = uVar20;\n  local_128 = puVar23;\n  local_124 = param_2;\n  local_120 = param_1;\n  local_11c = puVar22;\n  local_118 = puVar26;\n  local_114 = local_234;\n  local_110 = piVar30;\n  local_10c = uVar32;\n  if (puVar15 < (undefined4 *)0x15) {\n                    \n                    \n    uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))();\n    return uVar20;\n  }\n  if (iVar5 == *piVar31) {\n    return 0xc;\n  }\n  pcVar28 = *(code **)(puVar27 + 0xc0ed8);\n  uVar32 = 0x9b1ac;\n  (*pcVar28)();\n  uVar21 = param_4 & 8;\n  uVar24 = param_4 & 0xffffff00;\n  piVar30 = *(int **)(pcVar28 + 0xc0880);\n  local_254 = *piVar30;\n  local_72c = param_4 & 1;\n  uVar6 = param_4 & 2;\n  puVar18 = puVar15;\n  local_250 = puVar19;\n  local_24c = uVar20;\n  local_248 = puVar23;\n  local_244 = param_2;\n  local_240 = param_1;\n  local_23c = puVar22;\n  local_238 = puVar26;\n  local_230 = piVar31;\n  local_22c = uVar32;\n  if ((param_4 & 4) == 0) {\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    bVar2 = false;\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (iVar7 != *(int *)(iVar25 + -0x4354)) goto LAB_0009b46c;\nLAB_0009b270:\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    if (uVar24 == 0x100) {\n      iVar7 = *(int *)(pcVar28 + 0xc042c);\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));\n      if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }\n      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\nLAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);\n      if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }\n      uVar20 = 7;\n    }\n    else {\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }\n  }\n  else {\n    if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (*(int *)(iVar25 + -0x4354) != iVar7) {\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    bVar2 = true;\n    if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;\nLAB_0009b298:\n    iVar7 = -1;\nLAB_0009b2a0:\n    uVar20 = uVar6;\n    if ((param_4 & 4) != 0) {\n      uVar20 = uVar6 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    (*pcVar29)(param_3[7]);\n  }\nLAB_0009b410:\n  if (local_254 == *piVar30) {\n    return uVar20;\n  }\n  pcVar28 = *(code **)(pcVar28 + 0xc0864);\n  iVar5 = local_254;\n  (*pcVar28)();\n  iVar7 = *(int *)(iVar5 + 0x60);\n  puVar22 = *(undefined4 **)(iVar5 + 0xd0);\n  uVar6 = *(uint *)(iVar5 + 0x4c);\n  uVar20 = *(uint *)(iVar5 + 0x98);\n  if (*(uint *)(iVar5 + 0x94) <= *(uint *)(iVar5 + 0x98)) {\n    uVar20 = *(uint *)(iVar5 + 0x94);\n  }\n  iVar25 = *(int *)(iVar5 + 0x48);\n  if (0 < iVar7) {\n    iVar16 = 0;\n    iVar8 = 0;\n    do {\n      iVar8 = iVar8 + 1;\n      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;\n      iVar16 = iVar16 + 0x30;\n      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }\n    } while (iVar8 < iVar7);\n  }\n  if (iVar25 != 0 || uVar6 != 0) {\n    uVar21 = *(uint *)(iVar5 + 0x94);\n    lVar33 = (**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21);\n    lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar6 = (uint)lVar3;\n    iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20);\n  }\n  *(uint *)(iVar5 + 0x4c) = uVar6;\n  *(int *)(iVar5 + 0x48) = iVar25;\n  *(uint *)(iVar5 + 0x54) = uVar6;\n  *(int *)(iVar5 + 0x50) = iVar25;\n  if (*(char *)(iVar5 + 7) == '\0') {\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n    if (*(char *)(iVar5 + 5) != '\x04') {\n      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }\n      goto LAB_0009be98;\n    }\n  }\n  else {\nLAB_0009be98:\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n  }\n  uVar32 = *(undefined4 *)(iVar7 + -0x7ce8);\n  *puVar22 = *(undefined4 *)(iVar7 + -0x7cec);\n  puVar22[1] = uVar32;\n  *(undefined1 *)(puVar22 + 2) = 0xff;\n  *(undefined1 *)((int)puVar22 + 9) = 0xff;\n  *(undefined1 *)((int)puVar22 + 10) = 0xff;\n  *(undefined1 *)((int)puVar22 + 0xb) = 0xff;\nLAB_0009becc:\n  uVar6 = 0;\n  sqlite3_randomness(4,iVar5 + 0x30);\n  uVar32 = *(undefined4 *)(iVar5 + 0x30);\n  *(char *)((int)puVar22 + 0xf) = (char)uVar32;\n  *(char *)(puVar22 + 3) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0xd) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0xe) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x1c);\n  pcVar28 = *(code **)(pcVar28 + 0xbfc10);\n  *(char *)((int)puVar22 + 0x13) = (char)uVar32;\n  *(char *)(puVar22 + 4) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x11) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x12) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x94);\n  *(char *)((int)puVar22 + 0x17) = (char)uVar32;\n  *(char *)(puVar22 + 5) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x15) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x16) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x98);\n  *(char *)((int)puVar22 + 0x1b) = (char)uVar32;\n  *(char *)(puVar22 + 6) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x19) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x1a) = (char)((uint)uVar32 >> 8);\n  (*pcVar28)(puVar22 + 7,0,uVar20 - 0x1c);\n  do {\n    if (*(uint *)(iVar5 + 0x94) <= uVar6) {\n      return 0;\n    }\n    iVar7 = **(int **)(iVar5 + 0x40);\n    uVar6 = uVar6 + uVar20;\n    uVar21 = (**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c));\n    uVar24 = *(uint *)(iVar5 + 0x4c);\n    uVar14 = uVar24 + uVar20;\n    *(uint *)(iVar5 + 0x4c) = uVar14;\n    *(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48);\n  } while (uVar21 == 0);\n  return uVar21;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "longlong lVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int in_zero;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "uint *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "undefined *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "code *pcVar29;" type_identifier (pointer_declarator "*pcVar29" * identifier) ;) (declaration "int *piVar30;" primitive_type (pointer_declarator "*piVar30" * identifier) ;) (declaration "int *piVar31;" primitive_type (pointer_declarator "*piVar31" * identifier) ;) (declaration "undefined4 uVar32;" type_identifier identifier ;) (declaration "longlong lVar33;" type_identifier identifier ;) (declaration "undefined4 local_734;" type_identifier identifier ;) (declaration "uint local_72c;" type_identifier identifier ;) (declaration "undefined4 local_724;" type_identifier identifier ;) (declaration "code *local_714;" type_identifier (pointer_declarator "*local_714" * identifier) ;) (declaration "undefined4 local_710;" type_identifier identifier ;) (declaration "int local_70c;" primitive_type identifier ;) (declaration "int local_708;" primitive_type identifier ;) (declaration "int local_704;" primitive_type identifier ;) (declaration "int local_700 [4];" primitive_type (array_declarator "local_700 [4]" identifier [ number_literal ]) ;) (declaration "int local_6f0;" primitive_type identifier ;) (declaration "int local_6ec;" primitive_type identifier ;) (declaration "uint local_6e8;" type_identifier identifier ;) (declaration "undefined4 local_6e0;" type_identifier identifier ;) (declaration "undefined4 local_6dc;" type_identifier identifier ;) (declaration "undefined1 auStack_65c [516];" type_identifier (array_declarator "auStack_65c [516]" identifier [ number_literal ]) ;) (declaration "undefined4 auStack_458 [129];" type_identifier (array_declarator "auStack_458 [129]" identifier [ number_literal ]) ;) (declaration "int local_254;" primitive_type identifier ;) (declaration "uint *local_250;" type_identifier (pointer_declarator "*local_250" * identifier) ;) (declaration "uint local_24c;" type_identifier identifier ;) (declaration "undefined *local_248;" type_identifier (pointer_declarator "*local_248" * identifier) ;) (declaration "undefined4 *local_244;" type_identifier (pointer_declarator "*local_244" * identifier) ;) (declaration "int local_240;" primitive_type identifier ;) (declaration "undefined4 *local_23c;" type_identifier (pointer_declarator "*local_23c" * identifier) ;) (declaration "uint *local_238;" type_identifier (pointer_declarator "*local_238" * identifier) ;) (declaration "uint local_234;" type_identifier identifier ;) (declaration "int *local_230;" primitive_type (pointer_declarator "*local_230" * identifier) ;) (declaration "undefined4 local_22c;" type_identifier identifier ;) (declaration "uint *local_218;" type_identifier (pointer_declarator "*local_218" * identifier) ;) (declaration "undefined *local_208;" type_identifier (pointer_declarator "*local_208" * identifier) ;) (declaration "int local_134;" primitive_type identifier ;) (declaration "uint *local_130;" type_identifier (pointer_declarator "*local_130" * identifier) ;) (declaration "uint local_12c;" type_identifier identifier ;) (declaration "undefined *local_128;" type_identifier (pointer_declarator "*local_128" * identifier) ;) (declaration "undefined4 *local_124;" type_identifier (pointer_declarator "*local_124" * identifier) ;) (declaration "int local_120;" primitive_type identifier ;) (declaration "undefined4 *local_11c;" type_identifier (pointer_declarator "*local_11c" * identifier) ;) (declaration "uint *local_118;" type_identifier (pointer_declarator "*local_118" * identifier) ;) (declaration "uint local_114;" type_identifier identifier ;) (declaration "int *local_110;" primitive_type (pointer_declarator "*local_110" * identifier) ;) (declaration "undefined4 local_10c;" type_identifier identifier ;) (declaration "undefined4 local_f8;" type_identifier identifier ;) (declaration "undefined4 local_f4;" type_identifier identifier ;) (declaration "undefined4 local_f0;" type_identifier identifier ;) (declaration "undefined4 local_d8;" type_identifier identifier ;) (declaration "undefined4 local_d4;" type_identifier identifier ;) (declaration "undefined4 auStack_d0 [6];" type_identifier (array_declarator "auStack_d0 [6]" identifier [ number_literal ]) ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar4 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar4 = PTR___stack_chk_guard_0015ba2c" identifier = identifier) ;) (expression_statement "puVar27 = PTR_sqlite3_temp_directory_0015b854;" (assignment_expression "puVar27 = PTR_sqlite3_temp_directory_0015b854" identifier = identifier) ;) (expression_statement "puVar23 = PTR_DAT_0015b5d8;" (assignment_expression "puVar23 = PTR_DAT_0015b5d8" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0015ba2c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ba2c" * (cast_expression "(int *)PTR___stack_chk_guard_0015ba2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined1 *)param_2 = 0;" (assignment_expression "*(undefined1 *)param_2 = 0" (pointer_expression "*(undefined1 *)param_2" * (cast_expression "(undefined1 *)param_2" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar20 = *(uint *)puVar27;" (assignment_expression "uVar20 = *(uint *)puVar27" identifier = (pointer_expression "*(uint *)puVar27" * (cast_expression "(uint *)puVar27" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)(puVar23 + -0x4eb0) == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc);\n    *(undefined4 *)(puVar23 + -0x4eb0) = uVar32;\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }\n  else {\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }" if (parenthesized_expression "(*(int *)(puVar23 + -0x4eb0) == 0)" ( (binary_expression "*(int *)(puVar23 + -0x4eb0) == 0" (pointer_expression "*(int *)(puVar23 + -0x4eb0)" * (cast_expression "(int *)(puVar23 + -0x4eb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -0x4eb0)" ( (binary_expression "puVar23 + -0x4eb0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc);\n    *(undefined4 *)(puVar23 + -0x4eb0) = uVar32;\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }" { (expression_statement "uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc);" (assignment_expression "uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc)" identifier = (call_expression "(*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc)" (parenthesized_expression "(*(code *)PTR_getenv_0015b9e4)" ( (pointer_expression "*(code *)PTR_getenv_0015b9e4" * (cast_expression "(code *)PTR_getenv_0015b9e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0015b5fc + -0x73bc)" ( (binary_expression "PTR_UINT_0015b5fc + -0x73bc" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar23 + -0x4eb0) = uVar32;" (assignment_expression "*(undefined4 *)(puVar23 + -0x4eb0) = uVar32" (pointer_expression "*(undefined4 *)(puVar23 + -0x4eb0)" * (cast_expression "(undefined4 *)(puVar23 + -0x4eb0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -0x4eb0)" ( (binary_expression "puVar23 + -0x4eb0" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar5 = *(int *)(puVar23 + -0x4eac);" (assignment_expression "iVar5 = *(int *)(puVar23 + -0x4eac)" identifier = (pointer_expression "*(int *)(puVar23 + -0x4eac)" * (cast_expression "(int *)(puVar23 + -0x4eac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -0x4eac)" ( (binary_expression "puVar23 + -0x4eac" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }" else (compound_statement "{\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }" { (expression_statement "iVar5 = *(int *)(puVar23 + -0x4eac);" (assignment_expression "iVar5 = *(int *)(puVar23 + -0x4eac)" identifier = (pointer_expression "*(int *)(puVar23 + -0x4eac)" * (cast_expression "(int *)(puVar23 + -0x4eac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -0x4eac)" ( (binary_expression "puVar23 + -0x4eac" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar5 == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac);\n    *(undefined4 *)(puVar23 + -0x4eac) = uVar32;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac);\n    *(undefined4 *)(puVar23 + -0x4eac) = uVar32;\n  }" { (expression_statement "uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac);" (assignment_expression "uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac)" identifier = (call_expression "(*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac)" (parenthesized_expression "(*(code *)PTR_getenv_0015b9e4)" ( (pointer_expression "*(code *)PTR_getenv_0015b9e4" * (cast_expression "(code *)PTR_getenv_0015b9e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0015b5fc + -0x73ac)" ( (binary_expression "PTR_UINT_0015b5fc + -0x73ac" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar23 + -0x4eac) = uVar32;" (assignment_expression "*(undefined4 *)(puVar23 + -0x4eac) = uVar32" (pointer_expression "*(undefined4 *)(puVar23 + -0x4eac)" * (cast_expression "(undefined4 *)(puVar23 + -0x4eac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -0x4eac)" ( (binary_expression "puVar23 + -0x4eac" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "puVar27 = PTR_DAT_0015b5d8;" (assignment_expression "puVar27 = PTR_DAT_0015b5d8" identifier = identifier) ;) (expression_statement "puVar19 = (uint *)(puVar23 + -0x4eb0);" (assignment_expression "puVar19 = (uint *)(puVar23 + -0x4eb0)" identifier = (cast_expression "(uint *)(puVar23 + -0x4eb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -0x4eb0)" ( (binary_expression "puVar23 + -0x4eb0" identifier + number_literal) )))) ;) (expression_statement "puVar26 = (uint *)(puVar23 + -0x4e98);" (assignment_expression "puVar26 = (uint *)(puVar23 + -0x4e98)" identifier = (cast_expression "(uint *)(puVar23 + -0x4e98)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -0x4e98)" ( (binary_expression "puVar23 + -0x4e98" identifier + number_literal) )))) ;) (expression_statement "puVar22 = auStack_d0;" (assignment_expression "puVar22 = auStack_d0" identifier = identifier) ;) (expression_statement "piVar30 = (int *)0x4000;" (assignment_expression "piVar30 = (int *)0x4000" identifier = (cast_expression "(int *)0x4000" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar23 = PTR_DAT_0015b5d8 + -0x4bb8;" (assignment_expression "puVar23 = PTR_DAT_0015b5d8 + -0x4bb8" identifier = (binary_expression "PTR_DAT_0015b5d8 + -0x4bb8" identifier + number_literal)) ;) (while_statement "while( true ) {\n    puVar15 = puVar22;\n    if ((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)) {\n      puVar19 = (uint *)&DAT_0000000c;\n      puVar26 = (uint *)((int)param_2 + param_1 + -2);\n      puVar22 = &local_d8;\n      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);\n      goto LAB_0009aa88;\n    }\n    local_234 = 0x190a;\n    if (puVar19 == puVar26) break;\n    uVar20 = *puVar19;\n    puVar19 = puVar19 + 1;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    puVar15 = puVar22;\n    if ((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)) {\n      puVar19 = (uint *)&DAT_0000000c;\n      puVar26 = (uint *)((int)param_2 + param_1 + -2);\n      puVar22 = &local_d8;\n      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);\n      goto LAB_0009aa88;\n    }\n    local_234 = 0x190a;\n    if (puVar19 == puVar26) break;\n    uVar20 = *puVar19;\n    puVar19 = puVar19 + 1;\n  }" { (expression_statement "puVar15 = puVar22;" (assignment_expression "puVar15 = puVar22" identifier = identifier) ;) (if_statement "if ((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)) {\n      puVar19 = (uint *)&DAT_0000000c;\n      puVar26 = (uint *)((int)param_2 + param_1 + -2);\n      puVar22 = &local_d8;\n      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);\n      goto LAB_0009aa88;\n    }" if (parenthesized_expression "((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0))" ( (binary_expression "(((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)" (parenthesized_expression "(((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000))" ( (binary_expression "((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)" (parenthesized_expression "((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0))" ( (binary_expression "(uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)" (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)" ( (comma_expression "iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0" (assignment_expression "iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20)" identifier = (call_expression "(**(code **)(puVar27 + -0x4b84))(uVar20)" (parenthesized_expression "(**(code **)(puVar27 + -0x4b84))" ( (pointer_expression "**(code **)(puVar27 + -0x4b84)" * (pointer_expression "*(code **)(puVar27 + -0x4b84)" * (cast_expression "(code **)(puVar27 + -0x4b84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x4b84)" ( (binary_expression "puVar27 + -0x4b84" identifier + number_literal) ))))) )) (argument_list "(uVar20)" ( identifier )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)" ( (comma_expression "puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000" (assignment_expression "puVar15 = (undefined4 *)0x3" identifier = (cast_expression "(undefined4 *)0x3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "(local_b8 & 0xf000) == 0x4000" (parenthesized_expression "(local_b8 & 0xf000)" ( (binary_expression "local_b8 & 0xf000" identifier & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "(iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)" ( (comma_expression "iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0" (assignment_expression "iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20)" identifier = (call_expression "(**(code **)(puVar27 + -0x4b9c))(uVar20)" (parenthesized_expression "(**(code **)(puVar27 + -0x4b9c))" ( (pointer_expression "**(code **)(puVar27 + -0x4b9c)" * (pointer_expression "*(code **)(puVar27 + -0x4b9c)" * (cast_expression "(code **)(puVar27 + -0x4b9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x4b9c)" ( (binary_expression "puVar27 + -0x4b9c" identifier + number_literal) ))))) )) (argument_list "(uVar20)" ( identifier )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      puVar19 = (uint *)&DAT_0000000c;\n      puVar26 = (uint *)((int)param_2 + param_1 + -2);\n      puVar22 = &local_d8;\n      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);\n      goto LAB_0009aa88;\n    }" { (expression_statement "puVar19 = (uint *)&DAT_0000000c;" (assignment_expression "puVar19 = (uint *)&DAT_0000000c" identifier = (cast_expression "(uint *)&DAT_0000000c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000c" & identifier))) ;) (expression_statement "puVar26 = (uint *)((int)param_2 + param_1 + -2);" (assignment_expression "puVar26 = (uint *)((int)param_2 + param_1 + -2)" identifier = (cast_expression "(uint *)((int)param_2 + param_1 + -2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + param_1 + -2)" ( (binary_expression "(int)param_2 + param_1 + -2" (binary_expression "(int)param_2 + param_1" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "puVar22 = &local_d8;" (assignment_expression "puVar22 = &local_d8" identifier = (pointer_expression "&local_d8" & identifier)) ;) (expression_statement "piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);" (assignment_expression "piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4)" identifier = (cast_expression "(int *)(PTR_UINT_0015b5fc + -0x73a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_0015b5fc + -0x73a4)" ( (binary_expression "PTR_UINT_0015b5fc + -0x73a4" identifier + number_literal) )))) ;) (goto_statement "goto LAB_0009aa88;" goto statement_identifier ;) })) (expression_statement "local_234 = 0x190a;" (assignment_expression "local_234 = 0x190a" identifier = number_literal) ;) (if_statement "if (puVar19 == puVar26) break;" if (parenthesized_expression "(puVar19 == puVar26)" ( (binary_expression "puVar19 == puVar26" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar20 = *puVar19;" (assignment_expression "uVar20 = *puVar19" identifier = (pointer_expression "*puVar19" * identifier)) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) })) (goto_statement "goto LAB_0009a9fc;" goto statement_identifier ;) (labeled_statement "joined_r0x0009b6fc:\n  if (param_4 == uVar20) goto LAB_0009bb18;" statement_identifier : (if_statement "if (param_4 == uVar20) goto LAB_0009bb18;" if (parenthesized_expression "(param_4 == uVar20)" ( (binary_expression "param_4 == uVar20" identifier == identifier) )) (goto_statement "goto LAB_0009bb18;" goto statement_identifier ;))) (expression_statement "piVar10 = (int *)piVar13[2];" (assignment_expression "piVar10 = (int *)piVar13[2]" identifier = (cast_expression "(int *)piVar13[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar13[2]" identifier [ number_literal ]))) ;) (if_statement "if (piVar10 == (int *)0x0) goto LAB_0009b728;" if (parenthesized_expression "(piVar10 == (int *)0x0)" ( (binary_expression "piVar10 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0009b728;" goto statement_identifier ;)) (expression_statement "uVar20 = piVar10[1];" (assignment_expression "uVar20 = piVar10[1]" identifier = (subscript_expression "piVar10[1]" identifier [ number_literal ])) ;) (expression_statement "piVar17 = piVar13 + 2;" (assignment_expression "piVar17 = piVar13 + 2" identifier = (binary_expression "piVar13 + 2" identifier + number_literal)) ;) (expression_statement "piVar13 = piVar10;" (assignment_expression "piVar13 = piVar10" identifier = identifier) ;) (goto_statement "goto joined_r0x0009b6fc;" goto statement_identifier ;) (labeled_statement "LAB_0009bb18:\n  pcVar29 = *(code **)(pcVar28 + 0xc0508);" statement_identifier : (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0508);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0508)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xc0508)" * (cast_expression "(code **)(pcVar28 + 0xc0508)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0508)" ( (binary_expression "pcVar28 + 0xc0508" identifier + number_literal) ))))) ;)) (expression_statement "*piVar17 = piVar13[2];" (assignment_expression "*piVar17 = piVar13[2]" (pointer_expression "*piVar17" * identifier) = (subscript_expression "piVar13[2]" identifier [ number_literal ])) ;) (expression_statement "(*pcVar29)(piVar31[4]);" (call_expression "(*pcVar29)(piVar31[4])" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(piVar31[4])" ( (subscript_expression "piVar31[4]" identifier [ number_literal ]) ))) ;) (expression_statement "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0508))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0508)" * (pointer_expression "*(code **)(pcVar28 + 0xc0508)" * (cast_expression "(code **)(pcVar28 + 0xc0508)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0508)" ( (binary_expression "pcVar28 + 0xc0508" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar7 + -0x4358))" ( (pointer_expression "*(undefined4 *)(iVar7 + -0x4358)" * (cast_expression "(undefined4 *)(iVar7 + -0x4358)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x4358)" ( (binary_expression "iVar7 + -0x4358" identifier + number_literal) )))) ))) ;) (expression_statement "iVar7 = *piVar13;" (assignment_expression "iVar7 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "param_3[7] = (int)piVar13;" (assignment_expression "param_3[7] = (int)piVar13" (subscript_expression "param_3[7]" identifier [ number_literal ]) = (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0009b2a0;" goto statement_identifier ;) (labeled_statement "LAB_0009b728:\n  (**(code **)(pcVar28 + 0xc0508))(piVar31[4]);" statement_identifier : (expression_statement "(**(code **)(pcVar28 + 0xc0508))(piVar31[4]);" (call_expression "(**(code **)(pcVar28 + 0xc0508))(piVar31[4])" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0508))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0508)" * (pointer_expression "*(code **)(pcVar28 + 0xc0508)" * (cast_expression "(code **)(pcVar28 + 0xc0508)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0508)" ( (binary_expression "pcVar28 + 0xc0508" identifier + number_literal) ))))) )) (argument_list "(piVar31[4])" ( (subscript_expression "piVar31[4]" identifier [ number_literal ]) ))) ;)) (expression_statement "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0508))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0508)" * (pointer_expression "*(code **)(pcVar28 + 0xc0508)" * (cast_expression "(code **)(pcVar28 + 0xc0508)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0508)" ( (binary_expression "pcVar28 + 0xc0508" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar7 + -0x4358))" ( (pointer_expression "*(undefined4 *)(iVar7 + -0x4358)" * (cast_expression "(undefined4 *)(iVar7 + -0x4358)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x4358)" ( (binary_expression "iVar7 + -0x4358" identifier + number_literal) )))) ))) ;) (goto_statement "goto LAB_0009b7e8;" goto statement_identifier ;) (while_statement "while( true ) {\n    puVar19 = (uint *)((int)puVar19 + -1);\n    puVar15 = (undefined4 *)0x0;\n    if (puVar19 == (uint *)0x0) goto LAB_0009aae4;\n    iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2);\n    local_234 = 0;\n    if (iVar5 != 0) break;\nLAB_0009aa88:\n    sqlite3_randomness(8,puVar22);\n    *(char *)puVar26 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar15 = param_2;\n    param_3 = piVar30;\n    param_4 = uVar20;\n    (*(code *)PTR_sqlite3_snprintf_0015b610)(param_1);\n    if (*(char *)puVar26 != '\0') {\nLAB_0009aae4:\n      local_234 = 1;\n      break;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    puVar19 = (uint *)((int)puVar19 + -1);\n    puVar15 = (undefined4 *)0x0;\n    if (puVar19 == (uint *)0x0) goto LAB_0009aae4;\n    iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2);\n    local_234 = 0;\n    if (iVar5 != 0) break;\nLAB_0009aa88:\n    sqlite3_randomness(8,puVar22);\n    *(char *)puVar26 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar15 = param_2;\n    param_3 = piVar30;\n    param_4 = uVar20;\n    (*(code *)PTR_sqlite3_snprintf_0015b610)(param_1);\n    if (*(char *)puVar26 != '\0') {\nLAB_0009aae4:\n      local_234 = 1;\n      break;\n    }\n  }" { (expression_statement "puVar19 = (uint *)((int)puVar19 + -1);" (assignment_expression "puVar19 = (uint *)((int)puVar19 + -1)" identifier = (cast_expression "(uint *)((int)puVar19 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + -1)" ( (binary_expression "(int)puVar19 + -1" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar15 = (undefined4 *)0x0;" (assignment_expression "puVar15 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (puVar19 == (uint *)0x0) goto LAB_0009aae4;" if (parenthesized_expression "(puVar19 == (uint *)0x0)" ( (binary_expression "puVar19 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0009aae4;" goto statement_identifier ;)) (expression_statement "iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2);" (assignment_expression "iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2)" identifier = (call_expression "(**(code **)(puVar27 + -0x4b9c))(param_2)" (parenthesized_expression "(**(code **)(puVar27 + -0x4b9c))" ( (pointer_expression "**(code **)(puVar27 + -0x4b9c)" * (pointer_expression "*(code **)(puVar27 + -0x4b9c)" * (cast_expression "(code **)(puVar27 + -0x4b9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x4b9c)" ( (binary_expression "puVar27 + -0x4b9c" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "local_234 = 0;" (assignment_expression "local_234 = 0" identifier = number_literal) ;) (if_statement "if (iVar5 != 0) break;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0009aa88:\n    sqlite3_randomness(8,puVar22);" statement_identifier : (expression_statement "sqlite3_randomness(8,puVar22);" (call_expression "sqlite3_randomness(8,puVar22)" identifier (argument_list "(8,puVar22)" ( number_literal , identifier ))) ;)) (expression_statement "*(char *)puVar26 = '\0';" (assignment_expression "*(char *)puVar26 = '\0'" (pointer_expression "*(char *)puVar26" * (cast_expression "(char *)puVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (expression_statement "local_f4 = local_d4;" (assignment_expression "local_f4 = local_d4" identifier = identifier) ;) (expression_statement "local_f8 = local_d8;" (assignment_expression "local_f8 = local_d8" identifier = identifier) ;) (expression_statement "puVar15 = param_2;" (assignment_expression "puVar15 = param_2" identifier = identifier) ;) (expression_statement "param_3 = piVar30;" (assignment_expression "param_3 = piVar30" identifier = identifier) ;) (expression_statement "param_4 = uVar20;" (assignment_expression "param_4 = uVar20" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sqlite3_snprintf_0015b610)(param_1);" (call_expression "(*(code *)PTR_sqlite3_snprintf_0015b610)(param_1)" (parenthesized_expression "(*(code *)PTR_sqlite3_snprintf_0015b610)" ( (pointer_expression "*(code *)PTR_sqlite3_snprintf_0015b610" * (cast_expression "(code *)PTR_sqlite3_snprintf_0015b610" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (if_statement "if (*(char *)puVar26 != '\0') {\nLAB_0009aae4:\n      local_234 = 1;\n      break;\n    }" if (parenthesized_expression "(*(char *)puVar26 != '\0')" ( (binary_expression "*(char *)puVar26 != '\0'" (pointer_expression "*(char *)puVar26" * (cast_expression "(char *)puVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0009aae4:\n      local_234 = 1;\n      break;\n    }" { (labeled_statement "LAB_0009aae4:\n      local_234 = 1;" statement_identifier : (expression_statement "local_234 = 1;" (assignment_expression "local_234 = 1" identifier = number_literal) ;)) (break_statement "break;" break ;) })) })) (labeled_statement "LAB_0009a9fc:\n  if (local_2c == *(int *)puVar4) {\n    return local_234;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar4) {\n    return local_234;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar4)" ( (binary_expression "local_2c == *(int *)puVar4" identifier == (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return local_234;\n  }" { (return_statement "return local_234;" return identifier ;) }))) (expression_statement "uVar32 = 0x9ab38;" (assignment_expression "uVar32 = 0x9ab38" identifier = number_literal) ;) (expression_statement "puVar27 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar27 = PTR___stack_chk_fail_0015ba10" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" * (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_208 = puVar27 + 0xc8a78;" (assignment_expression "local_208 = puVar27 + 0xc8a78" identifier = (binary_expression "puVar27 + 0xc8a78" identifier + number_literal)) ;) (expression_statement "piVar31 = *(int **)(puVar27 + 0xc0ef4);" (assignment_expression "piVar31 = *(int **)(puVar27 + 0xc0ef4)" identifier = (pointer_expression "*(int **)(puVar27 + 0xc0ef4)" * (cast_expression "(int **)(puVar27 + 0xc0ef4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + 0xc0ef4)" ( (binary_expression "puVar27 + 0xc0ef4" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *piVar31;" (assignment_expression "iVar5 = *piVar31" identifier = (pointer_expression "*piVar31" * identifier)) ;) (expression_statement "local_134 = iVar5;" (assignment_expression "local_134 = iVar5" identifier = identifier) ;) (expression_statement "local_130 = puVar19;" (assignment_expression "local_130 = puVar19" identifier = identifier) ;) (expression_statement "local_12c = uVar20;" (assignment_expression "local_12c = uVar20" identifier = identifier) ;) (expression_statement "local_128 = puVar23;" (assignment_expression "local_128 = puVar23" identifier = identifier) ;) (expression_statement "local_124 = param_2;" (assignment_expression "local_124 = param_2" identifier = identifier) ;) (expression_statement "local_120 = param_1;" (assignment_expression "local_120 = param_1" identifier = identifier) ;) (expression_statement "local_11c = puVar22;" (assignment_expression "local_11c = puVar22" identifier = identifier) ;) (expression_statement "local_118 = puVar26;" (assignment_expression "local_118 = puVar26" identifier = identifier) ;) (expression_statement "local_114 = local_234;" (assignment_expression "local_114 = local_234" identifier = identifier) ;) (expression_statement "local_110 = piVar30;" (assignment_expression "local_110 = piVar30" identifier = identifier) ;) (expression_statement "local_10c = uVar32;" (assignment_expression "local_10c = uVar32" identifier = identifier) ;) (if_statement "if (puVar15 < (undefined4 *)0x15) {\n                    \n                    \n    uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))();\n    return uVar20;\n  }" if (parenthesized_expression "(puVar15 < (undefined4 *)0x15)" ( (binary_expression "puVar15 < (undefined4 *)0x15" identifier < (cast_expression "(undefined4 *)0x15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n                    \n    uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))();\n    return uVar20;\n  }" { (expression_statement "uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))();" (assignment_expression "uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))()" identifier = (call_expression "(*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))()" (parenthesized_expression "(*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))" ( (pointer_expression "*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       )" * (cast_expression "(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       )" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       )" ( (binary_expression "local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)" * (cast_expression "(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)" ( (binary_expression "*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4" (binary_expression "*(int *)(puVar27 + 0xc0ac4) + 0xd74" (pointer_expression "*(int *)(puVar27 + 0xc0ac4)" * (cast_expression "(int *)(puVar27 + 0xc0ac4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 0xc0ac4)" ( (binary_expression "puVar27 + 0xc0ac4" identifier + number_literal) )))) + number_literal) + (binary_expression "(int)puVar15 * 4" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar20;" return identifier ;) })) (if_statement "if (iVar5 == *piVar31) {\n    return 0xc;\n  }" if (parenthesized_expression "(iVar5 == *piVar31)" ( (binary_expression "iVar5 == *piVar31" identifier == (pointer_expression "*piVar31" * identifier)) )) (compound_statement "{\n    return 0xc;\n  }" { (return_statement "return 0xc;" return number_literal ;) })) (expression_statement "pcVar28 = *(code **)(puVar27 + 0xc0ed8);" (assignment_expression "pcVar28 = *(code **)(puVar27 + 0xc0ed8)" identifier = (pointer_expression "*(code **)(puVar27 + 0xc0ed8)" * (cast_expression "(code **)(puVar27 + 0xc0ed8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + 0xc0ed8)" ( (binary_expression "puVar27 + 0xc0ed8" identifier + number_literal) ))))) ;) (expression_statement "uVar32 = 0x9b1ac;" (assignment_expression "uVar32 = 0x9b1ac" identifier = number_literal) ;) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar21 = param_4 & 8;" (assignment_expression "uVar21 = param_4 & 8" identifier = (binary_expression "param_4 & 8" identifier & number_literal)) ;) (expression_statement "uVar24 = param_4 & 0xffffff00;" (assignment_expression "uVar24 = param_4 & 0xffffff00" identifier = (binary_expression "param_4 & 0xffffff00" identifier & number_literal)) ;) (expression_statement "piVar30 = *(int **)(pcVar28 + 0xc0880);" (assignment_expression "piVar30 = *(int **)(pcVar28 + 0xc0880)" identifier = (pointer_expression "*(int **)(pcVar28 + 0xc0880)" * (cast_expression "(int **)(pcVar28 + 0xc0880)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0880)" ( (binary_expression "pcVar28 + 0xc0880" identifier + number_literal) ))))) ;) (expression_statement "local_254 = *piVar30;" (assignment_expression "local_254 = *piVar30" identifier = (pointer_expression "*piVar30" * identifier)) ;) (expression_statement "local_72c = param_4 & 1;" (assignment_expression "local_72c = param_4 & 1" identifier = (binary_expression "param_4 & 1" identifier & number_literal)) ;) (expression_statement "uVar6 = param_4 & 2;" (assignment_expression "uVar6 = param_4 & 2" identifier = (binary_expression "param_4 & 2" identifier & number_literal)) ;) (expression_statement "puVar18 = puVar15;" (assignment_expression "puVar18 = puVar15" identifier = identifier) ;) (expression_statement "local_250 = puVar19;" (assignment_expression "local_250 = puVar19" identifier = identifier) ;) (expression_statement "local_24c = uVar20;" (assignment_expression "local_24c = uVar20" identifier = identifier) ;) (expression_statement "local_248 = puVar23;" (assignment_expression "local_248 = puVar23" identifier = identifier) ;) (expression_statement "local_244 = param_2;" (assignment_expression "local_244 = param_2" identifier = identifier) ;) (expression_statement "local_240 = param_1;" (assignment_expression "local_240 = param_1" identifier = identifier) ;) (expression_statement "local_23c = puVar22;" (assignment_expression "local_23c = puVar22" identifier = identifier) ;) (expression_statement "local_238 = puVar26;" (assignment_expression "local_238 = puVar26" identifier = identifier) ;) (expression_statement "local_230 = piVar31;" (assignment_expression "local_230 = piVar31" identifier = identifier) ;) (expression_statement "local_22c = uVar32;" (assignment_expression "local_22c = uVar32" identifier = identifier) ;) (if_statement "if ((param_4 & 4) == 0) {\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    bVar2 = false;\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (iVar7 != *(int *)(iVar25 + -0x4354)) goto LAB_0009b46c;\nLAB_0009b270:\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    if (uVar24 == 0x100) {\n      iVar7 = *(int *)(pcVar28 + 0xc042c);\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));\n      if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }\n      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\nLAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);\n      if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }\n      uVar20 = 7;\n    }\n    else {\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }\n  }\n  else {\n    if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (*(int *)(iVar25 + -0x4354) != iVar7) {\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    bVar2 = true;\n    if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;\nLAB_0009b298:\n    iVar7 = -1;\nLAB_0009b2a0:\n    uVar20 = uVar6;\n    if ((param_4 & 4) != 0) {\n      uVar20 = uVar6 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    (*pcVar29)(param_3[7]);\n  }" if (parenthesized_expression "((param_4 & 4) == 0)" ( (binary_expression "(param_4 & 4) == 0" (parenthesized_expression "(param_4 & 4)" ( (binary_expression "param_4 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    bVar2 = false;\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (iVar7 != *(int *)(iVar25 + -0x4354)) goto LAB_0009b46c;\nLAB_0009b270:\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    if (uVar24 == 0x100) {\n      iVar7 = *(int *)(pcVar28 + 0xc042c);\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));\n      if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }\n      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\nLAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);\n      if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }\n      uVar20 = 7;\n    }\n    else {\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }\n  }" { (expression_statement "iVar25 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar25 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "iVar7 = (**(code **)(pcVar28 + 0xc0840))();" (assignment_expression "iVar7 = (**(code **)(pcVar28 + 0xc0840))()" identifier = (call_expression "(**(code **)(pcVar28 + 0xc0840))()" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0840))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0840)" * (pointer_expression "*(code **)(pcVar28 + 0xc0840)" * (cast_expression "(code **)(pcVar28 + 0xc0840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0840)" ( (binary_expression "pcVar28 + 0xc0840" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar7 != *(int *)(iVar25 + -0x4354)) goto LAB_0009b46c;" if (parenthesized_expression "(iVar7 != *(int *)(iVar25 + -0x4354))" ( (binary_expression "iVar7 != *(int *)(iVar25 + -0x4354)" identifier != (pointer_expression "*(int *)(iVar25 + -0x4354)" * (cast_expression "(int *)(iVar25 + -0x4354)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x4354)" ( (binary_expression "iVar25 + -0x4354" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0009b46c;" goto statement_identifier ;)) (labeled_statement "LAB_0009b270:\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);" statement_identifier : (expression_statement "(**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);" (call_expression "(**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0808))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0808)" * (pointer_expression "*(code **)(pcVar28 + 0xc0808)" * (cast_expression "(code **)(pcVar28 + 0xc0808)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0808)" ( (binary_expression "pcVar28 + 0xc0808" identifier + number_literal) ))))) )) (argument_list "(param_3,0,0x58)" ( identifier , number_literal , number_literal ))) ;)) (if_statement "if (uVar24 == 0x100) {\n      iVar7 = *(int *)(pcVar28 + 0xc042c);\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));\n      if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }\n      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\nLAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);\n      if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }\n      uVar20 = 7;\n    }\n    else {\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }" if (parenthesized_expression "(uVar24 == 0x100)" ( (binary_expression "uVar24 == 0x100" identifier == number_literal) )) (compound_statement "{\n      iVar7 = *(int *)(pcVar28 + 0xc042c);\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));\n      if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }\n      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\nLAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);\n      if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }\n      uVar20 = 7;\n    }" { (expression_statement "iVar7 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar7 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar25 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0504))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0504)" * (pointer_expression "*(code **)(pcVar28 + 0xc0504)" * (cast_expression "(code **)(pcVar28 + 0xc0504)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0504)" ( (binary_expression "pcVar28 + 0xc0504" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar7 + -0x4358))" ( (pointer_expression "*(undefined4 *)(iVar7 + -0x4358)" * (cast_expression "(undefined4 *)(iVar7 + -0x4358)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x4358)" ( (binary_expression "iVar7 + -0x4358" identifier + number_literal) )))) ))) ;) (if_statement "if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }" if (parenthesized_expression "((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0))" ( (binary_expression "(*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)" (parenthesized_expression "(*(int *)(iVar25 + -0x435c) != 0)" ( (binary_expression "*(int *)(iVar25 + -0x435c) != 0" (pointer_expression "*(int *)(iVar25 + -0x435c)" * (cast_expression "(int *)(iVar25 + -0x435c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x435c)" ( (binary_expression "iVar25 + -0x435c" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)" ( (comma_expression "iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0" (assignment_expression "iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700)" identifier = (call_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700)" (parenthesized_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))" ( (pointer_expression "**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" * (pointer_expression "*(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" * (cast_expression "(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" ( (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x4b84" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar15,local_700)" ( identifier , identifier )))) , (binary_expression "iVar8 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }" { (for_statement "for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }" for ( (assignment_expression "piVar31 = *(int **)(iVar25 + -0x435c)" identifier = (pointer_expression "*(int **)(iVar25 + -0x435c)" * (cast_expression "(int **)(iVar25 + -0x435c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x435c)" ( (binary_expression "iVar25 + -0x435c" identifier + number_literal) ))))) ; (binary_expression "piVar31 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar31 = (int *)piVar31[0xb]" identifier = (cast_expression "(int *)piVar31[0xb]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar31[0xb]" identifier [ number_literal ]))) ) (compound_statement "{\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }" { (if_statement "if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }" if (parenthesized_expression "((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec))" ( (binary_expression "(((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)" (parenthesized_expression "(((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0))" ( (binary_expression "((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)" (parenthesized_expression "((*piVar31 == 0) && (piVar31[1] == local_700[0]))" ( (binary_expression "(*piVar31 == 0) && (piVar31[1] == local_700[0])" (parenthesized_expression "(*piVar31 == 0)" ( (binary_expression "*piVar31 == 0" (pointer_expression "*piVar31" * identifier) == number_literal) )) && (parenthesized_expression "(piVar31[1] == local_700[0])" ( (binary_expression "piVar31[1] == local_700[0]" (subscript_expression "piVar31[1]" identifier [ number_literal ]) == (subscript_expression "local_700[0]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "(piVar31[2] == local_6f0)" ( (binary_expression "piVar31[2] == local_6f0" (subscript_expression "piVar31[2]" identifier [ number_literal ]) == identifier) ))) )) && (parenthesized_expression "(piVar31[3] == local_6ec)" ( (binary_expression "piVar31[3] == local_6ec" (subscript_expression "piVar31[3]" identifier [ number_literal ]) == identifier) ))) )) (compound_statement "{\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }" { (expression_statement "(**(code **)(pcVar28 + 0xc0504))(piVar31[4]);" (call_expression "(**(code **)(pcVar28 + 0xc0504))(piVar31[4])" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0504))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0504)" * (pointer_expression "*(code **)(pcVar28 + 0xc0504)" * (cast_expression "(code **)(pcVar28 + 0xc0504)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0504)" ( (binary_expression "pcVar28 + 0xc0504" identifier + number_literal) ))))) )) (argument_list "(piVar31[4])" ( (subscript_expression "piVar31[4]" identifier [ number_literal ]) ))) ;) (expression_statement "piVar13 = (int *)piVar31[8];" (assignment_expression "piVar13 = (int *)piVar31[8]" identifier = (cast_expression "(int *)piVar31[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar31[8]" identifier [ number_literal ]))) ;) (if_statement "if (piVar13 == (int *)0x0) goto LAB_0009b728;" if (parenthesized_expression "(piVar13 == (int *)0x0)" ( (binary_expression "piVar13 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0009b728;" goto statement_identifier ;)) (expression_statement "uVar20 = piVar13[1];" (assignment_expression "uVar20 = piVar13[1]" identifier = (subscript_expression "piVar13[1]" identifier [ number_literal ])) ;) (expression_statement "piVar17 = piVar31 + 8;" (assignment_expression "piVar17 = piVar31 + 8" identifier = (binary_expression "piVar31 + 8" identifier + number_literal)) ;) (goto_statement "goto joined_r0x0009b6fc;" goto statement_identifier ;) })) })) })) (expression_statement "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0508))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0508)" * (pointer_expression "*(code **)(pcVar28 + 0xc0508)" * (cast_expression "(code **)(pcVar28 + 0xc0508)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0508)" ( (binary_expression "pcVar28 + 0xc0508" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar7 + -0x4358))" ( (pointer_expression "*(undefined4 *)(iVar7 + -0x4358)" * (cast_expression "(undefined4 *)(iVar7 + -0x4358)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x4358)" ( (binary_expression "iVar7 + -0x4358" identifier + number_literal) )))) ))) ;) (labeled_statement "LAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);" statement_identifier : (expression_statement "iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);" (assignment_expression "iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc)" identifier = (call_expression "(**(code **)(pcVar28 + 0xc05b4))(0,0xc)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc05b4))" ( (pointer_expression "**(code **)(pcVar28 + 0xc05b4)" * (pointer_expression "*(code **)(pcVar28 + 0xc05b4)" * (cast_expression "(code **)(pcVar28 + 0xc05b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc05b4)" ( (binary_expression "pcVar28 + 0xc05b4" identifier + number_literal) ))))) )) (argument_list "(0,0xc)" ( number_literal , number_literal )))) ;)) (if_statement "if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }" { (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) (expression_statement "param_3[7] = iVar25;" (assignment_expression "param_3[7] = iVar25" (subscript_expression "param_3[7]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_0009b2a0;" goto statement_identifier ;) })) (expression_statement "uVar20 = 7;" (assignment_expression "uVar20 = 7" identifier = number_literal) ;) }) (else_clause "else {\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }" else (compound_statement "{\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }" { (if_statement "if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;" if (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" ( (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0009b298;" goto statement_identifier ;)) (labeled_statement "LAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);" statement_identifier : (expression_statement "uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);" (assignment_expression "uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458)" identifier = (call_expression "FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458)" identifier (argument_list "(*(undefined4 *)(iVar5 + 8),auStack_458)" ( (pointer_expression "*(undefined4 *)(iVar5 + 8)" * (cast_expression "(undefined4 *)(iVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) , identifier )))) ;)) (if_statement "if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }" { (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) (expression_statement "puVar18 = auStack_458;" (assignment_expression "puVar18 = auStack_458" identifier = identifier) ;) (goto_statement "goto LAB_0009b2a0;" goto statement_identifier ;) })) }))) }) (else_clause "else {\n    if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (*(int *)(iVar25 + -0x4354) != iVar7) {\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    bVar2 = true;\n    if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;\nLAB_0009b298:\n    iVar7 = -1;\nLAB_0009b2a0:\n    uVar20 = uVar6;\n    if ((param_4 & 4) != 0) {\n      uVar20 = uVar6 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    (*pcVar29)(param_3[7]);\n  }" else (compound_statement "{\n    if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (*(int *)(iVar25 + -0x4354) != iVar7) {\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    bVar2 = true;\n    if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;\nLAB_0009b298:\n    iVar7 = -1;\nLAB_0009b2a0:\n    uVar20 = uVar6;\n    if ((param_4 & 4) != 0) {\n      uVar20 = uVar6 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    (*pcVar29)(param_3[7]);\n  }" { (if_statement "if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }" if (parenthesized_expression "((uVar24 != 0x4000) && (uVar24 != 0x800))" ( (binary_expression "(uVar24 != 0x4000) && (uVar24 != 0x800)" (parenthesized_expression "(uVar24 != 0x4000)" ( (binary_expression "uVar24 != 0x4000" identifier != number_literal) )) && (parenthesized_expression "(uVar24 != 0x800)" ( (binary_expression "uVar24 != 0x800" identifier != number_literal) ))) )) (compound_statement "{\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }" { (expression_statement "iVar25 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar25 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (expression_statement "bVar2 = uVar24 == 0x80000;" (assignment_expression "bVar2 = uVar24 == 0x80000" identifier = (binary_expression "uVar24 == 0x80000" identifier == number_literal)) ;) (expression_statement "iVar7 = (**(code **)(pcVar28 + 0xc0840))();" (assignment_expression "iVar7 = (**(code **)(pcVar28 + 0xc0840))()" identifier = (call_expression "(**(code **)(pcVar28 + 0xc0840))()" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0840))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0840)" * (pointer_expression "*(code **)(pcVar28 + 0xc0840)" * (cast_expression "(code **)(pcVar28 + 0xc0840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0840)" ( (binary_expression "pcVar28 + 0xc0840" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;" if (parenthesized_expression "(iVar7 == *(int *)(iVar25 + -0x4354))" ( (binary_expression "iVar7 == *(int *)(iVar25 + -0x4354)" identifier == (pointer_expression "*(int *)(iVar25 + -0x4354)" * (cast_expression "(int *)(iVar25 + -0x4354)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x4354)" ( (binary_expression "iVar25 + -0x4354" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0009b270;" goto statement_identifier ;)) (labeled_statement "LAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();" statement_identifier : (expression_statement "uVar32 = (**(code **)(pcVar28 + 0xc0840))();" (assignment_expression "uVar32 = (**(code **)(pcVar28 + 0xc0840))()" identifier = (call_expression "(**(code **)(pcVar28 + 0xc0840))()" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0840))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0840)" * (pointer_expression "*(code **)(pcVar28 + 0xc0840)" * (cast_expression "(code **)(pcVar28 + 0xc0840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0840)" ( (binary_expression "pcVar28 + 0xc0840" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;)) (expression_statement "*(undefined4 *)(iVar25 + -0x4354) = uVar32;" (assignment_expression "*(undefined4 *)(iVar25 + -0x4354) = uVar32" (pointer_expression "*(undefined4 *)(iVar25 + -0x4354)" * (cast_expression "(undefined4 *)(iVar25 + -0x4354)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x4354)" ( (binary_expression "iVar25 + -0x4354" identifier + number_literal) )))) = identifier) ;) (expression_statement "sqlite3_randomness(0,0);" (call_expression "sqlite3_randomness(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal ))) ;) (goto_statement "goto LAB_0009b270;" goto statement_identifier ;) })) (expression_statement "iVar25 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar25 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = (**(code **)(pcVar28 + 0xc0840))();" (assignment_expression "iVar7 = (**(code **)(pcVar28 + 0xc0840))()" identifier = (call_expression "(**(code **)(pcVar28 + 0xc0840))()" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0840))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0840)" * (pointer_expression "*(code **)(pcVar28 + 0xc0840)" * (cast_expression "(code **)(pcVar28 + 0xc0840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0840)" ( (binary_expression "pcVar28 + 0xc0840" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (*(int *)(iVar25 + -0x4354) != iVar7) {\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }" if (parenthesized_expression "(*(int *)(iVar25 + -0x4354) != iVar7)" ( (binary_expression "*(int *)(iVar25 + -0x4354) != iVar7" (pointer_expression "*(int *)(iVar25 + -0x4354)" * (cast_expression "(int *)(iVar25 + -0x4354)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x4354)" ( (binary_expression "iVar25 + -0x4354" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (goto_statement "goto LAB_0009b46c;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);" (call_expression "(**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0808))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0808)" * (pointer_expression "*(code **)(pcVar28 + 0xc0808)" * (cast_expression "(code **)(pcVar28 + 0xc0808)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0808)" ( (binary_expression "pcVar28 + 0xc0808" identifier + number_literal) ))))) )) (argument_list "(param_3,0,0x58)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (if_statement "if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;" if (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" ( (binary_expression "puVar15 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0009b618;" goto statement_identifier ;)) (labeled_statement "LAB_0009b298:\n    iVar7 = -1;" statement_identifier : (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;)) (labeled_statement "LAB_0009b2a0:\n    uVar20 = uVar6;" statement_identifier : (expression_statement "uVar20 = uVar6;" (assignment_expression "uVar20 = uVar6" identifier = identifier) ;)) (if_statement "if ((param_4 & 4) != 0) {\n      uVar20 = uVar6 | 0x100;\n    }" if (parenthesized_expression "((param_4 & 4) != 0)" ( (binary_expression "(param_4 & 4) != 0" (parenthesized_expression "(param_4 & 4)" ( (binary_expression "param_4 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar20 = uVar6 | 0x100;\n    }" { (expression_statement "uVar20 = uVar6 | 0x100;" (assignment_expression "uVar20 = uVar6 | 0x100" identifier = (binary_expression "uVar6 | 0x100" identifier | number_literal)) ;) })) (if_statement "if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }" if (parenthesized_expression "((param_4 & 0x10) == 0)" ( (binary_expression "(param_4 & 0x10) == 0" (parenthesized_expression "(param_4 & 0x10)" ( (binary_expression "param_4 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }" { (if_statement "if (-1 < iVar7) goto LAB_0009b2c4;" if (parenthesized_expression "(-1 < iVar7)" ( (binary_expression "-1 < iVar7" number_literal < identifier) )) (goto_statement "goto LAB_0009b2c4;" goto statement_identifier ;)) (labeled_statement "LAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;" statement_identifier : (expression_statement "uVar14 = param_4 & 0x80800;" (assignment_expression "uVar14 = param_4 & 0x80800" identifier = (binary_expression "param_4 & 0x80800" identifier & number_literal)) ;)) (if_statement "if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }" { (if_statement "if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }" if (parenthesized_expression "(puVar18 == (undefined4 *)0x0)" ( (binary_expression "puVar18 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }" { (expression_statement "cVar1 = *(char *)(in_zero + -1);" (assignment_expression "cVar1 = *(char *)(in_zero + -1)" identifier = (pointer_expression "*(char *)(in_zero + -1)" * (cast_expression "(char *)(in_zero + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_zero + -1)" ( (binary_expression "in_zero + -1" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) (if_statement "if (cVar1 != '-') goto joined_r0x0009b50c;" if (parenthesized_expression "(cVar1 != '-')" ( (binary_expression "cVar1 != '-'" identifier != (char_literal "'-'" ' character ')) )) (goto_statement "goto joined_r0x0009b50c;" goto statement_identifier ;)) (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0828);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0828)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xc0828)" * (cast_expression "(code **)(pcVar28 + 0xc0828)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0828)" ( (binary_expression "pcVar28 + 0xc0828" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }" else (compound_statement "{\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }" { (expression_statement "uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);" (assignment_expression "uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18)" identifier = (call_expression "(**(code **)(pcVar28 + 0xc0818))(puVar18)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0818))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0818)" * (pointer_expression "*(code **)(pcVar28 + 0xc0818)" * (cast_expression "(code **)(pcVar28 + 0xc0818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0818)" ( (binary_expression "pcVar28 + 0xc0818" identifier + number_literal) ))))) )) (argument_list "(puVar18)" ( identifier )))) ;) (expression_statement "iVar7 = (uVar9 & 0x3fffffff) - 1;" (assignment_expression "iVar7 = (uVar9 & 0x3fffffff) - 1" identifier = (binary_expression "(uVar9 & 0x3fffffff) - 1" (parenthesized_expression "(uVar9 & 0x3fffffff)" ( (binary_expression "uVar9 & 0x3fffffff" identifier & number_literal) )) - number_literal)) ;) (expression_statement "cVar1 = *(char *)((int)puVar18 + iVar7);" (assignment_expression "cVar1 = *(char *)((int)puVar18 + iVar7)" identifier = (pointer_expression "*(char *)((int)puVar18 + iVar7)" * (cast_expression "(char *)((int)puVar18 + iVar7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + iVar7)" ( (binary_expression "(int)puVar18 + iVar7" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (while_statement "while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }" while (parenthesized_expression "(cVar1 != '-')" ( (binary_expression "cVar1 != '-'" identifier != (char_literal "'-'" ' character ')) )) (compound_statement "{\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }" { (if_statement "if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }" { (labeled_statement "LAB_0009b934:\n              uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) (expression_statement "local_734 = 0;" (assignment_expression "local_734 = 0" identifier = number_literal) ;) (expression_statement "local_724 = 0;" (assignment_expression "local_724 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0009b93c;" goto statement_identifier ;) })) (labeled_statement "joined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;" statement_identifier : (if_statement "if (cVar1 == '.') goto LAB_0009b934;" if (parenthesized_expression "(cVar1 == '.')" ( (binary_expression "cVar1 == '.'" identifier == (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_0009b934;" goto statement_identifier ;))) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "cVar1 = *(char *)((int)puVar18 + iVar7);" (assignment_expression "cVar1 = *(char *)((int)puVar18 + iVar7)" identifier = (pointer_expression "*(char *)((int)puVar18 + iVar7)" * (cast_expression "(char *)((int)puVar18 + iVar7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + iVar7)" ( (binary_expression "(int)puVar18 + iVar7" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) })) (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0828);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0828)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xc0828)" * (cast_expression "(code **)(pcVar28 + 0xc0828)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0828)" ( (binary_expression "pcVar28 + 0xc0828" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);" (assignment_expression "uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201)" identifier = (call_expression "(*pcVar29)(auStack_65c,puVar18,iVar7,0x201)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(auStack_65c,puVar18,iVar7,0x201)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar25 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar25 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (expression_statement "auStack_65c[iVar7] = 0;" (assignment_expression "auStack_65c[iVar7] = 0" (subscript_expression "auStack_65c[iVar7]" identifier [ identifier ]) = number_literal) ;) (expression_statement "iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);" (assignment_expression "iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700)" identifier = (call_expression "(**(code **)(iVar25 + -0x4b84))(uVar32,local_700)" (parenthesized_expression "(**(code **)(iVar25 + -0x4b84))" ( (pointer_expression "**(code **)(iVar25 + -0x4b84)" * (pointer_expression "*(code **)(iVar25 + -0x4b84)" * (cast_expression "(code **)(iVar25 + -0x4b84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x4b84)" ( (binary_expression "iVar25 + -0x4b84" identifier + number_literal) ))))) )) (argument_list "(uVar32,local_700)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }" { (labeled_statement "LAB_0009bc08:\n          uVar20 = 0x70a;" statement_identifier : (expression_statement "uVar20 = 0x70a;" (assignment_expression "uVar20 = 0x70a" identifier = number_literal) ;)) (goto_statement "goto LAB_0009b410;" goto statement_identifier ;) })) (expression_statement "uVar9 = local_6e8 & 0x1ff;" (assignment_expression "uVar9 = local_6e8 & 0x1ff" identifier = (binary_expression "local_6e8 & 0x1ff" identifier & number_literal)) ;) (expression_statement "local_724 = local_6e0;" (assignment_expression "local_724 = local_6e0" identifier = identifier) ;) (expression_statement "local_734 = local_6dc;" (assignment_expression "local_734 = local_6dc" identifier = identifier) ;) (labeled_statement "LAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);" statement_identifier : (expression_statement "local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);" (assignment_expression "local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc)" identifier = (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x3efc)" ( (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x3efc" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" * (cast_expression "(int *)(pcVar28 + 0xc0594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0594)" ( (binary_expression "pcVar28 + 0xc0594" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);" (assignment_expression "iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9)" identifier = (call_expression "(*local_714)(puVar18,uVar20 | 0x2000,uVar9)" (parenthesized_expression "(*local_714)" ( (pointer_expression "*local_714" * identifier) )) (argument_list "(puVar18,uVar20 | 0x2000,uVar9)" ( identifier , (binary_expression "uVar20 | 0x2000" identifier | number_literal) , identifier )))) ;) (if_statement "if (iVar7 < 0) goto LAB_0009b9ec;" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0009b9ec;" goto statement_identifier ;)) (labeled_statement "LAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);" statement_identifier : (expression_statement "(*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);" (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))" ( (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8)" * (cast_expression "(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc052c) + 0xfd8)" ( (binary_expression "*(int *)(pcVar28 + 0xc052c) + 0xfd8" (pointer_expression "*(int *)(pcVar28 + 0xc052c)" * (cast_expression "(int *)(pcVar28 + 0xc052c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc052c)" ( (binary_expression "pcVar28 + 0xc052c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(iVar7,local_724,local_734)" ( identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_0009b2c4;" goto statement_identifier ;) })) (expression_statement "uVar9 = 0x180;" (assignment_expression "uVar9 = 0x180" identifier = number_literal) ;) (if_statement "if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }" { (if_statement "if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }" if (parenthesized_expression "(((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0))" ( (binary_expression "((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)" (parenthesized_expression "((param_4 & 0x40) == 0)" ( (binary_expression "(param_4 & 0x40) == 0" (parenthesized_expression "(param_4 & 0x40)" ( (binary_expression "param_4 & 0x40" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)" ( (comma_expression "iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390)" identifier = (call_expression "(**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc057c))" ( (pointer_expression "**(code **)(pcVar28 + 0xc057c)" * (pointer_expression "*(code **)(pcVar28 + 0xc057c)" * (cast_expression "(code **)(pcVar28 + 0xc057c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc057c)" ( (binary_expression "pcVar28 + 0xc057c" identifier + number_literal) ))))) )) (argument_list "(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390)" ( identifier , (binary_expression "*(int *)(pcVar28 + 0xc0450) + -0x7390" (pointer_expression "*(int *)(pcVar28 + 0xc0450)" * (cast_expression "(int *)(pcVar28 + 0xc0450)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0450)" ( (binary_expression "pcVar28 + 0xc0450" identifier + number_literal) )))) + number_literal) )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }" { (expression_statement "local_734 = 0;" (assignment_expression "local_734 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "local_724 = 0;" (assignment_expression "local_724 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }" else (compound_statement "{\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }" { (expression_statement "iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);" (assignment_expression "iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700)" identifier = (call_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700)" (parenthesized_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))" ( (pointer_expression "**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" * (pointer_expression "*(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" * (cast_expression "(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" ( (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x4b84" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar7,local_700)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) goto LAB_0009bc08;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0009bc08;" goto statement_identifier ;)) (expression_statement "local_724 = local_6e0;" (assignment_expression "local_724 = local_6e0" identifier = identifier) ;) (expression_statement "uVar9 = local_6e8 & 0x1ff;" (assignment_expression "uVar9 = local_6e8 & 0x1ff" identifier = (binary_expression "local_6e8 & 0x1ff" identifier & number_literal)) ;) (expression_statement "local_734 = local_6dc;" (assignment_expression "local_734 = local_6dc" identifier = identifier) ;) }))) }) (else_clause "else {\n        local_734 = 0;\n        local_724 = 0;\n      }" else (compound_statement "{\n        local_734 = 0;\n        local_724 = 0;\n      }" { (expression_statement "local_734 = 0;" (assignment_expression "local_734 = 0" identifier = number_literal) ;) (expression_statement "local_724 = 0;" (assignment_expression "local_724 = 0" identifier = number_literal) ;) }))) (expression_statement "local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);" (assignment_expression "local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc)" identifier = (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x3efc)" ( (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x3efc" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" * (cast_expression "(int *)(pcVar28 + 0xc0594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0594)" ( (binary_expression "pcVar28 + 0xc0594" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);" (assignment_expression "iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9)" identifier = (call_expression "(*local_714)(puVar18,uVar20 | 0x2000,uVar9)" (parenthesized_expression "(*local_714)" ( (pointer_expression "*local_714" * identifier) )) (argument_list "(puVar18,uVar20 | 0x2000,uVar9)" ( identifier , (binary_expression "uVar20 | 0x2000" identifier | number_literal) , identifier )))) ;) (if_statement "if (-1 < iVar7) goto LAB_0009b2c4;" if (parenthesized_expression "(-1 < iVar7)" ( (binary_expression "-1 < iVar7" number_literal < identifier) )) (goto_statement "goto LAB_0009b2c4;" goto statement_identifier ;)) (labeled_statement "LAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();" statement_identifier : (expression_statement "piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();" (assignment_expression "piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))()" identifier = (cast_expression "(int *)(**(code **)(pcVar28 + 0xc0800))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar28 + 0xc0800))()" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0800))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0800)" * (pointer_expression "*(code **)(pcVar28 + 0xc0800)" * (cast_expression "(code **)(pcVar28 + 0xc0800)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0800)" ( (binary_expression "pcVar28 + 0xc0800" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;)) (expression_statement "iVar7 = *piVar31;" (assignment_expression "iVar7 = *piVar31" identifier = (pointer_expression "*piVar31" * identifier)) ;) (if_statement "if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }" if (parenthesized_expression "((bVar2) && (iVar7 == 0xd))" ( (binary_expression "(bVar2) && (iVar7 == 0xd)" (parenthesized_expression "(bVar2)" ( identifier )) && (parenthesized_expression "(iVar7 == 0xd)" ( (binary_expression "iVar7 == 0xd" identifier == number_literal) ))) )) (compound_statement "{\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }" { (expression_statement "iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);" (assignment_expression "iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0)" identifier = (call_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0)" (parenthesized_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))" ( (pointer_expression "**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c)" * (pointer_expression "*(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c)" * (cast_expression "(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc042c) + -0x4b9c)" ( (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x4b9c" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar18,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }" { (expression_statement "iVar7 = *piVar31;" (assignment_expression "iVar7 = *piVar31" identifier = (pointer_expression "*piVar31" * identifier)) ;) (goto_statement "goto LAB_0009ba2c;" goto statement_identifier ;) })) (expression_statement "uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);" (assignment_expression "uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634)" identifier = (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))" ( (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628)" * (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x7628)" ( (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x7628" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" * (cast_expression "(int *)(pcVar28 + 0xc0594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0594)" ( (binary_expression "pcVar28 + 0xc0594" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(0x9634)" ( number_literal )))) ;) (expression_statement "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);" (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))" ( (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c)" * (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x3d4c)" ( (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x3d4c" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" * (cast_expression "(int *)(pcVar28 + 0xc0594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0594)" ( (binary_expression "pcVar28 + 0xc0594" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634)" ( identifier , (binary_expression "*(int *)(pcVar28 + 0xc043c) + 0x7284" (pointer_expression "*(int *)(pcVar28 + 0xc043c)" * (cast_expression "(int *)(pcVar28 + 0xc043c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc043c)" ( (binary_expression "pcVar28 + 0xc043c" identifier + number_literal) )))) + number_literal) , identifier , number_literal ))) ;) (expression_statement "uVar20 = 0x608;" (assignment_expression "uVar20 = 0x608" identifier = number_literal) ;) (goto_statement "goto LAB_0009b84c;" goto statement_identifier ;) })) (labeled_statement "LAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }" statement_identifier : (if_statement "if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }" if (parenthesized_expression "((iVar7 != 0x15) && (uVar6 != 0))" ( (binary_expression "(iVar7 != 0x15) && (uVar6 != 0)" (parenthesized_expression "(iVar7 != 0x15)" ( (binary_expression "iVar7 != 0x15" identifier != number_literal) )) && (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) ))) )) (compound_statement "{\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }" { (expression_statement "param_4 = param_4 & 0xfffffff9 | 1;" (assignment_expression "param_4 = param_4 & 0xfffffff9 | 1" identifier = (binary_expression "param_4 & 0xfffffff9 | 1" (binary_expression "param_4 & 0xfffffff9" identifier & number_literal) | number_literal)) ;) (expression_statement "iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);" (assignment_expression "iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9)" identifier = (call_expression "(*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9)" (parenthesized_expression "(*local_714)" ( (pointer_expression "*local_714" * identifier) )) (argument_list "(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9)" ( identifier , (binary_expression "uVar20 & 0xfffffefd | 0x2000" (binary_expression "uVar20 & 0xfffffefd" identifier & number_literal) | number_literal) , identifier )))) ;) (if_statement "if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }" if (parenthesized_expression "(-1 < iVar7)" ( (binary_expression "-1 < iVar7" number_literal < identifier) )) (compound_statement "{\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }" { (expression_statement "local_72c = 1;" (assignment_expression "local_72c = 1" identifier = number_literal) ;) (if_statement "if (uVar14 == 0) goto LAB_0009b2c4;" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0009b2c4;" goto statement_identifier ;)) (goto_statement "goto LAB_0009b97c;" goto statement_identifier ;) })) }))) (expression_statement "uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);" (assignment_expression "uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634)" identifier = (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))" ( (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628)" * (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x7628)" ( (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x7628" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" * (cast_expression "(int *)(pcVar28 + 0xc0594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0594)" ( (binary_expression "pcVar28 + 0xc0594" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(0x9634)" ( number_literal )))) ;) (expression_statement "uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);" (assignment_expression "uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634)" identifier = (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))" ( (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c)" * (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x3d4c)" ( (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x3d4c" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" * (cast_expression "(int *)(pcVar28 + 0xc0594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0594)" ( (binary_expression "pcVar28 + 0xc0594" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634)" ( identifier , (binary_expression "*(int *)(pcVar28 + 0xc043c) + 0x7284" (pointer_expression "*(int *)(pcVar28 + 0xc043c)" * (cast_expression "(int *)(pcVar28 + 0xc043c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc043c)" ( (binary_expression "pcVar28 + 0xc043c" identifier + number_literal) )))) + number_literal) , identifier , number_literal )))) ;) (if_statement "if (uVar20 == 0) goto LAB_0009b410;" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0009b410;" goto statement_identifier ;)) (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0474);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0474)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xc0474)" * (cast_expression "(code **)(pcVar28 + 0xc0474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0474)" ( (binary_expression "pcVar28 + 0xc0474" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }" else (compound_statement "{\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }" { (expression_statement "uVar20 = uVar20 | 0x20400;" (assignment_expression "uVar20 = uVar20 | 0x20400" identifier = (binary_expression "uVar20 | 0x20400" identifier | number_literal)) ;) (if_statement "if (iVar7 < 0) goto LAB_0009b4a8;" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0009b4a8;" goto statement_identifier ;)) (labeled_statement "LAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }" statement_identifier : (if_statement "if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }" if (parenthesized_expression "(local_218 != (uint *)0x0)" ( (binary_expression "local_218 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *local_218 = param_4;\n      }" { (expression_statement "*local_218 = param_4;" (assignment_expression "*local_218 = param_4" (pointer_expression "*local_218" * identifier) = identifier) ;) }))) (if_statement "if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }" if (parenthesized_expression "((int *)param_3[7] != (int *)0x0)" ( (binary_expression "(int *)param_3[7] != (int *)0x0" (cast_expression "(int *)param_3[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[7]" identifier [ number_literal ])) != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }" { (expression_statement "*(int *)param_3[7] = iVar7;" (assignment_expression "*(int *)param_3[7] = iVar7" (pointer_expression "*(int *)param_3[7]" * (cast_expression "(int *)param_3[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[7]" identifier [ number_literal ]))) = identifier) ;) (expression_statement "*(uint *)(param_3[7] + 4) = param_4;" (assignment_expression "*(uint *)(param_3[7] + 4) = param_4" (pointer_expression "*(uint *)(param_3[7] + 4)" * (cast_expression "(uint *)(param_3[7] + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3[7] + 4)" ( (binary_expression "param_3[7] + 4" (subscript_expression "param_3[7]" identifier [ number_literal ]) + number_literal) )))) = identifier) ;) })) (if_statement "if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }" if (parenthesized_expression "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }" { (expression_statement "uVar21 = 0x20;" (assignment_expression "uVar21 = 0x20" identifier = number_literal) ;) (expression_statement "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);" (call_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18)" (parenthesized_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))" ( (pointer_expression "**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4)" * (pointer_expression "*(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4)" * (cast_expression "(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc042c) + -0x4af4)" ( (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x4af4" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar18)" ( identifier ))) ;) })) (if_statement "if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }" if (parenthesized_expression "(local_72c != 0)" ( (binary_expression "local_72c != 0" identifier != number_literal) )) (compound_statement "{\n        uVar21 = uVar21 | 2;\n      }" { (expression_statement "uVar21 = uVar21 | 2;" (assignment_expression "uVar21 = uVar21 | 2" identifier = (binary_expression "uVar21 | 2" identifier | number_literal)) ;) })) (if_statement "if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }" if (parenthesized_expression "(uVar24 != 0x100)" ( (binary_expression "uVar24 != 0x100" identifier != number_literal) )) (compound_statement "{\n        uVar21 = uVar21 | 0x80;\n      }" { (expression_statement "uVar21 = uVar21 | 0x80;" (assignment_expression "uVar21 = uVar21 | 0x80" identifier = (binary_expression "uVar21 | 0x80" identifier | number_literal)) ;) })) (if_statement "if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n        uVar21 = uVar21 | 8;\n      }" { (expression_statement "uVar21 = uVar21 | 8;" (assignment_expression "uVar21 = uVar21 | 8" identifier = (binary_expression "uVar21 | 8" identifier | number_literal)) ;) })) (expression_statement "iVar25 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar25 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (if_statement "if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }" if (parenthesized_expression "((param_4 & 0x40) == 0)" ( (binary_expression "(param_4 & 0x40) == 0" (parenthesized_expression "(param_4 & 0x40)" ( (binary_expression "param_4 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }" { (expression_statement "param_3[3] = iVar7;" (assignment_expression "param_3[3] = iVar7" (subscript_expression "param_3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22 = (undefined4 *)0x0;" (assignment_expression "puVar22 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }" else (compound_statement "{\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }" { (expression_statement "uVar21 = uVar21 | 0x40;" (assignment_expression "uVar21 = uVar21 | 0x40" identifier = (binary_expression "uVar21 | 0x40" identifier | number_literal)) ;) (expression_statement "param_3[3] = iVar7;" (assignment_expression "param_3[3] = iVar7" (subscript_expression "param_3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22 = puVar15;" (assignment_expression "puVar22 = puVar15" identifier = identifier) ;) }))) (expression_statement "iVar16 = *(int *)(pcVar28 + 0xc0450);" (assignment_expression "iVar16 = *(int *)(pcVar28 + 0xc0450)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc0450)" * (cast_expression "(int *)(pcVar28 + 0xc0450)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0450)" ( (binary_expression "pcVar28 + 0xc0450" identifier + number_literal) ))))) ;) (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0648);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0648)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xc0648)" * (cast_expression "(code **)(pcVar28 + 0xc0648)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0648)" ( (binary_expression "pcVar28 + 0xc0648" identifier + number_literal) ))))) ;) (expression_statement "param_3[1] = iVar5;" (assignment_expression "param_3[1] = iVar5" (subscript_expression "param_3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[8] = (int)puVar15;" (assignment_expression "param_3[8] = (int)puVar15" (subscript_expression "param_3[8]" identifier [ number_literal ]) = (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(short *)((int)param_3 + 0x12) = (short)uVar21;" (assignment_expression "*(short *)((int)param_3 + 0x12) = (short)uVar21" (pointer_expression "*(short *)((int)param_3 + 0x12)" * (cast_expression "(short *)((int)param_3 + 0x12)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x12)" ( (binary_expression "(int)param_3 + 0x12" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(short)uVar21" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "iVar8 = *(int *)(iVar25 + -0x5d20);" (assignment_expression "iVar8 = *(int *)(iVar25 + -0x5d20)" identifier = (pointer_expression "*(int *)(iVar25 + -0x5d20)" * (cast_expression "(int *)(iVar25 + -0x5d20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x5d20)" ( (binary_expression "iVar25 + -0x5d20" identifier + number_literal) ))))) ;) (expression_statement "param_3[0x11] = *(int *)(iVar25 + -0x5d1c);" (assignment_expression "param_3[0x11] = *(int *)(iVar25 + -0x5d1c)" (subscript_expression "param_3[0x11]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar25 + -0x5d1c)" * (cast_expression "(int *)(iVar25 + -0x5d1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x5d1c)" ( (binary_expression "iVar25 + -0x5d1c" identifier + number_literal) ))))) ;) (expression_statement "param_3[0x10] = iVar8;" (assignment_expression "param_3[0x10] = iVar8" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);" (assignment_expression "iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1)" identifier = (call_expression "(*pcVar29)(puVar22,iVar16 + -0x7388,1)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(puVar22,iVar16 + -0x7388,1)" ( identifier , (binary_expression "iVar16 + -0x7388" identifier + number_literal) , number_literal )))) ;) (if_statement "if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }" { (expression_statement "*(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;" (assignment_expression "*(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10" (pointer_expression "*(ushort *)((int)param_3 + 0x12)" * (cast_expression "(ushort *)((int)param_3 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x12)" ( (binary_expression "(int)param_3 + 0x12" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(ushort *)((int)param_3 + 0x12) | 0x10" (pointer_expression "*(ushort *)((int)param_3 + 0x12)" * (cast_expression "(ushort *)((int)param_3 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x12)" ( (binary_expression "(int)param_3 + 0x12" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) })) (expression_statement "iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);" (assignment_expression "iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380)" identifier = (call_expression "(**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc08b0))" ( (pointer_expression "**(code **)(pcVar28 + 0xc08b0)" * (pointer_expression "*(code **)(pcVar28 + 0xc08b0)" * (cast_expression "(code **)(pcVar28 + 0xc08b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc08b0)" ( (binary_expression "pcVar28 + 0xc08b0" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380)" ( (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" * (cast_expression "(undefined4 *)(iVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar28 + 0xc0450) + -0x7380" (pointer_expression "*(int *)(pcVar28 + 0xc0450)" * (cast_expression "(int *)(pcVar28 + 0xc0450)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0450)" ( (binary_expression "pcVar28 + 0xc0450" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }" { (expression_statement "*(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;" (assignment_expression "*(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1" (pointer_expression "*(ushort *)((int)param_3 + 0x12)" * (cast_expression "(ushort *)((int)param_3 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x12)" ( (binary_expression "(int)param_3 + 0x12" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(ushort *)((int)param_3 + 0x12) | 1" (pointer_expression "*(ushort *)((int)param_3 + 0x12)" * (cast_expression "(ushort *)((int)param_3 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x12)" ( (binary_expression "(int)param_3 + 0x12" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) })) (if_statement "if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }" if (parenthesized_expression "((uVar21 & 0x80) != 0)" ( (binary_expression "(uVar21 & 0x80) != 0" (parenthesized_expression "(uVar21 & 0x80)" ( (binary_expression "uVar21 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }" { (expression_statement "iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;" (assignment_expression "iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c" identifier = (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x656c" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_0009b3f0;" goto statement_identifier ;) })) (expression_statement "iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);" (assignment_expression "iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3)" identifier = (call_expression "(*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3)" (parenthesized_expression "(*(code *)**(undefined4 **)(iVar5 + 0x14))" ( (pointer_expression "*(code *)**(undefined4 **)(iVar5 + 0x14)" * (cast_expression "(code *)**(undefined4 **)(iVar5 + 0x14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(iVar5 + 0x14)" * (pointer_expression "*(undefined4 **)(iVar5 + 0x14)" * (cast_expression "(undefined4 **)(iVar5 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))))) )) (argument_list "(puVar15,param_3)" ( identifier , identifier )))) ;) (if_statement "if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }" if (parenthesized_expression "(iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c)" ( (binary_expression "iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c" identifier == (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x651c" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) )))) + number_literal)) )) (compound_statement "{\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }" { (expression_statement "iVar8 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar8 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0504))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0504)" * (pointer_expression "*(code **)(pcVar28 + 0xc0504)" * (cast_expression "(code **)(pcVar28 + 0xc0504)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0504)" ( (binary_expression "pcVar28 + 0xc0504" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar8 + -0x4358))" ( (pointer_expression "*(undefined4 *)(iVar8 + -0x4358)" * (cast_expression "(undefined4 *)(iVar8 + -0x4358)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x4358)" ( (binary_expression "iVar8 + -0x4358" identifier + number_literal) )))) ))) ;) (expression_statement "iVar12 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar12 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (expression_statement "iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);" (assignment_expression "iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700)" identifier = (call_expression "(**(code **)(iVar12 + -0x4b78))(param_3[3],local_700)" (parenthesized_expression "(**(code **)(iVar12 + -0x4b78))" ( (pointer_expression "**(code **)(iVar12 + -0x4b78)" * (pointer_expression "*(code **)(iVar12 + -0x4b78)" * (cast_expression "(code **)(iVar12 + -0x4b78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x4b78)" ( (binary_expression "iVar12 + -0x4b78" identifier + number_literal) ))))) )) (argument_list "(param_3[3],local_700)" ( (subscript_expression "param_3[3]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }" { (expression_statement "iVar16 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar16 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (expression_statement "local_710 = 0;" (assignment_expression "local_710 = 0" identifier = number_literal) ;) (expression_statement "local_70c = local_700[0];" (assignment_expression "local_70c = local_700[0]" identifier = (subscript_expression "local_700[0]" identifier [ number_literal ])) ;) (expression_statement "local_704 = local_6ec;" (assignment_expression "local_704 = local_6ec" identifier = identifier) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar16 + -0x435c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar16 + -0x435c)" identifier = (pointer_expression "*(undefined4 **)(iVar16 + -0x435c)" * (cast_expression "(undefined4 **)(iVar16 + -0x435c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + -0x435c)" ( (binary_expression "iVar16 + -0x435c" identifier + number_literal) ))))) ;) (expression_statement "local_708 = local_6f0;" (assignment_expression "local_708 = local_6f0" identifier = identifier) ;) (if_statement "if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }" if (parenthesized_expression "(puVar22 == (undefined4 *)0x0)" ( (binary_expression "puVar22 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }" { (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc05b4);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc05b4)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xc05b4)" * (cast_expression "(code **)(pcVar28 + 0xc05b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc05b4)" ( (binary_expression "pcVar28 + 0xc05b4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }" else (compound_statement "{\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }" { (do_statement "do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);" do (compound_statement "{\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            }" { (expression_statement "iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);" (assignment_expression "iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10)" identifier = (call_expression "(**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0870))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0870)" * (pointer_expression "*(code **)(pcVar28 + 0xc0870)" * (cast_expression "(code **)(pcVar28 + 0xc0870)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0870)" ( (binary_expression "pcVar28 + 0xc0870" identifier + number_literal) ))))) )) (argument_list "(&local_710,puVar22,0x10)" ( (pointer_expression "&local_710" & identifier) , identifier , number_literal )))) ;) (if_statement "if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }" { (expression_statement "puVar22[9] = puVar22[9] + 1;" (assignment_expression "puVar22[9] = puVar22[9] + 1" (subscript_expression "puVar22[9]" identifier [ number_literal ]) = (binary_expression "puVar22[9] + 1" (subscript_expression "puVar22[9]" identifier [ number_literal ]) + number_literal)) ;) (goto_statement "goto LAB_0009b910;" goto statement_identifier ;) })) (expression_statement "puVar22 = (undefined4 *)puVar22[0xb];" (assignment_expression "puVar22 = (undefined4 *)puVar22[0xb]" identifier = (cast_expression "(undefined4 *)puVar22[0xb]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar22[0xb]" identifier [ number_literal ]))) ;) (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc05b4);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc05b4)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xc05b4)" * (cast_expression "(code **)(pcVar28 + 0xc05b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc05b4)" ( (binary_expression "pcVar28 + 0xc05b4" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(puVar22 != (undefined4 *)0x0)" ( (binary_expression "puVar22 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (expression_statement "puVar22 = (undefined4 *)(*pcVar29)(0,0x38);" (assignment_expression "puVar22 = (undefined4 *)(*pcVar29)(0,0x38)" identifier = (cast_expression "(undefined4 *)(*pcVar29)(0,0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar29)(0,0x38)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(0,0x38)" ( number_literal , number_literal ))))) ;) (if_statement "if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }" if (parenthesized_expression "(puVar22 != (undefined4 *)0x0)" ( (binary_expression "puVar22 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }" { (expression_statement "(**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);" (call_expression "(**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0808))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0808)" * (pointer_expression "*(code **)(pcVar28 + 0xc0808)" * (cast_expression "(code **)(pcVar28 + 0xc0808)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0808)" ( (binary_expression "pcVar28 + 0xc0808" identifier + number_literal) ))))) )) (argument_list "(puVar22 + 4,0,0x28)" ( (binary_expression "puVar22 + 4" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "*puVar22 = local_710;" (assignment_expression "*puVar22 = local_710" (pointer_expression "*puVar22" * identifier) = identifier) ;) (expression_statement "puVar22[1] = local_70c;" (assignment_expression "puVar22[1] = local_70c" (subscript_expression "puVar22[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[2] = local_708;" (assignment_expression "puVar22[2] = local_708" (subscript_expression "puVar22[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[3] = local_704;" (assignment_expression "puVar22[3] = local_704" (subscript_expression "puVar22[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }" if (parenthesized_expression "(*(int *)(iVar25 + -0x5dd4) != 0)" ( (binary_expression "*(int *)(iVar25 + -0x5dd4) != 0" (pointer_expression "*(int *)(iVar25 + -0x5dd4)" * (cast_expression "(int *)(iVar25 + -0x5dd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x5dd4)" ( (binary_expression "iVar25 + -0x5dd4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }" { (expression_statement "iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);" (assignment_expression "iVar25 = (**(code **)(pcVar28 + 0xc0644))(0)" identifier = (call_expression "(**(code **)(pcVar28 + 0xc0644))(0)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0644))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0644)" * (pointer_expression "*(code **)(pcVar28 + 0xc0644)" * (cast_expression "(code **)(pcVar28 + 0xc0644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0644)" ( (binary_expression "pcVar28 + 0xc0644" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "puVar22[4] = iVar25;" (assignment_expression "puVar22[4] = iVar25" (subscript_expression "puVar22[4]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }" { (expression_statement "(**(code **)(pcVar28 + 0xc0474))(puVar22);" (call_expression "(**(code **)(pcVar28 + 0xc0474))(puVar22)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0474))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0474)" * (pointer_expression "*(code **)(pcVar28 + 0xc0474)" * (cast_expression "(code **)(pcVar28 + 0xc0474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0474)" ( (binary_expression "pcVar28 + 0xc0474" identifier + number_literal) ))))) )) (argument_list "(puVar22)" ( identifier ))) ;) (expression_statement "uVar20 = 7;" (assignment_expression "uVar20 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_0009bb74;" goto statement_identifier ;) })) })) (expression_statement "iVar7 = *(int *)(iVar16 + -0x435c);" (assignment_expression "iVar7 = *(int *)(iVar16 + -0x435c)" identifier = (pointer_expression "*(int *)(iVar16 + -0x435c)" * (cast_expression "(int *)(iVar16 + -0x435c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + -0x435c)" ( (binary_expression "iVar16 + -0x435c" identifier + number_literal) ))))) ;) (expression_statement "puVar22[0xc] = 0;" (assignment_expression "puVar22[0xc] = 0" (subscript_expression "puVar22[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar22[9] = 1;" (assignment_expression "puVar22[9] = 1" (subscript_expression "puVar22[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar22[0xb] = iVar7;" (assignment_expression "puVar22[0xb] = iVar7" (subscript_expression "puVar22[0xb]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }" { (expression_statement "*(undefined4 **)(iVar7 + 0x30) = puVar22;" (assignment_expression "*(undefined4 **)(iVar7 + 0x30) = puVar22" (pointer_expression "*(undefined4 **)(iVar7 + 0x30)" * (cast_expression "(undefined4 **)(iVar7 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(undefined4 **)(iVar16 + -0x435c) = puVar22;" (assignment_expression "*(undefined4 **)(iVar16 + -0x435c) = puVar22" (pointer_expression "*(undefined4 **)(iVar16 + -0x435c)" * (cast_expression "(undefined4 **)(iVar16 + -0x435c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + -0x435c)" ( (binary_expression "iVar16 + -0x435c" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);" statement_identifier : (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0508);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0508)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xc0508)" * (cast_expression "(code **)(pcVar28 + 0xc0508)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0508)" ( (binary_expression "pcVar28 + 0xc0508" identifier + number_literal) ))))) ;)) (expression_statement "param_3[2] = (int)puVar22;" (assignment_expression "param_3[2] = (int)puVar22" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "(*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));" (call_expression "(*pcVar29)(*(undefined4 *)(iVar8 + -0x4358))" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(*(undefined4 *)(iVar8 + -0x4358))" ( (pointer_expression "*(undefined4 *)(iVar8 + -0x4358)" * (cast_expression "(undefined4 *)(iVar8 + -0x4358)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x4358)" ( (binary_expression "iVar8 + -0x4358" identifier + number_literal) )))) ))) ;) (expression_statement "param_3[5] = 0;" (assignment_expression "param_3[5] = 0" (subscript_expression "param_3[5]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0009b3f4;" goto statement_identifier ;) })) (expression_statement "uVar20 = 7;" (assignment_expression "uVar20 = 7" identifier = number_literal) ;) }) (else_clause "else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }" else (compound_statement "{\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }" { (expression_statement "piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();" (assignment_expression "piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))()" identifier = (cast_expression "(int *)(**(code **)(pcVar28 + 0xc0800))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar28 + 0xc0800))()" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0800))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0800)" * (pointer_expression "*(code **)(pcVar28 + 0xc0800)" * (cast_expression "(code **)(pcVar28 + 0xc0800)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0800)" ( (binary_expression "pcVar28 + 0xc0800" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar20 = 10;" (assignment_expression "uVar20 = 10" identifier = number_literal) ;) (expression_statement "param_3[5] = *piVar31;" (assignment_expression "param_3[5] = *piVar31" (subscript_expression "param_3[5]" identifier [ number_literal ]) = (pointer_expression "*piVar31" * identifier)) ;) }))) (labeled_statement "LAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);" statement_identifier : (expression_statement "iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);" (assignment_expression "iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7)" identifier = (call_expression "(**(code **)(iVar12 + -0x4ba8))(iVar7)" (parenthesized_expression "(**(code **)(iVar12 + -0x4ba8))" ( (pointer_expression "**(code **)(iVar12 + -0x4ba8)" * (pointer_expression "*(code **)(iVar12 + -0x4ba8)" * (cast_expression "(code **)(iVar12 + -0x4ba8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x4ba8)" ( (binary_expression "iVar12 + -0x4ba8" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;)) (if_statement "if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }" { (expression_statement "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0508))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0508)" * (pointer_expression "*(code **)(pcVar28 + 0xc0508)" * (cast_expression "(code **)(pcVar28 + 0xc0508)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0508)" ( (binary_expression "pcVar28 + 0xc0508" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar8 + -0x4358))" ( (pointer_expression "*(undefined4 *)(iVar8 + -0x4358)" * (cast_expression "(undefined4 *)(iVar8 + -0x4358)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x4358)" ( (binary_expression "iVar8 + -0x4358" identifier + number_literal) )))) ))) ;) (expression_statement "param_3[5] = 0;" (assignment_expression "param_3[5] = 0" (subscript_expression "param_3[5]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }" else (compound_statement "{\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }" { (expression_statement "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);" (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))" ( (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac)" * (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x37ac)" ( (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x37ac" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" * (cast_expression "(int *)(pcVar28 + 0xc0594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0594)" ( (binary_expression "pcVar28 + 0xc0594" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(param_3,0x9442)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0508))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0508)" * (pointer_expression "*(code **)(pcVar28 + 0xc0508)" * (cast_expression "(code **)(pcVar28 + 0xc0508)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0508)" ( (binary_expression "pcVar28 + 0xc0508" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar8 + -0x4358))" ( (pointer_expression "*(undefined4 *)(iVar8 + -0x4358)" * (cast_expression "(undefined4 *)(iVar8 + -0x4358)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x4358)" ( (binary_expression "iVar8 + -0x4358" identifier + number_literal) )))) ))) ;) (expression_statement "param_3[5] = 0;" (assignment_expression "param_3[5] = 0" (subscript_expression "param_3[5]" identifier [ number_literal ]) = number_literal) ;) }))) }) (else_clause "else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }" else (compound_statement "{\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }" { (if_statement "if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }" if (parenthesized_expression "(iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc)" ( (binary_expression "iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc" identifier != (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x65bc" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) )))) + number_literal)) )) (compound_statement "{\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }" { (labeled_statement "LAB_0009b3f0:\n          param_3[5] = 0;" statement_identifier : (expression_statement "param_3[5] = 0;" (assignment_expression "param_3[5] = 0" (subscript_expression "param_3[5]" identifier [ number_literal ]) = number_literal) ;)) (labeled_statement "LAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);" statement_identifier : (expression_statement "iVar7 = *(int *)(pcVar28 + 0xc0594);" (assignment_expression "iVar7 = *(int *)(pcVar28 + 0xc0594)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc0594)" * (cast_expression "(int *)(pcVar28 + 0xc0594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0594)" ( (binary_expression "pcVar28 + 0xc0594" identifier + number_literal) ))))) ;)) (expression_statement "*param_3 = iVar5;" (assignment_expression "*param_3 = iVar5" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "(*(code *)(iVar7 + -0x1bfc))(param_3);" (call_expression "(*(code *)(iVar7 + -0x1bfc))(param_3)" (parenthesized_expression "(*(code *)(iVar7 + -0x1bfc))" ( (pointer_expression "*(code *)(iVar7 + -0x1bfc)" * (cast_expression "(code *)(iVar7 + -0x1bfc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x1bfc)" ( (binary_expression "iVar7 + -0x1bfc" identifier + number_literal) )))) )) (argument_list "(param_3)" ( identifier ))) ;) (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0009b410;" goto statement_identifier ;) })) (expression_statement "iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);" (assignment_expression "iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15)" identifier = (call_expression "(**(code **)(pcVar28 + 0xc0818))(puVar15)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0818))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0818)" * (pointer_expression "*(code **)(pcVar28 + 0xc0818)" * (cast_expression "(code **)(pcVar28 + 0xc0818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0818)" ( (binary_expression "pcVar28 + 0xc0818" identifier + number_literal) ))))) )) (argument_list "(puVar15)" ( identifier )))) ;) (expression_statement "iVar25 = iVar25 + 6;" (assignment_expression "iVar25 = iVar25 + 6" identifier = (binary_expression "iVar25 + 6" identifier + number_literal)) ;) (expression_statement "iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);" (assignment_expression "iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25)" identifier = (call_expression "(**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc05b4))" ( (pointer_expression "**(code **)(pcVar28 + 0xc05b4)" * (pointer_expression "*(code **)(pcVar28 + 0xc05b4)" * (cast_expression "(code **)(pcVar28 + 0xc05b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc05b4)" ( (binary_expression "pcVar28 + 0xc05b4" identifier + number_literal) ))))) )) (argument_list "(iVar25 >> 0x1f,iVar25)" ( (binary_expression "iVar25 >> 0x1f" identifier >> number_literal) , identifier )))) ;) (if_statement "if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }" { (expression_statement "(**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);" (call_expression "(**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0464))" ( (pointer_expression "**(code **)(pcVar28 + 0xc0464)" * (pointer_expression "*(code **)(pcVar28 + 0xc0464)" * (cast_expression "(code **)(pcVar28 + 0xc0464)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0464)" ( (binary_expression "pcVar28 + 0xc0464" identifier + number_literal) ))))) )) (argument_list "(iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15)" ( identifier , identifier , (binary_expression "*(int *)(pcVar28 + 0xc0450) + -0x7374" (pointer_expression "*(int *)(pcVar28 + 0xc0450)" * (cast_expression "(int *)(pcVar28 + 0xc0450)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0450)" ( (binary_expression "pcVar28 + 0xc0450" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "param_3[6] = iVar8;" (assignment_expression "param_3[6] = iVar8" (subscript_expression "param_3[6]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_0009b3f0;" goto statement_identifier ;) })) (expression_statement "iVar5 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar5 = *(int *)(pcVar28 + 0xc042c)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xc042c)" * (cast_expression "(int *)(pcVar28 + 0xc042c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc042c)" ( (binary_expression "pcVar28 + 0xc042c" identifier + number_literal) ))))) ;) (expression_statement "param_3[6] = 0;" (assignment_expression "param_3[6] = 0" (subscript_expression "param_3[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_3[5] = 0;" (assignment_expression "param_3[5] = 0" (subscript_expression "param_3[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);" (assignment_expression "iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7)" identifier = (call_expression "(**(code **)(iVar5 + -0x4ba8))(iVar7)" (parenthesized_expression "(**(code **)(iVar5 + -0x4ba8))" ( (pointer_expression "**(code **)(iVar5 + -0x4ba8)" * (pointer_expression "*(code **)(iVar5 + -0x4ba8)" * (cast_expression "(code **)(iVar5 + -0x4ba8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0x4ba8)" ( (binary_expression "iVar5 + -0x4ba8" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar20 = 7;\n        }" { (expression_statement "uVar20 = 7;" (assignment_expression "uVar20 = 7" identifier = number_literal) ;) }) (else_clause "else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }" else (compound_statement "{\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }" { (expression_statement "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);" (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))" ( (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac)" * (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x37ac)" ( (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x37ac" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" * (cast_expression "(int *)(pcVar28 + 0xc0594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xc0594)" ( (binary_expression "pcVar28 + 0xc0594" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(param_3,0x9497)" ( identifier , number_literal ))) ;) (expression_statement "uVar20 = 7;" (assignment_expression "uVar20 = 7" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);" statement_identifier : (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0474);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0474)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xc0474)" * (cast_expression "(code **)(pcVar28 + 0xc0474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0474)" ( (binary_expression "pcVar28 + 0xc0474" identifier + number_literal) ))))) ;)) }))) (expression_statement "(*pcVar29)(param_3[7]);" (call_expression "(*pcVar29)(param_3[7])" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(param_3[7])" ( (subscript_expression "param_3[7]" identifier [ number_literal ]) ))) ;) }))) (labeled_statement "LAB_0009b410:\n  if (local_254 == *piVar30) {\n    return uVar20;\n  }" statement_identifier : (if_statement "if (local_254 == *piVar30) {\n    return uVar20;\n  }" if (parenthesized_expression "(local_254 == *piVar30)" ( (binary_expression "local_254 == *piVar30" identifier == (pointer_expression "*piVar30" * identifier)) )) (compound_statement "{\n    return uVar20;\n  }" { (return_statement "return uVar20;" return identifier ;) }))) (expression_statement "pcVar28 = *(code **)(pcVar28 + 0xc0864);" (assignment_expression "pcVar28 = *(code **)(pcVar28 + 0xc0864)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xc0864)" * (cast_expression "(code **)(pcVar28 + 0xc0864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xc0864)" ( (binary_expression "pcVar28 + 0xc0864" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = local_254;" (assignment_expression "iVar5 = local_254" identifier = identifier) ;) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar7 = *(int *)(iVar5 + 0x60);" (assignment_expression "iVar7 = *(int *)(iVar5 + 0x60)" identifier = (pointer_expression "*(int *)(iVar5 + 0x60)" * (cast_expression "(int *)(iVar5 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x60)" ( (binary_expression "iVar5 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar5 + 0xd0);" (assignment_expression "puVar22 = *(undefined4 **)(iVar5 + 0xd0)" identifier = (pointer_expression "*(undefined4 **)(iVar5 + 0xd0)" * (cast_expression "(undefined4 **)(iVar5 + 0xd0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xd0)" ( (binary_expression "iVar5 + 0xd0" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(uint *)(iVar5 + 0x4c);" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x4c)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x4c)" * (cast_expression "(uint *)(iVar5 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "uVar20 = *(uint *)(iVar5 + 0x98);" (assignment_expression "uVar20 = *(uint *)(iVar5 + 0x98)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x98)" * (cast_expression "(uint *)(iVar5 + 0x98)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x98)" ( (binary_expression "iVar5 + 0x98" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar5 + 0x94) <= *(uint *)(iVar5 + 0x98)) {\n    uVar20 = *(uint *)(iVar5 + 0x94);\n  }" if (parenthesized_expression "(*(uint *)(iVar5 + 0x94) <= *(uint *)(iVar5 + 0x98))" ( (binary_expression "*(uint *)(iVar5 + 0x94) <= *(uint *)(iVar5 + 0x98)" (pointer_expression "*(uint *)(iVar5 + 0x94)" * (cast_expression "(uint *)(iVar5 + 0x94)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x94)" ( (binary_expression "iVar5 + 0x94" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(iVar5 + 0x98)" * (cast_expression "(uint *)(iVar5 + 0x98)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x98)" ( (binary_expression "iVar5 + 0x98" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar20 = *(uint *)(iVar5 + 0x94);\n  }" { (expression_statement "uVar20 = *(uint *)(iVar5 + 0x94);" (assignment_expression "uVar20 = *(uint *)(iVar5 + 0x94)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x94)" * (cast_expression "(uint *)(iVar5 + 0x94)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x94)" ( (binary_expression "iVar5 + 0x94" identifier + number_literal) ))))) ;) })) (expression_statement "iVar25 = *(int *)(iVar5 + 0x48);" (assignment_expression "iVar25 = *(int *)(iVar5 + 0x48)" identifier = (pointer_expression "*(int *)(iVar5 + 0x48)" * (cast_expression "(int *)(iVar5 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x48)" ( (binary_expression "iVar5 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar7) {\n    iVar16 = 0;\n    iVar8 = 0;\n    do {\n      iVar8 = iVar8 + 1;\n      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;\n      iVar16 = iVar16 + 0x30;\n      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }\n    } while (iVar8 < iVar7);\n  }" if (parenthesized_expression "(0 < iVar7)" ( (binary_expression "0 < iVar7" number_literal < identifier) )) (compound_statement "{\n    iVar16 = 0;\n    iVar8 = 0;\n    do {\n      iVar8 = iVar8 + 1;\n      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;\n      iVar16 = iVar16 + 0x30;\n      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }\n    } while (iVar8 < iVar7);\n  }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar8 = iVar8 + 1;\n      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;\n      iVar16 = iVar16 + 0x30;\n      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }\n    } while (iVar8 < iVar7);" do (compound_statement "{\n      iVar8 = iVar8 + 1;\n      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;\n      iVar16 = iVar16 + 0x30;\n      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }\n    }" { (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;" (assignment_expression "iVar12 = *(int *)(iVar5 + 0x5c) + iVar16" identifier = (binary_expression "*(int *)(iVar5 + 0x5c) + iVar16" (pointer_expression "*(int *)(iVar5 + 0x5c)" * (cast_expression "(int *)(iVar5 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x5c)" ( (binary_expression "iVar5 + 0x5c" identifier + number_literal) )))) + identifier)) ;) (expression_statement "iVar16 = iVar16 + 0x30;" (assignment_expression "iVar16 = iVar16 + 0x30" identifier = (binary_expression "iVar16 + 0x30" identifier + number_literal)) ;) (if_statement "if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }" if (parenthesized_expression "(*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0" (binary_expression "*(int *)(iVar12 + 8) == 0" (pointer_expression "*(int *)(iVar12 + 8)" * (cast_expression "(int *)(iVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(iVar12 + 0xc) == 0" (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)) )) (compound_statement "{\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }" { (expression_statement "*(uint *)(iVar12 + 0xc) = uVar6;" (assignment_expression "*(uint *)(iVar12 + 0xc) = uVar6" (pointer_expression "*(uint *)(iVar12 + 0xc)" * (cast_expression "(uint *)(iVar12 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar12 + 8) = iVar25;" (assignment_expression "*(int *)(iVar12 + 8) = iVar25" (pointer_expression "*(int *)(iVar12 + 8)" * (cast_expression "(int *)(iVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = *(int *)(iVar5 + 0x60);" (assignment_expression "iVar7 = *(int *)(iVar5 + 0x60)" identifier = (pointer_expression "*(int *)(iVar5 + 0x60)" * (cast_expression "(int *)(iVar5 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x60)" ( (binary_expression "iVar5 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(uint *)(iVar5 + 0x4c);" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x4c)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x4c)" * (cast_expression "(uint *)(iVar5 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = *(int *)(iVar5 + 0x48);" (assignment_expression "iVar25 = *(int *)(iVar5 + 0x48)" identifier = (pointer_expression "*(int *)(iVar5 + 0x48)" * (cast_expression "(int *)(iVar5 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x48)" ( (binary_expression "iVar5 + 0x48" identifier + number_literal) ))))) ;) })) }) while (parenthesized_expression "(iVar8 < iVar7)" ( (binary_expression "iVar8 < iVar7" identifier < identifier) )) ;) })) (if_statement "if (iVar25 != 0 || uVar6 != 0) {\n    uVar21 = *(uint *)(iVar5 + 0x94);\n    lVar33 = (**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21);\n    lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar6 = (uint)lVar3;\n    iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20);\n  }" if (parenthesized_expression "(iVar25 != 0 || uVar6 != 0)" ( (binary_expression "iVar25 != 0 || uVar6 != 0" (binary_expression "iVar25 != 0" identifier != number_literal) || (binary_expression "uVar6 != 0" identifier != number_literal)) )) (compound_statement "{\n    uVar21 = *(uint *)(iVar5 + 0x94);\n    lVar33 = (**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21);\n    lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar6 = (uint)lVar3;\n    iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20);\n  }" { (expression_statement "uVar21 = *(uint *)(iVar5 + 0x94);" (assignment_expression "uVar21 = *(uint *)(iVar5 + 0x94)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x94)" * (cast_expression "(uint *)(iVar5 + 0x94)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x94)" ( (binary_expression "iVar5 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "lVar33 = (**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21);" (assignment_expression "lVar33 = (**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21)" identifier = (call_expression "(**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21)" (parenthesized_expression "(**(code **)(pcVar28 + 0xbf8fc))" ( (pointer_expression "**(code **)(pcVar28 + 0xbf8fc)" * (pointer_expression "*(code **)(pcVar28 + 0xbf8fc)" * (cast_expression "(code **)(pcVar28 + 0xbf8fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xbf8fc)" ( (binary_expression "pcVar28 + 0xbf8fc" identifier + number_literal) ))))) )) (argument_list "((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21)" ( (binary_expression "(uint)(uVar6 - 1 < uVar6) + iVar25 + -1" (binary_expression "(uint)(uVar6 - 1 < uVar6) + iVar25" (call_expression "(uint)(uVar6 - 1 < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 - 1 < uVar6)" ( (binary_expression "uVar6 - 1 < uVar6" (binary_expression "uVar6 - 1" identifier - number_literal) < identifier) ))) + identifier) + number_literal) , (binary_expression "uVar6 - 1" identifier - number_literal) , number_literal , identifier )))) ;) (expression_statement "lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;" (assignment_expression "lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21" identifier = (binary_expression "(lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21" (parenthesized_expression "(lVar33 + 1U & 0xffffffff)" ( (binary_expression "lVar33 + 1U & 0xffffffff" (binary_expression "lVar33 + 1U" identifier + number_literal) & number_literal) )) * (cast_expression "(ulonglong)uVar21" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (expression_statement "uVar6 = (uint)lVar3;" (assignment_expression "uVar6 = (uint)lVar3" identifier = (cast_expression "(uint)lVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20)" identifier = (binary_expression "(int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20)" (binary_expression "(int)(lVar33 + 1U >> 0x20) * uVar21" (cast_expression "(int)(lVar33 + 1U >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar33 + 1U >> 0x20)" ( (binary_expression "lVar33 + 1U >> 0x20" (binary_expression "lVar33 + 1U" identifier + number_literal) >> number_literal) ))) * identifier) + (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))))) ;) })) (expression_statement "*(uint *)(iVar5 + 0x4c) = uVar6;" (assignment_expression "*(uint *)(iVar5 + 0x4c) = uVar6" (pointer_expression "*(uint *)(iVar5 + 0x4c)" * (cast_expression "(uint *)(iVar5 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar5 + 0x48) = iVar25;" (assignment_expression "*(int *)(iVar5 + 0x48) = iVar25" (pointer_expression "*(int *)(iVar5 + 0x48)" * (cast_expression "(int *)(iVar5 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x48)" ( (binary_expression "iVar5 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar5 + 0x54) = uVar6;" (assignment_expression "*(uint *)(iVar5 + 0x54) = uVar6" (pointer_expression "*(uint *)(iVar5 + 0x54)" * (cast_expression "(uint *)(iVar5 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x54)" ( (binary_expression "iVar5 + 0x54" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar5 + 0x50) = iVar25;" (assignment_expression "*(int *)(iVar5 + 0x50) = iVar25" (pointer_expression "*(int *)(iVar5 + 0x50)" * (cast_expression "(int *)(iVar5 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x50)" ( (binary_expression "iVar5 + 0x50" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(char *)(iVar5 + 7) == '\0') {\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n    if (*(char *)(iVar5 + 5) != '\x04') {\n      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }\n      goto LAB_0009be98;\n    }\n  }\n  else {\nLAB_0009be98:\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n  }" if (parenthesized_expression "(*(char *)(iVar5 + 7) == '\0')" ( (binary_expression "*(char *)(iVar5 + 7) == '\0'" (pointer_expression "*(char *)(iVar5 + 7)" * (cast_expression "(char *)(iVar5 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 7)" ( (binary_expression "iVar5 + 7" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n    if (*(char *)(iVar5 + 5) != '\x04') {\n      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }\n      goto LAB_0009be98;\n    }\n  }" { (expression_statement "iVar7 = *(int *)(pcVar28 + 0xbf8f0);" (assignment_expression "iVar7 = *(int *)(pcVar28 + 0xbf8f0)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xbf8f0)" * (cast_expression "(int *)(pcVar28 + 0xbf8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xbf8f0)" ( (binary_expression "pcVar28 + 0xbf8f0" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar5 + 5) != '\x04') {\n      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }\n      goto LAB_0009be98;\n    }" if (parenthesized_expression "(*(char *)(iVar5 + 5) != '\x04')" ( (binary_expression "*(char *)(iVar5 + 5) != '\x04'" (pointer_expression "*(char *)(iVar5 + 5)" * (cast_expression "(char *)(iVar5 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 5)" ( (binary_expression "iVar5 + 5" identifier + number_literal) )))) != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }\n      goto LAB_0009be98;\n    }" { (expression_statement "uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));" (assignment_expression "uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c))" identifier = (call_expression "(**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c))" (parenthesized_expression "(**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))" ( (pointer_expression "**(code **)(**(int **)(iVar5 + 0x3c) + 0x30)" * (pointer_expression "*(code **)(**(int **)(iVar5 + 0x3c) + 0x30)" * (cast_expression "(code **)(**(int **)(iVar5 + 0x3c) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar5 + 0x3c) + 0x30)" ( (binary_expression "**(int **)(iVar5 + 0x3c) + 0x30" (pointer_expression "**(int **)(iVar5 + 0x3c)" * (pointer_expression "*(int **)(iVar5 + 0x3c)" * (cast_expression "(int **)(iVar5 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x3c)" ( (binary_expression "iVar5 + 0x3c" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar5 + 0x3c))" ( (pointer_expression "*(int **)(iVar5 + 0x3c)" * (cast_expression "(int **)(iVar5 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x3c)" ( (binary_expression "iVar5 + 0x3c" identifier + number_literal) )))) )))) ;) (if_statement "if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }" if (parenthesized_expression "((uVar6 & 0x200) == 0)" ( (binary_expression "(uVar6 & 0x200) == 0" (parenthesized_expression "(uVar6 & 0x200)" ( (binary_expression "uVar6 & 0x200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }" { (expression_statement "*(undefined1 *)puVar22 = 0;" (assignment_expression "*(undefined1 *)puVar22 = 0" (pointer_expression "*(undefined1 *)puVar22" * (cast_expression "(undefined1 *)puVar22" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 1) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 1) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 1)" * (cast_expression "(undefined1 *)((int)puVar22 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 1)" ( (binary_expression "(int)puVar22 + 1" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 2) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 2) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 2)" * (cast_expression "(undefined1 *)((int)puVar22 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 2)" ( (binary_expression "(int)puVar22 + 2" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 3) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 3) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 3)" * (cast_expression "(undefined1 *)((int)puVar22 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 3)" ( (binary_expression "(int)puVar22 + 3" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar22 + 1) = 0;" (assignment_expression "*(undefined1 *)(puVar22 + 1) = 0" (pointer_expression "*(undefined1 *)(puVar22 + 1)" * (cast_expression "(undefined1 *)(puVar22 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 1)" ( (binary_expression "puVar22 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 5) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 5) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 5)" * (cast_expression "(undefined1 *)((int)puVar22 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 5)" ( (binary_expression "(int)puVar22 + 5" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 6) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 6) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 6)" * (cast_expression "(undefined1 *)((int)puVar22 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 6)" ( (binary_expression "(int)puVar22 + 6" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 7) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 7)" * (cast_expression "(undefined1 *)((int)puVar22 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 7)" ( (binary_expression "(int)puVar22 + 7" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar22 + 2) = 0;" (assignment_expression "*(undefined1 *)(puVar22 + 2) = 0" (pointer_expression "*(undefined1 *)(puVar22 + 2)" * (cast_expression "(undefined1 *)(puVar22 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 2)" ( (binary_expression "puVar22 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 9) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 9) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 9)" * (cast_expression "(undefined1 *)((int)puVar22 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 9)" ( (binary_expression "(int)puVar22 + 9" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 10) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 10) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 10)" * (cast_expression "(undefined1 *)((int)puVar22 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 10)" ( (binary_expression "(int)puVar22 + 10" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 0xb) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 0xb) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 0xb)" * (cast_expression "(undefined1 *)((int)puVar22 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0xb)" ( (binary_expression "(int)puVar22 + 0xb" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0009becc;" goto statement_identifier ;) })) (goto_statement "goto LAB_0009be98;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0009be98:\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n  }" else (compound_statement "{\nLAB_0009be98:\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n  }" { (labeled_statement "LAB_0009be98:\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);" statement_identifier : (expression_statement "iVar7 = *(int *)(pcVar28 + 0xbf8f0);" (assignment_expression "iVar7 = *(int *)(pcVar28 + 0xbf8f0)" identifier = (pointer_expression "*(int *)(pcVar28 + 0xbf8f0)" * (cast_expression "(int *)(pcVar28 + 0xbf8f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0xbf8f0)" ( (binary_expression "pcVar28 + 0xbf8f0" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar32 = *(undefined4 *)(iVar7 + -0x7ce8);" (assignment_expression "uVar32 = *(undefined4 *)(iVar7 + -0x7ce8)" identifier = (pointer_expression "*(undefined4 *)(iVar7 + -0x7ce8)" * (cast_expression "(undefined4 *)(iVar7 + -0x7ce8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x7ce8)" ( (binary_expression "iVar7 + -0x7ce8" identifier + number_literal) ))))) ;) (expression_statement "*puVar22 = *(undefined4 *)(iVar7 + -0x7cec);" (assignment_expression "*puVar22 = *(undefined4 *)(iVar7 + -0x7cec)" (pointer_expression "*puVar22" * identifier) = (pointer_expression "*(undefined4 *)(iVar7 + -0x7cec)" * (cast_expression "(undefined4 *)(iVar7 + -0x7cec)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x7cec)" ( (binary_expression "iVar7 + -0x7cec" identifier + number_literal) ))))) ;) (expression_statement "puVar22[1] = uVar32;" (assignment_expression "puVar22[1] = uVar32" (subscript_expression "puVar22[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar22 + 2) = 0xff;" (assignment_expression "*(undefined1 *)(puVar22 + 2) = 0xff" (pointer_expression "*(undefined1 *)(puVar22 + 2)" * (cast_expression "(undefined1 *)(puVar22 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 2)" ( (binary_expression "puVar22 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 9) = 0xff;" (assignment_expression "*(undefined1 *)((int)puVar22 + 9) = 0xff" (pointer_expression "*(undefined1 *)((int)puVar22 + 9)" * (cast_expression "(undefined1 *)((int)puVar22 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 9)" ( (binary_expression "(int)puVar22 + 9" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 10) = 0xff;" (assignment_expression "*(undefined1 *)((int)puVar22 + 10) = 0xff" (pointer_expression "*(undefined1 *)((int)puVar22 + 10)" * (cast_expression "(undefined1 *)((int)puVar22 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 10)" ( (binary_expression "(int)puVar22 + 10" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar22 + 0xb) = 0xff;" (assignment_expression "*(undefined1 *)((int)puVar22 + 0xb) = 0xff" (pointer_expression "*(undefined1 *)((int)puVar22 + 0xb)" * (cast_expression "(undefined1 *)((int)puVar22 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0xb)" ( (binary_expression "(int)puVar22 + 0xb" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0009becc:\n  uVar6 = 0;" statement_identifier : (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;)) (expression_statement "sqlite3_randomness(4,iVar5 + 0x30);" (call_expression "sqlite3_randomness(4,iVar5 + 0x30)" identifier (argument_list "(4,iVar5 + 0x30)" ( number_literal , (binary_expression "iVar5 + 0x30" identifier + number_literal) ))) ;) (expression_statement "uVar32 = *(undefined4 *)(iVar5 + 0x30);" (assignment_expression "uVar32 = *(undefined4 *)(iVar5 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x30)" * (cast_expression "(undefined4 *)(iVar5 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x30)" ( (binary_expression "iVar5 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(char *)((int)puVar22 + 0xf) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar22 + 0xf) = (char)uVar32" (pointer_expression "*(char *)((int)puVar22 + 0xf)" * (cast_expression "(char *)((int)puVar22 + 0xf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0xf)" ( (binary_expression "(int)puVar22 + 0xf" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)uVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(puVar22 + 3) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar22 + 3) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar22 + 3)" * (cast_expression "(char *)(puVar22 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 3)" ( (binary_expression "puVar22 + 3" identifier + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x18)" ( (binary_expression "(uint)uVar32 >> 0x18" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)((int)puVar22 + 0xd) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar22 + 0xd) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar22 + 0xd)" * (cast_expression "(char *)((int)puVar22 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0xd)" ( (binary_expression "(int)puVar22 + 0xd" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x10)" ( (binary_expression "(uint)uVar32 >> 0x10" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)((int)puVar22 + 0xe) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar22 + 0xe) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar22 + 0xe)" * (cast_expression "(char *)((int)puVar22 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0xe)" ( (binary_expression "(int)puVar22 + 0xe" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 8)" ( (binary_expression "(uint)uVar32 >> 8" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar32 = *(undefined4 *)(iVar5 + 0x1c);" (assignment_expression "uVar32 = *(undefined4 *)(iVar5 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x1c)" * (cast_expression "(undefined4 *)(iVar5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "pcVar28 = *(code **)(pcVar28 + 0xbfc10);" (assignment_expression "pcVar28 = *(code **)(pcVar28 + 0xbfc10)" identifier = (pointer_expression "*(code **)(pcVar28 + 0xbfc10)" * (cast_expression "(code **)(pcVar28 + 0xbfc10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0xbfc10)" ( (binary_expression "pcVar28 + 0xbfc10" identifier + number_literal) ))))) ;) (expression_statement "*(char *)((int)puVar22 + 0x13) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar22 + 0x13) = (char)uVar32" (pointer_expression "*(char *)((int)puVar22 + 0x13)" * (cast_expression "(char *)((int)puVar22 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0x13)" ( (binary_expression "(int)puVar22 + 0x13" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)uVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(puVar22 + 4) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar22 + 4) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar22 + 4)" * (cast_expression "(char *)(puVar22 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 4)" ( (binary_expression "puVar22 + 4" identifier + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x18)" ( (binary_expression "(uint)uVar32 >> 0x18" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)((int)puVar22 + 0x11) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar22 + 0x11) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar22 + 0x11)" * (cast_expression "(char *)((int)puVar22 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0x11)" ( (binary_expression "(int)puVar22 + 0x11" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x10)" ( (binary_expression "(uint)uVar32 >> 0x10" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)((int)puVar22 + 0x12) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar22 + 0x12) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar22 + 0x12)" * (cast_expression "(char *)((int)puVar22 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0x12)" ( (binary_expression "(int)puVar22 + 0x12" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 8)" ( (binary_expression "(uint)uVar32 >> 8" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar32 = *(undefined4 *)(iVar5 + 0x94);" (assignment_expression "uVar32 = *(undefined4 *)(iVar5 + 0x94)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x94)" * (cast_expression "(undefined4 *)(iVar5 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x94)" ( (binary_expression "iVar5 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(char *)((int)puVar22 + 0x17) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar22 + 0x17) = (char)uVar32" (pointer_expression "*(char *)((int)puVar22 + 0x17)" * (cast_expression "(char *)((int)puVar22 + 0x17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0x17)" ( (binary_expression "(int)puVar22 + 0x17" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)uVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(puVar22 + 5) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar22 + 5) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar22 + 5)" * (cast_expression "(char *)(puVar22 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 5)" ( (binary_expression "puVar22 + 5" identifier + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x18)" ( (binary_expression "(uint)uVar32 >> 0x18" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)((int)puVar22 + 0x15) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar22 + 0x15) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar22 + 0x15)" * (cast_expression "(char *)((int)puVar22 + 0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0x15)" ( (binary_expression "(int)puVar22 + 0x15" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x10)" ( (binary_expression "(uint)uVar32 >> 0x10" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)((int)puVar22 + 0x16) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar22 + 0x16) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar22 + 0x16)" * (cast_expression "(char *)((int)puVar22 + 0x16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0x16)" ( (binary_expression "(int)puVar22 + 0x16" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 8)" ( (binary_expression "(uint)uVar32 >> 8" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar32 = *(undefined4 *)(iVar5 + 0x98);" (assignment_expression "uVar32 = *(undefined4 *)(iVar5 + 0x98)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x98)" * (cast_expression "(undefined4 *)(iVar5 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x98)" ( (binary_expression "iVar5 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(char *)((int)puVar22 + 0x1b) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar22 + 0x1b) = (char)uVar32" (pointer_expression "*(char *)((int)puVar22 + 0x1b)" * (cast_expression "(char *)((int)puVar22 + 0x1b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0x1b)" ( (binary_expression "(int)puVar22 + 0x1b" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)uVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(puVar22 + 6) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar22 + 6) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar22 + 6)" * (cast_expression "(char *)(puVar22 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 6)" ( (binary_expression "puVar22 + 6" identifier + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x18)" ( (binary_expression "(uint)uVar32 >> 0x18" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)((int)puVar22 + 0x19) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar22 + 0x19) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar22 + 0x19)" * (cast_expression "(char *)((int)puVar22 + 0x19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0x19)" ( (binary_expression "(int)puVar22 + 0x19" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 0x10)" ( (binary_expression "(uint)uVar32 >> 0x10" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)((int)puVar22 + 0x1a) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar22 + 0x1a) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar22 + 0x1a)" * (cast_expression "(char *)((int)puVar22 + 0x1a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 0x1a)" ( (binary_expression "(int)puVar22 + 0x1a" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)((uint)uVar32 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar32 >> 8)" ( (binary_expression "(uint)uVar32 >> 8" (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "(*pcVar28)(puVar22 + 7,0,uVar20 - 0x1c);" (call_expression "(*pcVar28)(puVar22 + 7,0,uVar20 - 0x1c)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(puVar22 + 7,0,uVar20 - 0x1c)" ( (binary_expression "puVar22 + 7" identifier + number_literal) , number_literal , (binary_expression "uVar20 - 0x1c" identifier - number_literal) ))) ;) (do_statement "do {\n    if (*(uint *)(iVar5 + 0x94) <= uVar6) {\n      return 0;\n    }\n    iVar7 = **(int **)(iVar5 + 0x40);\n    uVar6 = uVar6 + uVar20;\n    uVar21 = (**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c));\n    uVar24 = *(uint *)(iVar5 + 0x4c);\n    uVar14 = uVar24 + uVar20;\n    *(uint *)(iVar5 + 0x4c) = uVar14;\n    *(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48);\n  } while (uVar21 == 0);" do (compound_statement "{\n    if (*(uint *)(iVar5 + 0x94) <= uVar6) {\n      return 0;\n    }\n    iVar7 = **(int **)(iVar5 + 0x40);\n    uVar6 = uVar6 + uVar20;\n    uVar21 = (**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c));\n    uVar24 = *(uint *)(iVar5 + 0x4c);\n    uVar14 = uVar24 + uVar20;\n    *(uint *)(iVar5 + 0x4c) = uVar14;\n    *(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48);\n  }" { (if_statement "if (*(uint *)(iVar5 + 0x94) <= uVar6) {\n      return 0;\n    }" if (parenthesized_expression "(*(uint *)(iVar5 + 0x94) <= uVar6)" ( (binary_expression "*(uint *)(iVar5 + 0x94) <= uVar6" (pointer_expression "*(uint *)(iVar5 + 0x94)" * (cast_expression "(uint *)(iVar5 + 0x94)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x94)" ( (binary_expression "iVar5 + 0x94" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar7 = **(int **)(iVar5 + 0x40);" (assignment_expression "iVar7 = **(int **)(iVar5 + 0x40)" identifier = (pointer_expression "**(int **)(iVar5 + 0x40)" * (pointer_expression "*(int **)(iVar5 + 0x40)" * (cast_expression "(int **)(iVar5 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x40)" ( (binary_expression "iVar5 + 0x40" identifier + number_literal) )))))) ;) (expression_statement "uVar6 = uVar6 + uVar20;" (assignment_expression "uVar6 = uVar6 + uVar20" identifier = (binary_expression "uVar6 + uVar20" identifier + identifier)) ;) (expression_statement "uVar21 = (**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c));" (assignment_expression "uVar21 = (**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c))" identifier = (call_expression "(**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c))" (parenthesized_expression "(**(code **)(iVar7 + 0xc))" ( (pointer_expression "**(code **)(iVar7 + 0xc)" * (pointer_expression "*(code **)(iVar7 + 0xc)" * (cast_expression "(code **)(iVar7 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) )) (argument_list "(*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c))" ( (pointer_expression "*(int **)(iVar5 + 0x40)" * (cast_expression "(int **)(iVar5 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x40)" ( (binary_expression "iVar5 + 0x40" identifier + number_literal) )))) , identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(iVar5 + 0x48)" * (cast_expression "(undefined4 *)(iVar5 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x48)" ( (binary_expression "iVar5 + 0x48" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar5 + 0x4c)" * (cast_expression "(undefined4 *)(iVar5 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar24 = *(uint *)(iVar5 + 0x4c);" (assignment_expression "uVar24 = *(uint *)(iVar5 + 0x4c)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x4c)" * (cast_expression "(uint *)(iVar5 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = uVar24 + uVar20;" (assignment_expression "uVar14 = uVar24 + uVar20" identifier = (binary_expression "uVar24 + uVar20" identifier + identifier)) ;) (expression_statement "*(uint *)(iVar5 + 0x4c) = uVar14;" (assignment_expression "*(uint *)(iVar5 + 0x4c) = uVar14" (pointer_expression "*(uint *)(iVar5 + 0x4c)" * (cast_expression "(uint *)(iVar5 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48);" (assignment_expression "*(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48)" (pointer_expression "*(uint *)(iVar5 + 0x48)" * (cast_expression "(uint *)(iVar5 + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x48)" ( (binary_expression "iVar5 + 0x48" identifier + number_literal) )))) = (binary_expression "(uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48)" (call_expression "(uint)(uVar14 < uVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < uVar24)" ( (binary_expression "uVar14 < uVar24" identifier < identifier) ))) + (pointer_expression "*(int *)(iVar5 + 0x48)" * (cast_expression "(int *)(iVar5 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x48)" ( (binary_expression "iVar5 + 0x48" identifier + number_literal) )))))) ;) }) while (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) ;) (return_statement "return uVar21;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 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 (pointer_declarator * IDENT) ;) (declaration TYPE 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression 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 = (cast_expression ( (type_descriptor TYPE (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 (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) , (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 *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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) ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (subscript_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 ( (pointer_expression * (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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) (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 ( (subscript_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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (goto_statement goto statement_identifier ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_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 (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (break_statement break ;) })) })) (labeled_statement statement_identifier : (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 = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (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)) ;) (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 (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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)) ))))) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return 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 = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (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)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (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) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (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 = BOOL) ;) (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 != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , 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 *)) ) (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 (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (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) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == 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 ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto 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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (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 ( LIT , LIT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (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 = (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 ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ( )))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , 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) ))))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT & 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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (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) ))))) ;) }) (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 ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;))) (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 (cast_expression ( (type_descriptor TYPE) ) 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 = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , 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 (subscript_expression IDENT [ 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 ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression IDENT | LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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 = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression IDENT | LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (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)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression (binary_expression IDENT & LIT) | LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , LIT )))) ;) (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) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (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 * IDENT) = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (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 *)) ) (subscript_expression IDENT [ LIT ]))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) 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 (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (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 { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (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) ))))))) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ( (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 = (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 ( (subscript_expression IDENT [ 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) ;) (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) ))))) ;) }) (else_clause else (compound_statement { (do_statement do (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 ( (pointer_expression & IDENT) , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = 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) ;) (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 = (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 )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 ))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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) )))) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (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 = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 )))) ;)) (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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (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 (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_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 ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (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 ( (binary_expression IDENT >> LIT) , 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 , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_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) ))))) ;)) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) }))) (labeled_statement statement_identifier : (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 *)) ) (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 *)) ) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) && (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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) ))))) ;) })) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (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 ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - LIT) < IDENT) ))) + IDENT) + LIT) , (binary_expression IDENT - LIT) , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) >> LIT) ))) * IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (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 (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (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 IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (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 *)) ) (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 (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (call_expression IDENT (argument_list ( LIT , (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT - LIT) ))) ;) (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 IDENT + LIT) )))) <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (return_statement return IDENT ;) })))
(function_definition "uint FUN_0009a92c(int param_1,undefined4 *param_2,int *param_3,uint param_4)\n\n{\n  char cVar1;\n  bool bVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  int in_zero;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  uint uVar14;\n  undefined4 *puVar15;\n  int iVar16;\n  int *piVar17;\n  undefined4 *puVar18;\n  uint *puVar19;\n  uint uVar20;\n  uint uVar21;\n  undefined4 *puVar22;\n  undefined *puVar23;\n  uint uVar24;\n  int iVar25;\n  uint *puVar26;\n  undefined *puVar27;\n  code *pcVar28;\n  code *pcVar29;\n  int *piVar30;\n  int *piVar31;\n  undefined4 uVar32;\n  longlong lVar33;\n  undefined4 local_734;\n  uint local_72c;\n  undefined4 local_724;\n  code *local_714;\n  undefined4 local_710;\n  int local_70c;\n  int local_708;\n  int local_704;\n  int local_700 [4];\n  int local_6f0;\n  int local_6ec;\n  uint local_6e8;\n  undefined4 local_6e0;\n  undefined4 local_6dc;\n  undefined1 auStack_65c [516];\n  undefined4 auStack_458 [129];\n  int local_254;\n  uint *local_250;\n  uint local_24c;\n  undefined *local_248;\n  undefined4 *local_244;\n  int local_240;\n  undefined4 *local_23c;\n  uint *local_238;\n  uint local_234;\n  int *local_230;\n  undefined4 local_22c;\n  uint *local_218;\n  undefined *local_208;\n  int local_134;\n  uint *local_130;\n  uint local_12c;\n  undefined *local_128;\n  undefined4 *local_124;\n  int local_120;\n  undefined4 *local_11c;\n  uint *local_118;\n  uint local_114;\n  int *local_110;\n  undefined4 local_10c;\n  undefined4 local_f8;\n  undefined4 local_f4;\n  undefined4 local_f0;\n  undefined4 local_d8;\n  undefined4 local_d4;\n  undefined4 auStack_d0 [6];\n  uint local_b8;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0015ba2c;\n  puVar27 = PTR_sqlite3_temp_directory_0015b854;\n  puVar23 = PTR_DAT_0015b5d8;\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  *(undefined1 *)param_2 = 0;\n  uVar20 = *(uint *)puVar27;\n  if (*(int *)(puVar23 + -0x4eb0) == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc);\n    *(undefined4 *)(puVar23 + -0x4eb0) = uVar32;\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }\n  else {\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }\n  if (iVar5 == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac);\n    *(undefined4 *)(puVar23 + -0x4eac) = uVar32;\n  }\n  puVar27 = PTR_DAT_0015b5d8;\n  puVar19 = (uint *)(puVar23 + -0x4eb0);\n  puVar26 = (uint *)(puVar23 + -0x4e98);\n  puVar22 = auStack_d0;\n  piVar30 = (int *)0x4000;\n  puVar23 = PTR_DAT_0015b5d8 + -0x4bb8;\n  while( true ) {\n    puVar15 = puVar22;\n    if ((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)) {\n      puVar19 = (uint *)&DAT_0000000c;\n      puVar26 = (uint *)((int)param_2 + param_1 + -2);\n      puVar22 = &local_d8;\n      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);\n      goto LAB_0009aa88;\n    }\n    local_234 = 0x190a;\n    if (puVar19 == puVar26) break;\n    uVar20 = *puVar19;\n    puVar19 = puVar19 + 1;\n  }\n  goto LAB_0009a9fc;\njoined_r0x0009b6fc:\n  if (param_4 == uVar20) goto LAB_0009bb18;\n  piVar10 = (int *)piVar13[2];\n  if (piVar10 == (int *)0x0) goto LAB_0009b728;\n  uVar20 = piVar10[1];\n  piVar17 = piVar13 + 2;\n  piVar13 = piVar10;\n  goto joined_r0x0009b6fc;\nLAB_0009bb18:\n  pcVar29 = *(code **)(pcVar28 + 0xc0508);\n  *piVar17 = piVar13[2];\n  (*pcVar29)(piVar31[4]);\n  (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\n  iVar7 = *piVar13;\n  param_3[7] = (int)piVar13;\n  goto LAB_0009b2a0;\nLAB_0009b728:\n  (**(code **)(pcVar28 + 0xc0508))(piVar31[4]);\n  (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\n  goto LAB_0009b7e8;\n  while( true ) {\n    puVar19 = (uint *)((int)puVar19 + -1);\n    puVar15 = (undefined4 *)0x0;\n    if (puVar19 == (uint *)0x0) goto LAB_0009aae4;\n    iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2);\n    local_234 = 0;\n    if (iVar5 != 0) break;\nLAB_0009aa88:\n    sqlite3_randomness(8,puVar22);\n    *(char *)puVar26 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar15 = param_2;\n    param_3 = piVar30;\n    param_4 = uVar20;\n    (*(code *)PTR_sqlite3_snprintf_0015b610)(param_1);\n    if (*(char *)puVar26 != '\0') {\nLAB_0009aae4:\n      local_234 = 1;\n      break;\n    }\n  }\nLAB_0009a9fc:\n  if (local_2c == *(int *)puVar4) {\n    return local_234;\n  }\n  uVar32 = 0x9ab38;\n  puVar27 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  local_208 = puVar27 + 0xc8a78;\n  piVar31 = *(int **)(puVar27 + 0xc0ef4);\n  iVar5 = *piVar31;\n  local_134 = iVar5;\n  local_130 = puVar19;\n  local_12c = uVar20;\n  local_128 = puVar23;\n  local_124 = param_2;\n  local_120 = param_1;\n  local_11c = puVar22;\n  local_118 = puVar26;\n  local_114 = local_234;\n  local_110 = piVar30;\n  local_10c = uVar32;\n  if (puVar15 < (undefined4 *)0x15) {\n                    \n                    \n    uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))();\n    return uVar20;\n  }\n  if (iVar5 == *piVar31) {\n    return 0xc;\n  }\n  pcVar28 = *(code **)(puVar27 + 0xc0ed8);\n  uVar32 = 0x9b1ac;\n  (*pcVar28)();\n  uVar21 = param_4 & 8;\n  uVar24 = param_4 & 0xffffff00;\n  piVar30 = *(int **)(pcVar28 + 0xc0880);\n  local_254 = *piVar30;\n  local_72c = param_4 & 1;\n  uVar6 = param_4 & 2;\n  puVar18 = puVar15;\n  local_250 = puVar19;\n  local_24c = uVar20;\n  local_248 = puVar23;\n  local_244 = param_2;\n  local_240 = param_1;\n  local_23c = puVar22;\n  local_238 = puVar26;\n  local_230 = piVar31;\n  local_22c = uVar32;\n  if ((param_4 & 4) == 0) {\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    bVar2 = false;\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (iVar7 != *(int *)(iVar25 + -0x4354)) goto LAB_0009b46c;\nLAB_0009b270:\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    if (uVar24 == 0x100) {\n      iVar7 = *(int *)(pcVar28 + 0xc042c);\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));\n      if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }\n      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\nLAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);\n      if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }\n      uVar20 = 7;\n    }\n    else {\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }\n  }\n  else {\n    if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (*(int *)(iVar25 + -0x4354) != iVar7) {\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    bVar2 = true;\n    if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;\nLAB_0009b298:\n    iVar7 = -1;\nLAB_0009b2a0:\n    uVar20 = uVar6;\n    if ((param_4 & 4) != 0) {\n      uVar20 = uVar6 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    (*pcVar29)(param_3[7]);\n  }\nLAB_0009b410:\n  if (local_254 == *piVar30) {\n    return uVar20;\n  }\n  pcVar28 = *(code **)(pcVar28 + 0xc0864);\n  iVar5 = local_254;\n  (*pcVar28)();\n  iVar7 = *(int *)(iVar5 + 0x60);\n  puVar22 = *(undefined4 **)(iVar5 + 0xd0);\n  uVar6 = *(uint *)(iVar5 + 0x4c);\n  uVar20 = *(uint *)(iVar5 + 0x98);\n  if (*(uint *)(iVar5 + 0x94) <= *(uint *)(iVar5 + 0x98)) {\n    uVar20 = *(uint *)(iVar5 + 0x94);\n  }\n  iVar25 = *(int *)(iVar5 + 0x48);\n  if (0 < iVar7) {\n    iVar16 = 0;\n    iVar8 = 0;\n    do {\n      iVar8 = iVar8 + 1;\n      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;\n      iVar16 = iVar16 + 0x30;\n      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }\n    } while (iVar8 < iVar7);\n  }\n  if (iVar25 != 0 || uVar6 != 0) {\n    uVar21 = *(uint *)(iVar5 + 0x94);\n    lVar33 = (**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21);\n    lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar6 = (uint)lVar3;\n    iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20);\n  }\n  *(uint *)(iVar5 + 0x4c) = uVar6;\n  *(int *)(iVar5 + 0x48) = iVar25;\n  *(uint *)(iVar5 + 0x54) = uVar6;\n  *(int *)(iVar5 + 0x50) = iVar25;\n  if (*(char *)(iVar5 + 7) == '\0') {\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n    if (*(char *)(iVar5 + 5) != '\x04') {\n      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }\n      goto LAB_0009be98;\n    }\n  }\n  else {\nLAB_0009be98:\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n  }\n  uVar32 = *(undefined4 *)(iVar7 + -0x7ce8);\n  *puVar22 = *(undefined4 *)(iVar7 + -0x7cec);\n  puVar22[1] = uVar32;\n  *(undefined1 *)(puVar22 + 2) = 0xff;\n  *(undefined1 *)((int)puVar22 + 9) = 0xff;\n  *(undefined1 *)((int)puVar22 + 10) = 0xff;\n  *(undefined1 *)((int)puVar22 + 0xb) = 0xff;\nLAB_0009becc:\n  uVar6 = 0;\n  sqlite3_randomness(4,iVar5 + 0x30);\n  uVar32 = *(undefined4 *)(iVar5 + 0x30);\n  *(char *)((int)puVar22 + 0xf) = (char)uVar32;\n  *(char *)(puVar22 + 3) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0xd) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0xe) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x1c);\n  pcVar28 = *(code **)(pcVar28 + 0xbfc10);\n  *(char *)((int)puVar22 + 0x13) = (char)uVar32;\n  *(char *)(puVar22 + 4) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x11) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x12) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x94);\n  *(char *)((int)puVar22 + 0x17) = (char)uVar32;\n  *(char *)(puVar22 + 5) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x15) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x16) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x98);\n  *(char *)((int)puVar22 + 0x1b) = (char)uVar32;\n  *(char *)(puVar22 + 6) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x19) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x1a) = (char)((uint)uVar32 >> 8);\n  (*pcVar28)(puVar22 + 7,0,uVar20 - 0x1c);\n  do {\n    if (*(uint *)(iVar5 + 0x94) <= uVar6) {\n      return 0;\n    }\n    iVar7 = **(int **)(iVar5 + 0x40);\n    uVar6 = uVar6 + uVar20;\n    uVar21 = (**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c));\n    uVar24 = *(uint *)(iVar5 + 0x4c);\n    uVar14 = uVar24 + uVar20;\n    *(uint *)(iVar5 + 0x4c) = uVar14;\n    *(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48);\n  } while (uVar21 == 0);\n  return uVar21;\n}" (type_identifier "uint") (function_declarator "FUN_0009a92c(int param_1,undefined4 *param_2,int *param_3,uint param_4)" (identifier "FUN_0009a92c") (parameter_list "(int param_1,undefined4 *param_2,int *param_3,uint param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) () ")"))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  int in_zero;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  uint uVar14;\n  undefined4 *puVar15;\n  int iVar16;\n  int *piVar17;\n  undefined4 *puVar18;\n  uint *puVar19;\n  uint uVar20;\n  uint uVar21;\n  undefined4 *puVar22;\n  undefined *puVar23;\n  uint uVar24;\n  int iVar25;\n  uint *puVar26;\n  undefined *puVar27;\n  code *pcVar28;\n  code *pcVar29;\n  int *piVar30;\n  int *piVar31;\n  undefined4 uVar32;\n  longlong lVar33;\n  undefined4 local_734;\n  uint local_72c;\n  undefined4 local_724;\n  code *local_714;\n  undefined4 local_710;\n  int local_70c;\n  int local_708;\n  int local_704;\n  int local_700 [4];\n  int local_6f0;\n  int local_6ec;\n  uint local_6e8;\n  undefined4 local_6e0;\n  undefined4 local_6dc;\n  undefined1 auStack_65c [516];\n  undefined4 auStack_458 [129];\n  int local_254;\n  uint *local_250;\n  uint local_24c;\n  undefined *local_248;\n  undefined4 *local_244;\n  int local_240;\n  undefined4 *local_23c;\n  uint *local_238;\n  uint local_234;\n  int *local_230;\n  undefined4 local_22c;\n  uint *local_218;\n  undefined *local_208;\n  int local_134;\n  uint *local_130;\n  uint local_12c;\n  undefined *local_128;\n  undefined4 *local_124;\n  int local_120;\n  undefined4 *local_11c;\n  uint *local_118;\n  uint local_114;\n  int *local_110;\n  undefined4 local_10c;\n  undefined4 local_f8;\n  undefined4 local_f4;\n  undefined4 local_f0;\n  undefined4 local_d8;\n  undefined4 local_d4;\n  undefined4 auStack_d0 [6];\n  uint local_b8;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0015ba2c;\n  puVar27 = PTR_sqlite3_temp_directory_0015b854;\n  puVar23 = PTR_DAT_0015b5d8;\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  *(undefined1 *)param_2 = 0;\n  uVar20 = *(uint *)puVar27;\n  if (*(int *)(puVar23 + -0x4eb0) == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc);\n    *(undefined4 *)(puVar23 + -0x4eb0) = uVar32;\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }\n  else {\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }\n  if (iVar5 == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac);\n    *(undefined4 *)(puVar23 + -0x4eac) = uVar32;\n  }\n  puVar27 = PTR_DAT_0015b5d8;\n  puVar19 = (uint *)(puVar23 + -0x4eb0);\n  puVar26 = (uint *)(puVar23 + -0x4e98);\n  puVar22 = auStack_d0;\n  piVar30 = (int *)0x4000;\n  puVar23 = PTR_DAT_0015b5d8 + -0x4bb8;\n  while( true ) {\n    puVar15 = puVar22;\n    if ((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)) {\n      puVar19 = (uint *)&DAT_0000000c;\n      puVar26 = (uint *)((int)param_2 + param_1 + -2);\n      puVar22 = &local_d8;\n      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);\n      goto LAB_0009aa88;\n    }\n    local_234 = 0x190a;\n    if (puVar19 == puVar26) break;\n    uVar20 = *puVar19;\n    puVar19 = puVar19 + 1;\n  }\n  goto LAB_0009a9fc;\njoined_r0x0009b6fc:\n  if (param_4 == uVar20) goto LAB_0009bb18;\n  piVar10 = (int *)piVar13[2];\n  if (piVar10 == (int *)0x0) goto LAB_0009b728;\n  uVar20 = piVar10[1];\n  piVar17 = piVar13 + 2;\n  piVar13 = piVar10;\n  goto joined_r0x0009b6fc;\nLAB_0009bb18:\n  pcVar29 = *(code **)(pcVar28 + 0xc0508);\n  *piVar17 = piVar13[2];\n  (*pcVar29)(piVar31[4]);\n  (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\n  iVar7 = *piVar13;\n  param_3[7] = (int)piVar13;\n  goto LAB_0009b2a0;\nLAB_0009b728:\n  (**(code **)(pcVar28 + 0xc0508))(piVar31[4]);\n  (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\n  goto LAB_0009b7e8;\n  while( true ) {\n    puVar19 = (uint *)((int)puVar19 + -1);\n    puVar15 = (undefined4 *)0x0;\n    if (puVar19 == (uint *)0x0) goto LAB_0009aae4;\n    iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2);\n    local_234 = 0;\n    if (iVar5 != 0) break;\nLAB_0009aa88:\n    sqlite3_randomness(8,puVar22);\n    *(char *)puVar26 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar15 = param_2;\n    param_3 = piVar30;\n    param_4 = uVar20;\n    (*(code *)PTR_sqlite3_snprintf_0015b610)(param_1);\n    if (*(char *)puVar26 != '\0') {\nLAB_0009aae4:\n      local_234 = 1;\n      break;\n    }\n  }\nLAB_0009a9fc:\n  if (local_2c == *(int *)puVar4) {\n    return local_234;\n  }\n  uVar32 = 0x9ab38;\n  puVar27 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  local_208 = puVar27 + 0xc8a78;\n  piVar31 = *(int **)(puVar27 + 0xc0ef4);\n  iVar5 = *piVar31;\n  local_134 = iVar5;\n  local_130 = puVar19;\n  local_12c = uVar20;\n  local_128 = puVar23;\n  local_124 = param_2;\n  local_120 = param_1;\n  local_11c = puVar22;\n  local_118 = puVar26;\n  local_114 = local_234;\n  local_110 = piVar30;\n  local_10c = uVar32;\n  if (puVar15 < (undefined4 *)0x15) {\n                    \n                    \n    uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))();\n    return uVar20;\n  }\n  if (iVar5 == *piVar31) {\n    return 0xc;\n  }\n  pcVar28 = *(code **)(puVar27 + 0xc0ed8);\n  uVar32 = 0x9b1ac;\n  (*pcVar28)();\n  uVar21 = param_4 & 8;\n  uVar24 = param_4 & 0xffffff00;\n  piVar30 = *(int **)(pcVar28 + 0xc0880);\n  local_254 = *piVar30;\n  local_72c = param_4 & 1;\n  uVar6 = param_4 & 2;\n  puVar18 = puVar15;\n  local_250 = puVar19;\n  local_24c = uVar20;\n  local_248 = puVar23;\n  local_244 = param_2;\n  local_240 = param_1;\n  local_23c = puVar22;\n  local_238 = puVar26;\n  local_230 = piVar31;\n  local_22c = uVar32;\n  if ((param_4 & 4) == 0) {\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    bVar2 = false;\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (iVar7 != *(int *)(iVar25 + -0x4354)) goto LAB_0009b46c;\nLAB_0009b270:\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    if (uVar24 == 0x100) {\n      iVar7 = *(int *)(pcVar28 + 0xc042c);\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));\n      if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }\n      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\nLAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);\n      if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }\n      uVar20 = 7;\n    }\n    else {\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }\n  }\n  else {\n    if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (*(int *)(iVar25 + -0x4354) != iVar7) {\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    bVar2 = true;\n    if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;\nLAB_0009b298:\n    iVar7 = -1;\nLAB_0009b2a0:\n    uVar20 = uVar6;\n    if ((param_4 & 4) != 0) {\n      uVar20 = uVar6 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    (*pcVar29)(param_3[7]);\n  }\nLAB_0009b410:\n  if (local_254 == *piVar30) {\n    return uVar20;\n  }\n  pcVar28 = *(code **)(pcVar28 + 0xc0864);\n  iVar5 = local_254;\n  (*pcVar28)();\n  iVar7 = *(int *)(iVar5 + 0x60);\n  puVar22 = *(undefined4 **)(iVar5 + 0xd0);\n  uVar6 = *(uint *)(iVar5 + 0x4c);\n  uVar20 = *(uint *)(iVar5 + 0x98);\n  if (*(uint *)(iVar5 + 0x94) <= *(uint *)(iVar5 + 0x98)) {\n    uVar20 = *(uint *)(iVar5 + 0x94);\n  }\n  iVar25 = *(int *)(iVar5 + 0x48);\n  if (0 < iVar7) {\n    iVar16 = 0;\n    iVar8 = 0;\n    do {\n      iVar8 = iVar8 + 1;\n      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;\n      iVar16 = iVar16 + 0x30;\n      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }\n    } while (iVar8 < iVar7);\n  }\n  if (iVar25 != 0 || uVar6 != 0) {\n    uVar21 = *(uint *)(iVar5 + 0x94);\n    lVar33 = (**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21);\n    lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar6 = (uint)lVar3;\n    iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20);\n  }\n  *(uint *)(iVar5 + 0x4c) = uVar6;\n  *(int *)(iVar5 + 0x48) = iVar25;\n  *(uint *)(iVar5 + 0x54) = uVar6;\n  *(int *)(iVar5 + 0x50) = iVar25;\n  if (*(char *)(iVar5 + 7) == '\0') {\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n    if (*(char *)(iVar5 + 5) != '\x04') {\n      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }\n      goto LAB_0009be98;\n    }\n  }\n  else {\nLAB_0009be98:\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n  }\n  uVar32 = *(undefined4 *)(iVar7 + -0x7ce8);\n  *puVar22 = *(undefined4 *)(iVar7 + -0x7cec);\n  puVar22[1] = uVar32;\n  *(undefined1 *)(puVar22 + 2) = 0xff;\n  *(undefined1 *)((int)puVar22 + 9) = 0xff;\n  *(undefined1 *)((int)puVar22 + 10) = 0xff;\n  *(undefined1 *)((int)puVar22 + 0xb) = 0xff;\nLAB_0009becc:\n  uVar6 = 0;\n  sqlite3_randomness(4,iVar5 + 0x30);\n  uVar32 = *(undefined4 *)(iVar5 + 0x30);\n  *(char *)((int)puVar22 + 0xf) = (char)uVar32;\n  *(char *)(puVar22 + 3) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0xd) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0xe) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x1c);\n  pcVar28 = *(code **)(pcVar28 + 0xbfc10);\n  *(char *)((int)puVar22 + 0x13) = (char)uVar32;\n  *(char *)(puVar22 + 4) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x11) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x12) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x94);\n  *(char *)((int)puVar22 + 0x17) = (char)uVar32;\n  *(char *)(puVar22 + 5) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x15) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x16) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar5 + 0x98);\n  *(char *)((int)puVar22 + 0x1b) = (char)uVar32;\n  *(char *)(puVar22 + 6) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar22 + 0x19) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar22 + 0x1a) = (char)((uint)uVar32 >> 8);\n  (*pcVar28)(puVar22 + 7,0,uVar20 - 0x1c);\n  do {\n    if (*(uint *)(iVar5 + 0x94) <= uVar6) {\n      return 0;\n    }\n    iVar7 = **(int **)(iVar5 + 0x40);\n    uVar6 = uVar6 + uVar20;\n    uVar21 = (**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c));\n    uVar24 = *(uint *)(iVar5 + 0x4c);\n    uVar14 = uVar24 + uVar20;\n    *(uint *)(iVar5 + 0x4c) = uVar14;\n    *(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48);\n  } while (uVar21 == 0);\n  return uVar21;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "longlong lVar3;" (type_identifier "longlong") (identifier "lVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int in_zero;" (primitive_type "int") (identifier "in_zero") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "undefined4 *puVar15;" (type_identifier "undefined4") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "undefined4 *puVar18;" (type_identifier "undefined4") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "uint *puVar19;" (type_identifier "uint") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "uint uVar20;" (type_identifier "uint") (identifier "uVar20") (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "undefined4 *puVar22;" (type_identifier "undefined4") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "undefined *puVar23;" (type_identifier "undefined") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "uint uVar24;" (type_identifier "uint") (identifier "uVar24") (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "uint *puVar26;" (type_identifier "uint") (pointer_declarator "*puVar26" (* "*") (identifier "puVar26")) (; ";")) (declaration "undefined *puVar27;" (type_identifier "undefined") (pointer_declarator "*puVar27" (* "*") (identifier "puVar27")) (; ";")) (declaration "code *pcVar28;" (type_identifier "code") (pointer_declarator "*pcVar28" (* "*") (identifier "pcVar28")) (; ";")) (declaration "code *pcVar29;" (type_identifier "code") (pointer_declarator "*pcVar29" (* "*") (identifier "pcVar29")) (; ";")) (declaration "int *piVar30;" (primitive_type "int") (pointer_declarator "*piVar30" (* "*") (identifier "piVar30")) (; ";")) (declaration "int *piVar31;" (primitive_type "int") (pointer_declarator "*piVar31" (* "*") (identifier "piVar31")) (; ";")) (declaration "undefined4 uVar32;" (type_identifier "undefined4") (identifier "uVar32") (; ";")) (declaration "longlong lVar33;" (type_identifier "longlong") (identifier "lVar33") (; ";")) (declaration "undefined4 local_734;" (type_identifier "undefined4") (identifier "local_734") (; ";")) (declaration "uint local_72c;" (type_identifier "uint") (identifier "local_72c") (; ";")) (declaration "undefined4 local_724;" (type_identifier "undefined4") (identifier "local_724") (; ";")) (declaration "code *local_714;" (type_identifier "code") (pointer_declarator "*local_714" (* "*") (identifier "local_714")) (; ";")) (declaration "undefined4 local_710;" (type_identifier "undefined4") (identifier "local_710") (; ";")) (declaration "int local_70c;" (primitive_type "int") (identifier "local_70c") (; ";")) (declaration "int local_708;" (primitive_type "int") (identifier "local_708") (; ";")) (declaration "int local_704;" (primitive_type "int") (identifier "local_704") (; ";")) (declaration "int local_700 [4];" (primitive_type "int") (array_declarator "local_700 [4]" (identifier "local_700") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int local_6f0;" (primitive_type "int") (identifier "local_6f0") (; ";")) (declaration "int local_6ec;" (primitive_type "int") (identifier "local_6ec") (; ";")) (declaration "uint local_6e8;" (type_identifier "uint") (identifier "local_6e8") (; ";")) (declaration "undefined4 local_6e0;" (type_identifier "undefined4") (identifier "local_6e0") (; ";")) (declaration "undefined4 local_6dc;" (type_identifier "undefined4") (identifier "local_6dc") (; ";")) (declaration "undefined1 auStack_65c [516];" (type_identifier "undefined1") (array_declarator "auStack_65c [516]" (identifier "auStack_65c") ([ "[") (number_literal "516") (] "]")) (; ";")) (declaration "undefined4 auStack_458 [129];" (type_identifier "undefined4") (array_declarator "auStack_458 [129]" (identifier "auStack_458") ([ "[") (number_literal "129") (] "]")) (; ";")) (declaration "int local_254;" (primitive_type "int") (identifier "local_254") (; ";")) (declaration "uint *local_250;" (type_identifier "uint") (pointer_declarator "*local_250" (* "*") (identifier "local_250")) (; ";")) (declaration "uint local_24c;" (type_identifier "uint") (identifier "local_24c") (; ";")) (declaration "undefined *local_248;" (type_identifier "undefined") (pointer_declarator "*local_248" (* "*") (identifier "local_248")) (; ";")) (declaration "undefined4 *local_244;" (type_identifier "undefined4") (pointer_declarator "*local_244" (* "*") (identifier "local_244")) (; ";")) (declaration "int local_240;" (primitive_type "int") (identifier "local_240") (; ";")) (declaration "undefined4 *local_23c;" (type_identifier "undefined4") (pointer_declarator "*local_23c" (* "*") (identifier "local_23c")) (; ";")) (declaration "uint *local_238;" (type_identifier "uint") (pointer_declarator "*local_238" (* "*") (identifier "local_238")) (; ";")) (declaration "uint local_234;" (type_identifier "uint") (identifier "local_234") (; ";")) (declaration "int *local_230;" (primitive_type "int") (pointer_declarator "*local_230" (* "*") (identifier "local_230")) (; ";")) (declaration "undefined4 local_22c;" (type_identifier "undefined4") (identifier "local_22c") (; ";")) (declaration "uint *local_218;" (type_identifier "uint") (pointer_declarator "*local_218" (* "*") (identifier "local_218")) (; ";")) (declaration "undefined *local_208;" (type_identifier "undefined") (pointer_declarator "*local_208" (* "*") (identifier "local_208")) (; ";")) (declaration "int local_134;" (primitive_type "int") (identifier "local_134") (; ";")) (declaration "uint *local_130;" (type_identifier "uint") (pointer_declarator "*local_130" (* "*") (identifier "local_130")) (; ";")) (declaration "uint local_12c;" (type_identifier "uint") (identifier "local_12c") (; ";")) (declaration "undefined *local_128;" (type_identifier "undefined") (pointer_declarator "*local_128" (* "*") (identifier "local_128")) (; ";")) (declaration "undefined4 *local_124;" (type_identifier "undefined4") (pointer_declarator "*local_124" (* "*") (identifier "local_124")) (; ";")) (declaration "int local_120;" (primitive_type "int") (identifier "local_120") (; ";")) (declaration "undefined4 *local_11c;" (type_identifier "undefined4") (pointer_declarator "*local_11c" (* "*") (identifier "local_11c")) (; ";")) (declaration "uint *local_118;" (type_identifier "uint") (pointer_declarator "*local_118" (* "*") (identifier "local_118")) (; ";")) (declaration "uint local_114;" (type_identifier "uint") (identifier "local_114") (; ";")) (declaration "int *local_110;" (primitive_type "int") (pointer_declarator "*local_110" (* "*") (identifier "local_110")) (; ";")) (declaration "undefined4 local_10c;" (type_identifier "undefined4") (identifier "local_10c") (; ";")) (declaration "undefined4 local_f8;" (type_identifier "undefined4") (identifier "local_f8") (; ";")) (declaration "undefined4 local_f4;" (type_identifier "undefined4") (identifier "local_f4") (; ";")) (declaration "undefined4 local_f0;" (type_identifier "undefined4") (identifier "local_f0") (; ";")) (declaration "undefined4 local_d8;" (type_identifier "undefined4") (identifier "local_d8") (; ";")) (declaration "undefined4 local_d4;" (type_identifier "undefined4") (identifier "local_d4") (; ";")) (declaration "undefined4 auStack_d0 [6];" (type_identifier "undefined4") (array_declarator "auStack_d0 [6]" (identifier "auStack_d0") ([ "[") (number_literal "6") (] "]")) (; ";")) (declaration "uint local_b8;" (type_identifier "uint") (identifier "local_b8") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar4 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar4 = PTR___stack_chk_guard_0015ba2c" (identifier "puVar4") (= "=") (identifier "PTR___stack_chk_guard_0015ba2c")) (; ";")) (expression_statement "puVar27 = PTR_sqlite3_temp_directory_0015b854;" (assignment_expression "puVar27 = PTR_sqlite3_temp_directory_0015b854" (identifier "puVar27") (= "=") (identifier "PTR_sqlite3_temp_directory_0015b854")) (; ";")) (expression_statement "puVar23 = PTR_DAT_0015b5d8;" (assignment_expression "puVar23 = PTR_DAT_0015b5d8" (identifier "puVar23") (= "=") (identifier "PTR_DAT_0015b5d8")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0015ba2c" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0015ba2c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0015ba2c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0015ba2c")))) (; ";")) (expression_statement "*(undefined1 *)param_2 = 0;" (assignment_expression "*(undefined1 *)param_2 = 0" (pointer_expression "*(undefined1 *)param_2" (* "*") (cast_expression "(undefined1 *)param_2" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar20 = *(uint *)puVar27;" (assignment_expression "uVar20 = *(uint *)puVar27" (identifier "uVar20") (= "=") (pointer_expression "*(uint *)puVar27" (* "*") (cast_expression "(uint *)puVar27" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar27")))) (; ";")) (if_statement "if (*(int *)(puVar23 + -0x4eb0) == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc);\n    *(undefined4 *)(puVar23 + -0x4eb0) = uVar32;\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }\n  else {\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }" (if "if") (parenthesized_expression "(*(int *)(puVar23 + -0x4eb0) == 0)" (( "(") (binary_expression "*(int *)(puVar23 + -0x4eb0) == 0" (pointer_expression "*(int *)(puVar23 + -0x4eb0)" (* "*") (cast_expression "(int *)(puVar23 + -0x4eb0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + -0x4eb0)" (( "(") (binary_expression "puVar23 + -0x4eb0" (identifier "puVar23") (+ "+") (number_literal "-0x4eb0")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc);\n    *(undefined4 *)(puVar23 + -0x4eb0) = uVar32;\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }" ({ "{") (expression_statement "uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc);" (assignment_expression "uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc)" (identifier "uVar32") (= "=") (call_expression "(*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc)" (parenthesized_expression "(*(code *)PTR_getenv_0015b9e4)" (( "(") (pointer_expression "*(code *)PTR_getenv_0015b9e4" (* "*") (cast_expression "(code *)PTR_getenv_0015b9e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_getenv_0015b9e4"))) () ")")) (argument_list "(PTR_UINT_0015b5fc + -0x73bc)" (( "(") (binary_expression "PTR_UINT_0015b5fc + -0x73bc" (identifier "PTR_UINT_0015b5fc") (+ "+") (number_literal "-0x73bc")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar23 + -0x4eb0) = uVar32;" (assignment_expression "*(undefined4 *)(puVar23 + -0x4eb0) = uVar32" (pointer_expression "*(undefined4 *)(puVar23 + -0x4eb0)" (* "*") (cast_expression "(undefined4 *)(puVar23 + -0x4eb0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + -0x4eb0)" (( "(") (binary_expression "puVar23 + -0x4eb0" (identifier "puVar23") (+ "+") (number_literal "-0x4eb0")) () ")")))) (= "=") (identifier "uVar32")) (; ";")) (expression_statement "iVar5 = *(int *)(puVar23 + -0x4eac);" (assignment_expression "iVar5 = *(int *)(puVar23 + -0x4eac)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar23 + -0x4eac)" (* "*") (cast_expression "(int *)(puVar23 + -0x4eac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + -0x4eac)" (( "(") (binary_expression "puVar23 + -0x4eac" (identifier "puVar23") (+ "+") (number_literal "-0x4eac")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }" (else "else") (compound_statement "{\n    iVar5 = *(int *)(puVar23 + -0x4eac);\n  }" ({ "{") (expression_statement "iVar5 = *(int *)(puVar23 + -0x4eac);" (assignment_expression "iVar5 = *(int *)(puVar23 + -0x4eac)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar23 + -0x4eac)" (* "*") (cast_expression "(int *)(puVar23 + -0x4eac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + -0x4eac)" (( "(") (binary_expression "puVar23 + -0x4eac" (identifier "puVar23") (+ "+") (number_literal "-0x4eac")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (iVar5 == 0) {\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac);\n    *(undefined4 *)(puVar23 + -0x4eac) = uVar32;\n  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac);\n    *(undefined4 *)(puVar23 + -0x4eac) = uVar32;\n  }" ({ "{") (expression_statement "uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac);" (assignment_expression "uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac)" (identifier "uVar32") (= "=") (call_expression "(*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac)" (parenthesized_expression "(*(code *)PTR_getenv_0015b9e4)" (( "(") (pointer_expression "*(code *)PTR_getenv_0015b9e4" (* "*") (cast_expression "(code *)PTR_getenv_0015b9e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_getenv_0015b9e4"))) () ")")) (argument_list "(PTR_UINT_0015b5fc + -0x73ac)" (( "(") (binary_expression "PTR_UINT_0015b5fc + -0x73ac" (identifier "PTR_UINT_0015b5fc") (+ "+") (number_literal "-0x73ac")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar23 + -0x4eac) = uVar32;" (assignment_expression "*(undefined4 *)(puVar23 + -0x4eac) = uVar32" (pointer_expression "*(undefined4 *)(puVar23 + -0x4eac)" (* "*") (cast_expression "(undefined4 *)(puVar23 + -0x4eac)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + -0x4eac)" (( "(") (binary_expression "puVar23 + -0x4eac" (identifier "puVar23") (+ "+") (number_literal "-0x4eac")) () ")")))) (= "=") (identifier "uVar32")) (; ";")) (} "}"))) (expression_statement "puVar27 = PTR_DAT_0015b5d8;" (assignment_expression "puVar27 = PTR_DAT_0015b5d8" (identifier "puVar27") (= "=") (identifier "PTR_DAT_0015b5d8")) (; ";")) (expression_statement "puVar19 = (uint *)(puVar23 + -0x4eb0);" (assignment_expression "puVar19 = (uint *)(puVar23 + -0x4eb0)" (identifier "puVar19") (= "=") (cast_expression "(uint *)(puVar23 + -0x4eb0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + -0x4eb0)" (( "(") (binary_expression "puVar23 + -0x4eb0" (identifier "puVar23") (+ "+") (number_literal "-0x4eb0")) () ")")))) (; ";")) (expression_statement "puVar26 = (uint *)(puVar23 + -0x4e98);" (assignment_expression "puVar26 = (uint *)(puVar23 + -0x4e98)" (identifier "puVar26") (= "=") (cast_expression "(uint *)(puVar23 + -0x4e98)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + -0x4e98)" (( "(") (binary_expression "puVar23 + -0x4e98" (identifier "puVar23") (+ "+") (number_literal "-0x4e98")) () ")")))) (; ";")) (expression_statement "puVar22 = auStack_d0;" (assignment_expression "puVar22 = auStack_d0" (identifier "puVar22") (= "=") (identifier "auStack_d0")) (; ";")) (expression_statement "piVar30 = (int *)0x4000;" (assignment_expression "piVar30 = (int *)0x4000" (identifier "piVar30") (= "=") (cast_expression "(int *)0x4000" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4000"))) (; ";")) (expression_statement "puVar23 = PTR_DAT_0015b5d8 + -0x4bb8;" (assignment_expression "puVar23 = PTR_DAT_0015b5d8 + -0x4bb8" (identifier "puVar23") (= "=") (binary_expression "PTR_DAT_0015b5d8 + -0x4bb8" (identifier "PTR_DAT_0015b5d8") (+ "+") (number_literal "-0x4bb8"))) (; ";")) (while_statement "while( true ) {\n    puVar15 = puVar22;\n    if ((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)) {\n      puVar19 = (uint *)&DAT_0000000c;\n      puVar26 = (uint *)((int)param_2 + param_1 + -2);\n      puVar22 = &local_d8;\n      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);\n      goto LAB_0009aa88;\n    }\n    local_234 = 0x190a;\n    if (puVar19 == puVar26) break;\n    uVar20 = *puVar19;\n    puVar19 = puVar19 + 1;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    puVar15 = puVar22;\n    if ((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)) {\n      puVar19 = (uint *)&DAT_0000000c;\n      puVar26 = (uint *)((int)param_2 + param_1 + -2);\n      puVar22 = &local_d8;\n      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);\n      goto LAB_0009aa88;\n    }\n    local_234 = 0x190a;\n    if (puVar19 == puVar26) break;\n    uVar20 = *puVar19;\n    puVar19 = puVar19 + 1;\n  }" ({ "{") (expression_statement "puVar15 = puVar22;" (assignment_expression "puVar15 = puVar22" (identifier "puVar15") (= "=") (identifier "puVar22")) (; ";")) (if_statement "if ((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)) {\n      puVar19 = (uint *)&DAT_0000000c;\n      puVar26 = (uint *)((int)param_2 + param_1 + -2);\n      puVar22 = &local_d8;\n      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);\n      goto LAB_0009aa88;\n    }" (if "if") (parenthesized_expression "((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0))" (( "(") (binary_expression "(((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)" (parenthesized_expression "(((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000))" (( "(") (binary_expression "((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&\n        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)" (parenthesized_expression "((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0))" (( "(") (binary_expression "(uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)" (parenthesized_expression "(uVar20 != 0)" (( "(") (binary_expression "uVar20 != 0" (identifier "uVar20") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)" (( "(") (comma_expression "iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0" (assignment_expression "iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(puVar27 + -0x4b84))(uVar20)" (parenthesized_expression "(**(code **)(puVar27 + -0x4b84))" (( "(") (pointer_expression "**(code **)(puVar27 + -0x4b84)" (* "*") (pointer_expression "*(code **)(puVar27 + -0x4b84)" (* "*") (cast_expression "(code **)(puVar27 + -0x4b84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x4b84)" (( "(") (binary_expression "puVar27 + -0x4b84" (identifier "puVar27") (+ "+") (number_literal "-0x4b84")) () ")"))))) () ")")) (argument_list "(uVar20)" (( "(") (identifier "uVar20") () ")")))) (, ",") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)" (( "(") (comma_expression "puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000" (assignment_expression "puVar15 = (undefined4 *)0x3" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)0x3" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) (, ",") (binary_expression "(local_b8 & 0xf000) == 0x4000" (parenthesized_expression "(local_b8 & 0xf000)" (( "(") (binary_expression "local_b8 & 0xf000" (identifier "local_b8") (& "&") (number_literal "0xf000")) () ")")) (== "==") (number_literal "0x4000"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)" (( "(") (comma_expression "iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0" (assignment_expression "iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(puVar27 + -0x4b9c))(uVar20)" (parenthesized_expression "(**(code **)(puVar27 + -0x4b9c))" (( "(") (pointer_expression "**(code **)(puVar27 + -0x4b9c)" (* "*") (pointer_expression "*(code **)(puVar27 + -0x4b9c)" (* "*") (cast_expression "(code **)(puVar27 + -0x4b9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x4b9c)" (( "(") (binary_expression "puVar27 + -0x4b9c" (identifier "puVar27") (+ "+") (number_literal "-0x4b9c")) () ")"))))) () ")")) (argument_list "(uVar20)" (( "(") (identifier "uVar20") () ")")))) (, ",") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      puVar19 = (uint *)&DAT_0000000c;\n      puVar26 = (uint *)((int)param_2 + param_1 + -2);\n      puVar22 = &local_d8;\n      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);\n      goto LAB_0009aa88;\n    }" ({ "{") (expression_statement "puVar19 = (uint *)&DAT_0000000c;" (assignment_expression "puVar19 = (uint *)&DAT_0000000c" (identifier "puVar19") (= "=") (cast_expression "(uint *)&DAT_0000000c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0000000c" (& "&") (identifier "DAT_0000000c")))) (; ";")) (expression_statement "puVar26 = (uint *)((int)param_2 + param_1 + -2);" (assignment_expression "puVar26 = (uint *)((int)param_2 + param_1 + -2)" (identifier "puVar26") (= "=") (cast_expression "(uint *)((int)param_2 + param_1 + -2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + param_1 + -2)" (( "(") (binary_expression "(int)param_2 + param_1 + -2" (binary_expression "(int)param_2 + param_1" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (identifier "param_1")) (+ "+") (number_literal "-2")) () ")")))) (; ";")) (expression_statement "puVar22 = &local_d8;" (assignment_expression "puVar22 = &local_d8" (identifier "puVar22") (= "=") (pointer_expression "&local_d8" (& "&") (identifier "local_d8"))) (; ";")) (expression_statement "piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);" (assignment_expression "piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4)" (identifier "piVar30") (= "=") (cast_expression "(int *)(PTR_UINT_0015b5fc + -0x73a4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_0015b5fc + -0x73a4)" (( "(") (binary_expression "PTR_UINT_0015b5fc + -0x73a4" (identifier "PTR_UINT_0015b5fc") (+ "+") (number_literal "-0x73a4")) () ")")))) (; ";")) (goto_statement "goto LAB_0009aa88;" (goto "goto") (statement_identifier "LAB_0009aa88") (; ";")) (} "}"))) (expression_statement "local_234 = 0x190a;" (assignment_expression "local_234 = 0x190a" (identifier "local_234") (= "=") (number_literal "0x190a")) (; ";")) (if_statement "if (puVar19 == puVar26) break;" (if "if") (parenthesized_expression "(puVar19 == puVar26)" (( "(") (binary_expression "puVar19 == puVar26" (identifier "puVar19") (== "==") (identifier "puVar26")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar20 = *puVar19;" (assignment_expression "uVar20 = *puVar19" (identifier "uVar20") (= "=") (pointer_expression "*puVar19" (* "*") (identifier "puVar19"))) (; ";")) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" (identifier "puVar19") (= "=") (binary_expression "puVar19 + 1" (identifier "puVar19") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0009a9fc;" (goto "goto") (statement_identifier "LAB_0009a9fc") (; ";")) (labeled_statement "joined_r0x0009b6fc:\n  if (param_4 == uVar20) goto LAB_0009bb18;" (statement_identifier "joined_r0x0009b6fc") (: ":") (if_statement "if (param_4 == uVar20) goto LAB_0009bb18;" (if "if") (parenthesized_expression "(param_4 == uVar20)" (( "(") (binary_expression "param_4 == uVar20" (identifier "param_4") (== "==") (identifier "uVar20")) () ")")) (goto_statement "goto LAB_0009bb18;" (goto "goto") (statement_identifier "LAB_0009bb18") (; ";")))) (expression_statement "piVar10 = (int *)piVar13[2];" (assignment_expression "piVar10 = (int *)piVar13[2]" (identifier "piVar10") (= "=") (cast_expression "(int *)piVar13[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar13[2]" (identifier "piVar13") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (piVar10 == (int *)0x0) goto LAB_0009b728;" (if "if") (parenthesized_expression "(piVar10 == (int *)0x0)" (( "(") (binary_expression "piVar10 == (int *)0x0" (identifier "piVar10") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0009b728;" (goto "goto") (statement_identifier "LAB_0009b728") (; ";"))) (expression_statement "uVar20 = piVar10[1];" (assignment_expression "uVar20 = piVar10[1]" (identifier "uVar20") (= "=") (subscript_expression "piVar10[1]" (identifier "piVar10") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar17 = piVar13 + 2;" (assignment_expression "piVar17 = piVar13 + 2" (identifier "piVar17") (= "=") (binary_expression "piVar13 + 2" (identifier "piVar13") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "piVar13 = piVar10;" (assignment_expression "piVar13 = piVar10" (identifier "piVar13") (= "=") (identifier "piVar10")) (; ";")) (goto_statement "goto joined_r0x0009b6fc;" (goto "goto") (statement_identifier "joined_r0x0009b6fc") (; ";")) (labeled_statement "LAB_0009bb18:\n  pcVar29 = *(code **)(pcVar28 + 0xc0508);" (statement_identifier "LAB_0009bb18") (: ":") (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0508);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0508)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(pcVar28 + 0xc0508)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0508)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0508)" (( "(") (binary_expression "pcVar28 + 0xc0508" (identifier "pcVar28") (+ "+") (number_literal "0xc0508")) () ")"))))) (; ";"))) (expression_statement "*piVar17 = piVar13[2];" (assignment_expression "*piVar17 = piVar13[2]" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (= "=") (subscript_expression "piVar13[2]" (identifier "piVar13") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "(*pcVar29)(piVar31[4]);" (call_expression "(*pcVar29)(piVar31[4])" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(piVar31[4])" (( "(") (subscript_expression "piVar31[4]" (identifier "piVar31") ([ "[") (number_literal "4") (] "]")) () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0508))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0508)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0508)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0508)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0508)" (( "(") (binary_expression "pcVar28 + 0xc0508" (identifier "pcVar28") (+ "+") (number_literal "0xc0508")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar7 + -0x4358))" (( "(") (pointer_expression "*(undefined4 *)(iVar7 + -0x4358)" (* "*") (cast_expression "(undefined4 *)(iVar7 + -0x4358)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + -0x4358)" (( "(") (binary_expression "iVar7 + -0x4358" (identifier "iVar7") (+ "+") (number_literal "-0x4358")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar7 = *piVar13;" (assignment_expression "iVar7 = *piVar13" (identifier "iVar7") (= "=") (pointer_expression "*piVar13" (* "*") (identifier "piVar13"))) (; ";")) (expression_statement "param_3[7] = (int)piVar13;" (assignment_expression "param_3[7] = (int)piVar13" (subscript_expression "param_3[7]" (identifier "param_3") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13"))) (; ";")) (goto_statement "goto LAB_0009b2a0;" (goto "goto") (statement_identifier "LAB_0009b2a0") (; ";")) (labeled_statement "LAB_0009b728:\n  (**(code **)(pcVar28 + 0xc0508))(piVar31[4]);" (statement_identifier "LAB_0009b728") (: ":") (expression_statement "(**(code **)(pcVar28 + 0xc0508))(piVar31[4]);" (call_expression "(**(code **)(pcVar28 + 0xc0508))(piVar31[4])" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0508))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0508)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0508)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0508)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0508)" (( "(") (binary_expression "pcVar28 + 0xc0508" (identifier "pcVar28") (+ "+") (number_literal "0xc0508")) () ")"))))) () ")")) (argument_list "(piVar31[4])" (( "(") (subscript_expression "piVar31[4]" (identifier "piVar31") ([ "[") (number_literal "4") (] "]")) () ")"))) (; ";"))) (expression_statement "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0508))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0508)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0508)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0508)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0508)" (( "(") (binary_expression "pcVar28 + 0xc0508" (identifier "pcVar28") (+ "+") (number_literal "0xc0508")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar7 + -0x4358))" (( "(") (pointer_expression "*(undefined4 *)(iVar7 + -0x4358)" (* "*") (cast_expression "(undefined4 *)(iVar7 + -0x4358)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + -0x4358)" (( "(") (binary_expression "iVar7 + -0x4358" (identifier "iVar7") (+ "+") (number_literal "-0x4358")) () ")")))) () ")"))) (; ";")) (goto_statement "goto LAB_0009b7e8;" (goto "goto") (statement_identifier "LAB_0009b7e8") (; ";")) (while_statement "while( true ) {\n    puVar19 = (uint *)((int)puVar19 + -1);\n    puVar15 = (undefined4 *)0x0;\n    if (puVar19 == (uint *)0x0) goto LAB_0009aae4;\n    iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2);\n    local_234 = 0;\n    if (iVar5 != 0) break;\nLAB_0009aa88:\n    sqlite3_randomness(8,puVar22);\n    *(char *)puVar26 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar15 = param_2;\n    param_3 = piVar30;\n    param_4 = uVar20;\n    (*(code *)PTR_sqlite3_snprintf_0015b610)(param_1);\n    if (*(char *)puVar26 != '\0') {\nLAB_0009aae4:\n      local_234 = 1;\n      break;\n    }\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    puVar19 = (uint *)((int)puVar19 + -1);\n    puVar15 = (undefined4 *)0x0;\n    if (puVar19 == (uint *)0x0) goto LAB_0009aae4;\n    iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2);\n    local_234 = 0;\n    if (iVar5 != 0) break;\nLAB_0009aa88:\n    sqlite3_randomness(8,puVar22);\n    *(char *)puVar26 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar15 = param_2;\n    param_3 = piVar30;\n    param_4 = uVar20;\n    (*(code *)PTR_sqlite3_snprintf_0015b610)(param_1);\n    if (*(char *)puVar26 != '\0') {\nLAB_0009aae4:\n      local_234 = 1;\n      break;\n    }\n  }" ({ "{") (expression_statement "puVar19 = (uint *)((int)puVar19 + -1);" (assignment_expression "puVar19 = (uint *)((int)puVar19 + -1)" (identifier "puVar19") (= "=") (cast_expression "(uint *)((int)puVar19 + -1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + -1)" (( "(") (binary_expression "(int)puVar19 + -1" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "puVar15 = (undefined4 *)0x0;" (assignment_expression "puVar15 = (undefined4 *)0x0" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (puVar19 == (uint *)0x0) goto LAB_0009aae4;" (if "if") (parenthesized_expression "(puVar19 == (uint *)0x0)" (( "(") (binary_expression "puVar19 == (uint *)0x0" (identifier "puVar19") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0009aae4;" (goto "goto") (statement_identifier "LAB_0009aae4") (; ";"))) (expression_statement "iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2);" (assignment_expression "iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(puVar27 + -0x4b9c))(param_2)" (parenthesized_expression "(**(code **)(puVar27 + -0x4b9c))" (( "(") (pointer_expression "**(code **)(puVar27 + -0x4b9c)" (* "*") (pointer_expression "*(code **)(puVar27 + -0x4b9c)" (* "*") (cast_expression "(code **)(puVar27 + -0x4b9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x4b9c)" (( "(") (binary_expression "puVar27 + -0x4b9c" (identifier "puVar27") (+ "+") (number_literal "-0x4b9c")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "local_234 = 0;" (assignment_expression "local_234 = 0" (identifier "local_234") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar5 != 0) break;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_0009aa88:\n    sqlite3_randomness(8,puVar22);" (statement_identifier "LAB_0009aa88") (: ":") (expression_statement "sqlite3_randomness(8,puVar22);" (call_expression "sqlite3_randomness(8,puVar22)" (identifier "sqlite3_randomness") (argument_list "(8,puVar22)" (( "(") (number_literal "8") (, ",") (identifier "puVar22") () ")"))) (; ";"))) (expression_statement "*(char *)puVar26 = '\0';" (assignment_expression "*(char *)puVar26 = '\0'" (pointer_expression "*(char *)puVar26" (* "*") (cast_expression "(char *)puVar26" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar26"))) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" (identifier "local_f0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_f4 = local_d4;" (assignment_expression "local_f4 = local_d4" (identifier "local_f4") (= "=") (identifier "local_d4")) (; ";")) (expression_statement "local_f8 = local_d8;" (assignment_expression "local_f8 = local_d8" (identifier "local_f8") (= "=") (identifier "local_d8")) (; ";")) (expression_statement "puVar15 = param_2;" (assignment_expression "puVar15 = param_2" (identifier "puVar15") (= "=") (identifier "param_2")) (; ";")) (expression_statement "param_3 = piVar30;" (assignment_expression "param_3 = piVar30" (identifier "param_3") (= "=") (identifier "piVar30")) (; ";")) (expression_statement "param_4 = uVar20;" (assignment_expression "param_4 = uVar20" (identifier "param_4") (= "=") (identifier "uVar20")) (; ";")) (expression_statement "(*(code *)PTR_sqlite3_snprintf_0015b610)(param_1);" (call_expression "(*(code *)PTR_sqlite3_snprintf_0015b610)(param_1)" (parenthesized_expression "(*(code *)PTR_sqlite3_snprintf_0015b610)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_snprintf_0015b610" (* "*") (cast_expression "(code *)PTR_sqlite3_snprintf_0015b610" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_snprintf_0015b610"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (if_statement "if (*(char *)puVar26 != '\0') {\nLAB_0009aae4:\n      local_234 = 1;\n      break;\n    }" (if "if") (parenthesized_expression "(*(char *)puVar26 != '\0')" (( "(") (binary_expression "*(char *)puVar26 != '\0'" (pointer_expression "*(char *)puVar26" (* "*") (cast_expression "(char *)puVar26" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar26"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0009aae4:\n      local_234 = 1;\n      break;\n    }" ({ "{") (labeled_statement "LAB_0009aae4:\n      local_234 = 1;" (statement_identifier "LAB_0009aae4") (: ":") (expression_statement "local_234 = 1;" (assignment_expression "local_234 = 1" (identifier "local_234") (= "=") (number_literal "1")) (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0009a9fc:\n  if (local_2c == *(int *)puVar4) {\n    return local_234;\n  }" (statement_identifier "LAB_0009a9fc") (: ":") (if_statement "if (local_2c == *(int *)puVar4) {\n    return local_234;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar4)" (( "(") (binary_expression "local_2c == *(int *)puVar4" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar4" (* "*") (cast_expression "(int *)puVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4")))) () ")")) (compound_statement "{\n    return local_234;\n  }" ({ "{") (return_statement "return local_234;" (return "return") (identifier "local_234") (; ";")) (} "}")))) (expression_statement "uVar32 = 0x9ab38;" (assignment_expression "uVar32 = 0x9ab38" (identifier "uVar32") (= "=") (number_literal "0x9ab38")) (; ";")) (expression_statement "puVar27 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar27 = PTR___stack_chk_fail_0015ba10" (identifier "puVar27") (= "=") (identifier "PTR___stack_chk_fail_0015ba10")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0015ba10"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_208 = puVar27 + 0xc8a78;" (assignment_expression "local_208 = puVar27 + 0xc8a78" (identifier "local_208") (= "=") (binary_expression "puVar27 + 0xc8a78" (identifier "puVar27") (+ "+") (number_literal "0xc8a78"))) (; ";")) (expression_statement "piVar31 = *(int **)(puVar27 + 0xc0ef4);" (assignment_expression "piVar31 = *(int **)(puVar27 + 0xc0ef4)" (identifier "piVar31") (= "=") (pointer_expression "*(int **)(puVar27 + 0xc0ef4)" (* "*") (cast_expression "(int **)(puVar27 + 0xc0ef4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + 0xc0ef4)" (( "(") (binary_expression "puVar27 + 0xc0ef4" (identifier "puVar27") (+ "+") (number_literal "0xc0ef4")) () ")"))))) (; ";")) (expression_statement "iVar5 = *piVar31;" (assignment_expression "iVar5 = *piVar31" (identifier "iVar5") (= "=") (pointer_expression "*piVar31" (* "*") (identifier "piVar31"))) (; ";")) (expression_statement "local_134 = iVar5;" (assignment_expression "local_134 = iVar5" (identifier "local_134") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "local_130 = puVar19;" (assignment_expression "local_130 = puVar19" (identifier "local_130") (= "=") (identifier "puVar19")) (; ";")) (expression_statement "local_12c = uVar20;" (assignment_expression "local_12c = uVar20" (identifier "local_12c") (= "=") (identifier "uVar20")) (; ";")) (expression_statement "local_128 = puVar23;" (assignment_expression "local_128 = puVar23" (identifier "local_128") (= "=") (identifier "puVar23")) (; ";")) (expression_statement "local_124 = param_2;" (assignment_expression "local_124 = param_2" (identifier "local_124") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_120 = param_1;" (assignment_expression "local_120 = param_1" (identifier "local_120") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_11c = puVar22;" (assignment_expression "local_11c = puVar22" (identifier "local_11c") (= "=") (identifier "puVar22")) (; ";")) (expression_statement "local_118 = puVar26;" (assignment_expression "local_118 = puVar26" (identifier "local_118") (= "=") (identifier "puVar26")) (; ";")) (expression_statement "local_114 = local_234;" (assignment_expression "local_114 = local_234" (identifier "local_114") (= "=") (identifier "local_234")) (; ";")) (expression_statement "local_110 = piVar30;" (assignment_expression "local_110 = piVar30" (identifier "local_110") (= "=") (identifier "piVar30")) (; ";")) (expression_statement "local_10c = uVar32;" (assignment_expression "local_10c = uVar32" (identifier "local_10c") (= "=") (identifier "uVar32")) (; ";")) (if_statement "if (puVar15 < (undefined4 *)0x15) {\n                    \n                    \n    uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))();\n    return uVar20;\n  }" (if "if") (parenthesized_expression "(puVar15 < (undefined4 *)0x15)" (( "(") (binary_expression "puVar15 < (undefined4 *)0x15" (identifier "puVar15") (< "<") (cast_expression "(undefined4 *)0x15" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x15"))) () ")")) (compound_statement "{\n                    \n                    \n    uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))();\n    return uVar20;\n  }" ({ "{") (expression_statement "uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))();" (assignment_expression "uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))()" (identifier "uVar20") (= "=") (call_expression "(*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))()" (parenthesized_expression "(*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       ))" (( "(") (pointer_expression "*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       )" (* "*") (cast_expression "(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       )" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)\n                       )" (( "(") (binary_expression "local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)" (identifier "local_208") (+ "+") (pointer_expression "*(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)" (( "(") (binary_expression "*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4" (binary_expression "*(int *)(puVar27 + 0xc0ac4) + 0xd74" (pointer_expression "*(int *)(puVar27 + 0xc0ac4)" (* "*") (cast_expression "(int *)(puVar27 + 0xc0ac4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + 0xc0ac4)" (( "(") (binary_expression "puVar27 + 0xc0ac4" (identifier "puVar27") (+ "+") (number_literal "0xc0ac4")) () ")")))) (+ "+") (number_literal "0xd74")) (+ "+") (binary_expression "(int)puVar15 * 4" (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")) (* "*") (number_literal "4"))) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar20;" (return "return") (identifier "uVar20") (; ";")) (} "}"))) (if_statement "if (iVar5 == *piVar31) {\n    return 0xc;\n  }" (if "if") (parenthesized_expression "(iVar5 == *piVar31)" (( "(") (binary_expression "iVar5 == *piVar31" (identifier "iVar5") (== "==") (pointer_expression "*piVar31" (* "*") (identifier "piVar31"))) () ")")) (compound_statement "{\n    return 0xc;\n  }" ({ "{") (return_statement "return 0xc;" (return "return") (number_literal "0xc") (; ";")) (} "}"))) (expression_statement "pcVar28 = *(code **)(puVar27 + 0xc0ed8);" (assignment_expression "pcVar28 = *(code **)(puVar27 + 0xc0ed8)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(puVar27 + 0xc0ed8)" (* "*") (cast_expression "(code **)(puVar27 + 0xc0ed8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + 0xc0ed8)" (( "(") (binary_expression "puVar27 + 0xc0ed8" (identifier "puVar27") (+ "+") (number_literal "0xc0ed8")) () ")"))))) (; ";")) (expression_statement "uVar32 = 0x9b1ac;" (assignment_expression "uVar32 = 0x9b1ac" (identifier "uVar32") (= "=") (number_literal "0x9b1ac")) (; ";")) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar21 = param_4 & 8;" (assignment_expression "uVar21 = param_4 & 8" (identifier "uVar21") (= "=") (binary_expression "param_4 & 8" (identifier "param_4") (& "&") (number_literal "8"))) (; ";")) (expression_statement "uVar24 = param_4 & 0xffffff00;" (assignment_expression "uVar24 = param_4 & 0xffffff00" (identifier "uVar24") (= "=") (binary_expression "param_4 & 0xffffff00" (identifier "param_4") (& "&") (number_literal "0xffffff00"))) (; ";")) (expression_statement "piVar30 = *(int **)(pcVar28 + 0xc0880);" (assignment_expression "piVar30 = *(int **)(pcVar28 + 0xc0880)" (identifier "piVar30") (= "=") (pointer_expression "*(int **)(pcVar28 + 0xc0880)" (* "*") (cast_expression "(int **)(pcVar28 + 0xc0880)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0880)" (( "(") (binary_expression "pcVar28 + 0xc0880" (identifier "pcVar28") (+ "+") (number_literal "0xc0880")) () ")"))))) (; ";")) (expression_statement "local_254 = *piVar30;" (assignment_expression "local_254 = *piVar30" (identifier "local_254") (= "=") (pointer_expression "*piVar30" (* "*") (identifier "piVar30"))) (; ";")) (expression_statement "local_72c = param_4 & 1;" (assignment_expression "local_72c = param_4 & 1" (identifier "local_72c") (= "=") (binary_expression "param_4 & 1" (identifier "param_4") (& "&") (number_literal "1"))) (; ";")) (expression_statement "uVar6 = param_4 & 2;" (assignment_expression "uVar6 = param_4 & 2" (identifier "uVar6") (= "=") (binary_expression "param_4 & 2" (identifier "param_4") (& "&") (number_literal "2"))) (; ";")) (expression_statement "puVar18 = puVar15;" (assignment_expression "puVar18 = puVar15" (identifier "puVar18") (= "=") (identifier "puVar15")) (; ";")) (expression_statement "local_250 = puVar19;" (assignment_expression "local_250 = puVar19" (identifier "local_250") (= "=") (identifier "puVar19")) (; ";")) (expression_statement "local_24c = uVar20;" (assignment_expression "local_24c = uVar20" (identifier "local_24c") (= "=") (identifier "uVar20")) (; ";")) (expression_statement "local_248 = puVar23;" (assignment_expression "local_248 = puVar23" (identifier "local_248") (= "=") (identifier "puVar23")) (; ";")) (expression_statement "local_244 = param_2;" (assignment_expression "local_244 = param_2" (identifier "local_244") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_240 = param_1;" (assignment_expression "local_240 = param_1" (identifier "local_240") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_23c = puVar22;" (assignment_expression "local_23c = puVar22" (identifier "local_23c") (= "=") (identifier "puVar22")) (; ";")) (expression_statement "local_238 = puVar26;" (assignment_expression "local_238 = puVar26" (identifier "local_238") (= "=") (identifier "puVar26")) (; ";")) (expression_statement "local_230 = piVar31;" (assignment_expression "local_230 = piVar31" (identifier "local_230") (= "=") (identifier "piVar31")) (; ";")) (expression_statement "local_22c = uVar32;" (assignment_expression "local_22c = uVar32" (identifier "local_22c") (= "=") (identifier "uVar32")) (; ";")) (if_statement "if ((param_4 & 4) == 0) {\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    bVar2 = false;\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (iVar7 != *(int *)(iVar25 + -0x4354)) goto LAB_0009b46c;\nLAB_0009b270:\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    if (uVar24 == 0x100) {\n      iVar7 = *(int *)(pcVar28 + 0xc042c);\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));\n      if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }\n      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\nLAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);\n      if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }\n      uVar20 = 7;\n    }\n    else {\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }\n  }\n  else {\n    if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (*(int *)(iVar25 + -0x4354) != iVar7) {\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    bVar2 = true;\n    if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;\nLAB_0009b298:\n    iVar7 = -1;\nLAB_0009b2a0:\n    uVar20 = uVar6;\n    if ((param_4 & 4) != 0) {\n      uVar20 = uVar6 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    (*pcVar29)(param_3[7]);\n  }" (if "if") (parenthesized_expression "((param_4 & 4) == 0)" (( "(") (binary_expression "(param_4 & 4) == 0" (parenthesized_expression "(param_4 & 4)" (( "(") (binary_expression "param_4 & 4" (identifier "param_4") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    bVar2 = false;\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (iVar7 != *(int *)(iVar25 + -0x4354)) goto LAB_0009b46c;\nLAB_0009b270:\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    if (uVar24 == 0x100) {\n      iVar7 = *(int *)(pcVar28 + 0xc042c);\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));\n      if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }\n      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\nLAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);\n      if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }\n      uVar20 = 7;\n    }\n    else {\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }\n  }" ({ "{") (expression_statement "iVar25 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar25 = *(int *)(pcVar28 + 0xc042c)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(pcVar28 + 0xc042c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc042c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc042c)" (( "(") (binary_expression "pcVar28 + 0xc042c" (identifier "pcVar28") (+ "+") (number_literal "0xc042c")) () ")"))))) (; ";")) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (expression_statement "iVar7 = (**(code **)(pcVar28 + 0xc0840))();" (assignment_expression "iVar7 = (**(code **)(pcVar28 + 0xc0840))()" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar28 + 0xc0840))()" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0840))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0840)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0840)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0840)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0840)" (( "(") (binary_expression "pcVar28 + 0xc0840" (identifier "pcVar28") (+ "+") (number_literal "0xc0840")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar7 != *(int *)(iVar25 + -0x4354)) goto LAB_0009b46c;" (if "if") (parenthesized_expression "(iVar7 != *(int *)(iVar25 + -0x4354))" (( "(") (binary_expression "iVar7 != *(int *)(iVar25 + -0x4354)" (identifier "iVar7") (!= "!=") (pointer_expression "*(int *)(iVar25 + -0x4354)" (* "*") (cast_expression "(int *)(iVar25 + -0x4354)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x4354)" (( "(") (binary_expression "iVar25 + -0x4354" (identifier "iVar25") (+ "+") (number_literal "-0x4354")) () ")"))))) () ")")) (goto_statement "goto LAB_0009b46c;" (goto "goto") (statement_identifier "LAB_0009b46c") (; ";"))) (labeled_statement "LAB_0009b270:\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);" (statement_identifier "LAB_0009b270") (: ":") (expression_statement "(**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);" (call_expression "(**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0808))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0808)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0808)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0808)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0808)" (( "(") (binary_expression "pcVar28 + 0xc0808" (identifier "pcVar28") (+ "+") (number_literal "0xc0808")) () ")"))))) () ")")) (argument_list "(param_3,0,0x58)" (( "(") (identifier "param_3") (, ",") (number_literal "0") (, ",") (number_literal "0x58") () ")"))) (; ";"))) (if_statement "if (uVar24 == 0x100) {\n      iVar7 = *(int *)(pcVar28 + 0xc042c);\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));\n      if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }\n      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\nLAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);\n      if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }\n      uVar20 = 7;\n    }\n    else {\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }" (if "if") (parenthesized_expression "(uVar24 == 0x100)" (( "(") (binary_expression "uVar24 == 0x100" (identifier "uVar24") (== "==") (number_literal "0x100")) () ")")) (compound_statement "{\n      iVar7 = *(int *)(pcVar28 + 0xc042c);\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));\n      if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }\n      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));\nLAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);\n      if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }\n      uVar20 = 7;\n    }" ({ "{") (expression_statement "iVar7 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar7 = *(int *)(pcVar28 + 0xc042c)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(pcVar28 + 0xc042c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc042c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc042c)" (( "(") (binary_expression "pcVar28 + 0xc042c" (identifier "pcVar28") (+ "+") (number_literal "0xc042c")) () ")"))))) (; ";")) (expression_statement "iVar25 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar25 = *(int *)(pcVar28 + 0xc042c)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(pcVar28 + 0xc042c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc042c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc042c)" (( "(") (binary_expression "pcVar28 + 0xc042c" (identifier "pcVar28") (+ "+") (number_literal "0xc042c")) () ")"))))) (; ";")) (expression_statement "(**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0504))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0504)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0504)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0504)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0504)" (( "(") (binary_expression "pcVar28 + 0xc0504" (identifier "pcVar28") (+ "+") (number_literal "0xc0504")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar7 + -0x4358))" (( "(") (pointer_expression "*(undefined4 *)(iVar7 + -0x4358)" (* "*") (cast_expression "(undefined4 *)(iVar7 + -0x4358)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + -0x4358)" (( "(") (binary_expression "iVar7 + -0x4358" (identifier "iVar7") (+ "+") (number_literal "-0x4358")) () ")")))) () ")"))) (; ";")) (if_statement "if ((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)) {\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }" (if "if") (parenthesized_expression "((*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0))" (( "(") (binary_expression "(*(int *)(iVar25 + -0x435c) != 0) &&\n         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)" (parenthesized_expression "(*(int *)(iVar25 + -0x435c) != 0)" (( "(") (binary_expression "*(int *)(iVar25 + -0x435c) != 0" (pointer_expression "*(int *)(iVar25 + -0x435c)" (* "*") (cast_expression "(int *)(iVar25 + -0x435c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x435c)" (( "(") (binary_expression "iVar25 + -0x435c" (identifier "iVar25") (+ "+") (number_literal "-0x435c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0)" (( "(") (comma_expression "iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),\n         iVar8 == 0" (assignment_expression "iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700)" (parenthesized_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))" (( "(") (pointer_expression "**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" (* "*") (pointer_expression "*(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" (* "*") (cast_expression "(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" (( "(") (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x4b84" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc042c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc042c)" (( "(") (binary_expression "pcVar28 + 0xc042c" (identifier "pcVar28") (+ "+") (number_literal "0xc042c")) () ")")))) (+ "+") (number_literal "-0x4b84")) () ")"))))) () ")")) (argument_list "(puVar15,local_700)" (( "(") (identifier "puVar15") (, ",") (identifier "local_700") () ")")))) (, ",") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }\n      }" ({ "{") (for_statement "for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;\n            piVar31 = (int *)piVar31[0xb]) {\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }" (for "for") (( "(") (assignment_expression "piVar31 = *(int **)(iVar25 + -0x435c)" (identifier "piVar31") (= "=") (pointer_expression "*(int **)(iVar25 + -0x435c)" (* "*") (cast_expression "(int **)(iVar25 + -0x435c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x435c)" (( "(") (binary_expression "iVar25 + -0x435c" (identifier "iVar25") (+ "+") (number_literal "-0x435c")) () ")"))))) (; ";") (binary_expression "piVar31 != (int *)0x0" (identifier "piVar31") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "piVar31 = (int *)piVar31[0xb]" (identifier "piVar31") (= "=") (cast_expression "(int *)piVar31[0xb]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar31[0xb]" (identifier "piVar31") ([ "[") (number_literal "0xb") (] "]")))) () ")") (compound_statement "{\n          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }\n        }" ({ "{") (if_statement "if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)) {\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }" (if "if") (parenthesized_expression "((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec))" (( "(") (binary_expression "(((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&\n             (piVar31[3] == local_6ec)" (parenthesized_expression "(((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0))" (( "(") (binary_expression "((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)" (parenthesized_expression "((*piVar31 == 0) && (piVar31[1] == local_700[0]))" (( "(") (binary_expression "(*piVar31 == 0) && (piVar31[1] == local_700[0])" (parenthesized_expression "(*piVar31 == 0)" (( "(") (binary_expression "*piVar31 == 0" (pointer_expression "*piVar31" (* "*") (identifier "piVar31")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(piVar31[1] == local_700[0])" (( "(") (binary_expression "piVar31[1] == local_700[0]" (subscript_expression "piVar31[1]" (identifier "piVar31") ([ "[") (number_literal "1") (] "]")) (== "==") (subscript_expression "local_700[0]" (identifier "local_700") ([ "[") (number_literal "0") (] "]"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(piVar31[2] == local_6f0)" (( "(") (binary_expression "piVar31[2] == local_6f0" (subscript_expression "piVar31[2]" (identifier "piVar31") ([ "[") (number_literal "2") (] "]")) (== "==") (identifier "local_6f0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(piVar31[3] == local_6ec)" (( "(") (binary_expression "piVar31[3] == local_6ec" (subscript_expression "piVar31[3]" (identifier "piVar31") ([ "[") (number_literal "3") (] "]")) (== "==") (identifier "local_6ec")) () ")"))) () ")")) (compound_statement "{\n            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);\n            piVar13 = (int *)piVar31[8];\n            if (piVar13 == (int *)0x0) goto LAB_0009b728;\n            uVar20 = piVar13[1];\n            piVar17 = piVar31 + 8;\n            goto joined_r0x0009b6fc;\n          }" ({ "{") (expression_statement "(**(code **)(pcVar28 + 0xc0504))(piVar31[4]);" (call_expression "(**(code **)(pcVar28 + 0xc0504))(piVar31[4])" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0504))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0504)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0504)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0504)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0504)" (( "(") (binary_expression "pcVar28 + 0xc0504" (identifier "pcVar28") (+ "+") (number_literal "0xc0504")) () ")"))))) () ")")) (argument_list "(piVar31[4])" (( "(") (subscript_expression "piVar31[4]" (identifier "piVar31") ([ "[") (number_literal "4") (] "]")) () ")"))) (; ";")) (expression_statement "piVar13 = (int *)piVar31[8];" (assignment_expression "piVar13 = (int *)piVar31[8]" (identifier "piVar13") (= "=") (cast_expression "(int *)piVar31[8]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar31[8]" (identifier "piVar31") ([ "[") (number_literal "8") (] "]")))) (; ";")) (if_statement "if (piVar13 == (int *)0x0) goto LAB_0009b728;" (if "if") (parenthesized_expression "(piVar13 == (int *)0x0)" (( "(") (binary_expression "piVar13 == (int *)0x0" (identifier "piVar13") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0009b728;" (goto "goto") (statement_identifier "LAB_0009b728") (; ";"))) (expression_statement "uVar20 = piVar13[1];" (assignment_expression "uVar20 = piVar13[1]" (identifier "uVar20") (= "=") (subscript_expression "piVar13[1]" (identifier "piVar13") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar17 = piVar31 + 8;" (assignment_expression "piVar17 = piVar31 + 8" (identifier "piVar17") (= "=") (binary_expression "piVar31 + 8" (identifier "piVar31") (+ "+") (number_literal "8"))) (; ";")) (goto_statement "goto joined_r0x0009b6fc;" (goto "goto") (statement_identifier "joined_r0x0009b6fc") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0508))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0508)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0508)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0508)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0508)" (( "(") (binary_expression "pcVar28 + 0xc0508" (identifier "pcVar28") (+ "+") (number_literal "0xc0508")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar7 + -0x4358))" (( "(") (pointer_expression "*(undefined4 *)(iVar7 + -0x4358)" (* "*") (cast_expression "(undefined4 *)(iVar7 + -0x4358)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + -0x4358)" (( "(") (binary_expression "iVar7 + -0x4358" (identifier "iVar7") (+ "+") (number_literal "-0x4358")) () ")")))) () ")"))) (; ";")) (labeled_statement "LAB_0009b7e8:\n      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);" (statement_identifier "LAB_0009b7e8") (: ":") (expression_statement "iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);" (assignment_expression "iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc)" (identifier "iVar25") (= "=") (call_expression "(**(code **)(pcVar28 + 0xc05b4))(0,0xc)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc05b4))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc05b4)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc05b4)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc05b4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc05b4)" (( "(") (binary_expression "pcVar28 + 0xc05b4" (identifier "pcVar28") (+ "+") (number_literal "0xc05b4")) () ")"))))) () ")")) (argument_list "(0,0xc)" (( "(") (number_literal "0") (, ",") (number_literal "0xc") () ")")))) (; ";"))) (if_statement "if (iVar25 != 0) {\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }" (if "if") (parenthesized_expression "(iVar25 != 0)" (( "(") (binary_expression "iVar25 != 0" (identifier "iVar25") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar7 = -1;\n        param_3[7] = iVar25;\n        goto LAB_0009b2a0;\n      }" ({ "{") (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" (identifier "iVar7") (= "=") (number_literal "-1")) (; ";")) (expression_statement "param_3[7] = iVar25;" (assignment_expression "param_3[7] = iVar25" (subscript_expression "param_3[7]" (identifier "param_3") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "iVar25")) (; ";")) (goto_statement "goto LAB_0009b2a0;" (goto "goto") (statement_identifier "LAB_0009b2a0") (; ";")) (} "}"))) (expression_statement "uVar20 = 7;" (assignment_expression "uVar20 = 7" (identifier "uVar20") (= "=") (number_literal "7")) (; ";")) (} "}")) (else_clause "else {\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }" (else "else") (compound_statement "{\n      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;\nLAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);\n      if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }\n    }" ({ "{") (if_statement "if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;" (if "if") (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar15 != (undefined4 *)0x0" (identifier "puVar15") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0009b298;" (goto "goto") (statement_identifier "LAB_0009b298") (; ";"))) (labeled_statement "LAB_0009b618:\n      uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);" (statement_identifier "LAB_0009b618") (: ":") (expression_statement "uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458);" (assignment_expression "uVar20 = FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458)" (identifier "uVar20") (= "=") (call_expression "FUN_0009a92c(*(undefined4 *)(iVar5 + 8),auStack_458)" (identifier "FUN_0009a92c") (argument_list "(*(undefined4 *)(iVar5 + 8),auStack_458)" (( "(") (pointer_expression "*(undefined4 *)(iVar5 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "auStack_458") () ")")))) (; ";"))) (if_statement "if (uVar20 == 0) {\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }" (if "if") (parenthesized_expression "(uVar20 == 0)" (( "(") (binary_expression "uVar20 == 0" (identifier "uVar20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar7 = -1;\n        puVar18 = auStack_458;\n        goto LAB_0009b2a0;\n      }" ({ "{") (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" (identifier "iVar7") (= "=") (number_literal "-1")) (; ";")) (expression_statement "puVar18 = auStack_458;" (assignment_expression "puVar18 = auStack_458" (identifier "puVar18") (= "=") (identifier "auStack_458")) (; ";")) (goto_statement "goto LAB_0009b2a0;" (goto "goto") (statement_identifier "LAB_0009b2a0") (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n    if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (*(int *)(iVar25 + -0x4354) != iVar7) {\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    bVar2 = true;\n    if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;\nLAB_0009b298:\n    iVar7 = -1;\nLAB_0009b2a0:\n    uVar20 = uVar6;\n    if ((param_4 & 4) != 0) {\n      uVar20 = uVar6 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    (*pcVar29)(param_3[7]);\n  }" (else "else") (compound_statement "{\n    if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }\n    iVar25 = *(int *)(pcVar28 + 0xc042c);\n    iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n    if (*(int *)(iVar25 + -0x4354) != iVar7) {\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }\n    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);\n    bVar2 = true;\n    if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;\nLAB_0009b298:\n    iVar7 = -1;\nLAB_0009b2a0:\n    uVar20 = uVar6;\n    if ((param_4 & 4) != 0) {\n      uVar20 = uVar6 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    (*pcVar29)(param_3[7]);\n  }" ({ "{") (if_statement "if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }" (if "if") (parenthesized_expression "((uVar24 != 0x4000) && (uVar24 != 0x800))" (( "(") (binary_expression "(uVar24 != 0x4000) && (uVar24 != 0x800)" (parenthesized_expression "(uVar24 != 0x4000)" (( "(") (binary_expression "uVar24 != 0x4000" (identifier "uVar24") (!= "!=") (number_literal "0x4000")) () ")")) (&& "&&") (parenthesized_expression "(uVar24 != 0x800)" (( "(") (binary_expression "uVar24 != 0x800" (identifier "uVar24") (!= "!=") (number_literal "0x800")) () ")"))) () ")")) (compound_statement "{\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      bVar2 = uVar24 == 0x80000;\n      iVar7 = (**(code **)(pcVar28 + 0xc0840))();\n      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;\nLAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();\n      *(undefined4 *)(iVar25 + -0x4354) = uVar32;\n      sqlite3_randomness(0,0);\n      goto LAB_0009b270;\n    }" ({ "{") (expression_statement "iVar25 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar25 = *(int *)(pcVar28 + 0xc042c)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(pcVar28 + 0xc042c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc042c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc042c)" (( "(") (binary_expression "pcVar28 + 0xc042c" (identifier "pcVar28") (+ "+") (number_literal "0xc042c")) () ")"))))) (; ";")) (expression_statement "bVar2 = uVar24 == 0x80000;" (assignment_expression "bVar2 = uVar24 == 0x80000" (identifier "bVar2") (= "=") (binary_expression "uVar24 == 0x80000" (identifier "uVar24") (== "==") (number_literal "0x80000"))) (; ";")) (expression_statement "iVar7 = (**(code **)(pcVar28 + 0xc0840))();" (assignment_expression "iVar7 = (**(code **)(pcVar28 + 0xc0840))()" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar28 + 0xc0840))()" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0840))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0840)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0840)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0840)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0840)" (( "(") (binary_expression "pcVar28 + 0xc0840" (identifier "pcVar28") (+ "+") (number_literal "0xc0840")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;" (if "if") (parenthesized_expression "(iVar7 == *(int *)(iVar25 + -0x4354))" (( "(") (binary_expression "iVar7 == *(int *)(iVar25 + -0x4354)" (identifier "iVar7") (== "==") (pointer_expression "*(int *)(iVar25 + -0x4354)" (* "*") (cast_expression "(int *)(iVar25 + -0x4354)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x4354)" (( "(") (binary_expression "iVar25 + -0x4354" (identifier "iVar25") (+ "+") (number_literal "-0x4354")) () ")"))))) () ")")) (goto_statement "goto LAB_0009b270;" (goto "goto") (statement_identifier "LAB_0009b270") (; ";"))) (labeled_statement "LAB_0009b46c:\n      uVar32 = (**(code **)(pcVar28 + 0xc0840))();" (statement_identifier "LAB_0009b46c") (: ":") (expression_statement "uVar32 = (**(code **)(pcVar28 + 0xc0840))();" (assignment_expression "uVar32 = (**(code **)(pcVar28 + 0xc0840))()" (identifier "uVar32") (= "=") (call_expression "(**(code **)(pcVar28 + 0xc0840))()" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0840))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0840)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0840)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0840)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0840)" (( "(") (binary_expression "pcVar28 + 0xc0840" (identifier "pcVar28") (+ "+") (number_literal "0xc0840")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "*(undefined4 *)(iVar25 + -0x4354) = uVar32;" (assignment_expression "*(undefined4 *)(iVar25 + -0x4354) = uVar32" (pointer_expression "*(undefined4 *)(iVar25 + -0x4354)" (* "*") (cast_expression "(undefined4 *)(iVar25 + -0x4354)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x4354)" (( "(") (binary_expression "iVar25 + -0x4354" (identifier "iVar25") (+ "+") (number_literal "-0x4354")) () ")")))) (= "=") (identifier "uVar32")) (; ";")) (expression_statement "sqlite3_randomness(0,0);" (call_expression "sqlite3_randomness(0,0)" (identifier "sqlite3_randomness") (argument_list "(0,0)" (( "(") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (goto_statement "goto LAB_0009b270;" (goto "goto") (statement_identifier "LAB_0009b270") (; ";")) (} "}"))) (expression_statement "iVar25 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar25 = *(int *)(pcVar28 + 0xc042c)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(pcVar28 + 0xc042c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc042c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc042c)" (( "(") (binary_expression "pcVar28 + 0xc042c" (identifier "pcVar28") (+ "+") (number_literal "0xc042c")) () ")"))))) (; ";")) (expression_statement "iVar7 = (**(code **)(pcVar28 + 0xc0840))();" (assignment_expression "iVar7 = (**(code **)(pcVar28 + 0xc0840))()" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar28 + 0xc0840))()" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0840))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0840)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0840)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0840)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0840)" (( "(") (binary_expression "pcVar28 + 0xc0840" (identifier "pcVar28") (+ "+") (number_literal "0xc0840")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (*(int *)(iVar25 + -0x4354) != iVar7) {\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar25 + -0x4354) != iVar7)" (( "(") (binary_expression "*(int *)(iVar25 + -0x4354) != iVar7" (pointer_expression "*(int *)(iVar25 + -0x4354)" (* "*") (cast_expression "(int *)(iVar25 + -0x4354)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x4354)" (( "(") (binary_expression "iVar25 + -0x4354" (identifier "iVar25") (+ "+") (number_literal "-0x4354")) () ")")))) (!= "!=") (identifier "iVar7")) () ")")) (compound_statement "{\n      bVar2 = true;\n      goto LAB_0009b46c;\n    }" ({ "{") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_0009b46c;" (goto "goto") (statement_identifier "LAB_0009b46c") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);" (call_expression "(**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0808))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0808)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0808)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0808)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0808)" (( "(") (binary_expression "pcVar28 + 0xc0808" (identifier "pcVar28") (+ "+") (number_literal "0xc0808")) () ")"))))) () ")")) (argument_list "(param_3,0,0x58)" (( "(") (identifier "param_3") (, ",") (number_literal "0") (, ",") (number_literal "0x58") () ")"))) (; ";")) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (if_statement "if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;" (if "if") (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar15 == (undefined4 *)0x0" (identifier "puVar15") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0009b618;" (goto "goto") (statement_identifier "LAB_0009b618") (; ";"))) (labeled_statement "LAB_0009b298:\n    iVar7 = -1;" (statement_identifier "LAB_0009b298") (: ":") (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" (identifier "iVar7") (= "=") (number_literal "-1")) (; ";"))) (labeled_statement "LAB_0009b2a0:\n    uVar20 = uVar6;" (statement_identifier "LAB_0009b2a0") (: ":") (expression_statement "uVar20 = uVar6;" (assignment_expression "uVar20 = uVar6" (identifier "uVar20") (= "=") (identifier "uVar6")) (; ";"))) (if_statement "if ((param_4 & 4) != 0) {\n      uVar20 = uVar6 | 0x100;\n    }" (if "if") (parenthesized_expression "((param_4 & 4) != 0)" (( "(") (binary_expression "(param_4 & 4) != 0" (parenthesized_expression "(param_4 & 4)" (( "(") (binary_expression "param_4 & 4" (identifier "param_4") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar20 = uVar6 | 0x100;\n    }" ({ "{") (expression_statement "uVar20 = uVar6 | 0x100;" (assignment_expression "uVar20 = uVar6 | 0x100" (identifier "uVar20") (= "=") (binary_expression "uVar6 | 0x100" (identifier "uVar6") (| "|") (number_literal "0x100"))) (; ";")) (} "}"))) (if_statement "if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }\n    else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }" (if "if") (parenthesized_expression "((param_4 & 0x10) == 0)" (( "(") (binary_expression "(param_4 & 0x10) == 0" (parenthesized_expression "(param_4 & 0x10)" (( "(") (binary_expression "param_4 & 0x10" (identifier "param_4") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;\n      if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }\n      uVar9 = 0x180;\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }\n      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n      if (-1 < iVar7) goto LAB_0009b2c4;\nLAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n      iVar7 = *piVar31;\n      if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }\nLAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n      if (uVar20 == 0) goto LAB_0009b410;\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }" ({ "{") (if_statement "if (-1 < iVar7) goto LAB_0009b2c4;" (if "if") (parenthesized_expression "(-1 < iVar7)" (( "(") (binary_expression "-1 < iVar7" (number_literal "-1") (< "<") (identifier "iVar7")) () ")")) (goto_statement "goto LAB_0009b2c4;" (goto "goto") (statement_identifier "LAB_0009b2c4") (; ";"))) (labeled_statement "LAB_0009b4a8:\n      uVar14 = param_4 & 0x80800;" (statement_identifier "LAB_0009b4a8") (: ":") (expression_statement "uVar14 = param_4 & 0x80800;" (assignment_expression "uVar14 = param_4 & 0x80800" (identifier "uVar14") (= "=") (binary_expression "param_4 & 0x80800" (identifier "param_4") (& "&") (number_literal "0x80800"))) (; ";"))) (if_statement "if (uVar14 != 0) {\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }" (if "if") (parenthesized_expression "(uVar14 != 0)" (( "(") (binary_expression "uVar14 != 0" (identifier "uVar14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);\n        iVar25 = *(int *)(pcVar28 + 0xc042c);\n        auStack_65c[iVar7] = 0;\n        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);\n        if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }\n        uVar9 = local_6e8 & 0x1ff;\n        local_724 = local_6e0;\n        local_734 = local_6dc;\nLAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);\n        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);\n        if (iVar7 < 0) goto LAB_0009b9ec;\nLAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);\n        goto LAB_0009b2c4;\n      }" ({ "{") (if_statement "if (puVar18 == (undefined4 *)0x0) {\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }\n        else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }" (if "if") (parenthesized_expression "(puVar18 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar18 == (undefined4 *)0x0" (identifier "puVar18") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          cVar1 = *(char *)(in_zero + -1);\n          iVar7 = -1;\n          if (cVar1 != '-') goto joined_r0x0009b50c;\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }" ({ "{") (expression_statement "cVar1 = *(char *)(in_zero + -1);" (assignment_expression "cVar1 = *(char *)(in_zero + -1)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(in_zero + -1)" (* "*") (cast_expression "(char *)(in_zero + -1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_zero + -1)" (( "(") (binary_expression "in_zero + -1" (identifier "in_zero") (+ "+") (number_literal "-1")) () ")"))))) (; ";")) (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" (identifier "iVar7") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (cVar1 != '-') goto joined_r0x0009b50c;" (if "if") (parenthesized_expression "(cVar1 != '-')" (( "(") (binary_expression "cVar1 != '-'" (identifier "cVar1") (!= "!=") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (goto_statement "goto joined_r0x0009b50c;" (goto "goto") (statement_identifier "joined_r0x0009b50c") (; ";"))) (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0828);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0828)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(pcVar28 + 0xc0828)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0828)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0828)" (( "(") (binary_expression "pcVar28 + 0xc0828" (identifier "pcVar28") (+ "+") (number_literal "0xc0828")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }" (else "else") (compound_statement "{\n          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);\n          iVar7 = (uVar9 & 0x3fffffff) - 1;\n          cVar1 = *(char *)((int)puVar18 + iVar7);\n          while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }\n          pcVar29 = *(code **)(pcVar28 + 0xc0828);\n        }" ({ "{") (expression_statement "uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);" (assignment_expression "uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(pcVar28 + 0xc0818))(puVar18)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0818))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0818)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0818)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0818)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0818)" (( "(") (binary_expression "pcVar28 + 0xc0818" (identifier "pcVar28") (+ "+") (number_literal "0xc0818")) () ")"))))) () ")")) (argument_list "(puVar18)" (( "(") (identifier "puVar18") () ")")))) (; ";")) (expression_statement "iVar7 = (uVar9 & 0x3fffffff) - 1;" (assignment_expression "iVar7 = (uVar9 & 0x3fffffff) - 1" (identifier "iVar7") (= "=") (binary_expression "(uVar9 & 0x3fffffff) - 1" (parenthesized_expression "(uVar9 & 0x3fffffff)" (( "(") (binary_expression "uVar9 & 0x3fffffff" (identifier "uVar9") (& "&") (number_literal "0x3fffffff")) () ")")) (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *(char *)((int)puVar18 + iVar7);" (assignment_expression "cVar1 = *(char *)((int)puVar18 + iVar7)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)((int)puVar18 + iVar7)" (* "*") (cast_expression "(char *)((int)puVar18 + iVar7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar18 + iVar7)" (( "(") (binary_expression "(int)puVar18 + iVar7" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (identifier "iVar7")) () ")"))))) (; ";")) (while_statement "while (cVar1 != '-') {\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }" (while "while") (parenthesized_expression "(cVar1 != '-')" (( "(") (binary_expression "cVar1 != '-'" (identifier "cVar1") (!= "!=") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (compound_statement "{\n            if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }\njoined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;\n            iVar7 = iVar7 + -1;\n            cVar1 = *(char *)((int)puVar18 + iVar7);\n          }" ({ "{") (if_statement "if (iVar7 == 0) {\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0009b934:\n              uVar9 = 0;\n              local_734 = 0;\n              local_724 = 0;\n              goto LAB_0009b93c;\n            }" ({ "{") (labeled_statement "LAB_0009b934:\n              uVar9 = 0;" (statement_identifier "LAB_0009b934") (: ":") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";"))) (expression_statement "local_734 = 0;" (assignment_expression "local_734 = 0" (identifier "local_734") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_724 = 0;" (assignment_expression "local_724 = 0" (identifier "local_724") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0009b93c;" (goto "goto") (statement_identifier "LAB_0009b93c") (; ";")) (} "}"))) (labeled_statement "joined_r0x0009b50c:\n            if (cVar1 == '.') goto LAB_0009b934;" (statement_identifier "joined_r0x0009b50c") (: ":") (if_statement "if (cVar1 == '.') goto LAB_0009b934;" (if "if") (parenthesized_expression "(cVar1 == '.')" (( "(") (binary_expression "cVar1 == '.'" (identifier "cVar1") (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (goto_statement "goto LAB_0009b934;" (goto "goto") (statement_identifier "LAB_0009b934") (; ";")))) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "cVar1 = *(char *)((int)puVar18 + iVar7);" (assignment_expression "cVar1 = *(char *)((int)puVar18 + iVar7)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)((int)puVar18 + iVar7)" (* "*") (cast_expression "(char *)((int)puVar18 + iVar7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar18 + iVar7)" (( "(") (binary_expression "(int)puVar18 + iVar7" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (identifier "iVar7")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0828);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0828)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(pcVar28 + 0xc0828)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0828)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0828)" (( "(") (binary_expression "pcVar28 + 0xc0828" (identifier "pcVar28") (+ "+") (number_literal "0xc0828")) () ")"))))) (; ";")) (} "}")))) (expression_statement "uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);" (assignment_expression "uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201)" (identifier "uVar32") (= "=") (call_expression "(*pcVar29)(auStack_65c,puVar18,iVar7,0x201)" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(auStack_65c,puVar18,iVar7,0x201)" (( "(") (identifier "auStack_65c") (, ",") (identifier "puVar18") (, ",") (identifier "iVar7") (, ",") (number_literal "0x201") () ")")))) (; ";")) (expression_statement "iVar25 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar25 = *(int *)(pcVar28 + 0xc042c)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(pcVar28 + 0xc042c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc042c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc042c)" (( "(") (binary_expression "pcVar28 + 0xc042c" (identifier "pcVar28") (+ "+") (number_literal "0xc042c")) () ")"))))) (; ";")) (expression_statement "auStack_65c[iVar7] = 0;" (assignment_expression "auStack_65c[iVar7] = 0" (subscript_expression "auStack_65c[iVar7]" (identifier "auStack_65c") ([ "[") (identifier "iVar7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);" (assignment_expression "iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(iVar25 + -0x4b84))(uVar32,local_700)" (parenthesized_expression "(**(code **)(iVar25 + -0x4b84))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x4b84)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x4b84)" (* "*") (cast_expression "(code **)(iVar25 + -0x4b84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x4b84)" (( "(") (binary_expression "iVar25 + -0x4b84" (identifier "iVar25") (+ "+") (number_literal "-0x4b84")) () ")"))))) () ")")) (argument_list "(uVar32,local_700)" (( "(") (identifier "uVar32") (, ",") (identifier "local_700") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0009bc08:\n          uVar20 = 0x70a;\n          goto LAB_0009b410;\n        }" ({ "{") (labeled_statement "LAB_0009bc08:\n          uVar20 = 0x70a;" (statement_identifier "LAB_0009bc08") (: ":") (expression_statement "uVar20 = 0x70a;" (assignment_expression "uVar20 = 0x70a" (identifier "uVar20") (= "=") (number_literal "0x70a")) (; ";"))) (goto_statement "goto LAB_0009b410;" (goto "goto") (statement_identifier "LAB_0009b410") (; ";")) (} "}"))) (expression_statement "uVar9 = local_6e8 & 0x1ff;" (assignment_expression "uVar9 = local_6e8 & 0x1ff" (identifier "uVar9") (= "=") (binary_expression "local_6e8 & 0x1ff" (identifier "local_6e8") (& "&") (number_literal "0x1ff"))) (; ";")) (expression_statement "local_724 = local_6e0;" (assignment_expression "local_724 = local_6e0" (identifier "local_724") (= "=") (identifier "local_6e0")) (; ";")) (expression_statement "local_734 = local_6dc;" (assignment_expression "local_734 = local_6dc" (identifier "local_734") (= "=") (identifier "local_6dc")) (; ";")) (labeled_statement "LAB_0009b93c:\n        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);" (statement_identifier "LAB_0009b93c") (: ":") (expression_statement "local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);" (assignment_expression "local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc)" (identifier "local_714") (= "=") (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x3efc)" (( "(") (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x3efc" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc0594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc0594)" (( "(") (binary_expression "pcVar28 + 0xc0594" (identifier "pcVar28") (+ "+") (number_literal "0xc0594")) () ")")))) (+ "+") (number_literal "-0x3efc")) () ")")))) (; ";"))) (expression_statement "iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);" (assignment_expression "iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9)" (identifier "iVar7") (= "=") (call_expression "(*local_714)(puVar18,uVar20 | 0x2000,uVar9)" (parenthesized_expression "(*local_714)" (( "(") (pointer_expression "*local_714" (* "*") (identifier "local_714")) () ")")) (argument_list "(puVar18,uVar20 | 0x2000,uVar9)" (( "(") (identifier "puVar18") (, ",") (binary_expression "uVar20 | 0x2000" (identifier "uVar20") (| "|") (number_literal "0x2000")) (, ",") (identifier "uVar9") () ")")))) (; ";")) (if_statement "if (iVar7 < 0) goto LAB_0009b9ec;" (if "if") (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_0009b9ec;" (goto "goto") (statement_identifier "LAB_0009b9ec") (; ";"))) (labeled_statement "LAB_0009b97c:\n        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);" (statement_identifier "LAB_0009b97c") (: ":") (expression_statement "(*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);" (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8)" (* "*") (cast_expression "(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar28 + 0xc052c) + 0xfd8)" (( "(") (binary_expression "*(int *)(pcVar28 + 0xc052c) + 0xfd8" (pointer_expression "*(int *)(pcVar28 + 0xc052c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc052c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc052c)" (( "(") (binary_expression "pcVar28 + 0xc052c" (identifier "pcVar28") (+ "+") (number_literal "0xc052c")) () ")")))) (+ "+") (number_literal "0xfd8")) () ")")))) () ")")) (argument_list "(iVar7,local_724,local_734)" (( "(") (identifier "iVar7") (, ",") (identifier "local_724") (, ",") (identifier "local_734") () ")"))) (; ";"))) (goto_statement "goto LAB_0009b2c4;" (goto "goto") (statement_identifier "LAB_0009b2c4") (; ";")) (} "}"))) (expression_statement "uVar9 = 0x180;" (assignment_expression "uVar9 = 0x180" (identifier "uVar9") (= "=") (number_literal "0x180")) (; ";")) (if_statement "if (uVar21 == 0) {\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }\n      else {\n        local_734 = 0;\n        local_724 = 0;\n      }" (if "if") (parenthesized_expression "(uVar21 == 0)" (( "(") (binary_expression "uVar21 == 0" (identifier "uVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }\n      }" ({ "{") (if_statement "if (((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)) {\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }\n        else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }" (if "if") (parenthesized_expression "(((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0))" (( "(") (binary_expression "((param_4 & 0x40) == 0) ||\n           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)" (parenthesized_expression "((param_4 & 0x40) == 0)" (( "(") (binary_expression "(param_4 & 0x40) == 0" (parenthesized_expression "(param_4 & 0x40)" (( "(") (binary_expression "param_4 & 0x40" (identifier "param_4") (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0)" (( "(") (comma_expression "iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),\n           iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc057c))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc057c)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc057c)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc057c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc057c)" (( "(") (binary_expression "pcVar28 + 0xc057c" (identifier "pcVar28") (+ "+") (number_literal "0xc057c")) () ")"))))) () ")")) (argument_list "(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390)" (( "(") (identifier "puVar18") (, ",") (binary_expression "*(int *)(pcVar28 + 0xc0450) + -0x7390" (pointer_expression "*(int *)(pcVar28 + 0xc0450)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc0450)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc0450)" (( "(") (binary_expression "pcVar28 + 0xc0450" (identifier "pcVar28") (+ "+") (number_literal "0xc0450")) () ")")))) (+ "+") (number_literal "-0x7390")) () ")")))) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          local_734 = 0;\n          uVar9 = 0;\n          local_724 = 0;\n        }" ({ "{") (expression_statement "local_734 = 0;" (assignment_expression "local_734 = 0" (identifier "local_734") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_724 = 0;" (assignment_expression "local_724 = 0" (identifier "local_724") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }" (else "else") (compound_statement "{\n          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);\n          if (iVar7 != 0) goto LAB_0009bc08;\n          local_724 = local_6e0;\n          uVar9 = local_6e8 & 0x1ff;\n          local_734 = local_6dc;\n        }" ({ "{") (expression_statement "iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);" (assignment_expression "iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700)" (parenthesized_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))" (( "(") (pointer_expression "**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" (* "*") (pointer_expression "*(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" (* "*") (cast_expression "(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcVar28 + 0xc042c) + -0x4b84)" (( "(") (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x4b84" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc042c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc042c)" (( "(") (binary_expression "pcVar28 + 0xc042c" (identifier "pcVar28") (+ "+") (number_literal "0xc042c")) () ")")))) (+ "+") (number_literal "-0x4b84")) () ")"))))) () ")")) (argument_list "(iVar7,local_700)" (( "(") (identifier "iVar7") (, ",") (identifier "local_700") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) goto LAB_0009bc08;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0009bc08;" (goto "goto") (statement_identifier "LAB_0009bc08") (; ";"))) (expression_statement "local_724 = local_6e0;" (assignment_expression "local_724 = local_6e0" (identifier "local_724") (= "=") (identifier "local_6e0")) (; ";")) (expression_statement "uVar9 = local_6e8 & 0x1ff;" (assignment_expression "uVar9 = local_6e8 & 0x1ff" (identifier "uVar9") (= "=") (binary_expression "local_6e8 & 0x1ff" (identifier "local_6e8") (& "&") (number_literal "0x1ff"))) (; ";")) (expression_statement "local_734 = local_6dc;" (assignment_expression "local_734 = local_6dc" (identifier "local_734") (= "=") (identifier "local_6dc")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        local_734 = 0;\n        local_724 = 0;\n      }" (else "else") (compound_statement "{\n        local_734 = 0;\n        local_724 = 0;\n      }" ({ "{") (expression_statement "local_734 = 0;" (assignment_expression "local_734 = 0" (identifier "local_734") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_724 = 0;" (assignment_expression "local_724 = 0" (identifier "local_724") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);" (assignment_expression "local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc)" (identifier "local_714") (= "=") (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x3efc)" (( "(") (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x3efc" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc0594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc0594)" (( "(") (binary_expression "pcVar28 + 0xc0594" (identifier "pcVar28") (+ "+") (number_literal "0xc0594")) () ")")))) (+ "+") (number_literal "-0x3efc")) () ")")))) (; ";")) (expression_statement "iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);" (assignment_expression "iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9)" (identifier "iVar7") (= "=") (call_expression "(*local_714)(puVar18,uVar20 | 0x2000,uVar9)" (parenthesized_expression "(*local_714)" (( "(") (pointer_expression "*local_714" (* "*") (identifier "local_714")) () ")")) (argument_list "(puVar18,uVar20 | 0x2000,uVar9)" (( "(") (identifier "puVar18") (, ",") (binary_expression "uVar20 | 0x2000" (identifier "uVar20") (| "|") (number_literal "0x2000")) (, ",") (identifier "uVar9") () ")")))) (; ";")) (if_statement "if (-1 < iVar7) goto LAB_0009b2c4;" (if "if") (parenthesized_expression "(-1 < iVar7)" (( "(") (binary_expression "-1 < iVar7" (number_literal "-1") (< "<") (identifier "iVar7")) () ")")) (goto_statement "goto LAB_0009b2c4;" (goto "goto") (statement_identifier "LAB_0009b2c4") (; ";"))) (labeled_statement "LAB_0009b9ec:\n      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();" (statement_identifier "LAB_0009b9ec") (: ":") (expression_statement "piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();" (assignment_expression "piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))()" (identifier "piVar31") (= "=") (cast_expression "(int *)(**(code **)(pcVar28 + 0xc0800))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar28 + 0xc0800))()" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0800))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0800)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0800)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0800)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0800)" (( "(") (binary_expression "pcVar28 + 0xc0800" (identifier "pcVar28") (+ "+") (number_literal "0xc0800")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "iVar7 = *piVar31;" (assignment_expression "iVar7 = *piVar31" (identifier "iVar7") (= "=") (pointer_expression "*piVar31" (* "*") (identifier "piVar31"))) (; ";")) (if_statement "if ((bVar2) && (iVar7 == 0xd)) {\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }" (if "if") (parenthesized_expression "((bVar2) && (iVar7 == 0xd))" (( "(") (binary_expression "(bVar2) && (iVar7 == 0xd)" (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (&& "&&") (parenthesized_expression "(iVar7 == 0xd)" (( "(") (binary_expression "iVar7 == 0xd" (identifier "iVar7") (== "==") (number_literal "0xd")) () ")"))) () ")")) (compound_statement "{\n        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);\n        if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);\n        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);\n        uVar20 = 0x608;\n        goto LAB_0009b84c;\n      }" ({ "{") (expression_statement "iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);" (assignment_expression "iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0)" (parenthesized_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))" (( "(") (pointer_expression "**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c)" (* "*") (pointer_expression "*(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c)" (* "*") (cast_expression "(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcVar28 + 0xc042c) + -0x4b9c)" (( "(") (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x4b9c" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc042c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc042c)" (( "(") (binary_expression "pcVar28 + 0xc042c" (identifier "pcVar28") (+ "+") (number_literal "0xc042c")) () ")")))) (+ "+") (number_literal "-0x4b9c")) () ")"))))) () ")")) (argument_list "(puVar18,0)" (( "(") (identifier "puVar18") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar7 = *piVar31;\n          goto LAB_0009ba2c;\n        }" ({ "{") (expression_statement "iVar7 = *piVar31;" (assignment_expression "iVar7 = *piVar31" (identifier "iVar7") (= "=") (pointer_expression "*piVar31" (* "*") (identifier "piVar31"))) (; ";")) (goto_statement "goto LAB_0009ba2c;" (goto "goto") (statement_identifier "LAB_0009ba2c") (; ";")) (} "}"))) (expression_statement "uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);" (assignment_expression "uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634)" (identifier "uVar32") (= "=") (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628)" (* "*") (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x7628)" (( "(") (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x7628" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc0594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc0594)" (( "(") (binary_expression "pcVar28 + 0xc0594" (identifier "pcVar28") (+ "+") (number_literal "0xc0594")) () ")")))) (+ "+") (number_literal "-0x7628")) () ")")))) () ")")) (argument_list "(0x9634)" (( "(") (number_literal "0x9634") () ")")))) (; ";")) (expression_statement "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);" (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c)" (* "*") (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x3d4c)" (( "(") (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x3d4c" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc0594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc0594)" (( "(") (binary_expression "pcVar28 + 0xc0594" (identifier "pcVar28") (+ "+") (number_literal "0xc0594")) () ")")))) (+ "+") (number_literal "-0x3d4c")) () ")")))) () ")")) (argument_list "(uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634)" (( "(") (identifier "uVar32") (, ",") (binary_expression "*(int *)(pcVar28 + 0xc043c) + 0x7284" (pointer_expression "*(int *)(pcVar28 + 0xc043c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc043c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc043c)" (( "(") (binary_expression "pcVar28 + 0xc043c" (identifier "pcVar28") (+ "+") (number_literal "0xc043c")) () ")")))) (+ "+") (number_literal "0x7284")) (, ",") (identifier "puVar18") (, ",") (number_literal "0x9634") () ")"))) (; ";")) (expression_statement "uVar20 = 0x608;" (assignment_expression "uVar20 = 0x608" (identifier "uVar20") (= "=") (number_literal "0x608")) (; ";")) (goto_statement "goto LAB_0009b84c;" (goto "goto") (statement_identifier "LAB_0009b84c") (; ";")) (} "}"))) (labeled_statement "LAB_0009ba2c:\n      if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }" (statement_identifier "LAB_0009ba2c") (: ":") (if_statement "if ((iVar7 != 0x15) && (uVar6 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }" (if "if") (parenthesized_expression "((iVar7 != 0x15) && (uVar6 != 0))" (( "(") (binary_expression "(iVar7 != 0x15) && (uVar6 != 0)" (parenthesized_expression "(iVar7 != 0x15)" (( "(") (binary_expression "iVar7 != 0x15" (identifier "iVar7") (!= "!=") (number_literal "0x15")) () ")")) (&& "&&") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);\n        if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }\n      }" ({ "{") (expression_statement "param_4 = param_4 & 0xfffffff9 | 1;" (assignment_expression "param_4 = param_4 & 0xfffffff9 | 1" (identifier "param_4") (= "=") (binary_expression "param_4 & 0xfffffff9 | 1" (binary_expression "param_4 & 0xfffffff9" (identifier "param_4") (& "&") (number_literal "0xfffffff9")) (| "|") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);" (assignment_expression "iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9)" (identifier "iVar7") (= "=") (call_expression "(*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9)" (parenthesized_expression "(*local_714)" (( "(") (pointer_expression "*local_714" (* "*") (identifier "local_714")) () ")")) (argument_list "(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9)" (( "(") (identifier "puVar18") (, ",") (binary_expression "uVar20 & 0xfffffefd | 0x2000" (binary_expression "uVar20 & 0xfffffefd" (identifier "uVar20") (& "&") (number_literal "0xfffffefd")) (| "|") (number_literal "0x2000")) (, ",") (identifier "uVar9") () ")")))) (; ";")) (if_statement "if (-1 < iVar7) {\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }" (if "if") (parenthesized_expression "(-1 < iVar7)" (( "(") (binary_expression "-1 < iVar7" (number_literal "-1") (< "<") (identifier "iVar7")) () ")")) (compound_statement "{\n          local_72c = 1;\n          if (uVar14 == 0) goto LAB_0009b2c4;\n          goto LAB_0009b97c;\n        }" ({ "{") (expression_statement "local_72c = 1;" (assignment_expression "local_72c = 1" (identifier "local_72c") (= "=") (number_literal "1")) (; ";")) (if_statement "if (uVar14 == 0) goto LAB_0009b2c4;" (if "if") (parenthesized_expression "(uVar14 == 0)" (( "(") (binary_expression "uVar14 == 0" (identifier "uVar14") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0009b2c4;" (goto "goto") (statement_identifier "LAB_0009b2c4") (; ";"))) (goto_statement "goto LAB_0009b97c;" (goto "goto") (statement_identifier "LAB_0009b97c") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);" (assignment_expression "uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634)" (identifier "uVar32") (= "=") (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628)" (* "*") (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x7628)" (( "(") (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x7628" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc0594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc0594)" (( "(") (binary_expression "pcVar28 + 0xc0594" (identifier "pcVar28") (+ "+") (number_literal "0xc0594")) () ")")))) (+ "+") (number_literal "-0x7628")) () ")")))) () ")")) (argument_list "(0x9634)" (( "(") (number_literal "0x9634") () ")")))) (; ";")) (expression_statement "uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);" (assignment_expression "uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634)" (identifier "uVar20") (= "=") (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))\n                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c)" (* "*") (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x3d4c)" (( "(") (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x3d4c" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc0594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc0594)" (( "(") (binary_expression "pcVar28 + 0xc0594" (identifier "pcVar28") (+ "+") (number_literal "0xc0594")) () ")")))) (+ "+") (number_literal "-0x3d4c")) () ")")))) () ")")) (argument_list "(uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634)" (( "(") (identifier "uVar32") (, ",") (binary_expression "*(int *)(pcVar28 + 0xc043c) + 0x7284" (pointer_expression "*(int *)(pcVar28 + 0xc043c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc043c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc043c)" (( "(") (binary_expression "pcVar28 + 0xc043c" (identifier "pcVar28") (+ "+") (number_literal "0xc043c")) () ")")))) (+ "+") (number_literal "0x7284")) (, ",") (identifier "puVar18") (, ",") (number_literal "0x9634") () ")")))) (; ";")) (if_statement "if (uVar20 == 0) goto LAB_0009b410;" (if "if") (parenthesized_expression "(uVar20 == 0)" (( "(") (binary_expression "uVar20 == 0" (identifier "uVar20") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0009b410;" (goto "goto") (statement_identifier "LAB_0009b410") (; ";"))) (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0474);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0474)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(pcVar28 + 0xc0474)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0474)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0474)" (( "(") (binary_expression "pcVar28 + 0xc0474" (identifier "pcVar28") (+ "+") (number_literal "0xc0474")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }" (else "else") (compound_statement "{\n      uVar20 = uVar20 | 0x20400;\n      if (iVar7 < 0) goto LAB_0009b4a8;\nLAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }\n      if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar25 = *(int *)(pcVar28 + 0xc042c);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }\n      iVar16 = *(int *)(pcVar28 + 0xc0450);\n      pcVar29 = *(code **)(pcVar28 + 0xc0648);\n      param_3[1] = iVar5;\n      param_3[8] = (int)puVar15;\n      *(short *)((int)param_3 + 0x12) = (short)uVar21;\n      iVar8 = *(int *)(iVar25 + -0x5d20);\n      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);\n      param_3[0x10] = iVar8;\n      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);\n      if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);\n      if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }\n      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);\n      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }\nLAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);\n    }" ({ "{") (expression_statement "uVar20 = uVar20 | 0x20400;" (assignment_expression "uVar20 = uVar20 | 0x20400" (identifier "uVar20") (= "=") (binary_expression "uVar20 | 0x20400" (identifier "uVar20") (| "|") (number_literal "0x20400"))) (; ";")) (if_statement "if (iVar7 < 0) goto LAB_0009b4a8;" (if "if") (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_0009b4a8;" (goto "goto") (statement_identifier "LAB_0009b4a8") (; ";"))) (labeled_statement "LAB_0009b2c4:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }" (statement_identifier "LAB_0009b2c4") (: ":") (if_statement "if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }" (if "if") (parenthesized_expression "(local_218 != (uint *)0x0)" (( "(") (binary_expression "local_218 != (uint *)0x0" (identifier "local_218") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *local_218 = param_4;\n      }" ({ "{") (expression_statement "*local_218 = param_4;" (assignment_expression "*local_218 = param_4" (pointer_expression "*local_218" (* "*") (identifier "local_218")) (= "=") (identifier "param_4")) (; ";")) (} "}")))) (if_statement "if ((int *)param_3[7] != (int *)0x0) {\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }" (if "if") (parenthesized_expression "((int *)param_3[7] != (int *)0x0)" (( "(") (binary_expression "(int *)param_3[7] != (int *)0x0" (cast_expression "(int *)param_3[7]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[7]" (identifier "param_3") ([ "[") (number_literal "7") (] "]"))) (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *(int *)param_3[7] = iVar7;\n        *(uint *)(param_3[7] + 4) = param_4;\n      }" ({ "{") (expression_statement "*(int *)param_3[7] = iVar7;" (assignment_expression "*(int *)param_3[7] = iVar7" (pointer_expression "*(int *)param_3[7]" (* "*") (cast_expression "(int *)param_3[7]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[7]" (identifier "param_3") ([ "[") (number_literal "7") (] "]")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "*(uint *)(param_3[7] + 4) = param_4;" (assignment_expression "*(uint *)(param_3[7] + 4) = param_4" (pointer_expression "*(uint *)(param_3[7] + 4)" (* "*") (cast_expression "(uint *)(param_3[7] + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3[7] + 4)" (( "(") (binary_expression "param_3[7] + 4" (subscript_expression "param_3[7]" (identifier "param_3") ([ "[") (number_literal "7") (] "]")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (} "}"))) (if_statement "if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }" (if "if") (parenthesized_expression "(uVar21 != 0)" (( "(") (binary_expression "uVar21 != 0" (identifier "uVar21") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);\n      }" ({ "{") (expression_statement "uVar21 = 0x20;" (assignment_expression "uVar21 = 0x20" (identifier "uVar21") (= "=") (number_literal "0x20")) (; ";")) (expression_statement "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);" (call_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18)" (parenthesized_expression "(**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))" (( "(") (pointer_expression "**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4)" (* "*") (pointer_expression "*(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4)" (* "*") (cast_expression "(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcVar28 + 0xc042c) + -0x4af4)" (( "(") (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x4af4" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc042c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc042c)" (( "(") (binary_expression "pcVar28 + 0xc042c" (identifier "pcVar28") (+ "+") (number_literal "0xc042c")) () ")")))) (+ "+") (number_literal "-0x4af4")) () ")"))))) () ")")) (argument_list "(puVar18)" (( "(") (identifier "puVar18") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_72c != 0) {\n        uVar21 = uVar21 | 2;\n      }" (if "if") (parenthesized_expression "(local_72c != 0)" (( "(") (binary_expression "local_72c != 0" (identifier "local_72c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar21 = uVar21 | 2;\n      }" ({ "{") (expression_statement "uVar21 = uVar21 | 2;" (assignment_expression "uVar21 = uVar21 | 2" (identifier "uVar21") (= "=") (binary_expression "uVar21 | 2" (identifier "uVar21") (| "|") (number_literal "2"))) (; ";")) (} "}"))) (if_statement "if (uVar24 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }" (if "if") (parenthesized_expression "(uVar24 != 0x100)" (( "(") (binary_expression "uVar24 != 0x100" (identifier "uVar24") (!= "!=") (number_literal "0x100")) () ")")) (compound_statement "{\n        uVar21 = uVar21 | 0x80;\n      }" ({ "{") (expression_statement "uVar21 = uVar21 | 0x80;" (assignment_expression "uVar21 = uVar21 | 0x80" (identifier "uVar21") (= "=") (binary_expression "uVar21 | 0x80" (identifier "uVar21") (| "|") (number_literal "0x80"))) (; ";")) (} "}"))) (if_statement "if (bVar2) {\n        uVar21 = uVar21 | 8;\n      }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n        uVar21 = uVar21 | 8;\n      }" ({ "{") (expression_statement "uVar21 = uVar21 | 8;" (assignment_expression "uVar21 = uVar21 | 8" (identifier "uVar21") (= "=") (binary_expression "uVar21 | 8" (identifier "uVar21") (| "|") (number_literal "8"))) (; ";")) (} "}"))) (expression_statement "iVar25 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar25 = *(int *)(pcVar28 + 0xc042c)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(pcVar28 + 0xc042c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc042c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc042c)" (( "(") (binary_expression "pcVar28 + 0xc042c" (identifier "pcVar28") (+ "+") (number_literal "0xc042c")) () ")"))))) (; ";")) (if_statement "if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }" (if "if") (parenthesized_expression "((param_4 & 0x40) == 0)" (( "(") (binary_expression "(param_4 & 0x40) == 0" (parenthesized_expression "(param_4 & 0x40)" (( "(") (binary_expression "param_4 & 0x40" (identifier "param_4") (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        param_3[3] = iVar7;\n        puVar22 = (undefined4 *)0x0;\n      }" ({ "{") (expression_statement "param_3[3] = iVar7;" (assignment_expression "param_3[3] = iVar7" (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "puVar22 = (undefined4 *)0x0;" (assignment_expression "puVar22 = (undefined4 *)0x0" (identifier "puVar22") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }" (else "else") (compound_statement "{\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar7;\n        puVar22 = puVar15;\n      }" ({ "{") (expression_statement "uVar21 = uVar21 | 0x40;" (assignment_expression "uVar21 = uVar21 | 0x40" (identifier "uVar21") (= "=") (binary_expression "uVar21 | 0x40" (identifier "uVar21") (| "|") (number_literal "0x40"))) (; ";")) (expression_statement "param_3[3] = iVar7;" (assignment_expression "param_3[3] = iVar7" (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "puVar22 = puVar15;" (assignment_expression "puVar22 = puVar15" (identifier "puVar22") (= "=") (identifier "puVar15")) (; ";")) (} "}")))) (expression_statement "iVar16 = *(int *)(pcVar28 + 0xc0450);" (assignment_expression "iVar16 = *(int *)(pcVar28 + 0xc0450)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(pcVar28 + 0xc0450)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc0450)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc0450)" (( "(") (binary_expression "pcVar28 + 0xc0450" (identifier "pcVar28") (+ "+") (number_literal "0xc0450")) () ")"))))) (; ";")) (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0648);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0648)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(pcVar28 + 0xc0648)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0648)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0648)" (( "(") (binary_expression "pcVar28 + 0xc0648" (identifier "pcVar28") (+ "+") (number_literal "0xc0648")) () ")"))))) (; ";")) (expression_statement "param_3[1] = iVar5;" (assignment_expression "param_3[1] = iVar5" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "param_3[8] = (int)puVar15;" (assignment_expression "param_3[8] = (int)puVar15" (subscript_expression "param_3[8]" (identifier "param_3") ([ "[") (number_literal "8") (] "]")) (= "=") (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15"))) (; ";")) (expression_statement "*(short *)((int)param_3 + 0x12) = (short)uVar21;" (assignment_expression "*(short *)((int)param_3 + 0x12) = (short)uVar21" (pointer_expression "*(short *)((int)param_3 + 0x12)" (* "*") (cast_expression "(short *)((int)param_3 + 0x12)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 + 0x12)" (( "(") (binary_expression "(int)param_3 + 0x12" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (cast_expression "(short)uVar21" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "uVar21"))) (; ";")) (expression_statement "iVar8 = *(int *)(iVar25 + -0x5d20);" (assignment_expression "iVar8 = *(int *)(iVar25 + -0x5d20)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar25 + -0x5d20)" (* "*") (cast_expression "(int *)(iVar25 + -0x5d20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x5d20)" (( "(") (binary_expression "iVar25 + -0x5d20" (identifier "iVar25") (+ "+") (number_literal "-0x5d20")) () ")"))))) (; ";")) (expression_statement "param_3[0x11] = *(int *)(iVar25 + -0x5d1c);" (assignment_expression "param_3[0x11] = *(int *)(iVar25 + -0x5d1c)" (subscript_expression "param_3[0x11]" (identifier "param_3") ([ "[") (number_literal "0x11") (] "]")) (= "=") (pointer_expression "*(int *)(iVar25 + -0x5d1c)" (* "*") (cast_expression "(int *)(iVar25 + -0x5d1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x5d1c)" (( "(") (binary_expression "iVar25 + -0x5d1c" (identifier "iVar25") (+ "+") (number_literal "-0x5d1c")) () ")"))))) (; ";")) (expression_statement "param_3[0x10] = iVar8;" (assignment_expression "param_3[0x10] = iVar8" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);" (assignment_expression "iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1)" (identifier "iVar8") (= "=") (call_expression "(*pcVar29)(puVar22,iVar16 + -0x7388,1)" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(puVar22,iVar16 + -0x7388,1)" (( "(") (identifier "puVar22") (, ",") (binary_expression "iVar16 + -0x7388" (identifier "iVar16") (+ "+") (number_literal "-0x7388")) (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar8 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }" ({ "{") (expression_statement "*(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;" (assignment_expression "*(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10" (pointer_expression "*(ushort *)((int)param_3 + 0x12)" (* "*") (cast_expression "(ushort *)((int)param_3 + 0x12)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 + 0x12)" (( "(") (binary_expression "(int)param_3 + 0x12" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (binary_expression "*(ushort *)((int)param_3 + 0x12) | 0x10" (pointer_expression "*(ushort *)((int)param_3 + 0x12)" (* "*") (cast_expression "(ushort *)((int)param_3 + 0x12)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 + 0x12)" (( "(") (binary_expression "(int)param_3 + 0x12" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "0x12")) () ")")))) (| "|") (number_literal "0x10"))) (; ";")) (} "}"))) (expression_statement "iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);" (assignment_expression "iVar8 = (**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(pcVar28 + 0xc08b0))\n                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc08b0))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc08b0)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc08b0)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc08b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc08b0)" (( "(") (binary_expression "pcVar28 + 0xc08b0" (identifier "pcVar28") (+ "+") (number_literal "0xc08b0")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380)" (( "(") (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (binary_expression "*(int *)(pcVar28 + 0xc0450) + -0x7380" (pointer_expression "*(int *)(pcVar28 + 0xc0450)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc0450)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc0450)" (( "(") (binary_expression "pcVar28 + 0xc0450" (identifier "pcVar28") (+ "+") (number_literal "0xc0450")) () ")")))) (+ "+") (number_literal "-0x7380")) () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }" ({ "{") (expression_statement "*(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;" (assignment_expression "*(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1" (pointer_expression "*(ushort *)((int)param_3 + 0x12)" (* "*") (cast_expression "(ushort *)((int)param_3 + 0x12)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 + 0x12)" (( "(") (binary_expression "(int)param_3 + 0x12" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (binary_expression "*(ushort *)((int)param_3 + 0x12) | 1" (pointer_expression "*(ushort *)((int)param_3 + 0x12)" (* "*") (cast_expression "(ushort *)((int)param_3 + 0x12)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 + 0x12)" (( "(") (binary_expression "(int)param_3 + 0x12" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "0x12")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if ((uVar21 & 0x80) != 0) {\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }" (if "if") (parenthesized_expression "((uVar21 & 0x80) != 0)" (( "(") (binary_expression "(uVar21 & 0x80) != 0" (parenthesized_expression "(uVar21 & 0x80)" (( "(") (binary_expression "uVar21 & 0x80" (identifier "uVar21") (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;\n        goto LAB_0009b3f0;\n      }" ({ "{") (expression_statement "iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;" (assignment_expression "iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c" (identifier "iVar5") (= "=") (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x656c" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc042c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc042c)" (( "(") (binary_expression "pcVar28 + 0xc042c" (identifier "pcVar28") (+ "+") (number_literal "0xc042c")) () ")")))) (+ "+") (number_literal "-0x656c"))) (; ";")) (goto_statement "goto LAB_0009b3f0;" (goto "goto") (statement_identifier "LAB_0009b3f0") (; ";")) (} "}"))) (expression_statement "iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);" (assignment_expression "iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3)" (identifier "iVar5") (= "=") (call_expression "(*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3)" (parenthesized_expression "(*(code *)**(undefined4 **)(iVar5 + 0x14))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(iVar5 + 0x14)" (* "*") (cast_expression "(code *)**(undefined4 **)(iVar5 + 0x14)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(iVar5 + 0x14)" (* "*") (pointer_expression "*(undefined4 **)(iVar5 + 0x14)" (* "*") (cast_expression "(undefined4 **)(iVar5 + 0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")"))))))) () ")")) (argument_list "(puVar15,param_3)" (( "(") (identifier "puVar15") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }\n      else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }" (if "if") (parenthesized_expression "(iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c)" (( "(") (binary_expression "iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c" (identifier "iVar5") (== "==") (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x651c" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc042c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc042c)" (( "(") (binary_expression "pcVar28 + 0xc042c" (identifier "pcVar28") (+ "+") (number_literal "0xc042c")) () ")")))) (+ "+") (number_literal "-0x651c"))) () ")")) (compound_statement "{\n        iVar8 = *(int *)(pcVar28 + 0xc042c);\n        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));\n        iVar12 = *(int *)(pcVar28 + 0xc042c);\n        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);\n        if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }\nLAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n      }" ({ "{") (expression_statement "iVar8 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar8 = *(int *)(pcVar28 + 0xc042c)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(pcVar28 + 0xc042c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc042c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc042c)" (( "(") (binary_expression "pcVar28 + 0xc042c" (identifier "pcVar28") (+ "+") (number_literal "0xc042c")) () ")"))))) (; ";")) (expression_statement "(**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0504))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0504)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0504)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0504)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0504)" (( "(") (binary_expression "pcVar28 + 0xc0504" (identifier "pcVar28") (+ "+") (number_literal "0xc0504")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar8 + -0x4358))" (( "(") (pointer_expression "*(undefined4 *)(iVar8 + -0x4358)" (* "*") (cast_expression "(undefined4 *)(iVar8 + -0x4358)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -0x4358)" (( "(") (binary_expression "iVar8 + -0x4358" (identifier "iVar8") (+ "+") (number_literal "-0x4358")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar12 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar12 = *(int *)(pcVar28 + 0xc042c)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(pcVar28 + 0xc042c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc042c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc042c)" (( "(") (binary_expression "pcVar28 + 0xc042c" (identifier "pcVar28") (+ "+") (number_literal "0xc042c")) () ")"))))) (; ";")) (expression_statement "iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);" (assignment_expression "iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700)" (identifier "iVar16") (= "=") (call_expression "(**(code **)(iVar12 + -0x4b78))(param_3[3],local_700)" (parenthesized_expression "(**(code **)(iVar12 + -0x4b78))" (( "(") (pointer_expression "**(code **)(iVar12 + -0x4b78)" (* "*") (pointer_expression "*(code **)(iVar12 + -0x4b78)" (* "*") (cast_expression "(code **)(iVar12 + -0x4b78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar12 + -0x4b78)" (( "(") (binary_expression "iVar12 + -0x4b78" (identifier "iVar12") (+ "+") (number_literal "-0x4b78")) () ")"))))) () ")")) (argument_list "(param_3[3],local_700)" (( "(") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")) (, ",") (identifier "local_700") () ")")))) (; ";")) (if_statement "if (iVar16 == 0) {\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }\n        else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar16 = *(int *)(pcVar28 + 0xc042c);\n          local_710 = 0;\n          local_70c = local_700[0];\n          local_704 = local_6ec;\n          puVar22 = *(undefined4 **)(iVar16 + -0x435c);\n          local_708 = local_6f0;\n          if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }\n          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);\n          if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }\n          uVar20 = 7;\n        }" ({ "{") (expression_statement "iVar16 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar16 = *(int *)(pcVar28 + 0xc042c)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(pcVar28 + 0xc042c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc042c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc042c)" (( "(") (binary_expression "pcVar28 + 0xc042c" (identifier "pcVar28") (+ "+") (number_literal "0xc042c")) () ")"))))) (; ";")) (expression_statement "local_710 = 0;" (assignment_expression "local_710 = 0" (identifier "local_710") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_70c = local_700[0];" (assignment_expression "local_70c = local_700[0]" (identifier "local_70c") (= "=") (subscript_expression "local_700[0]" (identifier "local_700") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "local_704 = local_6ec;" (assignment_expression "local_704 = local_6ec" (identifier "local_704") (= "=") (identifier "local_6ec")) (; ";")) (expression_statement "puVar22 = *(undefined4 **)(iVar16 + -0x435c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar16 + -0x435c)" (identifier "puVar22") (= "=") (pointer_expression "*(undefined4 **)(iVar16 + -0x435c)" (* "*") (cast_expression "(undefined4 **)(iVar16 + -0x435c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar16 + -0x435c)" (( "(") (binary_expression "iVar16 + -0x435c" (identifier "iVar16") (+ "+") (number_literal "-0x435c")) () ")"))))) (; ";")) (expression_statement "local_708 = local_6f0;" (assignment_expression "local_708 = local_6f0" (identifier "local_708") (= "=") (identifier "local_6f0")) (; ";")) (if_statement "if (puVar22 == (undefined4 *)0x0) {\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }\n          else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }" (if "if") (parenthesized_expression "(puVar22 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar22 == (undefined4 *)0x0" (identifier "puVar22") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n          }" ({ "{") (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc05b4);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc05b4)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(pcVar28 + 0xc05b4)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc05b4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc05b4)" (( "(") (binary_expression "pcVar28 + 0xc05b4" (identifier "pcVar28") (+ "+") (number_literal "0xc05b4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }" (else "else") (compound_statement "{\n            do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);\n          }" ({ "{") (do_statement "do {\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            } while (puVar22 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);\n              if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }\n              puVar22 = (undefined4 *)puVar22[0xb];\n              pcVar29 = *(code **)(pcVar28 + 0xc05b4);\n            }" ({ "{") (expression_statement "iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);" (assignment_expression "iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0870))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0870)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0870)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0870)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0870)" (( "(") (binary_expression "pcVar28 + 0xc0870" (identifier "pcVar28") (+ "+") (number_literal "0xc0870")) () ")"))))) () ")")) (argument_list "(&local_710,puVar22,0x10)" (( "(") (pointer_expression "&local_710" (& "&") (identifier "local_710")) (, ",") (identifier "puVar22") (, ",") (number_literal "0x10") () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                puVar22[9] = puVar22[9] + 1;\n                goto LAB_0009b910;\n              }" ({ "{") (expression_statement "puVar22[9] = puVar22[9] + 1;" (assignment_expression "puVar22[9] = puVar22[9] + 1" (subscript_expression "puVar22[9]" (identifier "puVar22") ([ "[") (number_literal "9") (] "]")) (= "=") (binary_expression "puVar22[9] + 1" (subscript_expression "puVar22[9]" (identifier "puVar22") ([ "[") (number_literal "9") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_0009b910;" (goto "goto") (statement_identifier "LAB_0009b910") (; ";")) (} "}"))) (expression_statement "puVar22 = (undefined4 *)puVar22[0xb];" (assignment_expression "puVar22 = (undefined4 *)puVar22[0xb]" (identifier "puVar22") (= "=") (cast_expression "(undefined4 *)puVar22[0xb]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar22[0xb]" (identifier "puVar22") ([ "[") (number_literal "0xb") (] "]")))) (; ";")) (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc05b4);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc05b4)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(pcVar28 + 0xc05b4)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc05b4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc05b4)" (( "(") (binary_expression "pcVar28 + 0xc05b4" (identifier "pcVar28") (+ "+") (number_literal "0xc05b4")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar22 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar22 != (undefined4 *)0x0" (identifier "puVar22") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}")))) (expression_statement "puVar22 = (undefined4 *)(*pcVar29)(0,0x38);" (assignment_expression "puVar22 = (undefined4 *)(*pcVar29)(0,0x38)" (identifier "puVar22") (= "=") (cast_expression "(undefined4 *)(*pcVar29)(0,0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar29)(0,0x38)" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(0,0x38)" (( "(") (number_literal "0") (, ",") (number_literal "0x38") () ")"))))) (; ";")) (if_statement "if (puVar22 != (undefined4 *)0x0) {\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }" (if "if") (parenthesized_expression "(puVar22 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar22 != (undefined4 *)0x0" (identifier "puVar22") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);\n            *puVar22 = local_710;\n            puVar22[1] = local_70c;\n            puVar22[2] = local_708;\n            puVar22[3] = local_704;\n            if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }\n            iVar7 = *(int *)(iVar16 + -0x435c);\n            puVar22[0xc] = 0;\n            puVar22[9] = 1;\n            puVar22[0xb] = iVar7;\n            if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }\n            *(undefined4 **)(iVar16 + -0x435c) = puVar22;\nLAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);\n            param_3[2] = (int)puVar22;\n            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));\n            param_3[5] = 0;\n            goto LAB_0009b3f4;\n          }" ({ "{") (expression_statement "(**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);" (call_expression "(**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0808))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0808)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0808)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0808)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0808)" (( "(") (binary_expression "pcVar28 + 0xc0808" (identifier "pcVar28") (+ "+") (number_literal "0xc0808")) () ")"))))) () ")")) (argument_list "(puVar22 + 4,0,0x28)" (( "(") (binary_expression "puVar22 + 4" (identifier "puVar22") (+ "+") (number_literal "4")) (, ",") (number_literal "0") (, ",") (number_literal "0x28") () ")"))) (; ";")) (expression_statement "*puVar22 = local_710;" (assignment_expression "*puVar22 = local_710" (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (= "=") (identifier "local_710")) (; ";")) (expression_statement "puVar22[1] = local_70c;" (assignment_expression "puVar22[1] = local_70c" (subscript_expression "puVar22[1]" (identifier "puVar22") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_70c")) (; ";")) (expression_statement "puVar22[2] = local_708;" (assignment_expression "puVar22[2] = local_708" (subscript_expression "puVar22[2]" (identifier "puVar22") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_708")) (; ";")) (expression_statement "puVar22[3] = local_704;" (assignment_expression "puVar22[3] = local_704" (subscript_expression "puVar22[3]" (identifier "puVar22") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_704")) (; ";")) (if_statement "if (*(int *)(iVar25 + -0x5dd4) != 0) {\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar25 + -0x5dd4) != 0)" (( "(") (binary_expression "*(int *)(iVar25 + -0x5dd4) != 0" (pointer_expression "*(int *)(iVar25 + -0x5dd4)" (* "*") (cast_expression "(int *)(iVar25 + -0x5dd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x5dd4)" (( "(") (binary_expression "iVar25 + -0x5dd4" (identifier "iVar25") (+ "+") (number_literal "-0x5dd4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);\n              puVar22[4] = iVar25;\n              if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }\n            }" ({ "{") (expression_statement "iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);" (assignment_expression "iVar25 = (**(code **)(pcVar28 + 0xc0644))(0)" (identifier "iVar25") (= "=") (call_expression "(**(code **)(pcVar28 + 0xc0644))(0)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0644))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0644)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0644)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0644)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0644)" (( "(") (binary_expression "pcVar28 + 0xc0644" (identifier "pcVar28") (+ "+") (number_literal "0xc0644")) () ")"))))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "puVar22[4] = iVar25;" (assignment_expression "puVar22[4] = iVar25" (subscript_expression "puVar22[4]" (identifier "puVar22") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iVar25")) (; ";")) (if_statement "if (iVar25 == 0) {\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }" (if "if") (parenthesized_expression "(iVar25 == 0)" (( "(") (binary_expression "iVar25 == 0" (identifier "iVar25") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                (**(code **)(pcVar28 + 0xc0474))(puVar22);\n                uVar20 = 7;\n                goto LAB_0009bb74;\n              }" ({ "{") (expression_statement "(**(code **)(pcVar28 + 0xc0474))(puVar22);" (call_expression "(**(code **)(pcVar28 + 0xc0474))(puVar22)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0474))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0474)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0474)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0474)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0474)" (( "(") (binary_expression "pcVar28 + 0xc0474" (identifier "pcVar28") (+ "+") (number_literal "0xc0474")) () ")"))))) () ")")) (argument_list "(puVar22)" (( "(") (identifier "puVar22") () ")"))) (; ";")) (expression_statement "uVar20 = 7;" (assignment_expression "uVar20 = 7" (identifier "uVar20") (= "=") (number_literal "7")) (; ";")) (goto_statement "goto LAB_0009bb74;" (goto "goto") (statement_identifier "LAB_0009bb74") (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar7 = *(int *)(iVar16 + -0x435c);" (assignment_expression "iVar7 = *(int *)(iVar16 + -0x435c)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar16 + -0x435c)" (* "*") (cast_expression "(int *)(iVar16 + -0x435c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + -0x435c)" (( "(") (binary_expression "iVar16 + -0x435c" (identifier "iVar16") (+ "+") (number_literal "-0x435c")) () ")"))))) (; ";")) (expression_statement "puVar22[0xc] = 0;" (assignment_expression "puVar22[0xc] = 0" (subscript_expression "puVar22[0xc]" (identifier "puVar22") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar22[9] = 1;" (assignment_expression "puVar22[9] = 1" (subscript_expression "puVar22[9]" (identifier "puVar22") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar22[0xb] = iVar7;" (assignment_expression "puVar22[0xb] = iVar7" (subscript_expression "puVar22[0xb]" (identifier "puVar22") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (iVar7 != 0) {\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              *(undefined4 **)(iVar7 + 0x30) = puVar22;\n            }" ({ "{") (expression_statement "*(undefined4 **)(iVar7 + 0x30) = puVar22;" (assignment_expression "*(undefined4 **)(iVar7 + 0x30) = puVar22" (pointer_expression "*(undefined4 **)(iVar7 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar7 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x30)" (( "(") (binary_expression "iVar7 + 0x30" (identifier "iVar7") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "puVar22")) (; ";")) (} "}"))) (expression_statement "*(undefined4 **)(iVar16 + -0x435c) = puVar22;" (assignment_expression "*(undefined4 **)(iVar16 + -0x435c) = puVar22" (pointer_expression "*(undefined4 **)(iVar16 + -0x435c)" (* "*") (cast_expression "(undefined4 **)(iVar16 + -0x435c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar16 + -0x435c)" (( "(") (binary_expression "iVar16 + -0x435c" (identifier "iVar16") (+ "+") (number_literal "-0x435c")) () ")")))) (= "=") (identifier "puVar22")) (; ";")) (labeled_statement "LAB_0009b910:\n            pcVar29 = *(code **)(pcVar28 + 0xc0508);" (statement_identifier "LAB_0009b910") (: ":") (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0508);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0508)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(pcVar28 + 0xc0508)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0508)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0508)" (( "(") (binary_expression "pcVar28 + 0xc0508" (identifier "pcVar28") (+ "+") (number_literal "0xc0508")) () ")"))))) (; ";"))) (expression_statement "param_3[2] = (int)puVar22;" (assignment_expression "param_3[2] = (int)puVar22" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22"))) (; ";")) (expression_statement "(*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));" (call_expression "(*pcVar29)(*(undefined4 *)(iVar8 + -0x4358))" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(*(undefined4 *)(iVar8 + -0x4358))" (( "(") (pointer_expression "*(undefined4 *)(iVar8 + -0x4358)" (* "*") (cast_expression "(undefined4 *)(iVar8 + -0x4358)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -0x4358)" (( "(") (binary_expression "iVar8 + -0x4358" (identifier "iVar8") (+ "+") (number_literal "-0x4358")) () ")")))) () ")"))) (; ";")) (expression_statement "param_3[5] = 0;" (assignment_expression "param_3[5] = 0" (subscript_expression "param_3[5]" (identifier "param_3") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0009b3f4;" (goto "goto") (statement_identifier "LAB_0009b3f4") (; ";")) (} "}"))) (expression_statement "uVar20 = 7;" (assignment_expression "uVar20 = 7" (identifier "uVar20") (= "=") (number_literal "7")) (; ";")) (} "}")) (else_clause "else {\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }" (else "else") (compound_statement "{\n          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();\n          uVar20 = 10;\n          param_3[5] = *piVar31;\n        }" ({ "{") (expression_statement "piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();" (assignment_expression "piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))()" (identifier "piVar31") (= "=") (cast_expression "(int *)(**(code **)(pcVar28 + 0xc0800))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar28 + 0xc0800))()" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0800))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0800)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0800)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0800)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0800)" (( "(") (binary_expression "pcVar28 + 0xc0800" (identifier "pcVar28") (+ "+") (number_literal "0xc0800")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar20 = 10;" (assignment_expression "uVar20 = 10" (identifier "uVar20") (= "=") (number_literal "10")) (; ";")) (expression_statement "param_3[5] = *piVar31;" (assignment_expression "param_3[5] = *piVar31" (subscript_expression "param_3[5]" (identifier "param_3") ([ "[") (number_literal "5") (] "]")) (= "=") (pointer_expression "*piVar31" (* "*") (identifier "piVar31"))) (; ";")) (} "}")))) (labeled_statement "LAB_0009bb74:\n        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);" (statement_identifier "LAB_0009bb74") (: ":") (expression_statement "iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);" (assignment_expression "iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(iVar12 + -0x4ba8))(iVar7)" (parenthesized_expression "(**(code **)(iVar12 + -0x4ba8))" (( "(") (pointer_expression "**(code **)(iVar12 + -0x4ba8)" (* "*") (pointer_expression "*(code **)(iVar12 + -0x4ba8)" (* "*") (cast_expression "(code **)(iVar12 + -0x4ba8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar12 + -0x4ba8)" (( "(") (binary_expression "iVar12 + -0x4ba8" (identifier "iVar12") (+ "+") (number_literal "-0x4ba8")) () ")"))))) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";"))) (if_statement "if (iVar5 == 0) {\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }" ({ "{") (expression_statement "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0508))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0508)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0508)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0508)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0508)" (( "(") (binary_expression "pcVar28 + 0xc0508" (identifier "pcVar28") (+ "+") (number_literal "0xc0508")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar8 + -0x4358))" (( "(") (pointer_expression "*(undefined4 *)(iVar8 + -0x4358)" (* "*") (cast_expression "(undefined4 *)(iVar8 + -0x4358)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -0x4358)" (( "(") (binary_expression "iVar8 + -0x4358" (identifier "iVar8") (+ "+") (number_literal "-0x4358")) () ")")))) () ")"))) (; ";")) (expression_statement "param_3[5] = 0;" (assignment_expression "param_3[5] = 0" (subscript_expression "param_3[5]" (identifier "param_3") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }" (else "else") (compound_statement "{\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);\n          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));\n          param_3[5] = 0;\n        }" ({ "{") (expression_statement "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);" (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac)" (* "*") (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x37ac)" (( "(") (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x37ac" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc0594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc0594)" (( "(") (binary_expression "pcVar28 + 0xc0594" (identifier "pcVar28") (+ "+") (number_literal "0xc0594")) () ")")))) (+ "+") (number_literal "-0x37ac")) () ")")))) () ")")) (argument_list "(param_3,0x9442)" (( "(") (identifier "param_3") (, ",") (number_literal "0x9442") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));" (call_expression "(**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358))" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0508))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0508)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0508)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0508)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0508)" (( "(") (binary_expression "pcVar28 + 0xc0508" (identifier "pcVar28") (+ "+") (number_literal "0xc0508")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar8 + -0x4358))" (( "(") (pointer_expression "*(undefined4 *)(iVar8 + -0x4358)" (* "*") (cast_expression "(undefined4 *)(iVar8 + -0x4358)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -0x4358)" (( "(") (binary_expression "iVar8 + -0x4358" (identifier "iVar8") (+ "+") (number_literal "-0x4358")) () ")")))) () ")"))) (; ";")) (expression_statement "param_3[5] = 0;" (assignment_expression "param_3[5] = 0" (subscript_expression "param_3[5]" (identifier "param_3") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }" (else "else") (compound_statement "{\n        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }\n        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);\n        iVar25 = iVar25 + 6;\n        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);\n        if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }\n        iVar5 = *(int *)(pcVar28 + 0xc042c);\n        param_3[6] = 0;\n        param_3[5] = 0;\n        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);\n        if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }\n      }" ({ "{") (if_statement "if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }" (if "if") (parenthesized_expression "(iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc)" (( "(") (binary_expression "iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc" (identifier "iVar5") (!= "!=") (binary_expression "*(int *)(pcVar28 + 0xc042c) + -0x65bc" (pointer_expression "*(int *)(pcVar28 + 0xc042c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc042c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc042c)" (( "(") (binary_expression "pcVar28 + 0xc042c" (identifier "pcVar28") (+ "+") (number_literal "0xc042c")) () ")")))) (+ "+") (number_literal "-0x65bc"))) () ")")) (compound_statement "{\nLAB_0009b3f0:\n          param_3[5] = 0;\nLAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);\n          *param_3 = iVar5;\n          (*(code *)(iVar7 + -0x1bfc))(param_3);\n          uVar20 = 0;\n          goto LAB_0009b410;\n        }" ({ "{") (labeled_statement "LAB_0009b3f0:\n          param_3[5] = 0;" (statement_identifier "LAB_0009b3f0") (: ":") (expression_statement "param_3[5] = 0;" (assignment_expression "param_3[5] = 0" (subscript_expression "param_3[5]" (identifier "param_3") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";"))) (labeled_statement "LAB_0009b3f4:\n          iVar7 = *(int *)(pcVar28 + 0xc0594);" (statement_identifier "LAB_0009b3f4") (: ":") (expression_statement "iVar7 = *(int *)(pcVar28 + 0xc0594);" (assignment_expression "iVar7 = *(int *)(pcVar28 + 0xc0594)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(pcVar28 + 0xc0594)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc0594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc0594)" (( "(") (binary_expression "pcVar28 + 0xc0594" (identifier "pcVar28") (+ "+") (number_literal "0xc0594")) () ")"))))) (; ";"))) (expression_statement "*param_3 = iVar5;" (assignment_expression "*param_3 = iVar5" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "(*(code *)(iVar7 + -0x1bfc))(param_3);" (call_expression "(*(code *)(iVar7 + -0x1bfc))(param_3)" (parenthesized_expression "(*(code *)(iVar7 + -0x1bfc))" (( "(") (pointer_expression "*(code *)(iVar7 + -0x1bfc)" (* "*") (cast_expression "(code *)(iVar7 + -0x1bfc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + -0x1bfc)" (( "(") (binary_expression "iVar7 + -0x1bfc" (identifier "iVar7") (+ "+") (number_literal "-0x1bfc")) () ")")))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))) (; ";")) (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" (identifier "uVar20") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0009b410;" (goto "goto") (statement_identifier "LAB_0009b410") (; ";")) (} "}"))) (expression_statement "iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);" (assignment_expression "iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15)" (identifier "iVar25") (= "=") (call_expression "(**(code **)(pcVar28 + 0xc0818))(puVar15)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0818))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0818)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0818)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0818)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0818)" (( "(") (binary_expression "pcVar28 + 0xc0818" (identifier "pcVar28") (+ "+") (number_literal "0xc0818")) () ")"))))) () ")")) (argument_list "(puVar15)" (( "(") (identifier "puVar15") () ")")))) (; ";")) (expression_statement "iVar25 = iVar25 + 6;" (assignment_expression "iVar25 = iVar25 + 6" (identifier "iVar25") (= "=") (binary_expression "iVar25 + 6" (identifier "iVar25") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);" (assignment_expression "iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc05b4))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc05b4)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc05b4)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc05b4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc05b4)" (( "(") (binary_expression "pcVar28 + 0xc05b4" (identifier "pcVar28") (+ "+") (number_literal "0xc05b4")) () ")"))))) () ")")) (argument_list "(iVar25 >> 0x1f,iVar25)" (( "(") (binary_expression "iVar25 >> 0x1f" (identifier "iVar25") (>> ">>") (number_literal "0x1f")) (, ",") (identifier "iVar25") () ")")))) (; ";")) (if_statement "if (iVar8 != 0) {\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          (**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);\n          param_3[6] = iVar8;\n          goto LAB_0009b3f0;\n        }" ({ "{") (expression_statement "(**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);" (call_expression "(**(code **)(pcVar28 + 0xc0464))\n                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15)" (parenthesized_expression "(**(code **)(pcVar28 + 0xc0464))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xc0464)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xc0464)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0464)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0464)" (( "(") (binary_expression "pcVar28 + 0xc0464" (identifier "pcVar28") (+ "+") (number_literal "0xc0464")) () ")"))))) () ")")) (argument_list "(iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15)" (( "(") (identifier "iVar25") (, ",") (identifier "iVar8") (, ",") (binary_expression "*(int *)(pcVar28 + 0xc0450) + -0x7374" (pointer_expression "*(int *)(pcVar28 + 0xc0450)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc0450)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc0450)" (( "(") (binary_expression "pcVar28 + 0xc0450" (identifier "pcVar28") (+ "+") (number_literal "0xc0450")) () ")")))) (+ "+") (number_literal "-0x7374")) (, ",") (identifier "puVar15") () ")"))) (; ";")) (expression_statement "param_3[6] = iVar8;" (assignment_expression "param_3[6] = iVar8" (subscript_expression "param_3[6]" (identifier "param_3") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (goto_statement "goto LAB_0009b3f0;" (goto "goto") (statement_identifier "LAB_0009b3f0") (; ";")) (} "}"))) (expression_statement "iVar5 = *(int *)(pcVar28 + 0xc042c);" (assignment_expression "iVar5 = *(int *)(pcVar28 + 0xc042c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(pcVar28 + 0xc042c)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc042c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc042c)" (( "(") (binary_expression "pcVar28 + 0xc042c" (identifier "pcVar28") (+ "+") (number_literal "0xc042c")) () ")"))))) (; ";")) (expression_statement "param_3[6] = 0;" (assignment_expression "param_3[6] = 0" (subscript_expression "param_3[6]" (identifier "param_3") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_3[5] = 0;" (assignment_expression "param_3[5] = 0" (subscript_expression "param_3[5]" (identifier "param_3") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);" (assignment_expression "iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(iVar5 + -0x4ba8))(iVar7)" (parenthesized_expression "(**(code **)(iVar5 + -0x4ba8))" (( "(") (pointer_expression "**(code **)(iVar5 + -0x4ba8)" (* "*") (pointer_expression "*(code **)(iVar5 + -0x4ba8)" (* "*") (cast_expression "(code **)(iVar5 + -0x4ba8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + -0x4ba8)" (( "(") (binary_expression "iVar5 + -0x4ba8" (identifier "iVar5") (+ "+") (number_literal "-0x4ba8")) () ")"))))) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n          uVar20 = 7;\n        }\n        else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar20 = 7;\n        }" ({ "{") (expression_statement "uVar20 = 7;" (assignment_expression "uVar20 = 7" (identifier "uVar20") (= "=") (number_literal "7")) (; ";")) (} "}")) (else_clause "else {\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }" (else "else") (compound_statement "{\n          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);\n          uVar20 = 7;\n        }" ({ "{") (expression_statement "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);" (call_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497)" (parenthesized_expression "(*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac)" (* "*") (cast_expression "(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar28 + 0xc0594) + -0x37ac)" (( "(") (binary_expression "*(int *)(pcVar28 + 0xc0594) + -0x37ac" (pointer_expression "*(int *)(pcVar28 + 0xc0594)" (* "*") (cast_expression "(int *)(pcVar28 + 0xc0594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xc0594)" (( "(") (binary_expression "pcVar28 + 0xc0594" (identifier "pcVar28") (+ "+") (number_literal "0xc0594")) () ")")))) (+ "+") (number_literal "-0x37ac")) () ")")))) () ")")) (argument_list "(param_3,0x9497)" (( "(") (identifier "param_3") (, ",") (number_literal "0x9497") () ")"))) (; ";")) (expression_statement "uVar20 = 7;" (assignment_expression "uVar20 = 7" (identifier "uVar20") (= "=") (number_literal "7")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_0009b84c:\n      pcVar29 = *(code **)(pcVar28 + 0xc0474);" (statement_identifier "LAB_0009b84c") (: ":") (expression_statement "pcVar29 = *(code **)(pcVar28 + 0xc0474);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0xc0474)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(pcVar28 + 0xc0474)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0474)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0474)" (( "(") (binary_expression "pcVar28 + 0xc0474" (identifier "pcVar28") (+ "+") (number_literal "0xc0474")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "(*pcVar29)(param_3[7]);" (call_expression "(*pcVar29)(param_3[7])" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(param_3[7])" (( "(") (subscript_expression "param_3[7]" (identifier "param_3") ([ "[") (number_literal "7") (] "]")) () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_0009b410:\n  if (local_254 == *piVar30) {\n    return uVar20;\n  }" (statement_identifier "LAB_0009b410") (: ":") (if_statement "if (local_254 == *piVar30) {\n    return uVar20;\n  }" (if "if") (parenthesized_expression "(local_254 == *piVar30)" (( "(") (binary_expression "local_254 == *piVar30" (identifier "local_254") (== "==") (pointer_expression "*piVar30" (* "*") (identifier "piVar30"))) () ")")) (compound_statement "{\n    return uVar20;\n  }" ({ "{") (return_statement "return uVar20;" (return "return") (identifier "uVar20") (; ";")) (} "}")))) (expression_statement "pcVar28 = *(code **)(pcVar28 + 0xc0864);" (assignment_expression "pcVar28 = *(code **)(pcVar28 + 0xc0864)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar28 + 0xc0864)" (* "*") (cast_expression "(code **)(pcVar28 + 0xc0864)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xc0864)" (( "(") (binary_expression "pcVar28 + 0xc0864" (identifier "pcVar28") (+ "+") (number_literal "0xc0864")) () ")"))))) (; ";")) (expression_statement "iVar5 = local_254;" (assignment_expression "iVar5 = local_254" (identifier "iVar5") (= "=") (identifier "local_254")) (; ";")) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar7 = *(int *)(iVar5 + 0x60);" (assignment_expression "iVar7 = *(int *)(iVar5 + 0x60)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar5 + 0x60)" (* "*") (cast_expression "(int *)(iVar5 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x60)" (( "(") (binary_expression "iVar5 + 0x60" (identifier "iVar5") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "puVar22 = *(undefined4 **)(iVar5 + 0xd0);" (assignment_expression "puVar22 = *(undefined4 **)(iVar5 + 0xd0)" (identifier "puVar22") (= "=") (pointer_expression "*(undefined4 **)(iVar5 + 0xd0)" (* "*") (cast_expression "(undefined4 **)(iVar5 + 0xd0)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xd0)" (( "(") (binary_expression "iVar5 + 0xd0" (identifier "iVar5") (+ "+") (number_literal "0xd0")) () ")"))))) (; ";")) (expression_statement "uVar6 = *(uint *)(iVar5 + 0x4c);" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x4c)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(iVar5 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar5 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x4c)" (( "(") (binary_expression "iVar5 + 0x4c" (identifier "iVar5") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "uVar20 = *(uint *)(iVar5 + 0x98);" (assignment_expression "uVar20 = *(uint *)(iVar5 + 0x98)" (identifier "uVar20") (= "=") (pointer_expression "*(uint *)(iVar5 + 0x98)" (* "*") (cast_expression "(uint *)(iVar5 + 0x98)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x98)" (( "(") (binary_expression "iVar5 + 0x98" (identifier "iVar5") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(iVar5 + 0x94) <= *(uint *)(iVar5 + 0x98)) {\n    uVar20 = *(uint *)(iVar5 + 0x94);\n  }" (if "if") (parenthesized_expression "(*(uint *)(iVar5 + 0x94) <= *(uint *)(iVar5 + 0x98))" (( "(") (binary_expression "*(uint *)(iVar5 + 0x94) <= *(uint *)(iVar5 + 0x98)" (pointer_expression "*(uint *)(iVar5 + 0x94)" (* "*") (cast_expression "(uint *)(iVar5 + 0x94)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x94)" (( "(") (binary_expression "iVar5 + 0x94" (identifier "iVar5") (+ "+") (number_literal "0x94")) () ")")))) (<= "<=") (pointer_expression "*(uint *)(iVar5 + 0x98)" (* "*") (cast_expression "(uint *)(iVar5 + 0x98)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x98)" (( "(") (binary_expression "iVar5 + 0x98" (identifier "iVar5") (+ "+") (number_literal "0x98")) () ")"))))) () ")")) (compound_statement "{\n    uVar20 = *(uint *)(iVar5 + 0x94);\n  }" ({ "{") (expression_statement "uVar20 = *(uint *)(iVar5 + 0x94);" (assignment_expression "uVar20 = *(uint *)(iVar5 + 0x94)" (identifier "uVar20") (= "=") (pointer_expression "*(uint *)(iVar5 + 0x94)" (* "*") (cast_expression "(uint *)(iVar5 + 0x94)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x94)" (( "(") (binary_expression "iVar5 + 0x94" (identifier "iVar5") (+ "+") (number_literal "0x94")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar25 = *(int *)(iVar5 + 0x48);" (assignment_expression "iVar25 = *(int *)(iVar5 + 0x48)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(iVar5 + 0x48)" (* "*") (cast_expression "(int *)(iVar5 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x48)" (( "(") (binary_expression "iVar5 + 0x48" (identifier "iVar5") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (if_statement "if (0 < iVar7) {\n    iVar16 = 0;\n    iVar8 = 0;\n    do {\n      iVar8 = iVar8 + 1;\n      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;\n      iVar16 = iVar16 + 0x30;\n      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }\n    } while (iVar8 < iVar7);\n  }" (if "if") (parenthesized_expression "(0 < iVar7)" (( "(") (binary_expression "0 < iVar7" (number_literal "0") (< "<") (identifier "iVar7")) () ")")) (compound_statement "{\n    iVar16 = 0;\n    iVar8 = 0;\n    do {\n      iVar8 = iVar8 + 1;\n      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;\n      iVar16 = iVar16 + 0x30;\n      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }\n    } while (iVar8 < iVar7);\n  }" ({ "{") (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      iVar8 = iVar8 + 1;\n      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;\n      iVar16 = iVar16 + 0x30;\n      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }\n    } while (iVar8 < iVar7);" (do "do") (compound_statement "{\n      iVar8 = iVar8 + 1;\n      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;\n      iVar16 = iVar16 + 0x30;\n      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }\n    }" ({ "{") (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;" (assignment_expression "iVar12 = *(int *)(iVar5 + 0x5c) + iVar16" (identifier "iVar12") (= "=") (binary_expression "*(int *)(iVar5 + 0x5c) + iVar16" (pointer_expression "*(int *)(iVar5 + 0x5c)" (* "*") (cast_expression "(int *)(iVar5 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x5c)" (( "(") (binary_expression "iVar5 + 0x5c" (identifier "iVar5") (+ "+") (number_literal "0x5c")) () ")")))) (+ "+") (identifier "iVar16"))) (; ";")) (expression_statement "iVar16 = iVar16 + 0x30;" (assignment_expression "iVar16 = iVar16 + 0x30" (identifier "iVar16") (= "=") (binary_expression "iVar16 + 0x30" (identifier "iVar16") (+ "+") (number_literal "0x30"))) (; ";")) (if_statement "if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0" (binary_expression "*(int *)(iVar12 + 8) == 0" (pointer_expression "*(int *)(iVar12 + 8)" (* "*") (cast_expression "(int *)(iVar12 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 8)" (( "(") (binary_expression "iVar12 + 8" (identifier "iVar12") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (binary_expression "*(int *)(iVar12 + 0xc) == 0" (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 "0"))) () ")")) (compound_statement "{\n        *(uint *)(iVar12 + 0xc) = uVar6;\n        *(int *)(iVar12 + 8) = iVar25;\n        iVar7 = *(int *)(iVar5 + 0x60);\n        uVar6 = *(uint *)(iVar5 + 0x4c);\n        iVar25 = *(int *)(iVar5 + 0x48);\n      }" ({ "{") (expression_statement "*(uint *)(iVar12 + 0xc) = uVar6;" (assignment_expression "*(uint *)(iVar12 + 0xc) = uVar6" (pointer_expression "*(uint *)(iVar12 + 0xc)" (* "*") (cast_expression "(uint *)(iVar12 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xc)" (( "(") (binary_expression "iVar12 + 0xc" (identifier "iVar12") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "*(int *)(iVar12 + 8) = iVar25;" (assignment_expression "*(int *)(iVar12 + 8) = iVar25" (pointer_expression "*(int *)(iVar12 + 8)" (* "*") (cast_expression "(int *)(iVar12 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 8)" (( "(") (binary_expression "iVar12 + 8" (identifier "iVar12") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar25")) (; ";")) (expression_statement "iVar7 = *(int *)(iVar5 + 0x60);" (assignment_expression "iVar7 = *(int *)(iVar5 + 0x60)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar5 + 0x60)" (* "*") (cast_expression "(int *)(iVar5 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x60)" (( "(") (binary_expression "iVar5 + 0x60" (identifier "iVar5") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "uVar6 = *(uint *)(iVar5 + 0x4c);" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x4c)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(iVar5 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar5 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x4c)" (( "(") (binary_expression "iVar5 + 0x4c" (identifier "iVar5") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "iVar25 = *(int *)(iVar5 + 0x48);" (assignment_expression "iVar25 = *(int *)(iVar5 + 0x48)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(iVar5 + 0x48)" (* "*") (cast_expression "(int *)(iVar5 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x48)" (( "(") (binary_expression "iVar5 + 0x48" (identifier "iVar5") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(iVar8 < iVar7)" (( "(") (binary_expression "iVar8 < iVar7" (identifier "iVar8") (< "<") (identifier "iVar7")) () ")")) (; ";")) (} "}"))) (if_statement "if (iVar25 != 0 || uVar6 != 0) {\n    uVar21 = *(uint *)(iVar5 + 0x94);\n    lVar33 = (**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21);\n    lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar6 = (uint)lVar3;\n    iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20);\n  }" (if "if") (parenthesized_expression "(iVar25 != 0 || uVar6 != 0)" (( "(") (binary_expression "iVar25 != 0 || uVar6 != 0" (binary_expression "iVar25 != 0" (identifier "iVar25") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n    uVar21 = *(uint *)(iVar5 + 0x94);\n    lVar33 = (**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21);\n    lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar6 = (uint)lVar3;\n    iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20);\n  }" ({ "{") (expression_statement "uVar21 = *(uint *)(iVar5 + 0x94);" (assignment_expression "uVar21 = *(uint *)(iVar5 + 0x94)" (identifier "uVar21") (= "=") (pointer_expression "*(uint *)(iVar5 + 0x94)" (* "*") (cast_expression "(uint *)(iVar5 + 0x94)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x94)" (( "(") (binary_expression "iVar5 + 0x94" (identifier "iVar5") (+ "+") (number_literal "0x94")) () ")"))))) (; ";")) (expression_statement "lVar33 = (**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21);" (assignment_expression "lVar33 = (**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21)" (identifier "lVar33") (= "=") (call_expression "(**(code **)(pcVar28 + 0xbf8fc))\n                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21)" (parenthesized_expression "(**(code **)(pcVar28 + 0xbf8fc))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0xbf8fc)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0xbf8fc)" (* "*") (cast_expression "(code **)(pcVar28 + 0xbf8fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xbf8fc)" (( "(") (binary_expression "pcVar28 + 0xbf8fc" (identifier "pcVar28") (+ "+") (number_literal "0xbf8fc")) () ")"))))) () ")")) (argument_list "((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21)" (( "(") (binary_expression "(uint)(uVar6 - 1 < uVar6) + iVar25 + -1" (binary_expression "(uint)(uVar6 - 1 < uVar6) + iVar25" (call_expression "(uint)(uVar6 - 1 < uVar6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar6 - 1 < uVar6)" (( "(") (binary_expression "uVar6 - 1 < uVar6" (binary_expression "uVar6 - 1" (identifier "uVar6") (- "-") (number_literal "1")) (< "<") (identifier "uVar6")) () ")"))) (+ "+") (identifier "iVar25")) (+ "+") (number_literal "-1")) (, ",") (binary_expression "uVar6 - 1" (identifier "uVar6") (- "-") (number_literal "1")) (, ",") (number_literal "0") (, ",") (identifier "uVar21") () ")")))) (; ";")) (expression_statement "lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;" (assignment_expression "lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21" (identifier "lVar3") (= "=") (binary_expression "(lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21" (parenthesized_expression "(lVar33 + 1U & 0xffffffff)" (( "(") (binary_expression "lVar33 + 1U & 0xffffffff" (binary_expression "lVar33 + 1U" (identifier "lVar33") (+ "+") (number_literal "1U")) (& "&") (number_literal "0xffffffff")) () ")")) (* "*") (cast_expression "(ulonglong)uVar21" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar21")))) (; ";")) (expression_statement "uVar6 = (uint)lVar3;" (assignment_expression "uVar6 = (uint)lVar3" (identifier "uVar6") (= "=") (cast_expression "(uint)lVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar3"))) (; ";")) (expression_statement "iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20)" (identifier "iVar25") (= "=") (binary_expression "(int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20)" (binary_expression "(int)(lVar33 + 1U >> 0x20) * uVar21" (cast_expression "(int)(lVar33 + 1U >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(lVar33 + 1U >> 0x20)" (( "(") (binary_expression "lVar33 + 1U >> 0x20" (binary_expression "lVar33 + 1U" (identifier "lVar33") (+ "+") (number_literal "1U")) (>> ">>") (number_literal "0x20")) () ")"))) (* "*") (identifier "uVar21")) (+ "+") (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x20")) () ")"))))) (; ";")) (} "}"))) (expression_statement "*(uint *)(iVar5 + 0x4c) = uVar6;" (assignment_expression "*(uint *)(iVar5 + 0x4c) = uVar6" (pointer_expression "*(uint *)(iVar5 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar5 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x4c)" (( "(") (binary_expression "iVar5 + 0x4c" (identifier "iVar5") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "*(int *)(iVar5 + 0x48) = iVar25;" (assignment_expression "*(int *)(iVar5 + 0x48) = iVar25" (pointer_expression "*(int *)(iVar5 + 0x48)" (* "*") (cast_expression "(int *)(iVar5 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x48)" (( "(") (binary_expression "iVar5 + 0x48" (identifier "iVar5") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (identifier "iVar25")) (; ";")) (expression_statement "*(uint *)(iVar5 + 0x54) = uVar6;" (assignment_expression "*(uint *)(iVar5 + 0x54) = uVar6" (pointer_expression "*(uint *)(iVar5 + 0x54)" (* "*") (cast_expression "(uint *)(iVar5 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x54)" (( "(") (binary_expression "iVar5 + 0x54" (identifier "iVar5") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "*(int *)(iVar5 + 0x50) = iVar25;" (assignment_expression "*(int *)(iVar5 + 0x50) = iVar25" (pointer_expression "*(int *)(iVar5 + 0x50)" (* "*") (cast_expression "(int *)(iVar5 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x50)" (( "(") (binary_expression "iVar5 + 0x50" (identifier "iVar5") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (identifier "iVar25")) (; ";")) (if_statement "if (*(char *)(iVar5 + 7) == '\0') {\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n    if (*(char *)(iVar5 + 5) != '\x04') {\n      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }\n      goto LAB_0009be98;\n    }\n  }\n  else {\nLAB_0009be98:\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n  }" (if "if") (parenthesized_expression "(*(char *)(iVar5 + 7) == '\0')" (( "(") (binary_expression "*(char *)(iVar5 + 7) == '\0'" (pointer_expression "*(char *)(iVar5 + 7)" (* "*") (cast_expression "(char *)(iVar5 + 7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 7)" (( "(") (binary_expression "iVar5 + 7" (identifier "iVar5") (+ "+") (number_literal "7")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n    if (*(char *)(iVar5 + 5) != '\x04') {\n      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }\n      goto LAB_0009be98;\n    }\n  }" ({ "{") (expression_statement "iVar7 = *(int *)(pcVar28 + 0xbf8f0);" (assignment_expression "iVar7 = *(int *)(pcVar28 + 0xbf8f0)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(pcVar28 + 0xbf8f0)" (* "*") (cast_expression "(int *)(pcVar28 + 0xbf8f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xbf8f0)" (( "(") (binary_expression "pcVar28 + 0xbf8f0" (identifier "pcVar28") (+ "+") (number_literal "0xbf8f0")) () ")"))))) (; ";")) (if_statement "if (*(char *)(iVar5 + 5) != '\x04') {\n      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }\n      goto LAB_0009be98;\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar5 + 5) != '\x04')" (( "(") (binary_expression "*(char *)(iVar5 + 5) != '\x04'" (pointer_expression "*(char *)(iVar5 + 5)" (* "*") (cast_expression "(char *)(iVar5 + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 5)" (( "(") (binary_expression "iVar5 + 5" (identifier "iVar5") (+ "+") (number_literal "5")) () ")")))) (!= "!=") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) () ")")) (compound_statement "{\n      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }\n      goto LAB_0009be98;\n    }" ({ "{") (expression_statement "uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));" (assignment_expression "uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c))" (identifier "uVar6") (= "=") (call_expression "(**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c))" (parenthesized_expression "(**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar5 + 0x3c) + 0x30)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar5 + 0x3c) + 0x30)" (* "*") (cast_expression "(code **)(**(int **)(iVar5 + 0x3c) + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar5 + 0x3c) + 0x30)" (( "(") (binary_expression "**(int **)(iVar5 + 0x3c) + 0x30" (pointer_expression "**(int **)(iVar5 + 0x3c)" (* "*") (pointer_expression "*(int **)(iVar5 + 0x3c)" (* "*") (cast_expression "(int **)(iVar5 + 0x3c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0x3c)" (( "(") (binary_expression "iVar5 + 0x3c" (identifier "iVar5") (+ "+") (number_literal "0x3c")) () ")"))))) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(*(int **)(iVar5 + 0x3c))" (( "(") (pointer_expression "*(int **)(iVar5 + 0x3c)" (* "*") (cast_expression "(int **)(iVar5 + 0x3c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0x3c)" (( "(") (binary_expression "iVar5 + 0x3c" (identifier "iVar5") (+ "+") (number_literal "0x3c")) () ")")))) () ")")))) (; ";")) (if_statement "if ((uVar6 & 0x200) == 0) {\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }" (if "if") (parenthesized_expression "((uVar6 & 0x200) == 0)" (( "(") (binary_expression "(uVar6 & 0x200) == 0" (parenthesized_expression "(uVar6 & 0x200)" (( "(") (binary_expression "uVar6 & 0x200" (identifier "uVar6") (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined1 *)puVar22 = 0;\n        *(undefined1 *)((int)puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 3) = 0;\n        *(undefined1 *)(puVar22 + 1) = 0;\n        *(undefined1 *)((int)puVar22 + 5) = 0;\n        *(undefined1 *)((int)puVar22 + 6) = 0;\n        *(undefined1 *)((int)puVar22 + 7) = 0;\n        *(undefined1 *)(puVar22 + 2) = 0;\n        *(undefined1 *)((int)puVar22 + 9) = 0;\n        *(undefined1 *)((int)puVar22 + 10) = 0;\n        *(undefined1 *)((int)puVar22 + 0xb) = 0;\n        goto LAB_0009becc;\n      }" ({ "{") (expression_statement "*(undefined1 *)puVar22 = 0;" (assignment_expression "*(undefined1 *)puVar22 = 0" (pointer_expression "*(undefined1 *)puVar22" (* "*") (cast_expression "(undefined1 *)puVar22" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar22"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar22 + 1) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 1) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 1)" (* "*") (cast_expression "(undefined1 *)((int)puVar22 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 1)" (( "(") (binary_expression "(int)puVar22 + 1" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar22 + 2) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 2) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 2)" (* "*") (cast_expression "(undefined1 *)((int)puVar22 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 2)" (( "(") (binary_expression "(int)puVar22 + 2" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar22 + 3) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 3) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 3)" (* "*") (cast_expression "(undefined1 *)((int)puVar22 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 3)" (( "(") (binary_expression "(int)puVar22 + 3" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar22 + 1) = 0;" (assignment_expression "*(undefined1 *)(puVar22 + 1) = 0" (pointer_expression "*(undefined1 *)(puVar22 + 1)" (* "*") (cast_expression "(undefined1 *)(puVar22 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 1)" (( "(") (binary_expression "puVar22 + 1" (identifier "puVar22") (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar22 + 5) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 5) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 5)" (* "*") (cast_expression "(undefined1 *)((int)puVar22 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 5)" (( "(") (binary_expression "(int)puVar22 + 5" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar22 + 6) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 6) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 6)" (* "*") (cast_expression "(undefined1 *)((int)puVar22 + 6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 6)" (( "(") (binary_expression "(int)puVar22 + 6" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "6")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar22 + 7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 7) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 7)" (* "*") (cast_expression "(undefined1 *)((int)puVar22 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 7)" (( "(") (binary_expression "(int)puVar22 + 7" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "7")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar22 + 2) = 0;" (assignment_expression "*(undefined1 *)(puVar22 + 2) = 0" (pointer_expression "*(undefined1 *)(puVar22 + 2)" (* "*") (cast_expression "(undefined1 *)(puVar22 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 2)" (( "(") (binary_expression "puVar22 + 2" (identifier "puVar22") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar22 + 9) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 9) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 9)" (* "*") (cast_expression "(undefined1 *)((int)puVar22 + 9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 9)" (( "(") (binary_expression "(int)puVar22 + 9" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "9")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar22 + 10) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 10) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 10)" (* "*") (cast_expression "(undefined1 *)((int)puVar22 + 10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 10)" (( "(") (binary_expression "(int)puVar22 + 10" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar22 + 0xb) = 0;" (assignment_expression "*(undefined1 *)((int)puVar22 + 0xb) = 0" (pointer_expression "*(undefined1 *)((int)puVar22 + 0xb)" (* "*") (cast_expression "(undefined1 *)((int)puVar22 + 0xb)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 0xb)" (( "(") (binary_expression "(int)puVar22 + 0xb" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "0xb")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0009becc;" (goto "goto") (statement_identifier "LAB_0009becc") (; ";")) (} "}"))) (goto_statement "goto LAB_0009be98;" (goto "goto") (statement_identifier "LAB_0009be98") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_0009be98:\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n  }" (else "else") (compound_statement "{\nLAB_0009be98:\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);\n  }" ({ "{") (labeled_statement "LAB_0009be98:\n    iVar7 = *(int *)(pcVar28 + 0xbf8f0);" (statement_identifier "LAB_0009be98") (: ":") (expression_statement "iVar7 = *(int *)(pcVar28 + 0xbf8f0);" (assignment_expression "iVar7 = *(int *)(pcVar28 + 0xbf8f0)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(pcVar28 + 0xbf8f0)" (* "*") (cast_expression "(int *)(pcVar28 + 0xbf8f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0xbf8f0)" (( "(") (binary_expression "pcVar28 + 0xbf8f0" (identifier "pcVar28") (+ "+") (number_literal "0xbf8f0")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "uVar32 = *(undefined4 *)(iVar7 + -0x7ce8);" (assignment_expression "uVar32 = *(undefined4 *)(iVar7 + -0x7ce8)" (identifier "uVar32") (= "=") (pointer_expression "*(undefined4 *)(iVar7 + -0x7ce8)" (* "*") (cast_expression "(undefined4 *)(iVar7 + -0x7ce8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + -0x7ce8)" (( "(") (binary_expression "iVar7 + -0x7ce8" (identifier "iVar7") (+ "+") (number_literal "-0x7ce8")) () ")"))))) (; ";")) (expression_statement "*puVar22 = *(undefined4 *)(iVar7 + -0x7cec);" (assignment_expression "*puVar22 = *(undefined4 *)(iVar7 + -0x7cec)" (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (= "=") (pointer_expression "*(undefined4 *)(iVar7 + -0x7cec)" (* "*") (cast_expression "(undefined4 *)(iVar7 + -0x7cec)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + -0x7cec)" (( "(") (binary_expression "iVar7 + -0x7cec" (identifier "iVar7") (+ "+") (number_literal "-0x7cec")) () ")"))))) (; ";")) (expression_statement "puVar22[1] = uVar32;" (assignment_expression "puVar22[1] = uVar32" (subscript_expression "puVar22[1]" (identifier "puVar22") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar32")) (; ";")) (expression_statement "*(undefined1 *)(puVar22 + 2) = 0xff;" (assignment_expression "*(undefined1 *)(puVar22 + 2) = 0xff" (pointer_expression "*(undefined1 *)(puVar22 + 2)" (* "*") (cast_expression "(undefined1 *)(puVar22 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 2)" (( "(") (binary_expression "puVar22 + 2" (identifier "puVar22") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0xff")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar22 + 9) = 0xff;" (assignment_expression "*(undefined1 *)((int)puVar22 + 9) = 0xff" (pointer_expression "*(undefined1 *)((int)puVar22 + 9)" (* "*") (cast_expression "(undefined1 *)((int)puVar22 + 9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 9)" (( "(") (binary_expression "(int)puVar22 + 9" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "9")) () ")")))) (= "=") (number_literal "0xff")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar22 + 10) = 0xff;" (assignment_expression "*(undefined1 *)((int)puVar22 + 10) = 0xff" (pointer_expression "*(undefined1 *)((int)puVar22 + 10)" (* "*") (cast_expression "(undefined1 *)((int)puVar22 + 10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 10)" (( "(") (binary_expression "(int)puVar22 + 10" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "10")) () ")")))) (= "=") (number_literal "0xff")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar22 + 0xb) = 0xff;" (assignment_expression "*(undefined1 *)((int)puVar22 + 0xb) = 0xff" (pointer_expression "*(undefined1 *)((int)puVar22 + 0xb)" (* "*") (cast_expression "(undefined1 *)((int)puVar22 + 0xb)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 0xb)" (( "(") (binary_expression "(int)puVar22 + 0xb" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "0xb")) () ")")))) (= "=") (number_literal "0xff")) (; ";")) (labeled_statement "LAB_0009becc:\n  uVar6 = 0;" (statement_identifier "LAB_0009becc") (: ":") (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";"))) (expression_statement "sqlite3_randomness(4,iVar5 + 0x30);" (call_expression "sqlite3_randomness(4,iVar5 + 0x30)" (identifier "sqlite3_randomness") (argument_list "(4,iVar5 + 0x30)" (( "(") (number_literal "4") (, ",") (binary_expression "iVar5 + 0x30" (identifier "iVar5") (+ "+") (number_literal "0x30")) () ")"))) (; ";")) (expression_statement "uVar32 = *(undefined4 *)(iVar5 + 0x30);" (assignment_expression "uVar32 = *(undefined4 *)(iVar5 + 0x30)" (identifier "uVar32") (= "=") (pointer_expression "*(undefined4 *)(iVar5 + 0x30)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x30)" (( "(") (binary_expression "iVar5 + 0x30" (identifier "iVar5") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "*(char *)((int)puVar22 + 0xf) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar22 + 0xf) = (char)uVar32" (pointer_expression "*(char *)((int)puVar22 + 0xf)" (* "*") (cast_expression "(char *)((int)puVar22 + 0xf)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 0xf)" (( "(") (binary_expression "(int)puVar22 + 0xf" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "0xf")) () ")")))) (= "=") (cast_expression "(char)uVar32" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar32"))) (; ";")) (expression_statement "*(char *)(puVar22 + 3) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar22 + 3) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar22 + 3)" (* "*") (cast_expression "(char *)(puVar22 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 3)" (( "(") (binary_expression "puVar22 + 3" (identifier "puVar22") (+ "+") (number_literal "3")) () ")")))) (= "=") (cast_expression "(char)((uint)uVar32 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar32 >> 0x18)" (( "(") (binary_expression "(uint)uVar32 >> 0x18" (cast_expression "(uint)uVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar32")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "*(char *)((int)puVar22 + 0xd) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar22 + 0xd) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar22 + 0xd)" (* "*") (cast_expression "(char *)((int)puVar22 + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 0xd)" (( "(") (binary_expression "(int)puVar22 + 0xd" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "0xd")) () ")")))) (= "=") (cast_expression "(char)((uint)uVar32 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar32 >> 0x10)" (( "(") (binary_expression "(uint)uVar32 >> 0x10" (cast_expression "(uint)uVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar32")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "*(char *)((int)puVar22 + 0xe) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar22 + 0xe) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar22 + 0xe)" (* "*") (cast_expression "(char *)((int)puVar22 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 0xe)" (( "(") (binary_expression "(int)puVar22 + 0xe" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "0xe")) () ")")))) (= "=") (cast_expression "(char)((uint)uVar32 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar32 >> 8)" (( "(") (binary_expression "(uint)uVar32 >> 8" (cast_expression "(uint)uVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar32")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "uVar32 = *(undefined4 *)(iVar5 + 0x1c);" (assignment_expression "uVar32 = *(undefined4 *)(iVar5 + 0x1c)" (identifier "uVar32") (= "=") (pointer_expression "*(undefined4 *)(iVar5 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1c)" (( "(") (binary_expression "iVar5 + 0x1c" (identifier "iVar5") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "pcVar28 = *(code **)(pcVar28 + 0xbfc10);" (assignment_expression "pcVar28 = *(code **)(pcVar28 + 0xbfc10)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar28 + 0xbfc10)" (* "*") (cast_expression "(code **)(pcVar28 + 0xbfc10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0xbfc10)" (( "(") (binary_expression "pcVar28 + 0xbfc10" (identifier "pcVar28") (+ "+") (number_literal "0xbfc10")) () ")"))))) (; ";")) (expression_statement "*(char *)((int)puVar22 + 0x13) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar22 + 0x13) = (char)uVar32" (pointer_expression "*(char *)((int)puVar22 + 0x13)" (* "*") (cast_expression "(char *)((int)puVar22 + 0x13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 0x13)" (( "(") (binary_expression "(int)puVar22 + 0x13" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "0x13")) () ")")))) (= "=") (cast_expression "(char)uVar32" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar32"))) (; ";")) (expression_statement "*(char *)(puVar22 + 4) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar22 + 4) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar22 + 4)" (* "*") (cast_expression "(char *)(puVar22 + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 4)" (( "(") (binary_expression "puVar22 + 4" (identifier "puVar22") (+ "+") (number_literal "4")) () ")")))) (= "=") (cast_expression "(char)((uint)uVar32 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar32 >> 0x18)" (( "(") (binary_expression "(uint)uVar32 >> 0x18" (cast_expression "(uint)uVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar32")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "*(char *)((int)puVar22 + 0x11) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar22 + 0x11) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar22 + 0x11)" (* "*") (cast_expression "(char *)((int)puVar22 + 0x11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 0x11)" (( "(") (binary_expression "(int)puVar22 + 0x11" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (cast_expression "(char)((uint)uVar32 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar32 >> 0x10)" (( "(") (binary_expression "(uint)uVar32 >> 0x10" (cast_expression "(uint)uVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar32")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "*(char *)((int)puVar22 + 0x12) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar22 + 0x12) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar22 + 0x12)" (* "*") (cast_expression "(char *)((int)puVar22 + 0x12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 0x12)" (( "(") (binary_expression "(int)puVar22 + 0x12" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (cast_expression "(char)((uint)uVar32 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar32 >> 8)" (( "(") (binary_expression "(uint)uVar32 >> 8" (cast_expression "(uint)uVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar32")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "uVar32 = *(undefined4 *)(iVar5 + 0x94);" (assignment_expression "uVar32 = *(undefined4 *)(iVar5 + 0x94)" (identifier "uVar32") (= "=") (pointer_expression "*(undefined4 *)(iVar5 + 0x94)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x94)" (( "(") (binary_expression "iVar5 + 0x94" (identifier "iVar5") (+ "+") (number_literal "0x94")) () ")"))))) (; ";")) (expression_statement "*(char *)((int)puVar22 + 0x17) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar22 + 0x17) = (char)uVar32" (pointer_expression "*(char *)((int)puVar22 + 0x17)" (* "*") (cast_expression "(char *)((int)puVar22 + 0x17)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 0x17)" (( "(") (binary_expression "(int)puVar22 + 0x17" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "0x17")) () ")")))) (= "=") (cast_expression "(char)uVar32" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar32"))) (; ";")) (expression_statement "*(char *)(puVar22 + 5) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar22 + 5) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar22 + 5)" (* "*") (cast_expression "(char *)(puVar22 + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 5)" (( "(") (binary_expression "puVar22 + 5" (identifier "puVar22") (+ "+") (number_literal "5")) () ")")))) (= "=") (cast_expression "(char)((uint)uVar32 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar32 >> 0x18)" (( "(") (binary_expression "(uint)uVar32 >> 0x18" (cast_expression "(uint)uVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar32")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "*(char *)((int)puVar22 + 0x15) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar22 + 0x15) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar22 + 0x15)" (* "*") (cast_expression "(char *)((int)puVar22 + 0x15)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 0x15)" (( "(") (binary_expression "(int)puVar22 + 0x15" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "0x15")) () ")")))) (= "=") (cast_expression "(char)((uint)uVar32 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar32 >> 0x10)" (( "(") (binary_expression "(uint)uVar32 >> 0x10" (cast_expression "(uint)uVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar32")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "*(char *)((int)puVar22 + 0x16) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar22 + 0x16) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar22 + 0x16)" (* "*") (cast_expression "(char *)((int)puVar22 + 0x16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 0x16)" (( "(") (binary_expression "(int)puVar22 + 0x16" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "0x16")) () ")")))) (= "=") (cast_expression "(char)((uint)uVar32 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar32 >> 8)" (( "(") (binary_expression "(uint)uVar32 >> 8" (cast_expression "(uint)uVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar32")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "uVar32 = *(undefined4 *)(iVar5 + 0x98);" (assignment_expression "uVar32 = *(undefined4 *)(iVar5 + 0x98)" (identifier "uVar32") (= "=") (pointer_expression "*(undefined4 *)(iVar5 + 0x98)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x98)" (( "(") (binary_expression "iVar5 + 0x98" (identifier "iVar5") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "*(char *)((int)puVar22 + 0x1b) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar22 + 0x1b) = (char)uVar32" (pointer_expression "*(char *)((int)puVar22 + 0x1b)" (* "*") (cast_expression "(char *)((int)puVar22 + 0x1b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 0x1b)" (( "(") (binary_expression "(int)puVar22 + 0x1b" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "0x1b")) () ")")))) (= "=") (cast_expression "(char)uVar32" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar32"))) (; ";")) (expression_statement "*(char *)(puVar22 + 6) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar22 + 6) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar22 + 6)" (* "*") (cast_expression "(char *)(puVar22 + 6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 6)" (( "(") (binary_expression "puVar22 + 6" (identifier "puVar22") (+ "+") (number_literal "6")) () ")")))) (= "=") (cast_expression "(char)((uint)uVar32 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar32 >> 0x18)" (( "(") (binary_expression "(uint)uVar32 >> 0x18" (cast_expression "(uint)uVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar32")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "*(char *)((int)puVar22 + 0x19) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar22 + 0x19) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar22 + 0x19)" (* "*") (cast_expression "(char *)((int)puVar22 + 0x19)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 0x19)" (( "(") (binary_expression "(int)puVar22 + 0x19" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "0x19")) () ")")))) (= "=") (cast_expression "(char)((uint)uVar32 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar32 >> 0x10)" (( "(") (binary_expression "(uint)uVar32 >> 0x10" (cast_expression "(uint)uVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar32")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "*(char *)((int)puVar22 + 0x1a) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar22 + 0x1a) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar22 + 0x1a)" (* "*") (cast_expression "(char *)((int)puVar22 + 0x1a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + 0x1a)" (( "(") (binary_expression "(int)puVar22 + 0x1a" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (number_literal "0x1a")) () ")")))) (= "=") (cast_expression "(char)((uint)uVar32 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar32 >> 8)" (( "(") (binary_expression "(uint)uVar32 >> 8" (cast_expression "(uint)uVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar32")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "(*pcVar28)(puVar22 + 7,0,uVar20 - 0x1c);" (call_expression "(*pcVar28)(puVar22 + 7,0,uVar20 - 0x1c)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(puVar22 + 7,0,uVar20 - 0x1c)" (( "(") (binary_expression "puVar22 + 7" (identifier "puVar22") (+ "+") (number_literal "7")) (, ",") (number_literal "0") (, ",") (binary_expression "uVar20 - 0x1c" (identifier "uVar20") (- "-") (number_literal "0x1c")) () ")"))) (; ";")) (do_statement "do {\n    if (*(uint *)(iVar5 + 0x94) <= uVar6) {\n      return 0;\n    }\n    iVar7 = **(int **)(iVar5 + 0x40);\n    uVar6 = uVar6 + uVar20;\n    uVar21 = (**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c));\n    uVar24 = *(uint *)(iVar5 + 0x4c);\n    uVar14 = uVar24 + uVar20;\n    *(uint *)(iVar5 + 0x4c) = uVar14;\n    *(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48);\n  } while (uVar21 == 0);" (do "do") (compound_statement "{\n    if (*(uint *)(iVar5 + 0x94) <= uVar6) {\n      return 0;\n    }\n    iVar7 = **(int **)(iVar5 + 0x40);\n    uVar6 = uVar6 + uVar20;\n    uVar21 = (**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c));\n    uVar24 = *(uint *)(iVar5 + 0x4c);\n    uVar14 = uVar24 + uVar20;\n    *(uint *)(iVar5 + 0x4c) = uVar14;\n    *(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48);\n  }" ({ "{") (if_statement "if (*(uint *)(iVar5 + 0x94) <= uVar6) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(*(uint *)(iVar5 + 0x94) <= uVar6)" (( "(") (binary_expression "*(uint *)(iVar5 + 0x94) <= uVar6" (pointer_expression "*(uint *)(iVar5 + 0x94)" (* "*") (cast_expression "(uint *)(iVar5 + 0x94)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x94)" (( "(") (binary_expression "iVar5 + 0x94" (identifier "iVar5") (+ "+") (number_literal "0x94")) () ")")))) (<= "<=") (identifier "uVar6")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar7 = **(int **)(iVar5 + 0x40);" (assignment_expression "iVar7 = **(int **)(iVar5 + 0x40)" (identifier "iVar7") (= "=") (pointer_expression "**(int **)(iVar5 + 0x40)" (* "*") (pointer_expression "*(int **)(iVar5 + 0x40)" (* "*") (cast_expression "(int **)(iVar5 + 0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0x40)" (( "(") (binary_expression "iVar5 + 0x40" (identifier "iVar5") (+ "+") (number_literal "0x40")) () ")")))))) (; ";")) (expression_statement "uVar6 = uVar6 + uVar20;" (assignment_expression "uVar6 = uVar6 + uVar20" (identifier "uVar6") (= "=") (binary_expression "uVar6 + uVar20" (identifier "uVar6") (+ "+") (identifier "uVar20"))) (; ";")) (expression_statement "uVar21 = (**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c));" (assignment_expression "uVar21 = (**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c))" (identifier "uVar21") (= "=") (call_expression "(**(code **)(iVar7 + 0xc))\n                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c))" (parenthesized_expression "(**(code **)(iVar7 + 0xc))" (( "(") (pointer_expression "**(code **)(iVar7 + 0xc)" (* "*") (pointer_expression "*(code **)(iVar7 + 0xc)" (* "*") (cast_expression "(code **)(iVar7 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "(*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),\n                        *(undefined4 *)(iVar5 + 0x4c))" (( "(") (pointer_expression "*(int **)(iVar5 + 0x40)" (* "*") (cast_expression "(int **)(iVar5 + 0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0x40)" (( "(") (binary_expression "iVar5 + 0x40" (identifier "iVar5") (+ "+") (number_literal "0x40")) () ")")))) (, ",") (identifier "puVar22") (, ",") (identifier "uVar20") (, ",") (identifier "iVar7") (, ",") (pointer_expression "*(undefined4 *)(iVar5 + 0x48)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x48)" (( "(") (binary_expression "iVar5 + 0x48" (identifier "iVar5") (+ "+") (number_literal "0x48")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar5 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x4c)" (( "(") (binary_expression "iVar5 + 0x4c" (identifier "iVar5") (+ "+") (number_literal "0x4c")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar24 = *(uint *)(iVar5 + 0x4c);" (assignment_expression "uVar24 = *(uint *)(iVar5 + 0x4c)" (identifier "uVar24") (= "=") (pointer_expression "*(uint *)(iVar5 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar5 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x4c)" (( "(") (binary_expression "iVar5 + 0x4c" (identifier "iVar5") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "uVar14 = uVar24 + uVar20;" (assignment_expression "uVar14 = uVar24 + uVar20" (identifier "uVar14") (= "=") (binary_expression "uVar24 + uVar20" (identifier "uVar24") (+ "+") (identifier "uVar20"))) (; ";")) (expression_statement "*(uint *)(iVar5 + 0x4c) = uVar14;" (assignment_expression "*(uint *)(iVar5 + 0x4c) = uVar14" (pointer_expression "*(uint *)(iVar5 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar5 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x4c)" (( "(") (binary_expression "iVar5 + 0x4c" (identifier "iVar5") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "*(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48);" (assignment_expression "*(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48)" (pointer_expression "*(uint *)(iVar5 + 0x48)" (* "*") (cast_expression "(uint *)(iVar5 + 0x48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x48)" (( "(") (binary_expression "iVar5 + 0x48" (identifier "iVar5") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (binary_expression "(uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48)" (call_expression "(uint)(uVar14 < uVar24)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar14 < uVar24)" (( "(") (binary_expression "uVar14 < uVar24" (identifier "uVar14") (< "<") (identifier "uVar24")) () ")"))) (+ "+") (pointer_expression "*(int *)(iVar5 + 0x48)" (* "*") (cast_expression "(int *)(iVar5 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x48)" (( "(") (binary_expression "iVar5 + 0x48" (identifier "iVar5") (+ "+") (number_literal "0x48")) () ")")))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar21 == 0)" (( "(") (binary_expression "uVar21 == 0" (identifier "uVar21") (== "==") (number_literal "0")) () ")")) (; ";")) (return_statement "return uVar21;" (return "return") (identifier "uVar21") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (identifier)) (declaration type: (primitive_type) 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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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: (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: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (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)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)) value: (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: (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 (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: (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)))))))) 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: (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: (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 (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: (identifier))))) (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: (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: (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: (binary_expression left: (identifier) right: (number_literal)))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (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)))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) right: (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: (pointer_expression argument: (identifier))))) (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal)))))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (subscript_expression argument: (identifier) index: (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (subscript_expression argument: (identifier) index: (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 (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)))))))) (goto_statement label: (statement_identifier)) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (char_literal (escape_sequence)))) (expression_statement (assignment_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 (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (break_statement))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (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 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: (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 (assignment_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 (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: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))))) arguments: (argument_list)))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement (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: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (false))) (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: (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))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (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: (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 (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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 (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (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))))))) arguments: (argument_list (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (for_statement initializer: (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)))))) condition: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))) update: (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)))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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 (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (goto_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 (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)))))))) (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 (number_literal) (number_literal)))))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (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: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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))))) (identifier)))))) (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: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (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)) 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: (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: (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))) (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))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (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))))))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (true))) (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: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) 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: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) 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)))))))) 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 (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (goto_statement label: (statement_identifier)))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) arguments: (argument_list (identifier) (identifier) (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) 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: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (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))))))) arguments: (argument_list (identifier) (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_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: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_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: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (identifier)) right: (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: (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))))))) 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: (pointer_expression argument: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))) arguments: (argument_list (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: (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)))))) arguments: (argument_list (identifier) (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) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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 (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: (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)))))) arguments: (argument_list (number_literal))))) (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: (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)))))) arguments: (argument_list (identifier) (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) (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: (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: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_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 (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (identifier))))) (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 (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: (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))))))) 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: (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: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) 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 (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))))) (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) 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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (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 (subscript_expression argument: (identifier) index: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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))) (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)))))))) alternative: (else_clause (compound_statement (do_statement 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 (pointer_expression argument: (identifier)) (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (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)))))))) condition: (parenthesized_expression (binary_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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal) (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 (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: (identifier) right: (number_literal)) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) 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: (subscript_expression argument: (identifier) index: (number_literal)) 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: (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))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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)))) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (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)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) 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: (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: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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)))))) (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) alternative: (else_clause (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: (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)))))) 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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_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)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (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: (pointer_expression argument: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (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 (identifier))))) (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: (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: (identifier) right: (number_literal)) (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) (identifier) (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (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: (number_literal)))) alternative: (else_clause (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: (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)))))) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (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))))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))))) (labeled_statement label: (statement_identifier) (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)) 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)) 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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (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: (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))))))) 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)) 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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (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: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (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)) 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)))))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (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)) 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 (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) right: (identifier)) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) right: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (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: (char_literal (escape_sequence)))) 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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (char_literal (escape_sequence)))) 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: (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))))))) arguments: (argument_list (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: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (goto_statement label: (statement_identifier)))) (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: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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)) 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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (do_statement body: (compound_statement (if_statement condition: (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: (identifier))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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))))) (identifier) (identifier) (identifier) (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))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (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))))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (return_statement (identifier)))))

/* WARNING: Type propagation algorithm not settling */

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

{
  char cVar1;
  bool bVar2;
  longlong lVar3;
  undefined *puVar4;
  int in_zero;
  int iVar5;
  uint uVar6;
  int iVar7;
  int iVar8;
  uint uVar9;
  int *piVar10;
  int iVar11;
  int iVar12;
  int *piVar13;
  uint uVar14;
  undefined4 *puVar15;
  int iVar16;
  int *piVar17;
  undefined4 *puVar18;
  uint *puVar19;
  uint uVar20;
  uint uVar21;
  undefined4 *puVar22;
  undefined *puVar23;
  uint uVar24;
  int iVar25;
  uint *puVar26;
  undefined *puVar27;
  code *pcVar28;
  code *pcVar29;
  int *piVar30;
  int *piVar31;
  undefined4 uVar32;
  longlong lVar33;
  undefined4 local_734;
  uint local_72c;
  undefined4 local_724;
  code *local_714;
  undefined4 local_710;
  int local_70c;
  int local_708;
  int local_704;
  int local_700 [4];
  int local_6f0;
  int local_6ec;
  uint local_6e8;
  undefined4 local_6e0;
  undefined4 local_6dc;
  undefined1 auStack_65c [516];
  undefined4 auStack_458 [129];
  int local_254;
  uint *local_250;
  uint local_24c;
  undefined *local_248;
  undefined4 *local_244;
  int local_240;
  undefined4 *local_23c;
  uint *local_238;
  uint local_234;
  int *local_230;
  undefined4 local_22c;
  uint *local_218;
  undefined *local_208;
  int local_134;
  uint *local_130;
  uint local_12c;
  undefined *local_128;
  undefined4 *local_124;
  int local_120;
  undefined4 *local_11c;
  uint *local_118;
  uint local_114;
  int *local_110;
  undefined4 local_10c;
  undefined4 local_f8;
  undefined4 local_f4;
  undefined4 local_f0;
  undefined4 local_d8;
  undefined4 local_d4;
  undefined4 auStack_d0 [6];
  uint local_b8;
  int local_2c;
  
  puVar4 = PTR___stack_chk_guard_0015ba2c;
  puVar27 = PTR_sqlite3_temp_directory_0015b854;
  puVar23 = PTR_DAT_0015b5d8;
  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;
  *(undefined1 *)param_2 = 0;
  uVar20 = *(uint *)puVar27;
  if (*(int *)(puVar23 + -0x4eb0) == 0) {
    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73bc);
    *(undefined4 *)(puVar23 + -0x4eb0) = uVar32;
    iVar5 = *(int *)(puVar23 + -0x4eac);
  }
  else {
    iVar5 = *(int *)(puVar23 + -0x4eac);
  }
  if (iVar5 == 0) {
    uVar32 = (*(code *)PTR_getenv_0015b9e4)(PTR_UINT_0015b5fc + -0x73ac);
    *(undefined4 *)(puVar23 + -0x4eac) = uVar32;
  }
  puVar27 = PTR_DAT_0015b5d8;
  puVar19 = (uint *)(puVar23 + -0x4eb0);
  puVar26 = (uint *)(puVar23 + -0x4e98);
  puVar22 = auStack_d0;
  piVar30 = (int *)0x4000;
  puVar23 = PTR_DAT_0015b5d8 + -0x4bb8;
  while( true ) {
    puVar15 = puVar22;
    if ((((uVar20 != 0) && (iVar5 = (**(code **)(puVar27 + -0x4b84))(uVar20), iVar5 == 0)) &&
        (puVar15 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&
       (iVar5 = (**(code **)(puVar27 + -0x4b9c))(uVar20), iVar5 == 0)) {
      puVar19 = (uint *)&DAT_0000000c;
      puVar26 = (uint *)((int)param_2 + param_1 + -2);
      puVar22 = &local_d8;
      piVar30 = (int *)(PTR_UINT_0015b5fc + -0x73a4);
      goto LAB_0009aa88;
    }
    local_234 = 0x190a;
    if (puVar19 == puVar26) break;
    uVar20 = *puVar19;
    puVar19 = puVar19 + 1;
  }
  goto LAB_0009a9fc;
joined_r0x0009b6fc:
  if (param_4 == uVar20) goto LAB_0009bb18;
  piVar10 = (int *)piVar13[2];
  if (piVar10 == (int *)0x0) goto LAB_0009b728;
  uVar20 = piVar10[1];
  piVar17 = piVar13 + 2;
  piVar13 = piVar10;
  goto joined_r0x0009b6fc;
LAB_0009bb18:
  pcVar29 = *(code **)(pcVar28 + 0xc0508);
  *piVar17 = piVar13[2];
  (*pcVar29)(piVar31[4]);
  (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));
  iVar7 = *piVar13;
  param_3[7] = (int)piVar13;
  goto LAB_0009b2a0;
LAB_0009b728:
  (**(code **)(pcVar28 + 0xc0508))(piVar31[4]);
  (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));
  goto LAB_0009b7e8;
  while( true ) {
    puVar19 = (uint *)((int)puVar19 + -1);
    puVar15 = (undefined4 *)0x0;
    if (puVar19 == (uint *)0x0) goto LAB_0009aae4;
    iVar5 = (**(code **)(puVar27 + -0x4b9c))(param_2);
    local_234 = 0;
    if (iVar5 != 0) break;
LAB_0009aa88:
    sqlite3_randomness(8,puVar22);
    *(char *)puVar26 = '\0';
    local_f0 = 0;
    local_f4 = local_d4;
    local_f8 = local_d8;
    puVar15 = param_2;
    param_3 = piVar30;
    param_4 = uVar20;
    (*(code *)PTR_sqlite3_snprintf_0015b610)(param_1);
    if (*(char *)puVar26 != '\0') {
LAB_0009aae4:
      local_234 = 1;
      break;
    }
  }
LAB_0009a9fc:
  if (local_2c == *(int *)puVar4) {
    return local_234;
  }
  uVar32 = 0x9ab38;
  puVar27 = PTR___stack_chk_fail_0015ba10;
  (*(code *)PTR___stack_chk_fail_0015ba10)();
  local_208 = puVar27 + 0xc8a78;
  piVar31 = *(int **)(puVar27 + 0xc0ef4);
  iVar5 = *piVar31;
  local_134 = iVar5;
  local_130 = puVar19;
  local_12c = uVar20;
  local_128 = puVar23;
  local_124 = param_2;
  local_120 = param_1;
  local_11c = puVar22;
  local_118 = puVar26;
  local_114 = local_234;
  local_110 = piVar30;
  local_10c = uVar32;
  if (puVar15 < (undefined4 *)0x15) {
                    /* WARNING: Could not recover jumptable at 0x0009aba0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar20 = (*(code *)(local_208 + *(int *)(*(int *)(puVar27 + 0xc0ac4) + 0xd74 + (int)puVar15 * 4)
                       ))();
    return uVar20;
  }
  if (iVar5 == *piVar31) {
    return 0xc;
  }
  pcVar28 = *(code **)(puVar27 + 0xc0ed8);
  uVar32 = 0x9b1ac;
  (*pcVar28)();
  uVar21 = param_4 & 8;
  uVar24 = param_4 & 0xffffff00;
  piVar30 = *(int **)(pcVar28 + 0xc0880);
  local_254 = *piVar30;
  local_72c = param_4 & 1;
  uVar6 = param_4 & 2;
  puVar18 = puVar15;
  local_250 = puVar19;
  local_24c = uVar20;
  local_248 = puVar23;
  local_244 = param_2;
  local_240 = param_1;
  local_23c = puVar22;
  local_238 = puVar26;
  local_230 = piVar31;
  local_22c = uVar32;
  if ((param_4 & 4) == 0) {
    iVar25 = *(int *)(pcVar28 + 0xc042c);
    bVar2 = false;
    iVar7 = (**(code **)(pcVar28 + 0xc0840))();
    if (iVar7 != *(int *)(iVar25 + -0x4354)) goto LAB_0009b46c;
LAB_0009b270:
    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);
    if (uVar24 == 0x100) {
      iVar7 = *(int *)(pcVar28 + 0xc042c);
      iVar25 = *(int *)(pcVar28 + 0xc042c);
      (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar7 + -0x4358));
      if ((*(int *)(iVar25 + -0x435c) != 0) &&
         (iVar8 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(puVar15,local_700),
         iVar8 == 0)) {
        for (piVar31 = *(int **)(iVar25 + -0x435c); piVar31 != (int *)0x0;
            piVar31 = (int *)piVar31[0xb]) {
          if ((((*piVar31 == 0) && (piVar31[1] == local_700[0])) && (piVar31[2] == local_6f0)) &&
             (piVar31[3] == local_6ec)) {
            (**(code **)(pcVar28 + 0xc0504))(piVar31[4]);
            piVar13 = (int *)piVar31[8];
            if (piVar13 == (int *)0x0) goto LAB_0009b728;
            uVar20 = piVar13[1];
            piVar17 = piVar31 + 8;
            goto joined_r0x0009b6fc;
          }
        }
      }
      (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar7 + -0x4358));
LAB_0009b7e8:
      iVar25 = (**(code **)(pcVar28 + 0xc05b4))(0,0xc);
      if (iVar25 != 0) {
        iVar7 = -1;
        param_3[7] = iVar25;
        goto LAB_0009b2a0;
      }
      uVar20 = 7;
    }
    else {
      if (puVar15 != (undefined4 *)0x0) goto LAB_0009b298;
LAB_0009b618:
      uVar20 = MASKED(*(undefined4 *)(iVar5 + 8),auStack_458);
      if (uVar20 == 0) {
        iVar7 = -1;
        puVar18 = auStack_458;
        goto LAB_0009b2a0;
      }
    }
  }
  else {
    if ((uVar24 != 0x4000) && (uVar24 != 0x800)) {
      iVar25 = *(int *)(pcVar28 + 0xc042c);
      bVar2 = uVar24 == 0x80000;
      iVar7 = (**(code **)(pcVar28 + 0xc0840))();
      if (iVar7 == *(int *)(iVar25 + -0x4354)) goto LAB_0009b270;
LAB_0009b46c:
      uVar32 = (**(code **)(pcVar28 + 0xc0840))();
      *(undefined4 *)(iVar25 + -0x4354) = uVar32;
      sqlite3_randomness(0,0);
      goto LAB_0009b270;
    }
    iVar25 = *(int *)(pcVar28 + 0xc042c);
    iVar7 = (**(code **)(pcVar28 + 0xc0840))();
    if (*(int *)(iVar25 + -0x4354) != iVar7) {
      bVar2 = true;
      goto LAB_0009b46c;
    }
    (**(code **)(pcVar28 + 0xc0808))(param_3,0,0x58);
    bVar2 = true;
    if (puVar15 == (undefined4 *)0x0) goto LAB_0009b618;
LAB_0009b298:
    iVar7 = -1;
LAB_0009b2a0:
    uVar20 = uVar6;
    if ((param_4 & 4) != 0) {
      uVar20 = uVar6 | 0x100;
    }
    if ((param_4 & 0x10) == 0) {
      if (-1 < iVar7) goto LAB_0009b2c4;
LAB_0009b4a8:
      uVar14 = param_4 & 0x80800;
      if (uVar14 != 0) {
        if (puVar18 == (undefined4 *)0x0) {
          cVar1 = *(char *)(in_zero + -1);
          iVar7 = -1;
          if (cVar1 != '-') goto joined_r0x0009b50c;
          pcVar29 = *(code **)(pcVar28 + 0xc0828);
        }
        else {
          uVar9 = (**(code **)(pcVar28 + 0xc0818))(puVar18);
          iVar7 = (uVar9 & 0x3fffffff) - 1;
          cVar1 = *(char *)((int)puVar18 + iVar7);
          while (cVar1 != '-') {
            if (iVar7 == 0) {
LAB_0009b934:
              uVar9 = 0;
              local_734 = 0;
              local_724 = 0;
              goto LAB_0009b93c;
            }
joined_r0x0009b50c:
            if (cVar1 == '.') goto LAB_0009b934;
            iVar7 = iVar7 + -1;
            cVar1 = *(char *)((int)puVar18 + iVar7);
          }
          pcVar29 = *(code **)(pcVar28 + 0xc0828);
        }
        uVar32 = (*pcVar29)(auStack_65c,puVar18,iVar7,0x201);
        iVar25 = *(int *)(pcVar28 + 0xc042c);
        auStack_65c[iVar7] = 0;
        iVar7 = (**(code **)(iVar25 + -0x4b84))(uVar32,local_700);
        if (iVar7 != 0) {
LAB_0009bc08:
          uVar20 = 0x70a;
          goto LAB_0009b410;
        }
        uVar9 = local_6e8 & 0x1ff;
        local_724 = local_6e0;
        local_734 = local_6dc;
LAB_0009b93c:
        local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);
        iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);
        if (iVar7 < 0) goto LAB_0009b9ec;
LAB_0009b97c:
        (*(code *)(*(int *)(pcVar28 + 0xc052c) + 0xfd8))(iVar7,local_724,local_734);
        goto LAB_0009b2c4;
      }
      uVar9 = 0x180;
      if (uVar21 == 0) {
        if (((param_4 & 0x40) == 0) ||
           (iVar7 = (**(code **)(pcVar28 + 0xc057c))(puVar18,*(int *)(pcVar28 + 0xc0450) + -0x7390),
           iVar7 == 0)) {
          local_734 = 0;
          uVar9 = 0;
          local_724 = 0;
        }
        else {
          iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b84))(iVar7,local_700);
          if (iVar7 != 0) goto LAB_0009bc08;
          local_724 = local_6e0;
          uVar9 = local_6e8 & 0x1ff;
          local_734 = local_6dc;
        }
      }
      else {
        local_734 = 0;
        local_724 = 0;
      }
      local_714 = (code *)(*(int *)(pcVar28 + 0xc0594) + -0x3efc);
      iVar7 = (*local_714)(puVar18,uVar20 | 0x2000,uVar9);
      if (-1 < iVar7) goto LAB_0009b2c4;
LAB_0009b9ec:
      piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();
      iVar7 = *piVar31;
      if ((bVar2) && (iVar7 == 0xd)) {
        iVar7 = (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4b9c))(puVar18,0);
        if (iVar7 == 0) {
          iVar7 = *piVar31;
          goto LAB_0009ba2c;
        }
        uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);
        (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))
                  (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);
        uVar20 = 0x608;
        goto LAB_0009b84c;
      }
LAB_0009ba2c:
      if ((iVar7 != 0x15) && (uVar6 != 0)) {
        param_4 = param_4 & 0xfffffff9 | 1;
        iVar7 = (*local_714)(puVar18,uVar20 & 0xfffffefd | 0x2000,uVar9);
        if (-1 < iVar7) {
          local_72c = 1;
          if (uVar14 == 0) goto LAB_0009b2c4;
          goto LAB_0009b97c;
        }
      }
      uVar32 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x7628))(0x9634);
      uVar20 = (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x3d4c))
                         (uVar32,*(int *)(pcVar28 + 0xc043c) + 0x7284,puVar18,0x9634);
      if (uVar20 == 0) goto LAB_0009b410;
      pcVar29 = *(code **)(pcVar28 + 0xc0474);
    }
    else {
      uVar20 = uVar20 | 0x20400;
      if (iVar7 < 0) goto LAB_0009b4a8;
LAB_0009b2c4:
      if (local_218 != (uint *)0x0) {
        *local_218 = param_4;
      }
      if ((int *)param_3[7] != (int *)0x0) {
        *(int *)param_3[7] = iVar7;
        *(uint *)(param_3[7] + 4) = param_4;
      }
      if (uVar21 != 0) {
        uVar21 = 0x20;
        (**(code **)(*(int *)(pcVar28 + 0xc042c) + -0x4af4))(puVar18);
      }
      if (local_72c != 0) {
        uVar21 = uVar21 | 2;
      }
      if (uVar24 != 0x100) {
        uVar21 = uVar21 | 0x80;
      }
      if (bVar2) {
        uVar21 = uVar21 | 8;
      }
      iVar25 = *(int *)(pcVar28 + 0xc042c);
      if ((param_4 & 0x40) == 0) {
        param_3[3] = iVar7;
        puVar22 = (undefined4 *)0x0;
      }
      else {
        uVar21 = uVar21 | 0x40;
        param_3[3] = iVar7;
        puVar22 = puVar15;
      }
      iVar16 = *(int *)(pcVar28 + 0xc0450);
      pcVar29 = *(code **)(pcVar28 + 0xc0648);
      param_3[1] = iVar5;
      param_3[8] = (int)puVar15;
      *(short *)((int)param_3 + 0x12) = (short)uVar21;
      iVar8 = *(int *)(iVar25 + -0x5d20);
      param_3[0x11] = *(int *)(iVar25 + -0x5d1c);
      param_3[0x10] = iVar8;
      iVar8 = (*pcVar29)(puVar22,iVar16 + -0x7388,1);
      if (iVar8 != 0) {
        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;
      }
      iVar8 = (**(code **)(pcVar28 + 0xc08b0))
                        (*(undefined4 *)(iVar5 + 0x10),*(int *)(pcVar28 + 0xc0450) + -0x7380);
      if (iVar8 == 0) {
        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;
      }
      if ((uVar21 & 0x80) != 0) {
        iVar5 = *(int *)(pcVar28 + 0xc042c) + -0x656c;
        goto LAB_0009b3f0;
      }
      iVar5 = (*(code *)**(undefined4 **)(iVar5 + 0x14))(puVar15,param_3);
      if (iVar5 == *(int *)(pcVar28 + 0xc042c) + -0x651c) {
        iVar8 = *(int *)(pcVar28 + 0xc042c);
        (**(code **)(pcVar28 + 0xc0504))(*(undefined4 *)(iVar8 + -0x4358));
        iVar12 = *(int *)(pcVar28 + 0xc042c);
        iVar16 = (**(code **)(iVar12 + -0x4b78))(param_3[3],local_700);
        if (iVar16 == 0) {
          iVar16 = *(int *)(pcVar28 + 0xc042c);
          local_710 = 0;
          local_70c = local_700[0];
          local_704 = local_6ec;
          puVar22 = *(undefined4 **)(iVar16 + -0x435c);
          local_708 = local_6f0;
          if (puVar22 == (undefined4 *)0x0) {
            pcVar29 = *(code **)(pcVar28 + 0xc05b4);
          }
          else {
            do {
              iVar11 = (**(code **)(pcVar28 + 0xc0870))(&local_710,puVar22,0x10);
              if (iVar11 == 0) {
                puVar22[9] = puVar22[9] + 1;
                goto LAB_0009b910;
              }
              puVar22 = (undefined4 *)puVar22[0xb];
              pcVar29 = *(code **)(pcVar28 + 0xc05b4);
            } while (puVar22 != (undefined4 *)0x0);
          }
          puVar22 = (undefined4 *)(*pcVar29)(0,0x38);
          if (puVar22 != (undefined4 *)0x0) {
            (**(code **)(pcVar28 + 0xc0808))(puVar22 + 4,0,0x28);
            *puVar22 = local_710;
            puVar22[1] = local_70c;
            puVar22[2] = local_708;
            puVar22[3] = local_704;
            if (*(int *)(iVar25 + -0x5dd4) != 0) {
              iVar25 = (**(code **)(pcVar28 + 0xc0644))(0);
              puVar22[4] = iVar25;
              if (iVar25 == 0) {
                (**(code **)(pcVar28 + 0xc0474))(puVar22);
                uVar20 = 7;
                goto LAB_0009bb74;
              }
            }
            iVar7 = *(int *)(iVar16 + -0x435c);
            puVar22[0xc] = 0;
            puVar22[9] = 1;
            puVar22[0xb] = iVar7;
            if (iVar7 != 0) {
              *(undefined4 **)(iVar7 + 0x30) = puVar22;
            }
            *(undefined4 **)(iVar16 + -0x435c) = puVar22;
LAB_0009b910:
            pcVar29 = *(code **)(pcVar28 + 0xc0508);
            param_3[2] = (int)puVar22;
            (*pcVar29)(*(undefined4 *)(iVar8 + -0x4358));
            param_3[5] = 0;
            goto LAB_0009b3f4;
          }
          uVar20 = 7;
        }
        else {
          piVar31 = (int *)(**(code **)(pcVar28 + 0xc0800))();
          uVar20 = 10;
          param_3[5] = *piVar31;
        }
LAB_0009bb74:
        iVar5 = (**(code **)(iVar12 + -0x4ba8))(iVar7);
        if (iVar5 == 0) {
          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));
          param_3[5] = 0;
        }
        else {
          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9442);
          (**(code **)(pcVar28 + 0xc0508))(*(undefined4 *)(iVar8 + -0x4358));
          param_3[5] = 0;
        }
      }
      else {
        if (iVar5 != *(int *)(pcVar28 + 0xc042c) + -0x65bc) {
LAB_0009b3f0:
          param_3[5] = 0;
LAB_0009b3f4:
          iVar7 = *(int *)(pcVar28 + 0xc0594);
          *param_3 = iVar5;
          (*(code *)(iVar7 + -0x1bfc))(param_3);
          uVar20 = 0;
          goto LAB_0009b410;
        }
        iVar25 = (**(code **)(pcVar28 + 0xc0818))(puVar15);
        iVar25 = iVar25 + 6;
        iVar8 = (**(code **)(pcVar28 + 0xc05b4))(iVar25 >> 0x1f,iVar25);
        if (iVar8 != 0) {
          (**(code **)(pcVar28 + 0xc0464))
                    (iVar25,iVar8,*(int *)(pcVar28 + 0xc0450) + -0x7374,puVar15);
          param_3[6] = iVar8;
          goto LAB_0009b3f0;
        }
        iVar5 = *(int *)(pcVar28 + 0xc042c);
        param_3[6] = 0;
        param_3[5] = 0;
        iVar5 = (**(code **)(iVar5 + -0x4ba8))(iVar7);
        if (iVar5 == 0) {
          uVar20 = 7;
        }
        else {
          (*(code *)(*(int *)(pcVar28 + 0xc0594) + -0x37ac))(param_3,0x9497);
          uVar20 = 7;
        }
      }
LAB_0009b84c:
      pcVar29 = *(code **)(pcVar28 + 0xc0474);
    }
    (*pcVar29)(param_3[7]);
  }
LAB_0009b410:
  if (local_254 == *piVar30) {
    return uVar20;
  }
  pcVar28 = *(code **)(pcVar28 + 0xc0864);
  iVar5 = local_254;
  (*pcVar28)();
  iVar7 = *(int *)(iVar5 + 0x60);
  puVar22 = *(undefined4 **)(iVar5 + 0xd0);
  uVar6 = *(uint *)(iVar5 + 0x4c);
  uVar20 = *(uint *)(iVar5 + 0x98);
  if (*(uint *)(iVar5 + 0x94) <= *(uint *)(iVar5 + 0x98)) {
    uVar20 = *(uint *)(iVar5 + 0x94);
  }
  iVar25 = *(int *)(iVar5 + 0x48);
  if (0 < iVar7) {
    iVar16 = 0;
    iVar8 = 0;
    do {
      iVar8 = iVar8 + 1;
      iVar12 = *(int *)(iVar5 + 0x5c) + iVar16;
      iVar16 = iVar16 + 0x30;
      if (*(int *)(iVar12 + 8) == 0 && *(int *)(iVar12 + 0xc) == 0) {
        *(uint *)(iVar12 + 0xc) = uVar6;
        *(int *)(iVar12 + 8) = iVar25;
        iVar7 = *(int *)(iVar5 + 0x60);
        uVar6 = *(uint *)(iVar5 + 0x4c);
        iVar25 = *(int *)(iVar5 + 0x48);
      }
    } while (iVar8 < iVar7);
  }
  if (iVar25 != 0 || uVar6 != 0) {
    uVar21 = *(uint *)(iVar5 + 0x94);
    lVar33 = (**(code **)(pcVar28 + 0xbf8fc))
                       ((uint)(uVar6 - 1 < uVar6) + iVar25 + -1,uVar6 - 1,0,uVar21);
    lVar3 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;
    uVar6 = (uint)lVar3;
    iVar25 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar3 >> 0x20);
  }
  *(uint *)(iVar5 + 0x4c) = uVar6;
  *(int *)(iVar5 + 0x48) = iVar25;
  *(uint *)(iVar5 + 0x54) = uVar6;
  *(int *)(iVar5 + 0x50) = iVar25;
  if (*(char *)(iVar5 + 7) == '\0') {
    iVar7 = *(int *)(pcVar28 + 0xbf8f0);
    if (*(char *)(iVar5 + 5) != '\x04') {
      uVar6 = (**(code **)(**(int **)(iVar5 + 0x3c) + 0x30))(*(int **)(iVar5 + 0x3c));
      if ((uVar6 & 0x200) == 0) {
        *(undefined1 *)puVar22 = 0;
        *(undefined1 *)((int)puVar22 + 1) = 0;
        *(undefined1 *)((int)puVar22 + 2) = 0;
        *(undefined1 *)((int)puVar22 + 3) = 0;
        *(undefined1 *)(puVar22 + 1) = 0;
        *(undefined1 *)((int)puVar22 + 5) = 0;
        *(undefined1 *)((int)puVar22 + 6) = 0;
        *(undefined1 *)((int)puVar22 + 7) = 0;
        *(undefined1 *)(puVar22 + 2) = 0;
        *(undefined1 *)((int)puVar22 + 9) = 0;
        *(undefined1 *)((int)puVar22 + 10) = 0;
        *(undefined1 *)((int)puVar22 + 0xb) = 0;
        goto LAB_0009becc;
      }
      goto LAB_0009be98;
    }
  }
  else {
LAB_0009be98:
    iVar7 = *(int *)(pcVar28 + 0xbf8f0);
  }
  uVar32 = *(undefined4 *)(iVar7 + -0x7ce8);
  *puVar22 = *(undefined4 *)(iVar7 + -0x7cec);
  puVar22[1] = uVar32;
  *(undefined1 *)(puVar22 + 2) = 0xff;
  *(undefined1 *)((int)puVar22 + 9) = 0xff;
  *(undefined1 *)((int)puVar22 + 10) = 0xff;
  *(undefined1 *)((int)puVar22 + 0xb) = 0xff;
LAB_0009becc:
  uVar6 = 0;
  sqlite3_randomness(4,iVar5 + 0x30);
  uVar32 = *(undefined4 *)(iVar5 + 0x30);
  *(char *)((int)puVar22 + 0xf) = (char)uVar32;
  *(char *)(puVar22 + 3) = (char)((uint)uVar32 >> 0x18);
  *(char *)((int)puVar22 + 0xd) = (char)((uint)uVar32 >> 0x10);
  *(char *)((int)puVar22 + 0xe) = (char)((uint)uVar32 >> 8);
  uVar32 = *(undefined4 *)(iVar5 + 0x1c);
  pcVar28 = *(code **)(pcVar28 + 0xbfc10);
  *(char *)((int)puVar22 + 0x13) = (char)uVar32;
  *(char *)(puVar22 + 4) = (char)((uint)uVar32 >> 0x18);
  *(char *)((int)puVar22 + 0x11) = (char)((uint)uVar32 >> 0x10);
  *(char *)((int)puVar22 + 0x12) = (char)((uint)uVar32 >> 8);
  uVar32 = *(undefined4 *)(iVar5 + 0x94);
  *(char *)((int)puVar22 + 0x17) = (char)uVar32;
  *(char *)(puVar22 + 5) = (char)((uint)uVar32 >> 0x18);
  *(char *)((int)puVar22 + 0x15) = (char)((uint)uVar32 >> 0x10);
  *(char *)((int)puVar22 + 0x16) = (char)((uint)uVar32 >> 8);
  uVar32 = *(undefined4 *)(iVar5 + 0x98);
  *(char *)((int)puVar22 + 0x1b) = (char)uVar32;
  *(char *)(puVar22 + 6) = (char)((uint)uVar32 >> 0x18);
  *(char *)((int)puVar22 + 0x19) = (char)((uint)uVar32 >> 0x10);
  *(char *)((int)puVar22 + 0x1a) = (char)((uint)uVar32 >> 8);
  (*pcVar28)(puVar22 + 7,0,uVar20 - 0x1c);
  do {
    if (*(uint *)(iVar5 + 0x94) <= uVar6) {
      return 0;
    }
    iVar7 = **(int **)(iVar5 + 0x40);
    uVar6 = uVar6 + uVar20;
    uVar21 = (**(code **)(iVar7 + 0xc))
                       (*(int **)(iVar5 + 0x40),puVar22,uVar20,iVar7,*(undefined4 *)(iVar5 + 0x48),
                        *(undefined4 *)(iVar5 + 0x4c));
    uVar24 = *(uint *)(iVar5 + 0x4c);
    uVar14 = uVar24 + uVar20;
    *(uint *)(iVar5 + 0x4c) = uVar14;
    *(uint *)(iVar5 + 0x48) = (uint)(uVar14 < uVar24) + *(int *)(iVar5 + 0x48);
  } while (uVar21 == 0);
  return uVar21;
}

