
int unixGetTempname(int nBuf,char *zBuf)

{
  int *piVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  int iVar5;
  int iVar6;
  int *piVar7;
  stat *psVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int in_t9;
  code *pcVar12;
  u64 r;
  stat buf;
  
  piVar1 = *(int **)(in_t9 + 0x7f0c4);
  iVar9 = *(int *)(in_t9 + 0x7ee18);
  iVar6 = *piVar1;
  piVar7 = *(int **)(in_t9 + 0x7ef94);
  *zBuf = '\0';
  iVar10 = *piVar7;
  if (*(int *)(iVar9 + 0x4fd8) == 0) {
    uVar4 = (**(code **)(in_t9 + 0x7f02c))(*(int *)(in_t9 + 0x7ee30) + -0x76b0);
    *(undefined4 *)(iVar9 + 0x4fd8) = uVar4;
    iVar2 = *(int *)(iVar9 + 0x4fdc);
  }
  else {
    iVar2 = *(int *)(iVar9 + 0x4fdc);
  }
  if (iVar2 == 0) {
    uVar4 = (**(code **)(in_t9 + 0x7f02c))(*(int *)(in_t9 + 0x7ee30) + -0x76a0);
    *(undefined4 *)(iVar9 + 0x4fdc) = uVar4;
  }
  piVar7 = (int *)(iVar9 + 0x4fd8);
  iVar2 = *(int *)(in_t9 + 0x7ee18);
  while( true ) {
    psVar8 = &buf;
    if ((((iVar10 != 0) && (iVar3 = (**(code **)(iVar2 + 0x5184))(iVar10), iVar3 == 0)) &&
        (psVar8 = (stat *)0x3, (buf.st_mode & 0xf000) == 0x4000)) &&
       (iVar3 = (**(code **)(iVar2 + 0x516c))(iVar10), iVar3 == 0)) {
      iVar3 = *(int *)(in_t9 + 0x7ee30);
      iVar9 = 0xc;
      goto LAB_00076640;
    }
    iVar11 = 0x190a;
    if (piVar7 == (int *)(iVar9 + 0x4ff0)) break;
    iVar10 = *piVar7;
    piVar7 = piVar7 + 1;
  }
  goto LAB_0007658c;
  while( true ) {
    iVar9 = iVar9 + -1;
    psVar8 = (stat *)0x0;
    if (iVar9 == 0) goto LAB_0007669c;
    iVar5 = (**(code **)(iVar2 + 0x516c))(zBuf);
    iVar11 = 0;
    if (iVar5 != 0) break;
LAB_00076640:
    (**(code **)(in_t9 + 0x7efdc))(8,&r);
    zBuf[nBuf + -2] = '\0';
    psVar8 = (stat *)zBuf;
    (**(code **)(in_t9 + 0x7efe8))(nBuf,zBuf,iVar3 + -0x7698,iVar10,r._0_4_,r._4_4_,0);
    if (zBuf[nBuf + -2] != '\0') {
LAB_0007669c:
      iVar11 = 1;
      break;
    }
  }
LAB_0007658c:
  if (iVar6 == *piVar1) {
    return iVar11;
  }
  pcVar12 = *(code **)(in_t9 + 0x7f09c);
  (*pcVar12)();
  if ((stat *)0x14 < psVar8) {
    iVar6 = FUN_00076748();
    return iVar6;
  }
                    /* WARNING: Could not recover jumptable at 0x00076718. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  iVar6 = (*(pcVar12 + *(int *)(*(int *)(pcVar12 + 0x7ec24) + -0x2974 + (int)psVar8 * 4) + 0x86bf0))
                    ();
  return iVar6;
}



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

{
  bool bVar1;
  longlong lVar2;
  undefined *puVar3;
  int in_zero;
  int iVar4;
  uint uVar5;
  int iVar6;
  int iVar7;
  uint uVar8;
  char cVar11;
  int iVar9;
  int iVar10;
  int *piVar12;
  char *pcVar13;
  undefined4 *puVar14;
  int *piVar15;
  undefined4 *puVar16;
  uint *puVar17;
  uint uVar18;
  undefined4 *puVar19;
  undefined *puVar20;
  uint uVar21;
  uint uVar22;
  int iVar23;
  int iVar24;
  uint *puVar25;
  undefined *puVar26;
  code *pcVar27;
  code *pcVar28;
  int *piVar29;
  int *piVar30;
  uint uVar31;
  undefined4 uVar32;
  longlong lVar33;
  undefined4 local_730;
  uint local_728;
  undefined4 local_720;
  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;
  int 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;
  int 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;
  
  puVar3 = PTR___stack_chk_guard_000f5568;
  puVar26 = PTR_sqlite3_temp_directory_000f5438;
  puVar20 = PTR_DAT_000f52bc;
  local_2c = *(int *)PTR___stack_chk_guard_000f5568;
  *(undefined1 *)param_2 = 0;
  uVar18 = *(uint *)puVar26;
  if (*(int *)(puVar20 + 0x4fd8) == 0) {
    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0);
    *(undefined4 *)(puVar20 + 0x4fd8) = uVar32;
    iVar4 = *(int *)(puVar20 + 0x4fdc);
  }
  else {
    iVar4 = *(int *)(puVar20 + 0x4fdc);
  }
  if (iVar4 == 0) {
    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0);
    *(undefined4 *)(puVar20 + 0x4fdc) = uVar32;
  }
  puVar26 = PTR_DAT_000f52bc;
  puVar17 = (uint *)(puVar20 + 0x4fd8);
  puVar25 = (uint *)(puVar20 + 0x4ff0);
  puVar19 = auStack_d0;
  piVar29 = (int *)0x4000;
  puVar20 = PTR_DAT_000f52bc + 0x5150;
  while( true ) {
    puVar14 = puVar19;
    if ((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&
        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&
       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)) {
      puVar17 = (uint *)0xc;
      puVar25 = (uint *)((int)param_2 + param_1 + -2);
      puVar19 = &local_d8;
      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);
      goto LAB_00076640;
    }
    local_234 = 0x190a;
    if (puVar17 == puVar25) break;
    uVar18 = *puVar17;
    puVar17 = puVar17 + 1;
  }
  goto LAB_0007658c;
  while ((param_4 & 3) != piVar12[1]) {
LAB_00077354:
    piVar15 = piVar12;
    piVar12 = (int *)piVar15[2];
    if (piVar12 == (int *)0x0) goto LAB_00077360;
  }
  piVar15 = piVar15 + 2;
LAB_000776f8:
  iVar24 = piVar30[4];
  pcVar28 = *(code **)(pcVar27 + 0x7e748);
  *piVar15 = piVar12[2];
  (*pcVar28)(iVar24);
  (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));
  iVar6 = *piVar12;
  param_3[7] = (int)piVar12;
  goto LAB_00076e20;
LAB_00077360:
  (**(code **)(pcVar27 + 0x7e748))(piVar30[4]);
  (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));
  goto LAB_00077524;
  while( true ) {
    puVar17 = (uint *)((int)puVar17 + -1);
    puVar14 = (undefined4 *)0x0;
    if (puVar17 == (uint *)0x0) goto LAB_0007669c;
    iVar4 = (**(code **)(puVar26 + 0x516c))(param_2);
    local_234 = 0;
    if (iVar4 != 0) break;
LAB_00076640:
    (*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);
    *(char *)puVar25 = '\0';
    local_f0 = 0;
    local_f4 = local_d4;
    local_f8 = local_d8;
    puVar14 = param_2;
    param_3 = piVar29;
    param_4 = uVar18;
    (*(code *)PTR_sqlite3_snprintf_000f548c)(param_1);
    if (*(char *)puVar25 != '\0') {
LAB_0007669c:
      local_234 = 1;
      break;
    }
  }
LAB_0007658c:
  if (local_2c == *(int *)puVar3) {
    return local_234;
  }
  uVar32 = 0x766b0;
  puVar26 = PTR___stack_chk_fail_000f5540;
  (*(code *)PTR___stack_chk_fail_000f5540)();
  local_208 = puVar26 + 0x86bf0;
  piVar30 = *(int **)(puVar26 + 0x7eeb8);
  iVar4 = *piVar30;
  local_134 = iVar4;
  local_130 = puVar17;
  local_12c = uVar18;
  local_128 = puVar20;
  local_124 = param_2;
  local_120 = param_1;
  local_11c = puVar19;
  local_118 = puVar25;
  local_114 = local_234;
  local_110 = piVar29;
  local_10c = uVar32;
  if (puVar14 < &DAT_00000015) {
                    /* WARNING: Could not recover jumptable at 0x00076718. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    iVar4 = (*(code *)(local_208 +
                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))();
    return iVar4;
  }
  if (iVar4 == *piVar30) {
    return 0xc;
  }
  pcVar27 = *(code **)(puVar26 + 0x7ee90);
  uVar32 = 0x76d28;
  (*pcVar27)();
  piVar29 = *(int **)(pcVar27 + 0x7e840);
  local_254 = *piVar29;
  uVar22 = param_4 & 0xfff00;
  local_728 = param_4 & 1;
  uVar5 = param_4 & 2;
  uVar21 = param_4 & 8;
  puVar16 = puVar14;
  local_250 = puVar17;
  local_24c = uVar18;
  local_248 = puVar20;
  local_244 = param_2;
  local_240 = param_1;
  local_23c = puVar19;
  local_238 = puVar25;
  local_230 = piVar30;
  local_22c = uVar32;
  if ((param_4 & 4) == 0) {
    iVar24 = *(int *)(pcVar27 + 0x7e594);
    bVar1 = false;
    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();
    if (iVar6 != *(int *)(iVar24 + 0x5a1c)) goto LAB_00076ff4;
LAB_00076df0:
    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);
    if (uVar22 == 0x100) {
      iVar6 = *(int *)(pcVar27 + 0x7e594);
      iVar24 = *(int *)(pcVar27 + 0x7e594);
      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));
      if ((*(int *)(iVar24 + 0x5a14) != 0) &&
         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0
         )) {
        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;
            piVar30 = (int *)piVar30[0xb]) {
          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&
             (piVar30[3] == local_6ec)) {
            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);
            piVar12 = (int *)piVar30[8];
            if (piVar12 == (int *)0x0) goto LAB_00077360;
            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;
            piVar15 = piVar30 + 8;
            goto LAB_000776f8;
          }
        }
      }
      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));
LAB_00077524:
      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);
      if (iVar24 != 0) {
        iVar6 = -1;
        param_3[7] = iVar24;
        goto LAB_00076e20;
      }
      iVar24 = 7;
    }
    else {
      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;
LAB_00077258:
      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);
      if (iVar24 == 0) {
        iVar6 = -1;
        puVar16 = auStack_458;
        goto LAB_00076e20;
      }
    }
  }
  else {
    if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {
      iVar24 = *(int *)(pcVar27 + 0x7e594);
      bVar1 = uVar22 == 0x80000;
      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();
      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;
LAB_00076ff4:
      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();
      pcVar28 = *(code **)(pcVar27 + 0x7e758);
      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;
      (*pcVar28)(0,0);
      goto LAB_00076df0;
    }
    iVar24 = *(int *)(pcVar27 + 0x7e594);
    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();
    if (*(int *)(iVar24 + 0x5a1c) != iVar6) {
      bVar1 = true;
      goto LAB_00076ff4;
    }
    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);
    bVar1 = true;
    if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;
LAB_00076e18:
    iVar6 = -1;
LAB_00076e20:
    uVar18 = uVar5;
    if ((param_4 & 4) != 0) {
      uVar18 = uVar5 | 0x100;
    }
    if ((param_4 & 0x10) == 0) {
      if (-1 < iVar6) goto LAB_00076e44;
LAB_00077030:
      uVar31 = uVar18 | 0x22000;
      if ((param_4 & 0x80800) != 0) {
        if (puVar16 == (undefined4 *)0x0) {
          cVar11 = *(char *)(in_zero + -1);
          iVar6 = -1;
          if (cVar11 != '-') goto LAB_00077090;
          pcVar28 = *(code **)(pcVar27 + 0x7e790);
        }
        else {
          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);
          iVar6 = (uVar8 & 0x3fffffff) - 1;
          cVar11 = *(char *)((int)puVar16 + iVar6);
          if (cVar11 != '-') {
            if (iVar6 == 0) goto LAB_000773f8;
LAB_00077090:
            iVar6 = iVar6 + -1;
            if (cVar11 == '.') goto LAB_000773f8;
            pcVar13 = (char *)((int)puVar16 + iVar6);
            while (cVar11 = *pcVar13, cVar11 != '-') {
              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;
              iVar6 = iVar6 + -1;
            }
          }
          pcVar28 = *(code **)(pcVar27 + 0x7e790);
        }
        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);
        iVar24 = *(int *)(pcVar27 + 0x7e594);
        auStack_65c[iVar6] = 0;
        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);
        if (iVar6 != 0) {
LAB_000778c0:
          iVar24 = 0x70a;
          goto LAB_00076f98;
        }
        local_730 = local_6e0;
        local_720 = local_6dc;
LAB_00077140:
        uVar8 = local_6e8 & 0x1ff;
        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);
        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);
        if (iVar6 < 0) goto LAB_0007743c;
LAB_00077180:
        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&
           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {
          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);
        }
        goto LAB_00076e44;
      }
      if (uVar21 == 0) {
        if (((param_4 & 0x40) != 0) &&
           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),
           iVar6 != 0)) {
          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);
          if (iVar6 != 0) goto LAB_000778c0;
          local_730 = local_6e0;
          local_720 = local_6dc;
          goto LAB_00077140;
        }
LAB_000773f8:
        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);
        iVar6 = (*pcVar28)(puVar16,uVar31,0);
        if (-1 < iVar6) goto LAB_00076e44;
        uVar8 = 0;
        local_720 = 0;
        local_730 = 0;
      }
      else {
        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);
        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);
        if (-1 < iVar6) goto LAB_00076e44;
        local_720 = 0;
        uVar8 = 0x180;
        local_730 = 0;
      }
LAB_0007743c:
      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();
      iVar6 = *piVar30;
      if ((bVar1) && (iVar6 == 0xd)) {
        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);
        if (iVar6 == 0) {
          iVar6 = *piVar30;
          goto LAB_000774ac;
        }
        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);
        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))
                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);
        iVar24 = 0x608;
        goto LAB_00077570;
      }
LAB_000774ac:
      if ((iVar6 != 0x15) && (uVar5 != 0)) {
        param_4 = param_4 & 0xfffffff9 | 1;
        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);
        if (-1 < iVar6) {
          local_728 = 1;
          goto LAB_00077180;
        }
      }
      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);
      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))
                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);
      if (iVar24 == 0) goto LAB_00076f98;
      pcVar28 = *(code **)(pcVar27 + 0x7e678);
LAB_00077574:
      (*pcVar28)(param_3[7]);
    }
    else {
      uVar18 = uVar18 | 0x20400;
      if (iVar6 < 0) goto LAB_00077030;
LAB_00076e44:
      if (local_218 != (uint *)0x0) {
        *local_218 = param_4;
      }
      piVar30 = (int *)param_3[7];
      if (piVar30 != (int *)0x0) {
        *piVar30 = iVar6;
        piVar30[1] = param_4 & 3;
      }
      if (uVar21 != 0) {
        uVar21 = 0x20;
        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);
      }
      if (local_728 != 0) {
        uVar21 = uVar21 | 2;
      }
      if (uVar22 != 0x100) {
        uVar21 = uVar21 | 0x80;
      }
      if (bVar1) {
        uVar21 = uVar21 | 8;
      }
      iVar24 = *(int *)(pcVar27 + 0x7e594);
      if ((param_4 & 0x40) == 0) {
        param_3[3] = iVar6;
        param_3[1] = iVar4;
        param_3[8] = (int)puVar14;
        *(short *)((int)param_3 + 0x12) = (short)uVar21;
        iVar7 = *(int *)(iVar24 + 0x4148);
        param_3[0x11] = *(int *)(iVar24 + 0x414c);
        param_3[0x10] = iVar7;
        puVar19 = (undefined4 *)0x0;
      }
      else {
        uVar21 = uVar21 | 0x40;
        param_3[3] = iVar6;
        param_3[1] = iVar4;
        param_3[8] = (int)puVar14;
        *(short *)((int)param_3 + 0x12) = (short)uVar21;
        iVar7 = *(int *)(iVar24 + 0x4148);
        param_3[0x11] = *(int *)(iVar24 + 0x414c);
        param_3[0x10] = iVar7;
        puVar19 = puVar14;
      }
      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);
      if (iVar7 != 0) {
        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;
      }
      iVar7 = (**(code **)(pcVar27 + 0x7e890))
                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);
      if (iVar7 == 0) {
        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;
      }
      if ((uVar21 & 0x80) == 0) {
        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);
        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;
        if (iVar7 != iVar4) {
          iVar4 = iVar7;
          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {
            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);
            iVar24 = iVar24 + 6;
            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);
            if (iVar7 == 0) {
              iVar4 = *(int *)(pcVar27 + 0x7e594);
              param_3[6] = 0;
              param_3[5] = 0;
              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);
              if (iVar4 == 0) {
                iVar24 = 7;
              }
              else {
                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);
                iVar24 = 7;
              }
              goto LAB_00077570;
            }
            (**(code **)(pcVar27 + 0x7e764))
                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);
            param_3[6] = iVar7;
          }
          goto LAB_00076f78;
        }
        iVar7 = *(int *)(pcVar27 + 0x7e594);
        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));
        iVar23 = *(int *)(pcVar27 + 0x7e594);
        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);
        if (iVar9 != 0) {
          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();
          iVar24 = 10;
          param_3[5] = *piVar30;
LAB_0007782c:
          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);
          if (iVar4 == 0) {
            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));
            param_3[5] = 0;
          }
          else {
            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);
            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));
            param_3[5] = 0;
          }
LAB_00077570:
          pcVar28 = *(code **)(pcVar27 + 0x7e678);
          goto LAB_00077574;
        }
        iVar9 = *(int *)(pcVar27 + 0x7e594);
        local_710 = 0;
        local_70c = local_700[0];
        local_704 = local_6ec;
        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);
        local_708 = local_6f0;
        if (puVar19 == (undefined4 *)0x0) {
          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);
        }
        else {
          do {
            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);
            if (iVar10 == 0) {
              puVar19[9] = puVar19[9] + 1;
              goto LAB_0007764c;
            }
            puVar19 = (undefined4 *)puVar19[0xb];
            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);
          } while (puVar19 != (undefined4 *)0x0);
        }
        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);
        if (puVar19 == (undefined4 *)0x0) {
          iVar24 = 7;
          goto LAB_0007782c;
        }
        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);
        *puVar19 = local_710;
        puVar19[1] = local_70c;
        puVar19[2] = local_708;
        puVar19[3] = local_704;
        if (*(char *)(iVar24 + 0x40a4) != '\0') {
          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);
          puVar19[4] = iVar24;
          if (iVar24 == 0) {
            (**(code **)(pcVar27 + 0x7e678))(puVar19);
            iVar24 = 7;
            goto LAB_0007782c;
          }
        }
        iVar6 = *(int *)(iVar9 + 0x5a14);
        puVar19[0xc] = 0;
        puVar19[9] = 1;
        puVar19[0xb] = iVar6;
        if (iVar6 != 0) {
          *(undefined4 **)(iVar6 + 0x30) = puVar19;
        }
        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;
LAB_0007764c:
        pcVar28 = *(code **)(pcVar27 + 0x7e748);
        param_3[2] = (int)puVar19;
        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));
        param_3[5] = 0;
      }
      else {
        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;
LAB_00076f78:
        param_3[5] = 0;
      }
      iVar6 = *(int *)(pcVar27 + 0x7e5c0);
      *param_3 = iVar4;
      (*(code *)(iVar6 + 0x76f0))(param_3);
      iVar24 = 0;
    }
  }
LAB_00076f98:
  if (local_254 == *piVar29) {
    return iVar24;
  }
  pcVar27 = *(code **)(pcVar27 + 0x7e818);
  iVar4 = local_254;
  (*pcVar27)();
  uVar5 = *(uint *)(iVar4 + 0x4c);
  uVar21 = *(uint *)(iVar4 + 0x94);
  iVar6 = *(int *)(iVar4 + 0x48);
  uVar18 = *(uint *)(iVar4 + 0x98);
  if (uVar21 <= *(uint *)(iVar4 + 0x98)) {
    uVar18 = uVar21;
  }
  puVar19 = *(undefined4 **)(iVar4 + 0xd0);
  if (0 < *(int *)(iVar4 + 0x60)) {
    iVar24 = *(int *)(iVar4 + 0x5c);
    iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24;
    do {
      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {
        *(uint *)(iVar24 + 0xc) = uVar5;
        *(int *)(iVar24 + 8) = iVar6;
      }
      iVar24 = iVar24 + 0x30;
    } while (iVar24 != iVar7);
  }
  if (iVar6 != 0 || uVar5 != 0) {
    lVar33 = (**(code **)(pcVar27 + 0x7d930))
                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21);
    lVar2 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;
    uVar5 = (uint)lVar2;
    iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20);
  }
  *(uint *)(iVar4 + 0x4c) = uVar5;
  *(int *)(iVar4 + 0x48) = iVar6;
  *(uint *)(iVar4 + 0x54) = uVar5;
  *(int *)(iVar4 + 0x50) = iVar6;
  if (*(char *)(iVar4 + 7) == '\0') {
    iVar6 = *(int *)(pcVar27 + 0x7d92c);
    if (*(char *)(iVar4 + 5) != '\x04') {
      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));
      if ((uVar5 & 0x200) == 0) {
        *(undefined1 *)puVar19 = 0;
        *(undefined1 *)((int)puVar19 + 1) = 0;
        *(undefined1 *)((int)puVar19 + 2) = 0;
        *(undefined1 *)((int)puVar19 + 3) = 0;
        *(undefined1 *)(puVar19 + 1) = 0;
        *(undefined1 *)((int)puVar19 + 5) = 0;
        *(undefined1 *)((int)puVar19 + 6) = 0;
        *(undefined1 *)((int)puVar19 + 7) = 0;
        *(undefined1 *)(puVar19 + 2) = 0;
        *(undefined1 *)((int)puVar19 + 9) = 0;
        *(undefined1 *)((int)puVar19 + 10) = 0;
        *(undefined1 *)((int)puVar19 + 0xb) = 0;
        goto LAB_00077b04;
      }
      goto LAB_00077ad0;
    }
  }
  else {
LAB_00077ad0:
    iVar6 = *(int *)(pcVar27 + 0x7d92c);
  }
  uVar32 = *(undefined4 *)(iVar6 + 0x229c);
  *puVar19 = *(undefined4 *)(iVar6 + 0x2298);
  puVar19[1] = uVar32;
  *(undefined1 *)(puVar19 + 2) = 0xff;
  *(undefined1 *)((int)puVar19 + 9) = 0xff;
  *(undefined1 *)((int)puVar19 + 10) = 0xff;
  *(undefined1 *)((int)puVar19 + 0xb) = 0xff;
LAB_00077b04:
  uVar5 = 0;
  (**(code **)(pcVar27 + 0x7dad8))(4,iVar4 + 0x30);
  uVar32 = *(undefined4 *)(iVar4 + 0x30);
  *(char *)((int)puVar19 + 0xf) = (char)uVar32;
  *(char *)(puVar19 + 3) = (char)((uint)uVar32 >> 0x18);
  *(char *)((int)puVar19 + 0xd) = (char)((uint)uVar32 >> 0x10);
  *(char *)((int)puVar19 + 0xe) = (char)((uint)uVar32 >> 8);
  uVar32 = *(undefined4 *)(iVar4 + 0x1c);
  pcVar27 = *(code **)(pcVar27 + 0x7daa8);
  *(char *)((int)puVar19 + 0x13) = (char)uVar32;
  *(char *)(puVar19 + 4) = (char)((uint)uVar32 >> 0x18);
  *(char *)((int)puVar19 + 0x11) = (char)((uint)uVar32 >> 0x10);
  *(char *)((int)puVar19 + 0x12) = (char)((uint)uVar32 >> 8);
  uVar32 = *(undefined4 *)(iVar4 + 0x94);
  *(char *)((int)puVar19 + 0x17) = (char)uVar32;
  *(char *)(puVar19 + 5) = (char)((uint)uVar32 >> 0x18);
  *(char *)((int)puVar19 + 0x15) = (char)((uint)uVar32 >> 0x10);
  *(char *)((int)puVar19 + 0x16) = (char)((uint)uVar32 >> 8);
  uVar32 = *(undefined4 *)(iVar4 + 0x98);
  *(char *)((int)puVar19 + 0x1b) = (char)uVar32;
  *(char *)(puVar19 + 6) = (char)((uint)uVar32 >> 0x18);
  *(char *)((int)puVar19 + 0x19) = (char)((uint)uVar32 >> 0x10);
  *(char *)((int)puVar19 + 0x1a) = (char)((uint)uVar32 >> 8);
  (*pcVar27)(puVar19 + 7,0,uVar18 - 0x1c);
  do {
    if (*(uint *)(iVar4 + 0x94) <= uVar5) {
      return 0;
    }
    iVar6 = **(int **)(iVar4 + 0x40);
    uVar5 = uVar5 + uVar18;
    iVar6 = (**(code **)(iVar6 + 0xc))
                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),
                       *(undefined4 *)(iVar4 + 0x4c));
    uVar21 = *(uint *)(iVar4 + 0x4c);
    uVar22 = uVar21 + uVar18;
    *(uint *)(iVar4 + 0x4c) = uVar22;
    *(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48);
  } while (iVar6 == 0);
  return iVar6;
}


lui gp,0x8
addiu gp,gp,0x6dfc
addu gp,gp,t9
addiu sp,sp,-0x108
lw v0,-0x7d38(gp)
sw s0,0xe0(sp)
sw gp,0x20(sp)
sw s4,0xf0(sp)
or s4,a0,zero
sw s3,0xec(sp)
or s3,a1,zero
sw s1,0xe4(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 v0,0x2c(sp)
lw s0,-0x7fe4(gp)
lw v1,0x0(v0)
lw a0,-0x7e68(gp)
sb zero,0x0(a1)
sw v1,0xdc(sp)
lw v0,0x4fd8(s0)
beq v0,zero,0x000765d0
_lw s1,0x0(a0)
addiu s0,s0,0x4fd8
lw v0,0x4(s0)
beq v0,zero,0x000765f4
_nop
lw s2,-0x7fe4(gp)
addiu s6,s0,0x18
addiu s5,sp,0x38
li s8,0x4000
b 0x00076540
_addiu s2,s2,0x5150
lw s1,0x0(s0)
addiu s0,s0,0x4
beq s1,zero,0x00076584
_or a1,s5,zero
lw t9,0x34(s2)
jalr t9
_or a0,s1,zero
bne v0,zero,0x00076584
_lw gp,0x20(sp)
lw v0,0x50(sp)
andi v0,v0,0xf000
bne v0,s8,0x00076584
_li a1,0x3
lw t9,0x1c(s2)
jalr t9
_or a0,s1,zero
lw gp,0x20(sp)
beq v0,zero,0x00076610
_or s7,v0,zero
bne s0,s6,0x00076538
_li s7,0x190a
lw v1,0x2c(sp)
or v0,s7,zero
lw a0,0xdc(sp)
lw v1,0x0(v1)
bne a0,v1,0x000766a4
_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 a0,-0x7fcc(gp)
lw t9,-0x7dd0(gp)
jalr t9
_addiu a0,a0,-0x76b0
sw v0,0x4fd8(s0)
addiu s0,s0,0x4fd8
lw v0,0x4(s0)
bne v0,zero,0x00076520
_lw gp,0x20(sp)
lw a0,-0x7fcc(gp)
lw t9,-0x7dd0(gp)
jalr t9
_addiu a0,a0,-0x76a0
lw gp,0x20(sp)
b 0x00076520
_sw v0,0x4(s0)
lw s8,-0x7fcc(gp)
addiu s6,s4,-0x2
li s0,0xc
addu s6,s3,s6
addiu s5,sp,0x30
b 0x00076640
_addiu s8,s8,-0x7698
lw t9,0x1c(s2)
jalr t9
_or a0,s3,zero
bne v0,zero,0x0007658c
_lw gp,0x20(sp)
lw t9,-0x7e20(gp)
li a0,0x8
jalr t9
_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,-0x7e14(gp)
jalr t9
_sw v0,0x10(sp)
lb v0,0x0(s6)
bne v0,zero,0x0007669c
_lw gp,0x20(sp)
addiu s0,s0,-0x1
bne s0,zero,0x0007662c
_or a1,zero,zero
b 0x0007658c
_li s7,0x1
lw t9,-0x7d60(gp)
jalr t9
_nop
lui gp,0x8
addiu gp,gp,0x6bf0
addu gp,gp,t9
addiu sp,sp,-0x120
sltiu v0,a1,0x15
sw s8,0x118(sp)
lw s8,-0x7d38(gp)
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 v1,0x0(s8)
sw v1,0xf4(sp)
beq v0,zero,0x00076ba4
_sll v0,a1,0x2
lw a1,-0x7fcc(gp)
addiu a1,a1,-0x2974
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,0x00076d1c
_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 0x00076748
_li v1,0xc
lw t9,-0x7d60(gp)
jalr t9
_nop
lui gp,0x8
addiu gp,gp,0x6578
addu gp,gp,t9
addiu sp,sp,-0x528
lw v0,0x538(sp)
sw s7,0x51c(sp)
lw s7,-0x7d38(gp)
sw v0,0x2c(sp)
sw s3,0x50c(sp)
lui s3,0xf
sw s8,0x520(sp)
andi s8,a3,0x4
lw v0,0x0(s7)
ori s3,s3,0xff00
sw gp,0x10(sp)
and s3,a3,s3
sw s6,0x518(sp)
or s6,a0,zero
sw v0,0x4fc(sp)
andi v0,a3,0x10
sw v0,0x20(sp)
andi v0,a3,0x1
sw v0,0x28(sp)
andi v0,a3,0x2
sw s4,0x510(sp)
or s4,a1,zero
sw s2,0x508(sp)
andi s2,a3,0x8
sw s1,0x504(sp)
or s1,a3,zero
sw s0,0x500(sp)
or s0,a2,zero
sw ra,0x524(sp)
sw s5,0x514(sp)
beq s8,zero,0x00076fd8
_sw v0,0x1c(sp)
li v0,0x4000
beq s3,v0,0x00077214
_li v0,0x800
beq s3,v0,0x00077214
_lui v0,0xfff8
lw s5,-0x7fe4(gp)
lw t9,-0x7db8(gp)
addu v0,s3,v0
sltiu v0,v0,0x1
jalr t9
_sw v0,0x24(sp)
lw v1,0x5a1c(s5)
bne v0,v1,0x00076ff4
_lw gp,0x10(sp)
lw t9,-0x7e50(gp)
li a2,0x58
or a1,zero,zero
jalr t9
_or a0,s0,zero
li v0,0x100
beq s3,v0,0x00077284
_lw gp,0x10(sp)
beq s4,zero,0x00077258
_lw t9,-0x7fa4(gp)
li s5,-0x1
or t0,s4,zero
beq s8,zero,0x00076e2c
_lw v1,0x1c(sp)
ori v1,v1,0x100
lw v0,0x20(sp)
bne v0,zero,0x00077020
_lui v0,0x2
bltz s5,0x00077030
_lui v0,0x8
lw v0,0x2c(sp)
beq v0,zero,0x00076e50
_nop
sw s1,0x0(v0)
lw v0,0x1c(s0)
beq v0,zero,0x00076e64
_andi v1,s1,0x3
sw s5,0x0(v0)
sw v1,0x4(v0)
beq s2,zero,0x00076e80
_lw v0,-0x7fe4(gp)
or a0,t0,zero
lw t9,0x5214(v0)
jalr t9
_li s2,0x20
lw gp,0x10(sp)
lw v0,0x28(sp)
bne v0,zero,0x0007720c
_nop
li v0,0x100
beq s3,v0,0x00076e9c
_lw v0,0x24(sp)
ori s2,s2,0x80
beq v0,zero,0x00076ea8
_nop
ori s2,s2,0x8
andi s1,s1,0x40
bne s1,zero,0x000771dc
_lw s1,-0x7fe4(gp)
andi a0,s2,0x40
or v0,s4,zero
sw s5,0xc(s0)
movz v0,zero,a0
addiu s1,s1,0x40a0
sw s6,0x4(s0)
sw s4,0x20(s0)
sh s2,0x12(s0)
or a0,v0,zero
lw v1,0xac(s1)
lw v0,0xa8(s1)
sw v1,0x44(s0)
sw v0,0x40(s0)
lw a1,-0x7fcc(gp)
li a2,0x1
lw t9,-0x7d0c(gp)
jalr t9
_addiu a1,a1,-0x767c
beq v0,zero,0x00076f10
_lw gp,0x10(sp)
lhu v0,0x12(s0)
ori v0,v0,0x10
sh v0,0x12(s0)
lw a1,-0x7fcc(gp)
lw t9,-0x7ce8(gp)
lw a0,0x10(s6)
jalr t9
_addiu a1,a1,-0x7674
bne v0,zero,0x00076f38
_lw gp,0x10(sp)
lhu v0,0x12(s0)
ori v0,v0,0x1
sh v0,0x12(s0)
andi s2,s2,0x80
bne s2,zero,0x00077670
_or a1,s0,zero
lw v0,0x14(s6)
lw t9,0x0(v0)
jalr t9
_or a0,s4,zero
lw gp,0x10(sp)
lw s3,-0x7fe4(gp)
addiu s3,s3,0x3b24
beq v0,s3,0x000775ac
_or s2,v0,zero
lw v0,-0x7fe4(gp)
addiu v0,v0,0x3a84
beq s2,v0,0x00077394
_lw t9,-0x7e18(gp)
sw zero,0x14(s0)
lw t9,-0x7fb8(gp)
or a0,s0,zero
addiu t9,t9,0x76f0
jalr t9
_sw s2,0x0(s0)
or v1,zero,zero
lw gp,0x10(sp)
lw a0,0x4fc(sp)
or v0,v1,zero
lw v1,0x0(s7)
bne a0,v1,0x0007799c
_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 s5,-0x7fe4(gp)
lw t9,-0x7db8(gp)
jalr t9
_sw zero,0x24(sp)
lw v1,0x5a1c(s5)
beq v0,v1,0x00076df0
_lw gp,0x10(sp)
lw t9,-0x7db8(gp)
jalr t9
_nop
or a1,zero,zero
lw gp,0x10(sp)
or a0,zero,zero
lw t9,-0x7e20(gp)
jalr t9
_sw v0,0x5a1c(s5)
b 0x00076df0
_lw gp,0x10(sp)
addiu v0,v0,0x400
bgez s5,0x00076e40
_or v1,v1,v0
lui v0,0x8
lui a1,0x2
addiu v0,v0,0x800
addiu a1,a1,0x2000
and v0,s1,v0
beq v0,zero,0x000773e8
_or s8,v1,a1
beq t0,zero,0x000778a4
_lw t9,-0x7e18(gp)
or a0,t0,zero
sw v1,0x30(sp)
jalr t9
_sw t0,0x20(sp)
li a0,0x2d
ext v0,v0,0x0,0x1e
lw t0,0x20(sp)
lw gp,0x10(sp)
addiu s5,v0,-0x1
lw v1,0x30(sp)
addu v0,t0,s5
lb v0,0x0(v0)
beq v0,a0,0x000770d0
_or a2,s5,zero
beq s5,zero,0x000773f8
_nop
li a0,0x2e
beq v0,a0,0x000773f8
_addiu v0,s5,-0x1
li a3,0x2d
addu a0,t0,v0
b 0x000770c0
_li t1,0x2e
beq v0,zero,0x000773f8
_nop
beq a1,t1,0x000773f8
_addiu a0,a0,-0x1
addiu v0,v0,-0x1
lb a1,0x0(a0)
or s5,v0,zero
bne a1,a3,0x000770ac
_or a2,v0,zero
lw t9,-0x7de8(gp)
addiu t1,sp,0xf4
li a3,0x201
sw v1,0x38(sp)
or a1,t0,zero
sw t0,0x34(sp)
jalr t9
_or a0,t1,zero
addiu a1,sp,0x50
lw gp,0x10(sp)
or t1,v0,zero
addiu v0,sp,0x500
addu s5,v0,s5
lw v0,-0x7fe4(gp)
sb zero,-0x40c(s5)
lw t9,0x5184(v0)
jalr t9
_or a0,t1,zero
bne v0,zero,0x000778c0
_lw gp,0x10(sp)
lw v0,0x70(sp)
lw a3,0x68(sp)
lw t0,0x34(sp)
lw v1,0x38(sp)
sw v0,0x20(sp)
andi a3,a3,0x1ff
lw v0,0x74(sp)
sw v0,0x30(sp)
lw v0,-0x7fb8(gp)
or a1,s8,zero
sw v1,0x3c(sp)
or a2,a3,zero
sw a3,0x38(sp)
or a0,t0,zero
addiu s8,v0,0x7c30
or t9,s8,zero
jalr t9
_sw t0,0x34(sp)
lw gp,0x10(sp)
or s5,v0,zero
lw t0,0x34(sp)
lw a3,0x38(sp)
bltz v0,0x0007743c
_lw v1,0x3c(sp)
beq a3,zero,0x00076e44
_lw v0,0x2c(sp)
lui v0,0x8
addiu v0,v0,0x800
and v0,s1,v0
beq v0,zero,0x00076e40
_lw s8,-0x7fe4(gp)
sw t0,0x1c(sp)
addiu s8,s8,0x5150
lw t9,0x100(s8)
jalr t9
_nop
lw gp,0x10(sp)
bne v0,zero,0x00076e40
_lw t0,0x1c(sp)
lw t9,0xf4(s8)
or a0,s5,zero
lw a2,0x30(sp)
jalr t9
_lw a1,0x20(sp)
lw gp,0x10(sp)
b 0x00076e40
_lw t0,0x1c(sp)
ori s2,s2,0x40
sw s5,0xc(s0)
or a0,s4,zero
sw s6,0x4(s0)
addiu s1,s1,0x40a0
sw s4,0x20(s0)
sh s2,0x12(s0)
lw v1,0xac(s1)
lw v0,0xa8(s1)
sw v1,0x44(s0)
b 0x00076ee8
_sw v0,0x40(s0)
b 0x00076e8c
_ori s2,s2,0x2
lw s5,-0x7fe4(gp)
lw t9,-0x7db8(gp)
jalr t9
_nop
lw v1,0x5a1c(s5)
bne v1,v0,0x00077388
_lw gp,0x10(sp)
lw t9,-0x7e50(gp)
li a2,0x58
or a1,zero,zero
jalr t9
_or a0,s0,zero
li v0,0x1
lw gp,0x10(sp)
bne s4,zero,0x00076e18
_sw v0,0x24(sp)
lw t9,-0x7fa4(gp)
addiu s5,sp,0x2f8
lw a0,0x8(s6)
addiu t9,t9,0x64a4
bal 0x000764a4
_or a1,s5,zero
lw gp,0x10(sp)
bne v0,zero,0x00076f98
_or v1,v0,zero
or t0,s5,zero
b 0x00076e20
_li s5,-0x1
lw v0,-0x7fe4(gp)
lw s5,-0x7fe4(gp)
lw t9,-0x7e58(gp)
sw v0,0x30(sp)
jalr t9
_lw a0,0x5a18(v0)
lw v0,0x5a14(s5)
beq v0,zero,0x00077510
_lw gp,0x10(sp)
lw v0,-0x7fe4(gp)
addiu a1,sp,0x50
lw t9,0x5184(v0)
jalr t9
_or a0,s4,zero
bne v0,zero,0x00077510
_lw gp,0x10(sp)
lw s5,0x5a14(s5)
beq s5,zero,0x00077510
_lw v1,0x60(sp)
lw a0,0x50(sp)
b 0x000772e8
_lw a1,0x64(sp)
lw s5,0x2c(s5)
beq s5,zero,0x00077514
_lw v0,0x30(sp)
lw v0,0x0(s5)
bne v0,zero,0x000772dc
_nop
lw v0,0x4(s5)
bne v0,a0,0x000772dc
_nop
lw v0,0x8(s5)
bne v0,v1,0x000772dc
_nop
lw v0,0xc(s5)
bne v0,a1,0x000772dc
_lw t9,-0x7e58(gp)
jalr t9
_lw a0,0x10(s5)
andi a1,s1,0x3
lw v1,0x20(s5)
beq v1,zero,0x00077360
_lw gp,0x10(sp)
lw v0,0x4(v1)
bne a1,v0,0x00077354
_nop
b 0x000778c8
_addiu a1,s5,0x20
lw a0,0x4(v0)
beq a1,a0,0x000776f4
_nop
or v1,v0,zero
lw v0,0x8(v1)
bne v0,zero,0x00077344
_nop
lw t9,-0x7e30(gp)
jalr t9
_lw a0,0x10(s5)
lw gp,0x10(sp)
lw v0,0x30(sp)
lw t9,-0x7e30(gp)
jalr t9
_lw a0,0x5a18(v0)
b 0x00077524
_lw gp,0x10(sp)
li v0,0x1
b 0x00076ff4
_sw v0,0x24(sp)
jalr t9
_or a0,s4,zero
lw gp,0x10(sp)
addiu s1,v0,0x6
sra a0,s1,0x1f
lw t9,-0x7d84(gp)
jalr t9
_or a1,s1,zero
lw gp,0x10(sp)
beq v0,zero,0x0007754c
_or s3,v0,zero
lw a2,-0x7fcc(gp)
or a3,s4,zero
lw t9,-0x7e14(gp)
or a1,v0,zero
or a0,s1,zero
jalr t9
_addiu a2,a2,-0x7668
lw gp,0x10(sp)
b 0x00076f78
_sw s3,0x18(s0)
bne s2,zero,0x000777cc
_andi v0,s1,0x40
bne v0,zero,0x0007767c
_lw a1,-0x7fcc(gp)
lw v0,-0x7fb8(gp)
or a1,s8,zero
or a2,zero,zero
sw v1,0x30(sp)
or a0,t0,zero
addiu s8,v0,0x7c30
or t9,s8,zero
jalr t9
_sw t0,0x20(sp)
lw gp,0x10(sp)
or s5,v0,zero
lw t0,0x20(sp)
bgez v0,0x00076e40
_lw v1,0x30(sp)
or a3,zero,zero
sw zero,0x30(sp)
sw zero,0x20(sp)
lw t9,-0x7e60(gp)
sw a3,0x38(sp)
sw t0,0x34(sp)
jalr t9
_sw v1,0x28(sp)
lw a0,0x24(sp)
or s5,v0,zero
lw gp,0x10(sp)
lw v0,0x0(v0)
lw v1,0x28(sp)
lw t0,0x34(sp)
beq a0,zero,0x000774ac
_lw a3,0x38(sp)
li a0,0xd
bne v0,a0,0x000774ac
_or a1,zero,zero
lw v0,-0x7fe4(gp)
sw t0,0x28(sp)
sw v1,0x34(sp)
lw t9,0x516c(v0)
jalr t9
_or a0,t0,zero
lw gp,0x10(sp)
bne v0,zero,0x000778d0
_lw t0,0x28(sp)
lw v0,0x0(s5)
lw a3,0x38(sp)
lw v1,0x34(sp)
li a0,0x15
beq v0,a0,0x000774c0
_lw v0,0x1c(sp)
bne v0,zero,0x00077918
_li v0,-0x103
lw t9,-0x7fb8(gp)
ori a0,zero,0x9ae7
addiu t9,t9,0x489c
jalr t9
_sw t0,0x1c(sp)
ori a3,zero,0x9ae7
lw gp,0x10(sp)
or a0,v0,zero
lw t0,0x1c(sp)
lw a1,-0x7fcc(gp)
or a2,t0,zero
lw t9,-0x7fb8(gp)
addiu t9,t9,0x7dd8
jalr t9
_addiu a1,a1,-0x7c98
or v1,v0,zero
beq v1,zero,0x00076f98
_lw gp,0x10(sp)
b 0x00077574
_lw t9,-0x7f00(gp)
lw v0,0x30(sp)
lw t9,-0x7e30(gp)
jalr t9
_lw a0,0x5a18(v0)
lw gp,0x10(sp)
lw t9,-0x7d84(gp)
li a1,0xc
jalr t9
_or a0,zero,zero
beq v0,zero,0x000776ec
_lw gp,0x10(sp)
li s5,-0x1
sw v0,0x1c(s0)
b 0x00076e20
_or t0,s4,zero
lw v0,-0x7fe4(gp)
sw zero,0x18(s0)
sw zero,0x14(s0)
lw t9,0x5160(v0)
jalr t9
_or a0,s5,zero
bne v0,zero,0x0007758c
_lw gp,0x10(sp)
li v1,0x7
lw t9,-0x7f00(gp)
lw a0,0x1c(s0)
jalr t9
_sw v1,0x1c(sp)
lw gp,0x10(sp)
b 0x00076f98
_lw v1,0x1c(sp)
lw t9,-0x7f94(gp)
ori a1,zero,0x9949
addiu t9,t9,-0x7c9c
jalr t9
_or a0,s0,zero
li v1,0x7
b 0x00077570
_lw gp,0x10(sp)
lw v0,-0x7fe4(gp)
lw t9,-0x7e58(gp)
sw v0,0x30(sp)
jalr t9
_lw a0,0x5a18(v0)
addiu a1,sp,0x50
lw gp,0x10(sp)
lw s4,-0x7fe4(gp)
addiu s4,s4,0x5150
lw t9,0x40(s4)
jalr t9
_lw a0,0xc(s0)
bne v0,zero,0x00077814
_lw gp,0x10(sp)
lw s6,-0x7fe4(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 s2,0x5a14(s6)
bne s2,zero,0x00077624
_sw v0,0x48(sp)
b 0x0007773c
_lw t9,-0x7d84(gp)
lw s2,0x2c(s2)
beq s2,zero,0x0007773c
_lw t9,-0x7d84(gp)
lw t9,-0x7d4c(gp)
li a2,0x10
or a1,s2,zero
jalr t9
_or a0,s8,zero
bne v0,zero,0x00077618
_lw gp,0x10(sp)
lw v0,0x24(s2)
addiu v0,v0,0x1
sw v0,0x24(s2)
lw v0,0x30(sp)
lw t9,-0x7e30(gp)
sw s2,0x8(s0)
or s2,s3,zero
jalr t9
_lw a0,0x5a18(v0)
lw gp,0x10(sp)
b 0x00076f7c
_sw zero,0x14(s0)
lw s2,-0x7fe4(gp)
b 0x00076f78
_addiu s2,s2,0x3ad4
or a0,t0,zero
lw t9,-0x7df8(gp)
sw v1,0x30(sp)
addiu a1,a1,-0x7684
jalr t9
_sw t0,0x20(sp)
lw gp,0x10(sp)
lw t0,0x20(sp)
beq v0,zero,0x000773f8
_lw v1,0x30(sp)
or a0,v0,zero
lw v0,-0x7fe4(gp)
sw t0,0x38(sp)
sw v1,0x34(sp)
lw t9,0x5184(v0)
jalr t9
_addiu a1,sp,0x50
bne v0,zero,0x000778c0
_lw gp,0x10(sp)
lw v0,0x70(sp)
lw a3,0x68(sp)
lw v1,0x34(sp)
lw t0,0x38(sp)
sw v0,0x20(sp)
andi a3,a3,0x1ff
lw v0,0x74(sp)
b 0x00077140
_sw v0,0x30(sp)
b 0x00076f98
_li v1,0x7
addiu a1,v1,0x8
lw v1,0x8(v0)
lw a0,0x10(s5)
lw t9,-0x7e30(gp)
sw v0,0x34(sp)
jalr t9
_sw v1,0x0(a1)
lw gp,0x10(sp)
lw v0,0x30(sp)
lw t9,-0x7e30(gp)
jalr t9
_lw a0,0x5a18(v0)
or t0,s4,zero
lw v0,0x34(sp)
lw gp,0x10(sp)
lw s5,0x0(v0)
b 0x00076e20
_sw v0,0x1c(s0)
li a1,0x38
jalr t9
_or a0,zero,zero
lw gp,0x10(sp)
beq v0,zero,0x0007796c
_or s2,v0,zero
lw t9,-0x7e50(gp)
or a1,zero,zero
addiu a0,s2,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(s2)
swr a1,0x3(s2)
swl a0,0x4(s2)
swr a0,0x7(s2)
swl v1,0x8(s2)
swr v1,0xb(s2)
swl v0,0xc(s2)
swr v0,0xf(s2)
lbu v0,0x4(s1)
bne v0,zero,0x00077974
_lw t9,-0x7d54(gp)
lw v0,0x5a14(s6)
li v1,0x1
sw zero,0x30(s2)
sw v1,0x24(s2)
beq v0,zero,0x000777c4
_sw v0,0x2c(s2)
sw s2,0x30(v0)
b 0x0007764c
_sw s2,0x5a14(s6)
lw v0,-0x7fb8(gp)
or a1,s8,zero
li a2,0x180
sw v1,0x30(sp)
or a0,t0,zero
addiu s8,v0,0x7c30
or t9,s8,zero
jalr t9
_sw t0,0x20(sp)
lw gp,0x10(sp)
or s5,v0,zero
lw t0,0x20(sp)
bgez v0,0x00076e40
_lw v1,0x30(sp)
sw zero,0x30(sp)
li a3,0x180
b 0x0007743c
_sw zero,0x20(sp)
lw t9,-0x7e60(gp)
jalr t9
_nop
li v1,0xa
lw v0,0x0(v0)
sw v0,0x14(s0)
lw t9,0x10(s4)
or a0,s5,zero
jalr t9
_sw v1,0x1c(sp)
lw gp,0x10(sp)
bne v0,zero,0x0007786c
_lw v1,0x1c(sp)
lw v0,0x30(sp)
lw t9,-0x7e30(gp)
sw v1,0x1c(sp)
jalr t9
_lw a0,0x5a18(v0)
lw gp,0x10(sp)
lw v1,0x1c(sp)
b 0x00077570
_sw zero,0x14(s0)
lw t9,-0x7f94(gp)
ori a1,zero,0x98f4
addiu t9,t9,-0x7c9c
jalr t9
_or a0,s0,zero
lw gp,0x10(sp)
lw v0,0x30(sp)
lw t9,-0x7e30(gp)
jalr t9
_lw a0,0x5a18(v0)
lw gp,0x10(sp)
lw v1,0x1c(sp)
b 0x00077570
_sw zero,0x14(s0)
lb v0,-0x1(zero)
li a0,0x2d
li s5,-0x1
bne v0,a0,0x00077090
_li a2,-0x1
b 0x000770d4
_lw t9,-0x7de8(gp)
b 0x00076f98
_li v1,0x70a
b 0x000776f8
_or v0,v1,zero
lw t9,-0x7fb8(gp)
ori a0,zero,0x9ae7
addiu t9,t9,0x489c
jalr t9
_sw t0,0x1c(sp)
ori a3,zero,0x9ae7
lw gp,0x10(sp)
or a0,v0,zero
lw t0,0x1c(sp)
lw a1,-0x7fcc(gp)
or a2,t0,zero
lw t9,-0x7fb8(gp)
addiu t9,t9,0x7dd8
jalr t9
_addiu a1,a1,-0x7c98
li v1,0x608
b 0x00077570
_lw gp,0x10(sp)
sw t0,0x1c(sp)
or a0,t0,zero
sw a3,0x34(sp)
and v1,v1,v0
li v0,-0x7
or a2,a3,zero
and s1,s1,v0
lui v0,0x2
or t9,s8,zero
addiu v0,v0,0x2000
ori s1,s1,0x1
jalr t9
_or a1,v1,v0
lw gp,0x10(sp)
or s5,v0,zero
bltz v0,0x000774c0
_lw t0,0x1c(sp)
li v0,0x1
lw a3,0x34(sp)
b 0x00077180
_sw v0,0x28(sp)
b 0x0007782c
_li v1,0x7
jalr t9
_or a0,zero,zero
lw gp,0x10(sp)
bne v0,zero,0x000777a8
_sw v0,0x10(s2)
lw t9,-0x7f00(gp)
jalr t9
_or a0,s2,zero
b 0x0007782c
_li v1,0x7
lw t9,-0x7d60(gp)
jalr t9
_nop
(translation_unit "int FUN_000764a4(int param_1,undefined4 *param_2,int *param_3,uint param_4)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  int in_zero;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  char cVar11;\n  int iVar9;\n  int iVar10;\n  int *piVar12;\n  char *pcVar13;\n  undefined4 *puVar14;\n  int *piVar15;\n  undefined4 *puVar16;\n  uint *puVar17;\n  uint uVar18;\n  undefined4 *puVar19;\n  undefined *puVar20;\n  uint uVar21;\n  uint uVar22;\n  int iVar23;\n  int iVar24;\n  uint *puVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  code *pcVar28;\n  int *piVar29;\n  int *piVar30;\n  uint uVar31;\n  undefined4 uVar32;\n  longlong lVar33;\n  undefined4 local_730;\n  uint local_728;\n  undefined4 local_720;\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  int 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  int 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  puVar3 = PTR___stack_chk_guard_000f5568;\n  puVar26 = PTR_sqlite3_temp_directory_000f5438;\n  puVar20 = PTR_DAT_000f52bc;\n  local_2c = *(int *)PTR___stack_chk_guard_000f5568;\n  *(undefined1 *)param_2 = 0;\n  uVar18 = *(uint *)puVar26;\n  if (*(int *)(puVar20 + 0x4fd8) == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0);\n    *(undefined4 *)(puVar20 + 0x4fd8) = uVar32;\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }\n  else {\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }\n  if (iVar4 == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0);\n    *(undefined4 *)(puVar20 + 0x4fdc) = uVar32;\n  }\n  puVar26 = PTR_DAT_000f52bc;\n  puVar17 = (uint *)(puVar20 + 0x4fd8);\n  puVar25 = (uint *)(puVar20 + 0x4ff0);\n  puVar19 = auStack_d0;\n  piVar29 = (int *)0x4000;\n  puVar20 = PTR_DAT_000f52bc + 0x5150;\n  while( true ) {\n    puVar14 = puVar19;\n    if ((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)) {\n      puVar17 = (uint *)0xc;\n      puVar25 = (uint *)((int)param_2 + param_1 + -2);\n      puVar19 = &local_d8;\n      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);\n      goto LAB_00076640;\n    }\n    local_234 = 0x190a;\n    if (puVar17 == puVar25) break;\n    uVar18 = *puVar17;\n    puVar17 = puVar17 + 1;\n  }\n  goto LAB_0007658c;\n  while ((param_4 & 3) != piVar12[1]) {\nLAB_00077354:\n    piVar15 = piVar12;\n    piVar12 = (int *)piVar15[2];\n    if (piVar12 == (int *)0x0) goto LAB_00077360;\n  }\n  piVar15 = piVar15 + 2;\nLAB_000776f8:\n  iVar24 = piVar30[4];\n  pcVar28 = *(code **)(pcVar27 + 0x7e748);\n  *piVar15 = piVar12[2];\n  (*pcVar28)(iVar24);\n  (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\n  iVar6 = *piVar12;\n  param_3[7] = (int)piVar12;\n  goto LAB_00076e20;\nLAB_00077360:\n  (**(code **)(pcVar27 + 0x7e748))(piVar30[4]);\n  (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\n  goto LAB_00077524;\n  while( true ) {\n    puVar17 = (uint *)((int)puVar17 + -1);\n    puVar14 = (undefined4 *)0x0;\n    if (puVar17 == (uint *)0x0) goto LAB_0007669c;\n    iVar4 = (**(code **)(puVar26 + 0x516c))(param_2);\n    local_234 = 0;\n    if (iVar4 != 0) break;\nLAB_00076640:\n    (*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);\n    *(char *)puVar25 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar14 = param_2;\n    param_3 = piVar29;\n    param_4 = uVar18;\n    (*(code *)PTR_sqlite3_snprintf_000f548c)(param_1);\n    if (*(char *)puVar25 != '\0') {\nLAB_0007669c:\n      local_234 = 1;\n      break;\n    }\n  }\nLAB_0007658c:\n  if (local_2c == *(int *)puVar3) {\n    return local_234;\n  }\n  uVar32 = 0x766b0;\n  puVar26 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  local_208 = puVar26 + 0x86bf0;\n  piVar30 = *(int **)(puVar26 + 0x7eeb8);\n  iVar4 = *piVar30;\n  local_134 = iVar4;\n  local_130 = puVar17;\n  local_12c = uVar18;\n  local_128 = puVar20;\n  local_124 = param_2;\n  local_120 = param_1;\n  local_11c = puVar19;\n  local_118 = puVar25;\n  local_114 = local_234;\n  local_110 = piVar29;\n  local_10c = uVar32;\n  if (puVar14 < &DAT_00000015) {\n                    /* WARNING: Could not recover jumptable at 0x00076718. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar4 = (*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))();\n    return iVar4;\n  }\n  if (iVar4 == *piVar30) {\n    return 0xc;\n  }\n  pcVar27 = *(code **)(puVar26 + 0x7ee90);\n  uVar32 = 0x76d28;\n  (*pcVar27)();\n  piVar29 = *(int **)(pcVar27 + 0x7e840);\n  local_254 = *piVar29;\n  uVar22 = param_4 & 0xfff00;\n  local_728 = param_4 & 1;\n  uVar5 = param_4 & 2;\n  uVar21 = param_4 & 8;\n  puVar16 = puVar14;\n  local_250 = puVar17;\n  local_24c = uVar18;\n  local_248 = puVar20;\n  local_244 = param_2;\n  local_240 = param_1;\n  local_23c = puVar19;\n  local_238 = puVar25;\n  local_230 = piVar30;\n  local_22c = uVar32;\n  if ((param_4 & 4) == 0) {\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    bVar1 = false;\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (iVar6 != *(int *)(iVar24 + 0x5a1c)) goto LAB_00076ff4;\nLAB_00076df0:\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    if (uVar22 == 0x100) {\n      iVar6 = *(int *)(pcVar27 + 0x7e594);\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));\n      if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }\n      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\nLAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);\n      if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }\n      iVar24 = 7;\n    }\n    else {\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }\n  }\n  else {\n    if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (*(int *)(iVar24 + 0x5a1c) != iVar6) {\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    bVar1 = true;\n    if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;\nLAB_00076e18:\n    iVar6 = -1;\nLAB_00076e20:\n    uVar18 = uVar5;\n    if ((param_4 & 4) != 0) {\n      uVar18 = uVar5 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }\n    else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }\n  }\nLAB_00076f98:\n  if (local_254 == *piVar29) {\n    return iVar24;\n  }\n  pcVar27 = *(code **)(pcVar27 + 0x7e818);\n  iVar4 = local_254;\n  (*pcVar27)();\n  uVar5 = *(uint *)(iVar4 + 0x4c);\n  uVar21 = *(uint *)(iVar4 + 0x94);\n  iVar6 = *(int *)(iVar4 + 0x48);\n  uVar18 = *(uint *)(iVar4 + 0x98);\n  if (uVar21 <= *(uint *)(iVar4 + 0x98)) {\n    uVar18 = uVar21;\n  }\n  puVar19 = *(undefined4 **)(iVar4 + 0xd0);\n  if (0 < *(int *)(iVar4 + 0x60)) {\n    iVar24 = *(int *)(iVar4 + 0x5c);\n    iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24;\n    do {\n      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }\n      iVar24 = iVar24 + 0x30;\n    } while (iVar24 != iVar7);\n  }\n  if (iVar6 != 0 || uVar5 != 0) {\n    lVar33 = (**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21);\n    lVar2 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar5 = (uint)lVar2;\n    iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20);\n  }\n  *(uint *)(iVar4 + 0x4c) = uVar5;\n  *(int *)(iVar4 + 0x48) = iVar6;\n  *(uint *)(iVar4 + 0x54) = uVar5;\n  *(int *)(iVar4 + 0x50) = iVar6;\n  if (*(char *)(iVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n    if (*(char *)(iVar4 + 5) != '\x04') {\n      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));\n      if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }\n      goto LAB_00077ad0;\n    }\n  }\n  else {\nLAB_00077ad0:\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n  }\n  uVar32 = *(undefined4 *)(iVar6 + 0x229c);\n  *puVar19 = *(undefined4 *)(iVar6 + 0x2298);\n  puVar19[1] = uVar32;\n  *(undefined1 *)(puVar19 + 2) = 0xff;\n  *(undefined1 *)((int)puVar19 + 9) = 0xff;\n  *(undefined1 *)((int)puVar19 + 10) = 0xff;\n  *(undefined1 *)((int)puVar19 + 0xb) = 0xff;\nLAB_00077b04:\n  uVar5 = 0;\n  (**(code **)(pcVar27 + 0x7dad8))(4,iVar4 + 0x30);\n  uVar32 = *(undefined4 *)(iVar4 + 0x30);\n  *(char *)((int)puVar19 + 0xf) = (char)uVar32;\n  *(char *)(puVar19 + 3) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0xd) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0xe) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x1c);\n  pcVar27 = *(code **)(pcVar27 + 0x7daa8);\n  *(char *)((int)puVar19 + 0x13) = (char)uVar32;\n  *(char *)(puVar19 + 4) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x11) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x12) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x94);\n  *(char *)((int)puVar19 + 0x17) = (char)uVar32;\n  *(char *)(puVar19 + 5) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x15) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x16) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x98);\n  *(char *)((int)puVar19 + 0x1b) = (char)uVar32;\n  *(char *)(puVar19 + 6) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x19) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x1a) = (char)((uint)uVar32 >> 8);\n  (*pcVar27)(puVar19 + 7,0,uVar18 - 0x1c);\n  do {\n    if (*(uint *)(iVar4 + 0x94) <= uVar5) {\n      return 0;\n    }\n    iVar6 = **(int **)(iVar4 + 0x40);\n    uVar5 = uVar5 + uVar18;\n    iVar6 = (**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c));\n    uVar21 = *(uint *)(iVar4 + 0x4c);\n    uVar22 = uVar21 + uVar18;\n    *(uint *)(iVar4 + 0x4c) = uVar22;\n    *(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48);\n  } while (iVar6 == 0);\n  return iVar6;\n}\n\n" (function_definition "int FUN_000764a4(int param_1,undefined4 *param_2,int *param_3,uint param_4)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  int in_zero;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  char cVar11;\n  int iVar9;\n  int iVar10;\n  int *piVar12;\n  char *pcVar13;\n  undefined4 *puVar14;\n  int *piVar15;\n  undefined4 *puVar16;\n  uint *puVar17;\n  uint uVar18;\n  undefined4 *puVar19;\n  undefined *puVar20;\n  uint uVar21;\n  uint uVar22;\n  int iVar23;\n  int iVar24;\n  uint *puVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  code *pcVar28;\n  int *piVar29;\n  int *piVar30;\n  uint uVar31;\n  undefined4 uVar32;\n  longlong lVar33;\n  undefined4 local_730;\n  uint local_728;\n  undefined4 local_720;\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  int 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  int 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  puVar3 = PTR___stack_chk_guard_000f5568;\n  puVar26 = PTR_sqlite3_temp_directory_000f5438;\n  puVar20 = PTR_DAT_000f52bc;\n  local_2c = *(int *)PTR___stack_chk_guard_000f5568;\n  *(undefined1 *)param_2 = 0;\n  uVar18 = *(uint *)puVar26;\n  if (*(int *)(puVar20 + 0x4fd8) == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0);\n    *(undefined4 *)(puVar20 + 0x4fd8) = uVar32;\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }\n  else {\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }\n  if (iVar4 == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0);\n    *(undefined4 *)(puVar20 + 0x4fdc) = uVar32;\n  }\n  puVar26 = PTR_DAT_000f52bc;\n  puVar17 = (uint *)(puVar20 + 0x4fd8);\n  puVar25 = (uint *)(puVar20 + 0x4ff0);\n  puVar19 = auStack_d0;\n  piVar29 = (int *)0x4000;\n  puVar20 = PTR_DAT_000f52bc + 0x5150;\n  while( true ) {\n    puVar14 = puVar19;\n    if ((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)) {\n      puVar17 = (uint *)0xc;\n      puVar25 = (uint *)((int)param_2 + param_1 + -2);\n      puVar19 = &local_d8;\n      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);\n      goto LAB_00076640;\n    }\n    local_234 = 0x190a;\n    if (puVar17 == puVar25) break;\n    uVar18 = *puVar17;\n    puVar17 = puVar17 + 1;\n  }\n  goto LAB_0007658c;\n  while ((param_4 & 3) != piVar12[1]) {\nLAB_00077354:\n    piVar15 = piVar12;\n    piVar12 = (int *)piVar15[2];\n    if (piVar12 == (int *)0x0) goto LAB_00077360;\n  }\n  piVar15 = piVar15 + 2;\nLAB_000776f8:\n  iVar24 = piVar30[4];\n  pcVar28 = *(code **)(pcVar27 + 0x7e748);\n  *piVar15 = piVar12[2];\n  (*pcVar28)(iVar24);\n  (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\n  iVar6 = *piVar12;\n  param_3[7] = (int)piVar12;\n  goto LAB_00076e20;\nLAB_00077360:\n  (**(code **)(pcVar27 + 0x7e748))(piVar30[4]);\n  (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\n  goto LAB_00077524;\n  while( true ) {\n    puVar17 = (uint *)((int)puVar17 + -1);\n    puVar14 = (undefined4 *)0x0;\n    if (puVar17 == (uint *)0x0) goto LAB_0007669c;\n    iVar4 = (**(code **)(puVar26 + 0x516c))(param_2);\n    local_234 = 0;\n    if (iVar4 != 0) break;\nLAB_00076640:\n    (*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);\n    *(char *)puVar25 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar14 = param_2;\n    param_3 = piVar29;\n    param_4 = uVar18;\n    (*(code *)PTR_sqlite3_snprintf_000f548c)(param_1);\n    if (*(char *)puVar25 != '\0') {\nLAB_0007669c:\n      local_234 = 1;\n      break;\n    }\n  }\nLAB_0007658c:\n  if (local_2c == *(int *)puVar3) {\n    return local_234;\n  }\n  uVar32 = 0x766b0;\n  puVar26 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  local_208 = puVar26 + 0x86bf0;\n  piVar30 = *(int **)(puVar26 + 0x7eeb8);\n  iVar4 = *piVar30;\n  local_134 = iVar4;\n  local_130 = puVar17;\n  local_12c = uVar18;\n  local_128 = puVar20;\n  local_124 = param_2;\n  local_120 = param_1;\n  local_11c = puVar19;\n  local_118 = puVar25;\n  local_114 = local_234;\n  local_110 = piVar29;\n  local_10c = uVar32;\n  if (puVar14 < &DAT_00000015) {\n                    /* WARNING: Could not recover jumptable at 0x00076718. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar4 = (*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))();\n    return iVar4;\n  }\n  if (iVar4 == *piVar30) {\n    return 0xc;\n  }\n  pcVar27 = *(code **)(puVar26 + 0x7ee90);\n  uVar32 = 0x76d28;\n  (*pcVar27)();\n  piVar29 = *(int **)(pcVar27 + 0x7e840);\n  local_254 = *piVar29;\n  uVar22 = param_4 & 0xfff00;\n  local_728 = param_4 & 1;\n  uVar5 = param_4 & 2;\n  uVar21 = param_4 & 8;\n  puVar16 = puVar14;\n  local_250 = puVar17;\n  local_24c = uVar18;\n  local_248 = puVar20;\n  local_244 = param_2;\n  local_240 = param_1;\n  local_23c = puVar19;\n  local_238 = puVar25;\n  local_230 = piVar30;\n  local_22c = uVar32;\n  if ((param_4 & 4) == 0) {\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    bVar1 = false;\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (iVar6 != *(int *)(iVar24 + 0x5a1c)) goto LAB_00076ff4;\nLAB_00076df0:\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    if (uVar22 == 0x100) {\n      iVar6 = *(int *)(pcVar27 + 0x7e594);\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));\n      if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }\n      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\nLAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);\n      if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }\n      iVar24 = 7;\n    }\n    else {\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }\n  }\n  else {\n    if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (*(int *)(iVar24 + 0x5a1c) != iVar6) {\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    bVar1 = true;\n    if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;\nLAB_00076e18:\n    iVar6 = -1;\nLAB_00076e20:\n    uVar18 = uVar5;\n    if ((param_4 & 4) != 0) {\n      uVar18 = uVar5 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }\n    else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }\n  }\nLAB_00076f98:\n  if (local_254 == *piVar29) {\n    return iVar24;\n  }\n  pcVar27 = *(code **)(pcVar27 + 0x7e818);\n  iVar4 = local_254;\n  (*pcVar27)();\n  uVar5 = *(uint *)(iVar4 + 0x4c);\n  uVar21 = *(uint *)(iVar4 + 0x94);\n  iVar6 = *(int *)(iVar4 + 0x48);\n  uVar18 = *(uint *)(iVar4 + 0x98);\n  if (uVar21 <= *(uint *)(iVar4 + 0x98)) {\n    uVar18 = uVar21;\n  }\n  puVar19 = *(undefined4 **)(iVar4 + 0xd0);\n  if (0 < *(int *)(iVar4 + 0x60)) {\n    iVar24 = *(int *)(iVar4 + 0x5c);\n    iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24;\n    do {\n      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }\n      iVar24 = iVar24 + 0x30;\n    } while (iVar24 != iVar7);\n  }\n  if (iVar6 != 0 || uVar5 != 0) {\n    lVar33 = (**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21);\n    lVar2 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar5 = (uint)lVar2;\n    iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20);\n  }\n  *(uint *)(iVar4 + 0x4c) = uVar5;\n  *(int *)(iVar4 + 0x48) = iVar6;\n  *(uint *)(iVar4 + 0x54) = uVar5;\n  *(int *)(iVar4 + 0x50) = iVar6;\n  if (*(char *)(iVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n    if (*(char *)(iVar4 + 5) != '\x04') {\n      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));\n      if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }\n      goto LAB_00077ad0;\n    }\n  }\n  else {\nLAB_00077ad0:\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n  }\n  uVar32 = *(undefined4 *)(iVar6 + 0x229c);\n  *puVar19 = *(undefined4 *)(iVar6 + 0x2298);\n  puVar19[1] = uVar32;\n  *(undefined1 *)(puVar19 + 2) = 0xff;\n  *(undefined1 *)((int)puVar19 + 9) = 0xff;\n  *(undefined1 *)((int)puVar19 + 10) = 0xff;\n  *(undefined1 *)((int)puVar19 + 0xb) = 0xff;\nLAB_00077b04:\n  uVar5 = 0;\n  (**(code **)(pcVar27 + 0x7dad8))(4,iVar4 + 0x30);\n  uVar32 = *(undefined4 *)(iVar4 + 0x30);\n  *(char *)((int)puVar19 + 0xf) = (char)uVar32;\n  *(char *)(puVar19 + 3) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0xd) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0xe) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x1c);\n  pcVar27 = *(code **)(pcVar27 + 0x7daa8);\n  *(char *)((int)puVar19 + 0x13) = (char)uVar32;\n  *(char *)(puVar19 + 4) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x11) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x12) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x94);\n  *(char *)((int)puVar19 + 0x17) = (char)uVar32;\n  *(char *)(puVar19 + 5) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x15) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x16) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x98);\n  *(char *)((int)puVar19 + 0x1b) = (char)uVar32;\n  *(char *)(puVar19 + 6) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x19) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x1a) = (char)((uint)uVar32 >> 8);\n  (*pcVar27)(puVar19 + 7,0,uVar18 - 0x1c);\n  do {\n    if (*(uint *)(iVar4 + 0x94) <= uVar5) {\n      return 0;\n    }\n    iVar6 = **(int **)(iVar4 + 0x40);\n    uVar5 = uVar5 + uVar18;\n    iVar6 = (**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c));\n    uVar21 = *(uint *)(iVar4 + 0x4c);\n    uVar22 = uVar21 + uVar18;\n    *(uint *)(iVar4 + 0x4c) = uVar22;\n    *(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48);\n  } while (iVar6 == 0);\n  return iVar6;\n}" primitive_type (function_declarator "FUN_000764a4(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  bool bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  int in_zero;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  char cVar11;\n  int iVar9;\n  int iVar10;\n  int *piVar12;\n  char *pcVar13;\n  undefined4 *puVar14;\n  int *piVar15;\n  undefined4 *puVar16;\n  uint *puVar17;\n  uint uVar18;\n  undefined4 *puVar19;\n  undefined *puVar20;\n  uint uVar21;\n  uint uVar22;\n  int iVar23;\n  int iVar24;\n  uint *puVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  code *pcVar28;\n  int *piVar29;\n  int *piVar30;\n  uint uVar31;\n  undefined4 uVar32;\n  longlong lVar33;\n  undefined4 local_730;\n  uint local_728;\n  undefined4 local_720;\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  int 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  int 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  puVar3 = PTR___stack_chk_guard_000f5568;\n  puVar26 = PTR_sqlite3_temp_directory_000f5438;\n  puVar20 = PTR_DAT_000f52bc;\n  local_2c = *(int *)PTR___stack_chk_guard_000f5568;\n  *(undefined1 *)param_2 = 0;\n  uVar18 = *(uint *)puVar26;\n  if (*(int *)(puVar20 + 0x4fd8) == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0);\n    *(undefined4 *)(puVar20 + 0x4fd8) = uVar32;\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }\n  else {\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }\n  if (iVar4 == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0);\n    *(undefined4 *)(puVar20 + 0x4fdc) = uVar32;\n  }\n  puVar26 = PTR_DAT_000f52bc;\n  puVar17 = (uint *)(puVar20 + 0x4fd8);\n  puVar25 = (uint *)(puVar20 + 0x4ff0);\n  puVar19 = auStack_d0;\n  piVar29 = (int *)0x4000;\n  puVar20 = PTR_DAT_000f52bc + 0x5150;\n  while( true ) {\n    puVar14 = puVar19;\n    if ((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)) {\n      puVar17 = (uint *)0xc;\n      puVar25 = (uint *)((int)param_2 + param_1 + -2);\n      puVar19 = &local_d8;\n      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);\n      goto LAB_00076640;\n    }\n    local_234 = 0x190a;\n    if (puVar17 == puVar25) break;\n    uVar18 = *puVar17;\n    puVar17 = puVar17 + 1;\n  }\n  goto LAB_0007658c;\n  while ((param_4 & 3) != piVar12[1]) {\nLAB_00077354:\n    piVar15 = piVar12;\n    piVar12 = (int *)piVar15[2];\n    if (piVar12 == (int *)0x0) goto LAB_00077360;\n  }\n  piVar15 = piVar15 + 2;\nLAB_000776f8:\n  iVar24 = piVar30[4];\n  pcVar28 = *(code **)(pcVar27 + 0x7e748);\n  *piVar15 = piVar12[2];\n  (*pcVar28)(iVar24);\n  (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\n  iVar6 = *piVar12;\n  param_3[7] = (int)piVar12;\n  goto LAB_00076e20;\nLAB_00077360:\n  (**(code **)(pcVar27 + 0x7e748))(piVar30[4]);\n  (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\n  goto LAB_00077524;\n  while( true ) {\n    puVar17 = (uint *)((int)puVar17 + -1);\n    puVar14 = (undefined4 *)0x0;\n    if (puVar17 == (uint *)0x0) goto LAB_0007669c;\n    iVar4 = (**(code **)(puVar26 + 0x516c))(param_2);\n    local_234 = 0;\n    if (iVar4 != 0) break;\nLAB_00076640:\n    (*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);\n    *(char *)puVar25 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar14 = param_2;\n    param_3 = piVar29;\n    param_4 = uVar18;\n    (*(code *)PTR_sqlite3_snprintf_000f548c)(param_1);\n    if (*(char *)puVar25 != '\0') {\nLAB_0007669c:\n      local_234 = 1;\n      break;\n    }\n  }\nLAB_0007658c:\n  if (local_2c == *(int *)puVar3) {\n    return local_234;\n  }\n  uVar32 = 0x766b0;\n  puVar26 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  local_208 = puVar26 + 0x86bf0;\n  piVar30 = *(int **)(puVar26 + 0x7eeb8);\n  iVar4 = *piVar30;\n  local_134 = iVar4;\n  local_130 = puVar17;\n  local_12c = uVar18;\n  local_128 = puVar20;\n  local_124 = param_2;\n  local_120 = param_1;\n  local_11c = puVar19;\n  local_118 = puVar25;\n  local_114 = local_234;\n  local_110 = piVar29;\n  local_10c = uVar32;\n  if (puVar14 < &DAT_00000015) {\n                    /* WARNING: Could not recover jumptable at 0x00076718. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar4 = (*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))();\n    return iVar4;\n  }\n  if (iVar4 == *piVar30) {\n    return 0xc;\n  }\n  pcVar27 = *(code **)(puVar26 + 0x7ee90);\n  uVar32 = 0x76d28;\n  (*pcVar27)();\n  piVar29 = *(int **)(pcVar27 + 0x7e840);\n  local_254 = *piVar29;\n  uVar22 = param_4 & 0xfff00;\n  local_728 = param_4 & 1;\n  uVar5 = param_4 & 2;\n  uVar21 = param_4 & 8;\n  puVar16 = puVar14;\n  local_250 = puVar17;\n  local_24c = uVar18;\n  local_248 = puVar20;\n  local_244 = param_2;\n  local_240 = param_1;\n  local_23c = puVar19;\n  local_238 = puVar25;\n  local_230 = piVar30;\n  local_22c = uVar32;\n  if ((param_4 & 4) == 0) {\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    bVar1 = false;\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (iVar6 != *(int *)(iVar24 + 0x5a1c)) goto LAB_00076ff4;\nLAB_00076df0:\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    if (uVar22 == 0x100) {\n      iVar6 = *(int *)(pcVar27 + 0x7e594);\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));\n      if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }\n      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\nLAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);\n      if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }\n      iVar24 = 7;\n    }\n    else {\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }\n  }\n  else {\n    if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (*(int *)(iVar24 + 0x5a1c) != iVar6) {\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    bVar1 = true;\n    if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;\nLAB_00076e18:\n    iVar6 = -1;\nLAB_00076e20:\n    uVar18 = uVar5;\n    if ((param_4 & 4) != 0) {\n      uVar18 = uVar5 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }\n    else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }\n  }\nLAB_00076f98:\n  if (local_254 == *piVar29) {\n    return iVar24;\n  }\n  pcVar27 = *(code **)(pcVar27 + 0x7e818);\n  iVar4 = local_254;\n  (*pcVar27)();\n  uVar5 = *(uint *)(iVar4 + 0x4c);\n  uVar21 = *(uint *)(iVar4 + 0x94);\n  iVar6 = *(int *)(iVar4 + 0x48);\n  uVar18 = *(uint *)(iVar4 + 0x98);\n  if (uVar21 <= *(uint *)(iVar4 + 0x98)) {\n    uVar18 = uVar21;\n  }\n  puVar19 = *(undefined4 **)(iVar4 + 0xd0);\n  if (0 < *(int *)(iVar4 + 0x60)) {\n    iVar24 = *(int *)(iVar4 + 0x5c);\n    iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24;\n    do {\n      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }\n      iVar24 = iVar24 + 0x30;\n    } while (iVar24 != iVar7);\n  }\n  if (iVar6 != 0 || uVar5 != 0) {\n    lVar33 = (**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21);\n    lVar2 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar5 = (uint)lVar2;\n    iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20);\n  }\n  *(uint *)(iVar4 + 0x4c) = uVar5;\n  *(int *)(iVar4 + 0x48) = iVar6;\n  *(uint *)(iVar4 + 0x54) = uVar5;\n  *(int *)(iVar4 + 0x50) = iVar6;\n  if (*(char *)(iVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n    if (*(char *)(iVar4 + 5) != '\x04') {\n      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));\n      if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }\n      goto LAB_00077ad0;\n    }\n  }\n  else {\nLAB_00077ad0:\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n  }\n  uVar32 = *(undefined4 *)(iVar6 + 0x229c);\n  *puVar19 = *(undefined4 *)(iVar6 + 0x2298);\n  puVar19[1] = uVar32;\n  *(undefined1 *)(puVar19 + 2) = 0xff;\n  *(undefined1 *)((int)puVar19 + 9) = 0xff;\n  *(undefined1 *)((int)puVar19 + 10) = 0xff;\n  *(undefined1 *)((int)puVar19 + 0xb) = 0xff;\nLAB_00077b04:\n  uVar5 = 0;\n  (**(code **)(pcVar27 + 0x7dad8))(4,iVar4 + 0x30);\n  uVar32 = *(undefined4 *)(iVar4 + 0x30);\n  *(char *)((int)puVar19 + 0xf) = (char)uVar32;\n  *(char *)(puVar19 + 3) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0xd) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0xe) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x1c);\n  pcVar27 = *(code **)(pcVar27 + 0x7daa8);\n  *(char *)((int)puVar19 + 0x13) = (char)uVar32;\n  *(char *)(puVar19 + 4) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x11) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x12) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x94);\n  *(char *)((int)puVar19 + 0x17) = (char)uVar32;\n  *(char *)(puVar19 + 5) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x15) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x16) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x98);\n  *(char *)((int)puVar19 + 0x1b) = (char)uVar32;\n  *(char *)(puVar19 + 6) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x19) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x1a) = (char)((uint)uVar32 >> 8);\n  (*pcVar27)(puVar19 + 7,0,uVar18 - 0x1c);\n  do {\n    if (*(uint *)(iVar4 + 0x94) <= uVar5) {\n      return 0;\n    }\n    iVar6 = **(int **)(iVar4 + 0x40);\n    uVar5 = uVar5 + uVar18;\n    iVar6 = (**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c));\n    uVar21 = *(uint *)(iVar4 + 0x4c);\n    uVar22 = uVar21 + uVar18;\n    *(uint *)(iVar4 + 0x4c) = uVar22;\n    *(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48);\n  } while (iVar6 == 0);\n  return iVar6;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int in_zero;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "uint *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "int *piVar29;" primitive_type (pointer_declarator "*piVar29" * identifier) ;) (declaration "int *piVar30;" primitive_type (pointer_declarator "*piVar30" * identifier) ;) (declaration "uint uVar31;" type_identifier identifier ;) (declaration "undefined4 uVar32;" type_identifier identifier ;) (declaration "longlong lVar33;" type_identifier identifier ;) (declaration "undefined4 local_730;" type_identifier identifier ;) (declaration "uint local_728;" type_identifier identifier ;) (declaration "undefined4 local_720;" type_identifier 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 "int local_234;" primitive_type 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 "int local_114;" primitive_type 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 "puVar3 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar3 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "puVar26 = PTR_sqlite3_temp_directory_000f5438;" (assignment_expression "puVar26 = PTR_sqlite3_temp_directory_000f5438" identifier = identifier) ;) (expression_statement "puVar20 = PTR_DAT_000f52bc;" (assignment_expression "puVar20 = PTR_DAT_000f52bc" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000f5568" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000f5568" * (cast_expression "(int *)PTR___stack_chk_guard_000f5568" ( (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 "uVar18 = *(uint *)puVar26;" (assignment_expression "uVar18 = *(uint *)puVar26" identifier = (pointer_expression "*(uint *)puVar26" * (cast_expression "(uint *)puVar26" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)(puVar20 + 0x4fd8) == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0);\n    *(undefined4 *)(puVar20 + 0x4fd8) = uVar32;\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }\n  else {\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }" if (parenthesized_expression "(*(int *)(puVar20 + 0x4fd8) == 0)" ( (binary_expression "*(int *)(puVar20 + 0x4fd8) == 0" (pointer_expression "*(int *)(puVar20 + 0x4fd8)" * (cast_expression "(int *)(puVar20 + 0x4fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x4fd8)" ( (binary_expression "puVar20 + 0x4fd8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0);\n    *(undefined4 *)(puVar20 + 0x4fd8) = uVar32;\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }" { (expression_statement "uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0);" (assignment_expression "uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0)" identifier = (call_expression "(*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0)" (parenthesized_expression "(*(code *)PTR_getenv_000f54d0)" ( (pointer_expression "*(code *)PTR_getenv_000f54d0" * (cast_expression "(code *)PTR_getenv_000f54d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_000f52d4 + -0x76b0)" ( (binary_expression "PTR_DAT_000f52d4 + -0x76b0" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar20 + 0x4fd8) = uVar32;" (assignment_expression "*(undefined4 *)(puVar20 + 0x4fd8) = uVar32" (pointer_expression "*(undefined4 *)(puVar20 + 0x4fd8)" * (cast_expression "(undefined4 *)(puVar20 + 0x4fd8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x4fd8)" ( (binary_expression "puVar20 + 0x4fd8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar4 = *(int *)(puVar20 + 0x4fdc);" (assignment_expression "iVar4 = *(int *)(puVar20 + 0x4fdc)" identifier = (pointer_expression "*(int *)(puVar20 + 0x4fdc)" * (cast_expression "(int *)(puVar20 + 0x4fdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x4fdc)" ( (binary_expression "puVar20 + 0x4fdc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }" else (compound_statement "{\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }" { (expression_statement "iVar4 = *(int *)(puVar20 + 0x4fdc);" (assignment_expression "iVar4 = *(int *)(puVar20 + 0x4fdc)" identifier = (pointer_expression "*(int *)(puVar20 + 0x4fdc)" * (cast_expression "(int *)(puVar20 + 0x4fdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x4fdc)" ( (binary_expression "puVar20 + 0x4fdc" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar4 == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0);\n    *(undefined4 *)(puVar20 + 0x4fdc) = uVar32;\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0);\n    *(undefined4 *)(puVar20 + 0x4fdc) = uVar32;\n  }" { (expression_statement "uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0);" (assignment_expression "uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0)" identifier = (call_expression "(*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0)" (parenthesized_expression "(*(code *)PTR_getenv_000f54d0)" ( (pointer_expression "*(code *)PTR_getenv_000f54d0" * (cast_expression "(code *)PTR_getenv_000f54d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_000f52d4 + -0x76a0)" ( (binary_expression "PTR_DAT_000f52d4 + -0x76a0" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar20 + 0x4fdc) = uVar32;" (assignment_expression "*(undefined4 *)(puVar20 + 0x4fdc) = uVar32" (pointer_expression "*(undefined4 *)(puVar20 + 0x4fdc)" * (cast_expression "(undefined4 *)(puVar20 + 0x4fdc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x4fdc)" ( (binary_expression "puVar20 + 0x4fdc" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "puVar26 = PTR_DAT_000f52bc;" (assignment_expression "puVar26 = PTR_DAT_000f52bc" identifier = identifier) ;) (expression_statement "puVar17 = (uint *)(puVar20 + 0x4fd8);" (assignment_expression "puVar17 = (uint *)(puVar20 + 0x4fd8)" identifier = (cast_expression "(uint *)(puVar20 + 0x4fd8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x4fd8)" ( (binary_expression "puVar20 + 0x4fd8" identifier + number_literal) )))) ;) (expression_statement "puVar25 = (uint *)(puVar20 + 0x4ff0);" (assignment_expression "puVar25 = (uint *)(puVar20 + 0x4ff0)" identifier = (cast_expression "(uint *)(puVar20 + 0x4ff0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x4ff0)" ( (binary_expression "puVar20 + 0x4ff0" identifier + number_literal) )))) ;) (expression_statement "puVar19 = auStack_d0;" (assignment_expression "puVar19 = auStack_d0" identifier = identifier) ;) (expression_statement "piVar29 = (int *)0x4000;" (assignment_expression "piVar29 = (int *)0x4000" identifier = (cast_expression "(int *)0x4000" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar20 = PTR_DAT_000f52bc + 0x5150;" (assignment_expression "puVar20 = PTR_DAT_000f52bc + 0x5150" identifier = (binary_expression "PTR_DAT_000f52bc + 0x5150" identifier + number_literal)) ;) (while_statement "while( true ) {\n    puVar14 = puVar19;\n    if ((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)) {\n      puVar17 = (uint *)0xc;\n      puVar25 = (uint *)((int)param_2 + param_1 + -2);\n      puVar19 = &local_d8;\n      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);\n      goto LAB_00076640;\n    }\n    local_234 = 0x190a;\n    if (puVar17 == puVar25) break;\n    uVar18 = *puVar17;\n    puVar17 = puVar17 + 1;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    puVar14 = puVar19;\n    if ((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)) {\n      puVar17 = (uint *)0xc;\n      puVar25 = (uint *)((int)param_2 + param_1 + -2);\n      puVar19 = &local_d8;\n      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);\n      goto LAB_00076640;\n    }\n    local_234 = 0x190a;\n    if (puVar17 == puVar25) break;\n    uVar18 = *puVar17;\n    puVar17 = puVar17 + 1;\n  }" { (expression_statement "puVar14 = puVar19;" (assignment_expression "puVar14 = puVar19" identifier = identifier) ;) (if_statement "if ((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)) {\n      puVar17 = (uint *)0xc;\n      puVar25 = (uint *)((int)param_2 + param_1 + -2);\n      puVar19 = &local_d8;\n      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);\n      goto LAB_00076640;\n    }" if (parenthesized_expression "((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0))" ( (binary_expression "(((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)" (parenthesized_expression "(((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000))" ( (binary_expression "((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)" (parenthesized_expression "((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0))" ( (binary_expression "(uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)" (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)" ( (comma_expression "iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18)" identifier = (call_expression "(**(code **)(puVar26 + 0x5184))(uVar18)" (parenthesized_expression "(**(code **)(puVar26 + 0x5184))" ( (pointer_expression "**(code **)(puVar26 + 0x5184)" * (pointer_expression "*(code **)(puVar26 + 0x5184)" * (cast_expression "(code **)(puVar26 + 0x5184)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x5184)" ( (binary_expression "puVar26 + 0x5184" identifier + number_literal) ))))) )) (argument_list "(uVar18)" ( identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)" ( (comma_expression "puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000" (assignment_expression "puVar14 = (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 "(iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)" ( (comma_expression "iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18)" identifier = (call_expression "(**(code **)(puVar26 + 0x516c))(uVar18)" (parenthesized_expression "(**(code **)(puVar26 + 0x516c))" ( (pointer_expression "**(code **)(puVar26 + 0x516c)" * (pointer_expression "*(code **)(puVar26 + 0x516c)" * (cast_expression "(code **)(puVar26 + 0x516c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x516c)" ( (binary_expression "puVar26 + 0x516c" identifier + number_literal) ))))) )) (argument_list "(uVar18)" ( identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      puVar17 = (uint *)0xc;\n      puVar25 = (uint *)((int)param_2 + param_1 + -2);\n      puVar19 = &local_d8;\n      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);\n      goto LAB_00076640;\n    }" { (expression_statement "puVar17 = (uint *)0xc;" (assignment_expression "puVar17 = (uint *)0xc" identifier = (cast_expression "(uint *)0xc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar25 = (uint *)((int)param_2 + param_1 + -2);" (assignment_expression "puVar25 = (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 "puVar19 = &local_d8;" (assignment_expression "puVar19 = &local_d8" identifier = (pointer_expression "&local_d8" & identifier)) ;) (expression_statement "piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);" (assignment_expression "piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698)" identifier = (cast_expression "(int *)(PTR_DAT_000f52d4 + -0x7698)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52d4 + -0x7698)" ( (binary_expression "PTR_DAT_000f52d4 + -0x7698" identifier + number_literal) )))) ;) (goto_statement "goto LAB_00076640;" goto statement_identifier ;) })) (expression_statement "local_234 = 0x190a;" (assignment_expression "local_234 = 0x190a" identifier = number_literal) ;) (if_statement "if (puVar17 == puVar25) break;" if (parenthesized_expression "(puVar17 == puVar25)" ( (binary_expression "puVar17 == puVar25" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar18 = *puVar17;" (assignment_expression "uVar18 = *puVar17" identifier = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar17 = puVar17 + 1;" (assignment_expression "puVar17 = puVar17 + 1" identifier = (binary_expression "puVar17 + 1" identifier + number_literal)) ;) })) (goto_statement "goto LAB_0007658c;" goto statement_identifier ;) (while_statement "while ((param_4 & 3) != piVar12[1]) {\nLAB_00077354:\n    piVar15 = piVar12;\n    piVar12 = (int *)piVar15[2];\n    if (piVar12 == (int *)0x0) goto LAB_00077360;\n  }" while (parenthesized_expression "((param_4 & 3) != piVar12[1])" ( (binary_expression "(param_4 & 3) != piVar12[1]" (parenthesized_expression "(param_4 & 3)" ( (binary_expression "param_4 & 3" identifier & number_literal) )) != (subscript_expression "piVar12[1]" identifier [ number_literal ])) )) (compound_statement "{\nLAB_00077354:\n    piVar15 = piVar12;\n    piVar12 = (int *)piVar15[2];\n    if (piVar12 == (int *)0x0) goto LAB_00077360;\n  }" { (labeled_statement "LAB_00077354:\n    piVar15 = piVar12;" statement_identifier : (expression_statement "piVar15 = piVar12;" (assignment_expression "piVar15 = piVar12" identifier = identifier) ;)) (expression_statement "piVar12 = (int *)piVar15[2];" (assignment_expression "piVar12 = (int *)piVar15[2]" identifier = (cast_expression "(int *)piVar15[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar15[2]" identifier [ number_literal ]))) ;) (if_statement "if (piVar12 == (int *)0x0) goto LAB_00077360;" if (parenthesized_expression "(piVar12 == (int *)0x0)" ( (binary_expression "piVar12 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00077360;" goto statement_identifier ;)) })) (expression_statement "piVar15 = piVar15 + 2;" (assignment_expression "piVar15 = piVar15 + 2" identifier = (binary_expression "piVar15 + 2" identifier + number_literal)) ;) (labeled_statement "LAB_000776f8:\n  iVar24 = piVar30[4];" statement_identifier : (expression_statement "iVar24 = piVar30[4];" (assignment_expression "iVar24 = piVar30[4]" identifier = (subscript_expression "piVar30[4]" identifier [ number_literal ])) ;)) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e748);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e748)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7e748)" * (cast_expression "(code **)(pcVar27 + 0x7e748)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e748)" ( (binary_expression "pcVar27 + 0x7e748" identifier + number_literal) ))))) ;) (expression_statement "*piVar15 = piVar12[2];" (assignment_expression "*piVar15 = piVar12[2]" (pointer_expression "*piVar15" * identifier) = (subscript_expression "piVar12[2]" identifier [ number_literal ])) ;) (expression_statement "(*pcVar28)(iVar24);" (call_expression "(*pcVar28)(iVar24)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(iVar24)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e748))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e748)" * (pointer_expression "*(code **)(pcVar27 + 0x7e748)" * (cast_expression "(code **)(pcVar27 + 0x7e748)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e748)" ( (binary_expression "pcVar27 + 0x7e748" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x5a18))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x5a18)" * (cast_expression "(undefined4 *)(iVar6 + 0x5a18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x5a18)" ( (binary_expression "iVar6 + 0x5a18" identifier + number_literal) )))) ))) ;) (expression_statement "iVar6 = *piVar12;" (assignment_expression "iVar6 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "param_3[7] = (int)piVar12;" (assignment_expression "param_3[7] = (int)piVar12" (subscript_expression "param_3[7]" identifier [ number_literal ]) = (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_00076e20;" goto statement_identifier ;) (labeled_statement "LAB_00077360:\n  (**(code **)(pcVar27 + 0x7e748))(piVar30[4]);" statement_identifier : (expression_statement "(**(code **)(pcVar27 + 0x7e748))(piVar30[4]);" (call_expression "(**(code **)(pcVar27 + 0x7e748))(piVar30[4])" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e748))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e748)" * (pointer_expression "*(code **)(pcVar27 + 0x7e748)" * (cast_expression "(code **)(pcVar27 + 0x7e748)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e748)" ( (binary_expression "pcVar27 + 0x7e748" identifier + number_literal) ))))) )) (argument_list "(piVar30[4])" ( (subscript_expression "piVar30[4]" identifier [ number_literal ]) ))) ;)) (expression_statement "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e748))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e748)" * (pointer_expression "*(code **)(pcVar27 + 0x7e748)" * (cast_expression "(code **)(pcVar27 + 0x7e748)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e748)" ( (binary_expression "pcVar27 + 0x7e748" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x5a18))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x5a18)" * (cast_expression "(undefined4 *)(iVar6 + 0x5a18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x5a18)" ( (binary_expression "iVar6 + 0x5a18" identifier + number_literal) )))) ))) ;) (goto_statement "goto LAB_00077524;" goto statement_identifier ;) (while_statement "while( true ) {\n    puVar17 = (uint *)((int)puVar17 + -1);\n    puVar14 = (undefined4 *)0x0;\n    if (puVar17 == (uint *)0x0) goto LAB_0007669c;\n    iVar4 = (**(code **)(puVar26 + 0x516c))(param_2);\n    local_234 = 0;\n    if (iVar4 != 0) break;\nLAB_00076640:\n    (*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);\n    *(char *)puVar25 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar14 = param_2;\n    param_3 = piVar29;\n    param_4 = uVar18;\n    (*(code *)PTR_sqlite3_snprintf_000f548c)(param_1);\n    if (*(char *)puVar25 != '\0') {\nLAB_0007669c:\n      local_234 = 1;\n      break;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    puVar17 = (uint *)((int)puVar17 + -1);\n    puVar14 = (undefined4 *)0x0;\n    if (puVar17 == (uint *)0x0) goto LAB_0007669c;\n    iVar4 = (**(code **)(puVar26 + 0x516c))(param_2);\n    local_234 = 0;\n    if (iVar4 != 0) break;\nLAB_00076640:\n    (*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);\n    *(char *)puVar25 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar14 = param_2;\n    param_3 = piVar29;\n    param_4 = uVar18;\n    (*(code *)PTR_sqlite3_snprintf_000f548c)(param_1);\n    if (*(char *)puVar25 != '\0') {\nLAB_0007669c:\n      local_234 = 1;\n      break;\n    }\n  }" { (expression_statement "puVar17 = (uint *)((int)puVar17 + -1);" (assignment_expression "puVar17 = (uint *)((int)puVar17 + -1)" identifier = (cast_expression "(uint *)((int)puVar17 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + -1)" ( (binary_expression "(int)puVar17 + -1" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar14 = (undefined4 *)0x0;" (assignment_expression "puVar14 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (puVar17 == (uint *)0x0) goto LAB_0007669c;" if (parenthesized_expression "(puVar17 == (uint *)0x0)" ( (binary_expression "puVar17 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007669c;" goto statement_identifier ;)) (expression_statement "iVar4 = (**(code **)(puVar26 + 0x516c))(param_2);" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x516c))(param_2)" identifier = (call_expression "(**(code **)(puVar26 + 0x516c))(param_2)" (parenthesized_expression "(**(code **)(puVar26 + 0x516c))" ( (pointer_expression "**(code **)(puVar26 + 0x516c)" * (pointer_expression "*(code **)(puVar26 + 0x516c)" * (cast_expression "(code **)(puVar26 + 0x516c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x516c)" ( (binary_expression "puVar26 + 0x516c" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "local_234 = 0;" (assignment_expression "local_234 = 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_00076640:\n    (*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);" statement_identifier : (expression_statement "(*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);" (call_expression "(*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19)" (parenthesized_expression "(*(code *)PTR_sqlite3_randomness_000f5480)" ( (pointer_expression "*(code *)PTR_sqlite3_randomness_000f5480" * (cast_expression "(code *)PTR_sqlite3_randomness_000f5480" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8,puVar19)" ( number_literal , identifier ))) ;)) (expression_statement "*(char *)puVar25 = '\0';" (assignment_expression "*(char *)puVar25 = '\0'" (pointer_expression "*(char *)puVar25" * (cast_expression "(char *)puVar25" ( (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 "puVar14 = param_2;" (assignment_expression "puVar14 = param_2" identifier = identifier) ;) (expression_statement "param_3 = piVar29;" (assignment_expression "param_3 = piVar29" identifier = identifier) ;) (expression_statement "param_4 = uVar18;" (assignment_expression "param_4 = uVar18" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sqlite3_snprintf_000f548c)(param_1);" (call_expression "(*(code *)PTR_sqlite3_snprintf_000f548c)(param_1)" (parenthesized_expression "(*(code *)PTR_sqlite3_snprintf_000f548c)" ( (pointer_expression "*(code *)PTR_sqlite3_snprintf_000f548c" * (cast_expression "(code *)PTR_sqlite3_snprintf_000f548c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (if_statement "if (*(char *)puVar25 != '\0') {\nLAB_0007669c:\n      local_234 = 1;\n      break;\n    }" if (parenthesized_expression "(*(char *)puVar25 != '\0')" ( (binary_expression "*(char *)puVar25 != '\0'" (pointer_expression "*(char *)puVar25" * (cast_expression "(char *)puVar25" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0007669c:\n      local_234 = 1;\n      break;\n    }" { (labeled_statement "LAB_0007669c:\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_0007658c:\n  if (local_2c == *(int *)puVar3) {\n    return local_234;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar3) {\n    return local_234;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar3)" ( (binary_expression "local_2c == *(int *)puVar3" identifier == (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (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 = 0x766b0;" (assignment_expression "uVar32 = 0x766b0" identifier = number_literal) ;) (expression_statement "puVar26 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar26 = PTR___stack_chk_fail_000f5540" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" * (cast_expression "(code *)PTR___stack_chk_fail_000f5540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_208 = puVar26 + 0x86bf0;" (assignment_expression "local_208 = puVar26 + 0x86bf0" identifier = (binary_expression "puVar26 + 0x86bf0" identifier + number_literal)) ;) (expression_statement "piVar30 = *(int **)(puVar26 + 0x7eeb8);" (assignment_expression "piVar30 = *(int **)(puVar26 + 0x7eeb8)" identifier = (pointer_expression "*(int **)(puVar26 + 0x7eeb8)" * (cast_expression "(int **)(puVar26 + 0x7eeb8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x7eeb8)" ( (binary_expression "puVar26 + 0x7eeb8" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *piVar30;" (assignment_expression "iVar4 = *piVar30" identifier = (pointer_expression "*piVar30" * identifier)) ;) (expression_statement "local_134 = iVar4;" (assignment_expression "local_134 = iVar4" identifier = identifier) ;) (expression_statement "local_130 = puVar17;" (assignment_expression "local_130 = puVar17" identifier = identifier) ;) (expression_statement "local_12c = uVar18;" (assignment_expression "local_12c = uVar18" identifier = identifier) ;) (expression_statement "local_128 = puVar20;" (assignment_expression "local_128 = puVar20" 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 = puVar19;" (assignment_expression "local_11c = puVar19" identifier = identifier) ;) (expression_statement "local_118 = puVar25;" (assignment_expression "local_118 = puVar25" identifier = identifier) ;) (expression_statement "local_114 = local_234;" (assignment_expression "local_114 = local_234" identifier = identifier) ;) (expression_statement "local_110 = piVar29;" (assignment_expression "local_110 = piVar29" identifier = identifier) ;) (expression_statement "local_10c = uVar32;" (assignment_expression "local_10c = uVar32" identifier = identifier) ;) (if_statement "if (puVar14 < &DAT_00000015) {\n                    /* WARNING: Could not recover jumptable at 0x00076718. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar4 = (*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))();\n    return iVar4;\n  }" if (parenthesized_expression "(puVar14 < &DAT_00000015)" ( (binary_expression "puVar14 < &DAT_00000015" identifier < (pointer_expression "&DAT_00000015" & identifier)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00076718. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar4 = (*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))();\n    return iVar4;\n  }" { comment comment (expression_statement "iVar4 = (*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))();" (assignment_expression "iVar4 = (*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))()" identifier = (call_expression "(*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))()" (parenthesized_expression "(*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))" ( (pointer_expression "*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4))" * (cast_expression "(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4))" ( (binary_expression "local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)" * (cast_expression "(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)" ( (binary_expression "*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4" (binary_expression "*(int *)(puVar26 + 0x7ec24) + -0x2974" (pointer_expression "*(int *)(puVar26 + 0x7ec24)" * (cast_expression "(int *)(puVar26 + 0x7ec24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x7ec24)" ( (binary_expression "puVar26 + 0x7ec24" identifier + number_literal) )))) + number_literal) + (binary_expression "(int)puVar14 * 4" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar4;" return identifier ;) })) (if_statement "if (iVar4 == *piVar30) {\n    return 0xc;\n  }" if (parenthesized_expression "(iVar4 == *piVar30)" ( (binary_expression "iVar4 == *piVar30" identifier == (pointer_expression "*piVar30" * identifier)) )) (compound_statement "{\n    return 0xc;\n  }" { (return_statement "return 0xc;" return number_literal ;) })) (expression_statement "pcVar27 = *(code **)(puVar26 + 0x7ee90);" (assignment_expression "pcVar27 = *(code **)(puVar26 + 0x7ee90)" identifier = (pointer_expression "*(code **)(puVar26 + 0x7ee90)" * (cast_expression "(code **)(puVar26 + 0x7ee90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x7ee90)" ( (binary_expression "puVar26 + 0x7ee90" identifier + number_literal) ))))) ;) (expression_statement "uVar32 = 0x76d28;" (assignment_expression "uVar32 = 0x76d28" identifier = number_literal) ;) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar29 = *(int **)(pcVar27 + 0x7e840);" (assignment_expression "piVar29 = *(int **)(pcVar27 + 0x7e840)" identifier = (pointer_expression "*(int **)(pcVar27 + 0x7e840)" * (cast_expression "(int **)(pcVar27 + 0x7e840)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e840)" ( (binary_expression "pcVar27 + 0x7e840" identifier + number_literal) ))))) ;) (expression_statement "local_254 = *piVar29;" (assignment_expression "local_254 = *piVar29" identifier = (pointer_expression "*piVar29" * identifier)) ;) (expression_statement "uVar22 = param_4 & 0xfff00;" (assignment_expression "uVar22 = param_4 & 0xfff00" identifier = (binary_expression "param_4 & 0xfff00" identifier & number_literal)) ;) (expression_statement "local_728 = param_4 & 1;" (assignment_expression "local_728 = param_4 & 1" identifier = (binary_expression "param_4 & 1" identifier & number_literal)) ;) (expression_statement "uVar5 = param_4 & 2;" (assignment_expression "uVar5 = param_4 & 2" identifier = (binary_expression "param_4 & 2" identifier & number_literal)) ;) (expression_statement "uVar21 = param_4 & 8;" (assignment_expression "uVar21 = param_4 & 8" identifier = (binary_expression "param_4 & 8" identifier & number_literal)) ;) (expression_statement "puVar16 = puVar14;" (assignment_expression "puVar16 = puVar14" identifier = identifier) ;) (expression_statement "local_250 = puVar17;" (assignment_expression "local_250 = puVar17" identifier = identifier) ;) (expression_statement "local_24c = uVar18;" (assignment_expression "local_24c = uVar18" identifier = identifier) ;) (expression_statement "local_248 = puVar20;" (assignment_expression "local_248 = puVar20" 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 = puVar19;" (assignment_expression "local_23c = puVar19" identifier = identifier) ;) (expression_statement "local_238 = puVar25;" (assignment_expression "local_238 = puVar25" identifier = identifier) ;) (expression_statement "local_230 = piVar30;" (assignment_expression "local_230 = piVar30" identifier = identifier) ;) (expression_statement "local_22c = uVar32;" (assignment_expression "local_22c = uVar32" identifier = identifier) ;) (if_statement "if ((param_4 & 4) == 0) {\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    bVar1 = false;\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (iVar6 != *(int *)(iVar24 + 0x5a1c)) goto LAB_00076ff4;\nLAB_00076df0:\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    if (uVar22 == 0x100) {\n      iVar6 = *(int *)(pcVar27 + 0x7e594);\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));\n      if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }\n      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\nLAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);\n      if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }\n      iVar24 = 7;\n    }\n    else {\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }\n  }\n  else {\n    if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (*(int *)(iVar24 + 0x5a1c) != iVar6) {\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    bVar1 = true;\n    if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;\nLAB_00076e18:\n    iVar6 = -1;\nLAB_00076e20:\n    uVar18 = uVar5;\n    if ((param_4 & 4) != 0) {\n      uVar18 = uVar5 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }\n    else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }\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    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    bVar1 = false;\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (iVar6 != *(int *)(iVar24 + 0x5a1c)) goto LAB_00076ff4;\nLAB_00076df0:\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    if (uVar22 == 0x100) {\n      iVar6 = *(int *)(pcVar27 + 0x7e594);\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));\n      if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }\n      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\nLAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);\n      if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }\n      iVar24 = 7;\n    }\n    else {\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }\n  }" { (expression_statement "iVar24 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();" (assignment_expression "iVar6 = (**(code **)(pcVar27 + 0x7e7c0))()" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e7c0))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e7c0))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e7c0)" * (pointer_expression "*(code **)(pcVar27 + 0x7e7c0)" * (cast_expression "(code **)(pcVar27 + 0x7e7c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e7c0)" ( (binary_expression "pcVar27 + 0x7e7c0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar6 != *(int *)(iVar24 + 0x5a1c)) goto LAB_00076ff4;" if (parenthesized_expression "(iVar6 != *(int *)(iVar24 + 0x5a1c))" ( (binary_expression "iVar6 != *(int *)(iVar24 + 0x5a1c)" identifier != (pointer_expression "*(int *)(iVar24 + 0x5a1c)" * (cast_expression "(int *)(iVar24 + 0x5a1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x5a1c)" ( (binary_expression "iVar24 + 0x5a1c" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00076ff4;" goto statement_identifier ;)) (labeled_statement "LAB_00076df0:\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);" statement_identifier : (expression_statement "(**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);" (call_expression "(**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e728))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e728)" * (pointer_expression "*(code **)(pcVar27 + 0x7e728)" * (cast_expression "(code **)(pcVar27 + 0x7e728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e728)" ( (binary_expression "pcVar27 + 0x7e728" identifier + number_literal) ))))) )) (argument_list "(param_3,0,0x58)" ( identifier , number_literal , number_literal ))) ;)) (if_statement "if (uVar22 == 0x100) {\n      iVar6 = *(int *)(pcVar27 + 0x7e594);\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));\n      if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }\n      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\nLAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);\n      if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }\n      iVar24 = 7;\n    }\n    else {\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }" if (parenthesized_expression "(uVar22 == 0x100)" ( (binary_expression "uVar22 == 0x100" identifier == number_literal) )) (compound_statement "{\n      iVar6 = *(int *)(pcVar27 + 0x7e594);\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));\n      if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }\n      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\nLAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);\n      if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }\n      iVar24 = 7;\n    }" { (expression_statement "iVar6 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar6 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e720))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e720)" * (pointer_expression "*(code **)(pcVar27 + 0x7e720)" * (cast_expression "(code **)(pcVar27 + 0x7e720)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e720)" ( (binary_expression "pcVar27 + 0x7e720" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x5a18))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x5a18)" * (cast_expression "(undefined4 *)(iVar6 + 0x5a18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x5a18)" ( (binary_expression "iVar6 + 0x5a18" identifier + number_literal) )))) ))) ;) (if_statement "if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }" if (parenthesized_expression "((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         ))" ( (binary_expression "(*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )" (parenthesized_expression "(*(int *)(iVar24 + 0x5a14) != 0)" ( (binary_expression "*(int *)(iVar24 + 0x5a14) != 0" (pointer_expression "*(int *)(iVar24 + 0x5a14)" * (cast_expression "(int *)(iVar24 + 0x5a14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x5a14)" ( (binary_expression "iVar24 + 0x5a14" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )" ( (comma_expression "iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700)" identifier = (call_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700)" (parenthesized_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))" ( (pointer_expression "**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184)" * (pointer_expression "*(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184)" * (cast_expression "(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e594) + 0x5184)" ( (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x5184" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar14,local_700)" ( identifier , identifier )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }" { (for_statement "for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }" for ( (assignment_expression "piVar30 = *(int **)(iVar24 + 0x5a14)" identifier = (pointer_expression "*(int **)(iVar24 + 0x5a14)" * (cast_expression "(int **)(iVar24 + 0x5a14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x5a14)" ( (binary_expression "iVar24 + 0x5a14" identifier + number_literal) ))))) ; (binary_expression "piVar30 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar30 = (int *)piVar30[0xb]" identifier = (cast_expression "(int *)piVar30[0xb]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar30[0xb]" identifier [ number_literal ]))) ) (compound_statement "{\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }" { (if_statement "if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }" if (parenthesized_expression "((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec))" ( (binary_expression "(((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)" (parenthesized_expression "(((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0))" ( (binary_expression "((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)" (parenthesized_expression "((*piVar30 == 0) && (piVar30[1] == local_700[0]))" ( (binary_expression "(*piVar30 == 0) && (piVar30[1] == local_700[0])" (parenthesized_expression "(*piVar30 == 0)" ( (binary_expression "*piVar30 == 0" (pointer_expression "*piVar30" * identifier) == number_literal) )) && (parenthesized_expression "(piVar30[1] == local_700[0])" ( (binary_expression "piVar30[1] == local_700[0]" (subscript_expression "piVar30[1]" identifier [ number_literal ]) == (subscript_expression "local_700[0]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "(piVar30[2] == local_6f0)" ( (binary_expression "piVar30[2] == local_6f0" (subscript_expression "piVar30[2]" identifier [ number_literal ]) == identifier) ))) )) && (parenthesized_expression "(piVar30[3] == local_6ec)" ( (binary_expression "piVar30[3] == local_6ec" (subscript_expression "piVar30[3]" identifier [ number_literal ]) == identifier) ))) )) (compound_statement "{\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }" { (expression_statement "(**(code **)(pcVar27 + 0x7e720))(piVar30[4]);" (call_expression "(**(code **)(pcVar27 + 0x7e720))(piVar30[4])" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e720))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e720)" * (pointer_expression "*(code **)(pcVar27 + 0x7e720)" * (cast_expression "(code **)(pcVar27 + 0x7e720)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e720)" ( (binary_expression "pcVar27 + 0x7e720" identifier + number_literal) ))))) )) (argument_list "(piVar30[4])" ( (subscript_expression "piVar30[4]" identifier [ number_literal ]) ))) ;) (expression_statement "piVar12 = (int *)piVar30[8];" (assignment_expression "piVar12 = (int *)piVar30[8]" identifier = (cast_expression "(int *)piVar30[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar30[8]" identifier [ number_literal ]))) ;) (if_statement "if (piVar12 == (int *)0x0) goto LAB_00077360;" if (parenthesized_expression "(piVar12 == (int *)0x0)" ( (binary_expression "piVar12 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00077360;" goto statement_identifier ;)) (if_statement "if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;" if (parenthesized_expression "((param_4 & 3) != piVar12[1])" ( (binary_expression "(param_4 & 3) != piVar12[1]" (parenthesized_expression "(param_4 & 3)" ( (binary_expression "param_4 & 3" identifier & number_literal) )) != (subscript_expression "piVar12[1]" identifier [ number_literal ])) )) (goto_statement "goto LAB_00077354;" goto statement_identifier ;)) (expression_statement "piVar15 = piVar30 + 8;" (assignment_expression "piVar15 = piVar30 + 8" identifier = (binary_expression "piVar30 + 8" identifier + number_literal)) ;) (goto_statement "goto LAB_000776f8;" goto statement_identifier ;) })) })) })) (expression_statement "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e748))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e748)" * (pointer_expression "*(code **)(pcVar27 + 0x7e748)" * (cast_expression "(code **)(pcVar27 + 0x7e748)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e748)" ( (binary_expression "pcVar27 + 0x7e748" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x5a18))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x5a18)" * (cast_expression "(undefined4 *)(iVar6 + 0x5a18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x5a18)" ( (binary_expression "iVar6 + 0x5a18" identifier + number_literal) )))) ))) ;) (labeled_statement "LAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);" statement_identifier : (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc)" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e7f4))(0,0xc)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e7f4))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e7f4)" * (pointer_expression "*(code **)(pcVar27 + 0x7e7f4)" * (cast_expression "(code **)(pcVar27 + 0x7e7f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e7f4)" ( (binary_expression "pcVar27 + 0x7e7f4" identifier + number_literal) ))))) )) (argument_list "(0,0xc)" ( number_literal , number_literal )))) ;)) (if_statement "if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }" { (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (expression_statement "param_3[7] = iVar24;" (assignment_expression "param_3[7] = iVar24" (subscript_expression "param_3[7]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_00076e20;" goto statement_identifier ;) })) (expression_statement "iVar24 = 7;" (assignment_expression "iVar24 = 7" identifier = number_literal) ;) }) (else_clause "else {\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }" else (compound_statement "{\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }" { (if_statement "if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;" if (parenthesized_expression "(puVar14 != (undefined4 *)0x0)" ( (binary_expression "puVar14 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00076e18;" goto statement_identifier ;)) (labeled_statement "LAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);" statement_identifier : (expression_statement "iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);" (assignment_expression "iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458)" identifier = (call_expression "FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458)" identifier (argument_list "(*(undefined4 *)(iVar4 + 8),auStack_458)" ( (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) , identifier )))) ;)) (if_statement "if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }" { (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (expression_statement "puVar16 = auStack_458;" (assignment_expression "puVar16 = auStack_458" identifier = identifier) ;) (goto_statement "goto LAB_00076e20;" goto statement_identifier ;) })) }))) }) (else_clause "else {\n    if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (*(int *)(iVar24 + 0x5a1c) != iVar6) {\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    bVar1 = true;\n    if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;\nLAB_00076e18:\n    iVar6 = -1;\nLAB_00076e20:\n    uVar18 = uVar5;\n    if ((param_4 & 4) != 0) {\n      uVar18 = uVar5 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }\n    else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }\n  }" else (compound_statement "{\n    if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (*(int *)(iVar24 + 0x5a1c) != iVar6) {\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    bVar1 = true;\n    if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;\nLAB_00076e18:\n    iVar6 = -1;\nLAB_00076e20:\n    uVar18 = uVar5;\n    if ((param_4 & 4) != 0) {\n      uVar18 = uVar5 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }\n    else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }\n  }" { (if_statement "if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }" if (parenthesized_expression "((uVar22 != 0x4000) && (uVar22 != 0x800))" ( (binary_expression "(uVar22 != 0x4000) && (uVar22 != 0x800)" (parenthesized_expression "(uVar22 != 0x4000)" ( (binary_expression "uVar22 != 0x4000" identifier != number_literal) )) && (parenthesized_expression "(uVar22 != 0x800)" ( (binary_expression "uVar22 != 0x800" identifier != number_literal) ))) )) (compound_statement "{\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }" { (expression_statement "iVar24 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = uVar22 == 0x80000;" (assignment_expression "bVar1 = uVar22 == 0x80000" identifier = (binary_expression "uVar22 == 0x80000" identifier == number_literal)) ;) (expression_statement "iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();" (assignment_expression "iVar6 = (**(code **)(pcVar27 + 0x7e7c0))()" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e7c0))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e7c0))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e7c0)" * (pointer_expression "*(code **)(pcVar27 + 0x7e7c0)" * (cast_expression "(code **)(pcVar27 + 0x7e7c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e7c0)" ( (binary_expression "pcVar27 + 0x7e7c0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;" if (parenthesized_expression "(iVar6 == *(int *)(iVar24 + 0x5a1c))" ( (binary_expression "iVar6 == *(int *)(iVar24 + 0x5a1c)" identifier == (pointer_expression "*(int *)(iVar24 + 0x5a1c)" * (cast_expression "(int *)(iVar24 + 0x5a1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x5a1c)" ( (binary_expression "iVar24 + 0x5a1c" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00076df0;" goto statement_identifier ;)) (labeled_statement "LAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();" statement_identifier : (expression_statement "uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();" (assignment_expression "uVar32 = (**(code **)(pcVar27 + 0x7e7c0))()" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e7c0))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e7c0))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e7c0)" * (pointer_expression "*(code **)(pcVar27 + 0x7e7c0)" * (cast_expression "(code **)(pcVar27 + 0x7e7c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e7c0)" ( (binary_expression "pcVar27 + 0x7e7c0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;)) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e758);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e758)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7e758)" * (cast_expression "(code **)(pcVar27 + 0x7e758)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e758)" ( (binary_expression "pcVar27 + 0x7e758" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar24 + 0x5a1c) = uVar32;" (assignment_expression "*(undefined4 *)(iVar24 + 0x5a1c) = uVar32" (pointer_expression "*(undefined4 *)(iVar24 + 0x5a1c)" * (cast_expression "(undefined4 *)(iVar24 + 0x5a1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x5a1c)" ( (binary_expression "iVar24 + 0x5a1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar28)(0,0);" (call_expression "(*pcVar28)(0,0)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(0,0)" ( number_literal , number_literal ))) ;) (goto_statement "goto LAB_00076df0;" goto statement_identifier ;) })) (expression_statement "iVar24 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();" (assignment_expression "iVar6 = (**(code **)(pcVar27 + 0x7e7c0))()" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e7c0))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e7c0))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e7c0)" * (pointer_expression "*(code **)(pcVar27 + 0x7e7c0)" * (cast_expression "(code **)(pcVar27 + 0x7e7c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e7c0)" ( (binary_expression "pcVar27 + 0x7e7c0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (*(int *)(iVar24 + 0x5a1c) != iVar6) {\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }" if (parenthesized_expression "(*(int *)(iVar24 + 0x5a1c) != iVar6)" ( (binary_expression "*(int *)(iVar24 + 0x5a1c) != iVar6" (pointer_expression "*(int *)(iVar24 + 0x5a1c)" * (cast_expression "(int *)(iVar24 + 0x5a1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x5a1c)" ( (binary_expression "iVar24 + 0x5a1c" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_00076ff4;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);" (call_expression "(**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e728))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e728)" * (pointer_expression "*(code **)(pcVar27 + 0x7e728)" * (cast_expression "(code **)(pcVar27 + 0x7e728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e728)" ( (binary_expression "pcVar27 + 0x7e728" identifier + number_literal) ))))) )) (argument_list "(param_3,0,0x58)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (if_statement "if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;" if (parenthesized_expression "(puVar14 == (undefined4 *)0x0)" ( (binary_expression "puVar14 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00077258;" goto statement_identifier ;)) (labeled_statement "LAB_00076e18:\n    iVar6 = -1;" statement_identifier : (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;)) (labeled_statement "LAB_00076e20:\n    uVar18 = uVar5;" statement_identifier : (expression_statement "uVar18 = uVar5;" (assignment_expression "uVar18 = uVar5" identifier = identifier) ;)) (if_statement "if ((param_4 & 4) != 0) {\n      uVar18 = uVar5 | 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      uVar18 = uVar5 | 0x100;\n    }" { (expression_statement "uVar18 = uVar5 | 0x100;" (assignment_expression "uVar18 = uVar5 | 0x100" identifier = (binary_expression "uVar5 | 0x100" identifier | number_literal)) ;) })) (if_statement "if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }\n    else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\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 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }" { (if_statement "if (-1 < iVar6) goto LAB_00076e44;" if (parenthesized_expression "(-1 < iVar6)" ( (binary_expression "-1 < iVar6" number_literal < identifier) )) (goto_statement "goto LAB_00076e44;" goto statement_identifier ;)) (labeled_statement "LAB_00077030:\n      uVar31 = uVar18 | 0x22000;" statement_identifier : (expression_statement "uVar31 = uVar18 | 0x22000;" (assignment_expression "uVar31 = uVar18 | 0x22000" identifier = (binary_expression "uVar18 | 0x22000" identifier | number_literal)) ;)) (if_statement "if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }" if (parenthesized_expression "((param_4 & 0x80800) != 0)" ( (binary_expression "(param_4 & 0x80800) != 0" (parenthesized_expression "(param_4 & 0x80800)" ( (binary_expression "param_4 & 0x80800" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }" { (if_statement "if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }" if (parenthesized_expression "(puVar16 == (undefined4 *)0x0)" ( (binary_expression "puVar16 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }" { (expression_statement "cVar11 = *(char *)(in_zero + -1);" (assignment_expression "cVar11 = *(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 "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (if_statement "if (cVar11 != '-') goto LAB_00077090;" if (parenthesized_expression "(cVar11 != '-')" ( (binary_expression "cVar11 != '-'" identifier != (char_literal "'-'" ' character ')) )) (goto_statement "goto LAB_00077090;" goto statement_identifier ;)) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e790);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e790)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7e790)" * (cast_expression "(code **)(pcVar27 + 0x7e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e790)" ( (binary_expression "pcVar27 + 0x7e790" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }" else (compound_statement "{\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }" { (expression_statement "uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);" (assignment_expression "uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16)" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e760))(puVar16)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e760))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e760)" * (pointer_expression "*(code **)(pcVar27 + 0x7e760)" * (cast_expression "(code **)(pcVar27 + 0x7e760)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e760)" ( (binary_expression "pcVar27 + 0x7e760" identifier + number_literal) ))))) )) (argument_list "(puVar16)" ( identifier )))) ;) (expression_statement "iVar6 = (uVar8 & 0x3fffffff) - 1;" (assignment_expression "iVar6 = (uVar8 & 0x3fffffff) - 1" identifier = (binary_expression "(uVar8 & 0x3fffffff) - 1" (parenthesized_expression "(uVar8 & 0x3fffffff)" ( (binary_expression "uVar8 & 0x3fffffff" identifier & number_literal) )) - number_literal)) ;) (expression_statement "cVar11 = *(char *)((int)puVar16 + iVar6);" (assignment_expression "cVar11 = *(char *)((int)puVar16 + iVar6)" identifier = (pointer_expression "*(char *)((int)puVar16 + iVar6)" * (cast_expression "(char *)((int)puVar16 + iVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar16 + iVar6)" ( (binary_expression "(int)puVar16 + iVar6" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }" if (parenthesized_expression "(cVar11 != '-')" ( (binary_expression "cVar11 != '-'" identifier != (char_literal "'-'" ' character ')) )) (compound_statement "{\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }" { (if_statement "if (iVar6 == 0) goto LAB_000773f8;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000773f8;" goto statement_identifier ;)) (labeled_statement "LAB_00077090:\n            iVar6 = iVar6 + -1;" statement_identifier : (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;)) (if_statement "if (cVar11 == '.') goto LAB_000773f8;" if (parenthesized_expression "(cVar11 == '.')" ( (binary_expression "cVar11 == '.'" identifier == (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_000773f8;" goto statement_identifier ;)) (expression_statement "pcVar13 = (char *)((int)puVar16 + iVar6);" (assignment_expression "pcVar13 = (char *)((int)puVar16 + iVar6)" identifier = (cast_expression "(char *)((int)puVar16 + iVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar16 + iVar6)" ( (binary_expression "(int)puVar16 + iVar6" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (while_statement "while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }" while (parenthesized_expression "(cVar11 = *pcVar13, cVar11 != '-')" ( (comma_expression "cVar11 = *pcVar13, cVar11 != '-'" (assignment_expression "cVar11 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) , (binary_expression "cVar11 != '-'" identifier != (char_literal "'-'" ' character '))) )) (compound_statement "{\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }" { (if_statement "if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;" if (parenthesized_expression "((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.'))" ( (binary_expression "(iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')" (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) || (parenthesized_expression "(pcVar13 = pcVar13 + -1, cVar11 == '.')" ( (comma_expression "pcVar13 = pcVar13 + -1, cVar11 == '.'" (assignment_expression "pcVar13 = pcVar13 + -1" identifier = (binary_expression "pcVar13 + -1" identifier + number_literal)) , (binary_expression "cVar11 == '.'" identifier == (char_literal "'.'" ' character '))) ))) )) (goto_statement "goto LAB_000773f8;" goto statement_identifier ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) })) })) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e790);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e790)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7e790)" * (cast_expression "(code **)(pcVar27 + 0x7e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e790)" ( (binary_expression "pcVar27 + 0x7e790" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);" (assignment_expression "uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201)" identifier = (call_expression "(*pcVar28)(auStack_65c,puVar16,iVar6,0x201)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(auStack_65c,puVar16,iVar6,0x201)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar24 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) ))))) ;) (expression_statement "auStack_65c[iVar6] = 0;" (assignment_expression "auStack_65c[iVar6] = 0" (subscript_expression "auStack_65c[iVar6]" identifier [ identifier ]) = number_literal) ;) (expression_statement "iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);" (assignment_expression "iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700)" identifier = (call_expression "(**(code **)(iVar24 + 0x5184))(uVar32,local_700)" (parenthesized_expression "(**(code **)(iVar24 + 0x5184))" ( (pointer_expression "**(code **)(iVar24 + 0x5184)" * (pointer_expression "*(code **)(iVar24 + 0x5184)" * (cast_expression "(code **)(iVar24 + 0x5184)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x5184)" ( (binary_expression "iVar24 + 0x5184" identifier + number_literal) ))))) )) (argument_list "(uVar32,local_700)" ( identifier , identifier )))) ;) (if_statement "if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }" { (labeled_statement "LAB_000778c0:\n          iVar24 = 0x70a;" statement_identifier : (expression_statement "iVar24 = 0x70a;" (assignment_expression "iVar24 = 0x70a" identifier = number_literal) ;)) (goto_statement "goto LAB_00076f98;" goto statement_identifier ;) })) (expression_statement "local_730 = local_6e0;" (assignment_expression "local_730 = local_6e0" identifier = identifier) ;) (expression_statement "local_720 = local_6dc;" (assignment_expression "local_720 = local_6dc" identifier = identifier) ;) (labeled_statement "LAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;" statement_identifier : (expression_statement "uVar8 = local_6e8 & 0x1ff;" (assignment_expression "uVar8 = local_6e8 & 0x1ff" identifier = (binary_expression "local_6e8 & 0x1ff" identifier & number_literal)) ;)) (expression_statement "pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);" (assignment_expression "pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" identifier = (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" ( (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x7c30" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" * (cast_expression "(int *)(pcVar27 + 0x7e5c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5c0)" ( (binary_expression "pcVar27 + 0x7e5c0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);" (assignment_expression "iVar6 = (*pcVar28)(puVar16,uVar31,uVar8)" identifier = (call_expression "(*pcVar28)(puVar16,uVar31,uVar8)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(puVar16,uVar31,uVar8)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar6 < 0) goto LAB_0007743c;" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0007743c;" goto statement_identifier ;)) (labeled_statement "LAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }" statement_identifier : (if_statement "if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }" if (parenthesized_expression "(((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0))" ( (binary_expression "((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)" (parenthesized_expression "((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0))" ( (binary_expression "(uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)" (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)" ( (comma_expression "iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) ))))) , (binary_expression "(param_4 & 0x80800) != 0" (parenthesized_expression "(param_4 & 0x80800)" ( (binary_expression "param_4 & 0x80800" identifier & number_literal) )) != number_literal)) ))) )) && (parenthesized_expression "(iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)" ( (comma_expression "iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(iVar24 + 0x5250))()" identifier = (call_expression "(**(code **)(iVar24 + 0x5250))()" (parenthesized_expression "(**(code **)(iVar24 + 0x5250))" ( (pointer_expression "**(code **)(iVar24 + 0x5250)" * (pointer_expression "*(code **)(iVar24 + 0x5250)" * (cast_expression "(code **)(iVar24 + 0x5250)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x5250)" ( (binary_expression "iVar24 + 0x5250" identifier + number_literal) ))))) )) (argument_list "()" ( )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }" { (expression_statement "(**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);" (call_expression "(**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720)" (parenthesized_expression "(**(code **)(iVar24 + 0x5244))" ( (pointer_expression "**(code **)(iVar24 + 0x5244)" * (pointer_expression "*(code **)(iVar24 + 0x5244)" * (cast_expression "(code **)(iVar24 + 0x5244)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x5244)" ( (binary_expression "iVar24 + 0x5244" identifier + number_literal) ))))) )) (argument_list "(iVar6,local_730,local_720)" ( identifier , identifier , identifier ))) ;) }))) (goto_statement "goto LAB_00076e44;" goto statement_identifier ;) })) (if_statement "if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }" { (if_statement "if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }" if (parenthesized_expression "(((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0))" ( (binary_expression "((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 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 "(iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)" ( (comma_expression "iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0" (assignment_expression "iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684)" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e780))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e780)" * (pointer_expression "*(code **)(pcVar27 + 0x7e780)" * (cast_expression "(code **)(pcVar27 + 0x7e780)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e780)" ( (binary_expression "pcVar27 + 0x7e780" identifier + number_literal) ))))) )) (argument_list "(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684)" ( identifier , (binary_expression "*(int *)(pcVar27 + 0x7e5ac) + -0x7684" (pointer_expression "*(int *)(pcVar27 + 0x7e5ac)" * (cast_expression "(int *)(pcVar27 + 0x7e5ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5ac)" ( (binary_expression "pcVar27 + 0x7e5ac" identifier + number_literal) )))) + number_literal) )))) , (binary_expression "iVar6 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }" { (expression_statement "iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);" (assignment_expression "iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700)" identifier = (call_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700)" (parenthesized_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))" ( (pointer_expression "**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184)" * (pointer_expression "*(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184)" * (cast_expression "(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e594) + 0x5184)" ( (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x5184" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar6,local_700)" ( identifier , identifier )))) ;) (if_statement "if (iVar6 != 0) goto LAB_000778c0;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000778c0;" goto statement_identifier ;)) (expression_statement "local_730 = local_6e0;" (assignment_expression "local_730 = local_6e0" identifier = identifier) ;) (expression_statement "local_720 = local_6dc;" (assignment_expression "local_720 = local_6dc" identifier = identifier) ;) (goto_statement "goto LAB_00077140;" goto statement_identifier ;) })) (labeled_statement "LAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);" statement_identifier : (expression_statement "pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);" (assignment_expression "pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" identifier = (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" ( (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x7c30" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" * (cast_expression "(int *)(pcVar27 + 0x7e5c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5c0)" ( (binary_expression "pcVar27 + 0x7e5c0" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "iVar6 = (*pcVar28)(puVar16,uVar31,0);" (assignment_expression "iVar6 = (*pcVar28)(puVar16,uVar31,0)" identifier = (call_expression "(*pcVar28)(puVar16,uVar31,0)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(puVar16,uVar31,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (-1 < iVar6) goto LAB_00076e44;" if (parenthesized_expression "(-1 < iVar6)" ( (binary_expression "-1 < iVar6" number_literal < identifier) )) (goto_statement "goto LAB_00076e44;" goto statement_identifier ;)) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "local_720 = 0;" (assignment_expression "local_720 = 0" identifier = number_literal) ;) (expression_statement "local_730 = 0;" (assignment_expression "local_730 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }" else (compound_statement "{\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }" { (expression_statement "pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);" (assignment_expression "pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" identifier = (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" ( (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x7c30" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" * (cast_expression "(int *)(pcVar27 + 0x7e5c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5c0)" ( (binary_expression "pcVar27 + 0x7e5c0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (*pcVar28)(puVar16,uVar31,0x180);" (assignment_expression "iVar6 = (*pcVar28)(puVar16,uVar31,0x180)" identifier = (call_expression "(*pcVar28)(puVar16,uVar31,0x180)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(puVar16,uVar31,0x180)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (-1 < iVar6) goto LAB_00076e44;" if (parenthesized_expression "(-1 < iVar6)" ( (binary_expression "-1 < iVar6" number_literal < identifier) )) (goto_statement "goto LAB_00076e44;" goto statement_identifier ;)) (expression_statement "local_720 = 0;" (assignment_expression "local_720 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = 0x180;" (assignment_expression "uVar8 = 0x180" identifier = number_literal) ;) (expression_statement "local_730 = 0;" (assignment_expression "local_730 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();" statement_identifier : (expression_statement "piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();" (assignment_expression "piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))()" identifier = (cast_expression "(int *)(**(code **)(pcVar27 + 0x7e718))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar27 + 0x7e718))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e718))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e718)" * (pointer_expression "*(code **)(pcVar27 + 0x7e718)" * (cast_expression "(code **)(pcVar27 + 0x7e718)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e718)" ( (binary_expression "pcVar27 + 0x7e718" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;)) (expression_statement "iVar6 = *piVar30;" (assignment_expression "iVar6 = *piVar30" identifier = (pointer_expression "*piVar30" * identifier)) ;) (if_statement "if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }" if (parenthesized_expression "((bVar1) && (iVar6 == 0xd))" ( (binary_expression "(bVar1) && (iVar6 == 0xd)" (parenthesized_expression "(bVar1)" ( identifier )) && (parenthesized_expression "(iVar6 == 0xd)" ( (binary_expression "iVar6 == 0xd" identifier == number_literal) ))) )) (compound_statement "{\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }" { (expression_statement "iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);" (assignment_expression "iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0)" identifier = (call_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0)" (parenthesized_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))" ( (pointer_expression "**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c)" * (pointer_expression "*(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c)" * (cast_expression "(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e594) + 0x516c)" ( (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x516c" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar16,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }" { (expression_statement "iVar6 = *piVar30;" (assignment_expression "iVar6 = *piVar30" identifier = (pointer_expression "*piVar30" * identifier)) ;) (goto_statement "goto LAB_000774ac;" goto statement_identifier ;) })) (expression_statement "uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);" (assignment_expression "uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7)" identifier = (call_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))" ( (pointer_expression "*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c)" * (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x489c)" ( (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x489c" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" * (cast_expression "(int *)(pcVar27 + 0x7e5c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5c0)" ( (binary_expression "pcVar27 + 0x7e5c0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(0x9ae7)" ( number_literal )))) ;) (expression_statement "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);" (call_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))" ( (pointer_expression "*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8)" * (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8)" ( (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" * (cast_expression "(int *)(pcVar27 + 0x7e5c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5c0)" ( (binary_expression "pcVar27 + 0x7e5c0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7)" ( identifier , (binary_expression "*(int *)(pcVar27 + 0x7e5ac) + -0x7c98" (pointer_expression "*(int *)(pcVar27 + 0x7e5ac)" * (cast_expression "(int *)(pcVar27 + 0x7e5ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5ac)" ( (binary_expression "pcVar27 + 0x7e5ac" identifier + number_literal) )))) + number_literal) , identifier , number_literal ))) ;) (expression_statement "iVar24 = 0x608;" (assignment_expression "iVar24 = 0x608" identifier = number_literal) ;) (goto_statement "goto LAB_00077570;" goto statement_identifier ;) })) (labeled_statement "LAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }" statement_identifier : (if_statement "if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }" if (parenthesized_expression "((iVar6 != 0x15) && (uVar5 != 0))" ( (binary_expression "(iVar6 != 0x15) && (uVar5 != 0)" (parenthesized_expression "(iVar6 != 0x15)" ( (binary_expression "iVar6 != 0x15" identifier != number_literal) )) && (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) ))) )) (compound_statement "{\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\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 "iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);" (assignment_expression "iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8)" identifier = (call_expression "(*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8)" ( identifier , (binary_expression "uVar18 & 0xfffffefd | 0x22000" (binary_expression "uVar18 & 0xfffffefd" identifier & number_literal) | number_literal) , identifier )))) ;) (if_statement "if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }" if (parenthesized_expression "(-1 < iVar6)" ( (binary_expression "-1 < iVar6" number_literal < identifier) )) (compound_statement "{\n          local_728 = 1;\n          goto LAB_00077180;\n        }" { (expression_statement "local_728 = 1;" (assignment_expression "local_728 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00077180;" goto statement_identifier ;) })) }))) (expression_statement "uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);" (assignment_expression "uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7)" identifier = (call_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))" ( (pointer_expression "*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c)" * (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x489c)" ( (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x489c" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" * (cast_expression "(int *)(pcVar27 + 0x7e5c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5c0)" ( (binary_expression "pcVar27 + 0x7e5c0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(0x9ae7)" ( number_literal )))) ;) (expression_statement "iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);" (assignment_expression "iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7)" identifier = (call_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))" ( (pointer_expression "*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8)" * (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8)" ( (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" * (cast_expression "(int *)(pcVar27 + 0x7e5c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5c0)" ( (binary_expression "pcVar27 + 0x7e5c0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7)" ( identifier , (binary_expression "*(int *)(pcVar27 + 0x7e5ac) + -0x7c98" (pointer_expression "*(int *)(pcVar27 + 0x7e5ac)" * (cast_expression "(int *)(pcVar27 + 0x7e5ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5ac)" ( (binary_expression "pcVar27 + 0x7e5ac" identifier + number_literal) )))) + number_literal) , identifier , number_literal )))) ;) (if_statement "if (iVar24 == 0) goto LAB_00076f98;" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00076f98;" goto statement_identifier ;)) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e678);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e678)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7e678)" * (cast_expression "(code **)(pcVar27 + 0x7e678)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e678)" ( (binary_expression "pcVar27 + 0x7e678" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00077574:\n      (*pcVar28)(param_3[7]);" statement_identifier : (expression_statement "(*pcVar28)(param_3[7]);" (call_expression "(*pcVar28)(param_3[7])" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(param_3[7])" ( (subscript_expression "param_3[7]" identifier [ number_literal ]) ))) ;)) }) (else_clause "else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }" else (compound_statement "{\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }" { (expression_statement "uVar18 = uVar18 | 0x20400;" (assignment_expression "uVar18 = uVar18 | 0x20400" identifier = (binary_expression "uVar18 | 0x20400" identifier | number_literal)) ;) (if_statement "if (iVar6 < 0) goto LAB_00077030;" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00077030;" goto statement_identifier ;)) (labeled_statement "LAB_00076e44:\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) ;) }))) (expression_statement "piVar30 = (int *)param_3[7];" (assignment_expression "piVar30 = (int *)param_3[7]" identifier = (cast_expression "(int *)param_3[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[7]" identifier [ number_literal ]))) ;) (if_statement "if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }" if (parenthesized_expression "(piVar30 != (int *)0x0)" ( (binary_expression "piVar30 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }" { (expression_statement "*piVar30 = iVar6;" (assignment_expression "*piVar30 = iVar6" (pointer_expression "*piVar30" * identifier) = identifier) ;) (expression_statement "piVar30[1] = param_4 & 3;" (assignment_expression "piVar30[1] = param_4 & 3" (subscript_expression "piVar30[1]" identifier [ number_literal ]) = (binary_expression "param_4 & 3" identifier & number_literal)) ;) })) (if_statement "if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }" if (parenthesized_expression "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }" { (expression_statement "uVar21 = 0x20;" (assignment_expression "uVar21 = 0x20" identifier = number_literal) ;) (expression_statement "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);" (call_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16)" (parenthesized_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))" ( (pointer_expression "**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214)" * (pointer_expression "*(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214)" * (cast_expression "(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e594) + 0x5214)" ( (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x5214" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar16)" ( identifier ))) ;) })) (if_statement "if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }" if (parenthesized_expression "(local_728 != 0)" ( (binary_expression "local_728 != 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 (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }" if (parenthesized_expression "(uVar22 != 0x100)" ( (binary_expression "uVar22 != 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 (bVar1) {\n        uVar21 = uVar21 | 8;\n      }" if (parenthesized_expression "(bVar1)" ( 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 "iVar24 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) ))))) ;) (if_statement "if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\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] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }" { (expression_statement "param_3[3] = iVar6;" (assignment_expression "param_3[3] = iVar6" (subscript_expression "param_3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[1] = iVar4;" (assignment_expression "param_3[1] = iVar4" (subscript_expression "param_3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[8] = (int)puVar14;" (assignment_expression "param_3[8] = (int)puVar14" (subscript_expression "param_3[8]" identifier [ number_literal ]) = (cast_expression "(int)puVar14" ( (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 "iVar7 = *(int *)(iVar24 + 0x4148);" (assignment_expression "iVar7 = *(int *)(iVar24 + 0x4148)" identifier = (pointer_expression "*(int *)(iVar24 + 0x4148)" * (cast_expression "(int *)(iVar24 + 0x4148)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x4148)" ( (binary_expression "iVar24 + 0x4148" identifier + number_literal) ))))) ;) (expression_statement "param_3[0x11] = *(int *)(iVar24 + 0x414c);" (assignment_expression "param_3[0x11] = *(int *)(iVar24 + 0x414c)" (subscript_expression "param_3[0x11]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar24 + 0x414c)" * (cast_expression "(int *)(iVar24 + 0x414c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x414c)" ( (binary_expression "iVar24 + 0x414c" identifier + number_literal) ))))) ;) (expression_statement "param_3[0x10] = iVar7;" (assignment_expression "param_3[0x10] = iVar7" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar19 = (undefined4 *)0x0;" (assignment_expression "puVar19 = (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] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }" else (compound_statement "{\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }" { (expression_statement "uVar21 = uVar21 | 0x40;" (assignment_expression "uVar21 = uVar21 | 0x40" identifier = (binary_expression "uVar21 | 0x40" identifier | number_literal)) ;) (expression_statement "param_3[3] = iVar6;" (assignment_expression "param_3[3] = iVar6" (subscript_expression "param_3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[1] = iVar4;" (assignment_expression "param_3[1] = iVar4" (subscript_expression "param_3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[8] = (int)puVar14;" (assignment_expression "param_3[8] = (int)puVar14" (subscript_expression "param_3[8]" identifier [ number_literal ]) = (cast_expression "(int)puVar14" ( (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 "iVar7 = *(int *)(iVar24 + 0x4148);" (assignment_expression "iVar7 = *(int *)(iVar24 + 0x4148)" identifier = (pointer_expression "*(int *)(iVar24 + 0x4148)" * (cast_expression "(int *)(iVar24 + 0x4148)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x4148)" ( (binary_expression "iVar24 + 0x4148" identifier + number_literal) ))))) ;) (expression_statement "param_3[0x11] = *(int *)(iVar24 + 0x414c);" (assignment_expression "param_3[0x11] = *(int *)(iVar24 + 0x414c)" (subscript_expression "param_3[0x11]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar24 + 0x414c)" * (cast_expression "(int *)(iVar24 + 0x414c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x414c)" ( (binary_expression "iVar24 + 0x414c" identifier + number_literal) ))))) ;) (expression_statement "param_3[0x10] = iVar7;" (assignment_expression "param_3[0x10] = iVar7" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar19 = puVar14;" (assignment_expression "puVar19 = puVar14" identifier = identifier) ;) }))) (expression_statement "iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);" (assignment_expression "iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1)" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e86c))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e86c)" * (pointer_expression "*(code **)(pcVar27 + 0x7e86c)" * (cast_expression "(code **)(pcVar27 + 0x7e86c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e86c)" ( (binary_expression "pcVar27 + 0x7e86c" identifier + number_literal) ))))) )) (argument_list "(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1)" ( identifier , (binary_expression "*(int *)(pcVar27 + 0x7e5ac) + -0x767c" (pointer_expression "*(int *)(pcVar27 + 0x7e5ac)" * (cast_expression "(int *)(pcVar27 + 0x7e5ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5ac)" ( (binary_expression "pcVar27 + 0x7e5ac" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 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 "iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);" (assignment_expression "iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674)" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e890))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e890)" * (pointer_expression "*(code **)(pcVar27 + 0x7e890)" * (cast_expression "(code **)(pcVar27 + 0x7e890)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e890)" ( (binary_expression "pcVar27 + 0x7e890" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" * (cast_expression "(undefined4 *)(iVar4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar27 + 0x7e5ac) + -0x7674" (pointer_expression "*(int *)(pcVar27 + 0x7e5ac)" * (cast_expression "(int *)(pcVar27 + 0x7e5ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5ac)" ( (binary_expression "pcVar27 + 0x7e5ac" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 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        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\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        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }" { (expression_statement "iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);" (assignment_expression "iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3)" identifier = (call_expression "(*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3)" (parenthesized_expression "(*(code *)**(undefined4 **)(iVar4 + 0x14))" ( (pointer_expression "*(code *)**(undefined4 **)(iVar4 + 0x14)" * (cast_expression "(code *)**(undefined4 **)(iVar4 + 0x14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(iVar4 + 0x14)" * (pointer_expression "*(undefined4 **)(iVar4 + 0x14)" * (cast_expression "(undefined4 **)(iVar4 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))))) )) (argument_list "(puVar14,param_3)" ( identifier , identifier )))) ;) (expression_statement "iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;" (assignment_expression "iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24" identifier = (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x3b24" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }" if (parenthesized_expression "(iVar7 != iVar4)" ( (binary_expression "iVar7 != iVar4" identifier != identifier) )) (compound_statement "{\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }" { (expression_statement "iVar4 = iVar7;" (assignment_expression "iVar4 = iVar7" identifier = identifier) ;) (if_statement "if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }" if (parenthesized_expression "(iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84)" ( (binary_expression "iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84" identifier == (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x3a84" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) )))) + number_literal)) )) (compound_statement "{\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }" { (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14)" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e760))(puVar14)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e760))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e760)" * (pointer_expression "*(code **)(pcVar27 + 0x7e760)" * (cast_expression "(code **)(pcVar27 + 0x7e760)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e760)" ( (binary_expression "pcVar27 + 0x7e760" identifier + number_literal) ))))) )) (argument_list "(puVar14)" ( identifier )))) ;) (expression_statement "iVar24 = iVar24 + 6;" (assignment_expression "iVar24 = iVar24 + 6" identifier = (binary_expression "iVar24 + 6" identifier + number_literal)) ;) (expression_statement "iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);" (assignment_expression "iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24)" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e7f4))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e7f4)" * (pointer_expression "*(code **)(pcVar27 + 0x7e7f4)" * (cast_expression "(code **)(pcVar27 + 0x7e7f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e7f4)" ( (binary_expression "pcVar27 + 0x7e7f4" identifier + number_literal) ))))) )) (argument_list "(iVar24 >> 0x1f,iVar24)" ( (binary_expression "iVar24 >> 0x1f" identifier >> number_literal) , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }" { (expression_statement "iVar4 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar4 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" 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 "iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);" (assignment_expression "iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6)" identifier = (call_expression "(**(code **)(iVar4 + 0x5160))(iVar6)" (parenthesized_expression "(**(code **)(iVar4 + 0x5160))" ( (pointer_expression "**(code **)(iVar4 + 0x5160)" * (pointer_expression "*(code **)(iVar4 + 0x5160)" * (cast_expression "(code **)(iVar4 + 0x5160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x5160)" ( (binary_expression "iVar4 + 0x5160" identifier + number_literal) ))))) )) (argument_list "(iVar6)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                iVar24 = 7;\n              }" { (expression_statement "iVar24 = 7;" (assignment_expression "iVar24 = 7" identifier = number_literal) ;) }) (else_clause "else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }" else (compound_statement "{\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }" { (expression_statement "(*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);" (call_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))" ( (pointer_expression "*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c)" * (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c)" ( (binary_expression "*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c" (pointer_expression "*(int *)(pcVar27 + 0x7e5e4)" * (cast_expression "(int *)(pcVar27 + 0x7e5e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5e4)" ( (binary_expression "pcVar27 + 0x7e5e4" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(param_3,0x9949)" ( identifier , number_literal ))) ;) (expression_statement "iVar24 = 7;" (assignment_expression "iVar24 = 7" identifier = number_literal) ;) }))) (goto_statement "goto LAB_00077570;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);" (call_expression "(**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e764))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e764)" * (pointer_expression "*(code **)(pcVar27 + 0x7e764)" * (cast_expression "(code **)(pcVar27 + 0x7e764)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e764)" ( (binary_expression "pcVar27 + 0x7e764" identifier + number_literal) ))))) )) (argument_list "(iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14)" ( identifier , identifier , (binary_expression "*(int *)(pcVar27 + 0x7e5ac) + -0x7668" (pointer_expression "*(int *)(pcVar27 + 0x7e5ac)" * (cast_expression "(int *)(pcVar27 + 0x7e5ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5ac)" ( (binary_expression "pcVar27 + 0x7e5ac" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "param_3[6] = iVar7;" (assignment_expression "param_3[6] = iVar7" (subscript_expression "param_3[6]" identifier [ number_literal ]) = identifier) ;) })) (goto_statement "goto LAB_00076f78;" goto statement_identifier ;) })) (expression_statement "iVar7 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar7 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e720))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e720)" * (pointer_expression "*(code **)(pcVar27 + 0x7e720)" * (cast_expression "(code **)(pcVar27 + 0x7e720)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e720)" ( (binary_expression "pcVar27 + 0x7e720" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar7 + 0x5a18))" ( (pointer_expression "*(undefined4 *)(iVar7 + 0x5a18)" * (cast_expression "(undefined4 *)(iVar7 + 0x5a18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x5a18)" ( (binary_expression "iVar7 + 0x5a18" identifier + number_literal) )))) ))) ;) (expression_statement "iVar23 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar23 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);" (assignment_expression "iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700)" identifier = (call_expression "(**(code **)(iVar23 + 0x5190))(param_3[3],local_700)" (parenthesized_expression "(**(code **)(iVar23 + 0x5190))" ( (pointer_expression "**(code **)(iVar23 + 0x5190)" * (pointer_expression "*(code **)(iVar23 + 0x5190)" * (cast_expression "(code **)(iVar23 + 0x5190)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar23 + 0x5190)" ( (binary_expression "iVar23 + 0x5190" identifier + number_literal) ))))) )) (argument_list "(param_3[3],local_700)" ( (subscript_expression "param_3[3]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }" { (expression_statement "piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();" (assignment_expression "piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))()" identifier = (cast_expression "(int *)(**(code **)(pcVar27 + 0x7e718))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar27 + 0x7e718))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e718))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e718)" * (pointer_expression "*(code **)(pcVar27 + 0x7e718)" * (cast_expression "(code **)(pcVar27 + 0x7e718)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e718)" ( (binary_expression "pcVar27 + 0x7e718" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar24 = 10;" (assignment_expression "iVar24 = 10" identifier = number_literal) ;) (expression_statement "param_3[5] = *piVar30;" (assignment_expression "param_3[5] = *piVar30" (subscript_expression "param_3[5]" identifier [ number_literal ]) = (pointer_expression "*piVar30" * identifier)) ;) (labeled_statement "LAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);" statement_identifier : (expression_statement "iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);" (assignment_expression "iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6)" identifier = (call_expression "(**(code **)(iVar23 + 0x5160))(iVar6)" (parenthesized_expression "(**(code **)(iVar23 + 0x5160))" ( (pointer_expression "**(code **)(iVar23 + 0x5160)" * (pointer_expression "*(code **)(iVar23 + 0x5160)" * (cast_expression "(code **)(iVar23 + 0x5160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar23 + 0x5160)" ( (binary_expression "iVar23 + 0x5160" identifier + number_literal) ))))) )) (argument_list "(iVar6)" ( identifier )))) ;)) (if_statement "if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }" { (expression_statement "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e748))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e748)" * (pointer_expression "*(code **)(pcVar27 + 0x7e748)" * (cast_expression "(code **)(pcVar27 + 0x7e748)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e748)" ( (binary_expression "pcVar27 + 0x7e748" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar7 + 0x5a18))" ( (pointer_expression "*(undefined4 *)(iVar7 + 0x5a18)" * (cast_expression "(undefined4 *)(iVar7 + 0x5a18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x5a18)" ( (binary_expression "iVar7 + 0x5a18" 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 *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }" else (compound_statement "{\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }" { (expression_statement "(*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);" (call_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))" ( (pointer_expression "*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c)" * (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c)" ( (binary_expression "*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c" (pointer_expression "*(int *)(pcVar27 + 0x7e5e4)" * (cast_expression "(int *)(pcVar27 + 0x7e5e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5e4)" ( (binary_expression "pcVar27 + 0x7e5e4" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(param_3,0x98f4)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e748))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e748)" * (pointer_expression "*(code **)(pcVar27 + 0x7e748)" * (cast_expression "(code **)(pcVar27 + 0x7e748)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e748)" ( (binary_expression "pcVar27 + 0x7e748" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar7 + 0x5a18))" ( (pointer_expression "*(undefined4 *)(iVar7 + 0x5a18)" * (cast_expression "(undefined4 *)(iVar7 + 0x5a18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x5a18)" ( (binary_expression "iVar7 + 0x5a18" 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) ;) }))) (labeled_statement "LAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);" statement_identifier : (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e678);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e678)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7e678)" * (cast_expression "(code **)(pcVar27 + 0x7e678)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e678)" ( (binary_expression "pcVar27 + 0x7e678" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_00077574;" goto statement_identifier ;) })) (expression_statement "iVar9 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar9 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" 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 "puVar19 = *(undefined4 **)(iVar9 + 0x5a14);" (assignment_expression "puVar19 = *(undefined4 **)(iVar9 + 0x5a14)" identifier = (pointer_expression "*(undefined4 **)(iVar9 + 0x5a14)" * (cast_expression "(undefined4 **)(iVar9 + 0x5a14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x5a14)" ( (binary_expression "iVar9 + 0x5a14" identifier + number_literal) ))))) ;) (expression_statement "local_708 = local_6f0;" (assignment_expression "local_708 = local_6f0" identifier = identifier) ;) (if_statement "if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }" if (parenthesized_expression "(puVar19 == (undefined4 *)0x0)" ( (binary_expression "puVar19 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }" { (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e7f4);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e7f4)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7e7f4)" * (cast_expression "(code **)(pcVar27 + 0x7e7f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e7f4)" ( (binary_expression "pcVar27 + 0x7e7f4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }" else (compound_statement "{\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }" { (do_statement "do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);" do (compound_statement "{\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          }" { (expression_statement "iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);" (assignment_expression "iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10)" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e82c))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e82c)" * (pointer_expression "*(code **)(pcVar27 + 0x7e82c)" * (cast_expression "(code **)(pcVar27 + 0x7e82c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e82c)" ( (binary_expression "pcVar27 + 0x7e82c" identifier + number_literal) ))))) )) (argument_list "(&local_710,puVar19,0x10)" ( (pointer_expression "&local_710" & identifier) , identifier , number_literal )))) ;) (if_statement "if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }" { (expression_statement "puVar19[9] = puVar19[9] + 1;" (assignment_expression "puVar19[9] = puVar19[9] + 1" (subscript_expression "puVar19[9]" identifier [ number_literal ]) = (binary_expression "puVar19[9] + 1" (subscript_expression "puVar19[9]" identifier [ number_literal ]) + number_literal)) ;) (goto_statement "goto LAB_0007764c;" goto statement_identifier ;) })) (expression_statement "puVar19 = (undefined4 *)puVar19[0xb];" (assignment_expression "puVar19 = (undefined4 *)puVar19[0xb]" identifier = (cast_expression "(undefined4 *)puVar19[0xb]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar19[0xb]" identifier [ number_literal ]))) ;) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e7f4);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e7f4)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7e7f4)" * (cast_expression "(code **)(pcVar27 + 0x7e7f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e7f4)" ( (binary_expression "pcVar27 + 0x7e7f4" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(puVar19 != (undefined4 *)0x0)" ( (binary_expression "puVar19 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (expression_statement "puVar19 = (undefined4 *)(*pcVar28)(0,0x38);" (assignment_expression "puVar19 = (undefined4 *)(*pcVar28)(0,0x38)" identifier = (cast_expression "(undefined4 *)(*pcVar28)(0,0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar28)(0,0x38)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(0,0x38)" ( number_literal , number_literal ))))) ;) (if_statement "if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }" if (parenthesized_expression "(puVar19 == (undefined4 *)0x0)" ( (binary_expression "puVar19 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }" { (expression_statement "iVar24 = 7;" (assignment_expression "iVar24 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_0007782c;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);" (call_expression "(**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e728))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e728)" * (pointer_expression "*(code **)(pcVar27 + 0x7e728)" * (cast_expression "(code **)(pcVar27 + 0x7e728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e728)" ( (binary_expression "pcVar27 + 0x7e728" identifier + number_literal) ))))) )) (argument_list "(puVar19 + 4,0,0x28)" ( (binary_expression "puVar19 + 4" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "*puVar19 = local_710;" (assignment_expression "*puVar19 = local_710" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "puVar19[1] = local_70c;" (assignment_expression "puVar19[1] = local_70c" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar19[2] = local_708;" (assignment_expression "puVar19[2] = local_708" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar19[3] = local_704;" (assignment_expression "puVar19[3] = local_704" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }" if (parenthesized_expression "(*(char *)(iVar24 + 0x40a4) != '\0')" ( (binary_expression "*(char *)(iVar24 + 0x40a4) != '\0'" (pointer_expression "*(char *)(iVar24 + 0x40a4)" * (cast_expression "(char *)(iVar24 + 0x40a4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x40a4)" ( (binary_expression "iVar24 + 0x40a4" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }" { (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x7e824))(0)" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e824))(0)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e824))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e824)" * (pointer_expression "*(code **)(pcVar27 + 0x7e824)" * (cast_expression "(code **)(pcVar27 + 0x7e824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e824)" ( (binary_expression "pcVar27 + 0x7e824" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "puVar19[4] = iVar24;" (assignment_expression "puVar19[4] = iVar24" (subscript_expression "puVar19[4]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }" { (expression_statement "(**(code **)(pcVar27 + 0x7e678))(puVar19);" (call_expression "(**(code **)(pcVar27 + 0x7e678))(puVar19)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e678))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e678)" * (pointer_expression "*(code **)(pcVar27 + 0x7e678)" * (cast_expression "(code **)(pcVar27 + 0x7e678)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e678)" ( (binary_expression "pcVar27 + 0x7e678" identifier + number_literal) ))))) )) (argument_list "(puVar19)" ( identifier ))) ;) (expression_statement "iVar24 = 7;" (assignment_expression "iVar24 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_0007782c;" goto statement_identifier ;) })) })) (expression_statement "iVar6 = *(int *)(iVar9 + 0x5a14);" (assignment_expression "iVar6 = *(int *)(iVar9 + 0x5a14)" identifier = (pointer_expression "*(int *)(iVar9 + 0x5a14)" * (cast_expression "(int *)(iVar9 + 0x5a14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x5a14)" ( (binary_expression "iVar9 + 0x5a14" identifier + number_literal) ))))) ;) (expression_statement "puVar19[0xc] = 0;" (assignment_expression "puVar19[0xc] = 0" (subscript_expression "puVar19[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar19[9] = 1;" (assignment_expression "puVar19[9] = 1" (subscript_expression "puVar19[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar19[0xb] = iVar6;" (assignment_expression "puVar19[0xb] = iVar6" (subscript_expression "puVar19[0xb]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }" { (expression_statement "*(undefined4 **)(iVar6 + 0x30) = puVar19;" (assignment_expression "*(undefined4 **)(iVar6 + 0x30) = puVar19" (pointer_expression "*(undefined4 **)(iVar6 + 0x30)" * (cast_expression "(undefined4 **)(iVar6 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x30)" ( (binary_expression "iVar6 + 0x30" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(undefined4 **)(iVar9 + 0x5a14) = puVar19;" (assignment_expression "*(undefined4 **)(iVar9 + 0x5a14) = puVar19" (pointer_expression "*(undefined4 **)(iVar9 + 0x5a14)" * (cast_expression "(undefined4 **)(iVar9 + 0x5a14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x5a14)" ( (binary_expression "iVar9 + 0x5a14" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);" statement_identifier : (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e748);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e748)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7e748)" * (cast_expression "(code **)(pcVar27 + 0x7e748)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e748)" ( (binary_expression "pcVar27 + 0x7e748" identifier + number_literal) ))))) ;)) (expression_statement "param_3[2] = (int)puVar19;" (assignment_expression "param_3[2] = (int)puVar19" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "(*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));" (call_expression "(*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18))" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(*(undefined4 *)(iVar7 + 0x5a18))" ( (pointer_expression "*(undefined4 *)(iVar7 + 0x5a18)" * (cast_expression "(undefined4 *)(iVar7 + 0x5a18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x5a18)" ( (binary_expression "iVar7 + 0x5a18" 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        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }" else (compound_statement "{\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }" { (expression_statement "iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;" (assignment_expression "iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4" identifier = (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x3ad4" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_00076f78:\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) ;)) }))) (expression_statement "iVar6 = *(int *)(pcVar27 + 0x7e5c0);" (assignment_expression "iVar6 = *(int *)(pcVar27 + 0x7e5c0)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" * (cast_expression "(int *)(pcVar27 + 0x7e5c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5c0)" ( (binary_expression "pcVar27 + 0x7e5c0" identifier + number_literal) ))))) ;) (expression_statement "*param_3 = iVar4;" (assignment_expression "*param_3 = iVar4" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "(*(code *)(iVar6 + 0x76f0))(param_3);" (call_expression "(*(code *)(iVar6 + 0x76f0))(param_3)" (parenthesized_expression "(*(code *)(iVar6 + 0x76f0))" ( (pointer_expression "*(code *)(iVar6 + 0x76f0)" * (cast_expression "(code *)(iVar6 + 0x76f0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x76f0)" ( (binary_expression "iVar6 + 0x76f0" identifier + number_literal) )))) )) (argument_list "(param_3)" ( identifier ))) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_00076f98:\n  if (local_254 == *piVar29) {\n    return iVar24;\n  }" statement_identifier : (if_statement "if (local_254 == *piVar29) {\n    return iVar24;\n  }" if (parenthesized_expression "(local_254 == *piVar29)" ( (binary_expression "local_254 == *piVar29" identifier == (pointer_expression "*piVar29" * identifier)) )) (compound_statement "{\n    return iVar24;\n  }" { (return_statement "return iVar24;" return identifier ;) }))) (expression_statement "pcVar27 = *(code **)(pcVar27 + 0x7e818);" (assignment_expression "pcVar27 = *(code **)(pcVar27 + 0x7e818)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7e818)" * (cast_expression "(code **)(pcVar27 + 0x7e818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e818)" ( (binary_expression "pcVar27 + 0x7e818" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = local_254;" (assignment_expression "iVar4 = local_254" identifier = identifier) ;) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x4c);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x4c)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x4c)" * (cast_expression "(uint *)(iVar4 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x4c)" ( (binary_expression "iVar4 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = *(uint *)(iVar4 + 0x94);" (assignment_expression "uVar21 = *(uint *)(iVar4 + 0x94)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x94)" * (cast_expression "(uint *)(iVar4 + 0x94)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x94)" ( (binary_expression "iVar4 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(iVar4 + 0x48);" (assignment_expression "iVar6 = *(int *)(iVar4 + 0x48)" identifier = (pointer_expression "*(int *)(iVar4 + 0x48)" * (cast_expression "(int *)(iVar4 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = *(uint *)(iVar4 + 0x98);" (assignment_expression "uVar18 = *(uint *)(iVar4 + 0x98)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x98)" * (cast_expression "(uint *)(iVar4 + 0x98)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x98)" ( (binary_expression "iVar4 + 0x98" identifier + number_literal) ))))) ;) (if_statement "if (uVar21 <= *(uint *)(iVar4 + 0x98)) {\n    uVar18 = uVar21;\n  }" if (parenthesized_expression "(uVar21 <= *(uint *)(iVar4 + 0x98))" ( (binary_expression "uVar21 <= *(uint *)(iVar4 + 0x98)" identifier <= (pointer_expression "*(uint *)(iVar4 + 0x98)" * (cast_expression "(uint *)(iVar4 + 0x98)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x98)" ( (binary_expression "iVar4 + 0x98" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar18 = uVar21;\n  }" { (expression_statement "uVar18 = uVar21;" (assignment_expression "uVar18 = uVar21" identifier = identifier) ;) })) (expression_statement "puVar19 = *(undefined4 **)(iVar4 + 0xd0);" (assignment_expression "puVar19 = *(undefined4 **)(iVar4 + 0xd0)" identifier = (pointer_expression "*(undefined4 **)(iVar4 + 0xd0)" * (cast_expression "(undefined4 **)(iVar4 + 0xd0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xd0)" ( (binary_expression "iVar4 + 0xd0" identifier + number_literal) ))))) ;) (if_statement "if (0 < *(int *)(iVar4 + 0x60)) {\n    iVar24 = *(int *)(iVar4 + 0x5c);\n    iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24;\n    do {\n      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }\n      iVar24 = iVar24 + 0x30;\n    } while (iVar24 != iVar7);\n  }" if (parenthesized_expression "(0 < *(int *)(iVar4 + 0x60))" ( (binary_expression "0 < *(int *)(iVar4 + 0x60)" number_literal < (pointer_expression "*(int *)(iVar4 + 0x60)" * (cast_expression "(int *)(iVar4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x60)" ( (binary_expression "iVar4 + 0x60" identifier + number_literal) ))))) )) (compound_statement "{\n    iVar24 = *(int *)(iVar4 + 0x5c);\n    iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24;\n    do {\n      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }\n      iVar24 = iVar24 + 0x30;\n    } while (iVar24 != iVar7);\n  }" { (expression_statement "iVar24 = *(int *)(iVar4 + 0x5c);" (assignment_expression "iVar24 = *(int *)(iVar4 + 0x5c)" identifier = (pointer_expression "*(int *)(iVar4 + 0x5c)" * (cast_expression "(int *)(iVar4 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24;" (assignment_expression "iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24" identifier = (binary_expression "*(int *)(iVar4 + 0x60) * 0x30 + iVar24" (binary_expression "*(int *)(iVar4 + 0x60) * 0x30" (pointer_expression "*(int *)(iVar4 + 0x60)" * (cast_expression "(int *)(iVar4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x60)" ( (binary_expression "iVar4 + 0x60" identifier + number_literal) )))) * number_literal) + identifier)) ;) (do_statement "do {\n      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }\n      iVar24 = iVar24 + 0x30;\n    } while (iVar24 != iVar7);" do (compound_statement "{\n      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }\n      iVar24 = iVar24 + 0x30;\n    }" { (if_statement "if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }" if (parenthesized_expression "(*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0" (binary_expression "*(int *)(iVar24 + 8) == 0" (pointer_expression "*(int *)(iVar24 + 8)" * (cast_expression "(int *)(iVar24 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 8)" ( (binary_expression "iVar24 + 8" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(iVar24 + 0xc) == 0" (pointer_expression "*(int *)(iVar24 + 0xc)" * (cast_expression "(int *)(iVar24 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0xc)" ( (binary_expression "iVar24 + 0xc" identifier + number_literal) )))) == number_literal)) )) (compound_statement "{\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }" { (expression_statement "*(uint *)(iVar24 + 0xc) = uVar5;" (assignment_expression "*(uint *)(iVar24 + 0xc) = uVar5" (pointer_expression "*(uint *)(iVar24 + 0xc)" * (cast_expression "(uint *)(iVar24 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0xc)" ( (binary_expression "iVar24 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar24 + 8) = iVar6;" (assignment_expression "*(int *)(iVar24 + 8) = iVar6" (pointer_expression "*(int *)(iVar24 + 8)" * (cast_expression "(int *)(iVar24 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 8)" ( (binary_expression "iVar24 + 8" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar24 = iVar24 + 0x30;" (assignment_expression "iVar24 = iVar24 + 0x30" identifier = (binary_expression "iVar24 + 0x30" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 != iVar7)" ( (binary_expression "iVar24 != iVar7" identifier != identifier) )) ;) })) (if_statement "if (iVar6 != 0 || uVar5 != 0) {\n    lVar33 = (**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21);\n    lVar2 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar5 = (uint)lVar2;\n    iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20);\n  }" if (parenthesized_expression "(iVar6 != 0 || uVar5 != 0)" ( (binary_expression "iVar6 != 0 || uVar5 != 0" (binary_expression "iVar6 != 0" identifier != number_literal) || (binary_expression "uVar5 != 0" identifier != number_literal)) )) (compound_statement "{\n    lVar33 = (**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21);\n    lVar2 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar5 = (uint)lVar2;\n    iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20);\n  }" { (expression_statement "lVar33 = (**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21);" (assignment_expression "lVar33 = (**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21)" identifier = (call_expression "(**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7d930))" ( (pointer_expression "**(code **)(pcVar27 + 0x7d930)" * (pointer_expression "*(code **)(pcVar27 + 0x7d930)" * (cast_expression "(code **)(pcVar27 + 0x7d930)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7d930)" ( (binary_expression "pcVar27 + 0x7d930" identifier + number_literal) ))))) )) (argument_list "((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21)" ( (binary_expression "(uint)(uVar5 - 1 < uVar5) + iVar6 + -1" (binary_expression "(uint)(uVar5 - 1 < uVar5) + iVar6" (call_expression "(uint)(uVar5 - 1 < uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 - 1 < uVar5)" ( (binary_expression "uVar5 - 1 < uVar5" (binary_expression "uVar5 - 1" identifier - number_literal) < identifier) ))) + identifier) + number_literal) , (binary_expression "uVar5 - 1" identifier - number_literal) , number_literal , identifier )))) ;) (expression_statement "lVar2 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;" (assignment_expression "lVar2 = (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 "uVar5 = (uint)lVar2;" (assignment_expression "uVar5 = (uint)lVar2" identifier = (cast_expression "(uint)lVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20);" (assignment_expression "iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20)" identifier = (binary_expression "(int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 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)lVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar2 >> 0x20)" ( (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))))) ;) })) (expression_statement "*(uint *)(iVar4 + 0x4c) = uVar5;" (assignment_expression "*(uint *)(iVar4 + 0x4c) = uVar5" (pointer_expression "*(uint *)(iVar4 + 0x4c)" * (cast_expression "(uint *)(iVar4 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x4c)" ( (binary_expression "iVar4 + 0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar4 + 0x48) = iVar6;" (assignment_expression "*(int *)(iVar4 + 0x48) = iVar6" (pointer_expression "*(int *)(iVar4 + 0x48)" * (cast_expression "(int *)(iVar4 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar4 + 0x54) = uVar5;" (assignment_expression "*(uint *)(iVar4 + 0x54) = uVar5" (pointer_expression "*(uint *)(iVar4 + 0x54)" * (cast_expression "(uint *)(iVar4 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x54)" ( (binary_expression "iVar4 + 0x54" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar4 + 0x50) = iVar6;" (assignment_expression "*(int *)(iVar4 + 0x50) = iVar6" (pointer_expression "*(int *)(iVar4 + 0x50)" * (cast_expression "(int *)(iVar4 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x50)" ( (binary_expression "iVar4 + 0x50" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(char *)(iVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n    if (*(char *)(iVar4 + 5) != '\x04') {\n      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));\n      if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }\n      goto LAB_00077ad0;\n    }\n  }\n  else {\nLAB_00077ad0:\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n  }" if (parenthesized_expression "(*(char *)(iVar4 + 7) == '\0')" ( (binary_expression "*(char *)(iVar4 + 7) == '\0'" (pointer_expression "*(char *)(iVar4 + 7)" * (cast_expression "(char *)(iVar4 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 7)" ( (binary_expression "iVar4 + 7" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n    if (*(char *)(iVar4 + 5) != '\x04') {\n      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));\n      if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }\n      goto LAB_00077ad0;\n    }\n  }" { (expression_statement "iVar6 = *(int *)(pcVar27 + 0x7d92c);" (assignment_expression "iVar6 = *(int *)(pcVar27 + 0x7d92c)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7d92c)" * (cast_expression "(int *)(pcVar27 + 0x7d92c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7d92c)" ( (binary_expression "pcVar27 + 0x7d92c" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar4 + 5) != '\x04') {\n      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));\n      if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }\n      goto LAB_00077ad0;\n    }" if (parenthesized_expression "(*(char *)(iVar4 + 5) != '\x04')" ( (binary_expression "*(char *)(iVar4 + 5) != '\x04'" (pointer_expression "*(char *)(iVar4 + 5)" * (cast_expression "(char *)(iVar4 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 5)" ( (binary_expression "iVar4 + 5" identifier + number_literal) )))) != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));\n      if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }\n      goto LAB_00077ad0;\n    }" { (expression_statement "uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));" (assignment_expression "uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c))" identifier = (call_expression "(**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c))" (parenthesized_expression "(**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))" ( (pointer_expression "**(code **)(**(int **)(iVar4 + 0x3c) + 0x30)" * (pointer_expression "*(code **)(**(int **)(iVar4 + 0x3c) + 0x30)" * (cast_expression "(code **)(**(int **)(iVar4 + 0x3c) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar4 + 0x3c) + 0x30)" ( (binary_expression "**(int **)(iVar4 + 0x3c) + 0x30" (pointer_expression "**(int **)(iVar4 + 0x3c)" * (pointer_expression "*(int **)(iVar4 + 0x3c)" * (cast_expression "(int **)(iVar4 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x3c)" ( (binary_expression "iVar4 + 0x3c" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar4 + 0x3c))" ( (pointer_expression "*(int **)(iVar4 + 0x3c)" * (cast_expression "(int **)(iVar4 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x3c)" ( (binary_expression "iVar4 + 0x3c" identifier + number_literal) )))) )))) ;) (if_statement "if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }" if (parenthesized_expression "((uVar5 & 0x200) == 0)" ( (binary_expression "(uVar5 & 0x200) == 0" (parenthesized_expression "(uVar5 & 0x200)" ( (binary_expression "uVar5 & 0x200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }" { (expression_statement "*(undefined1 *)puVar19 = 0;" (assignment_expression "*(undefined1 *)puVar19 = 0" (pointer_expression "*(undefined1 *)puVar19" * (cast_expression "(undefined1 *)puVar19" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 1) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 1) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 1)" * (cast_expression "(undefined1 *)((int)puVar19 + 1)" ( (type_descriptor "undefined1 *" 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) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 2) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 2) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 2)" * (cast_expression "(undefined1 *)((int)puVar19 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 2)" ( (binary_expression "(int)puVar19 + 2" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 3) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 3) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 3)" * (cast_expression "(undefined1 *)((int)puVar19 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 3)" ( (binary_expression "(int)puVar19 + 3" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar19 + 1) = 0;" (assignment_expression "*(undefined1 *)(puVar19 + 1) = 0" (pointer_expression "*(undefined1 *)(puVar19 + 1)" * (cast_expression "(undefined1 *)(puVar19 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 1)" ( (binary_expression "puVar19 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 5) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 5) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 5)" * (cast_expression "(undefined1 *)((int)puVar19 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 5)" ( (binary_expression "(int)puVar19 + 5" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 6) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 6) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 6)" * (cast_expression "(undefined1 *)((int)puVar19 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 6)" ( (binary_expression "(int)puVar19 + 6" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 7) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 7)" * (cast_expression "(undefined1 *)((int)puVar19 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 7)" ( (binary_expression "(int)puVar19 + 7" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar19 + 2) = 0;" (assignment_expression "*(undefined1 *)(puVar19 + 2) = 0" (pointer_expression "*(undefined1 *)(puVar19 + 2)" * (cast_expression "(undefined1 *)(puVar19 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 2)" ( (binary_expression "puVar19 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 9) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 9) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 9)" * (cast_expression "(undefined1 *)((int)puVar19 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 9)" ( (binary_expression "(int)puVar19 + 9" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 10) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 10) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 10)" * (cast_expression "(undefined1 *)((int)puVar19 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 10)" ( (binary_expression "(int)puVar19 + 10" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 0xb) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 0xb) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 0xb)" * (cast_expression "(undefined1 *)((int)puVar19 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0xb)" ( (binary_expression "(int)puVar19 + 0xb" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00077b04;" goto statement_identifier ;) })) (goto_statement "goto LAB_00077ad0;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00077ad0:\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n  }" else (compound_statement "{\nLAB_00077ad0:\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n  }" { (labeled_statement "LAB_00077ad0:\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);" statement_identifier : (expression_statement "iVar6 = *(int *)(pcVar27 + 0x7d92c);" (assignment_expression "iVar6 = *(int *)(pcVar27 + 0x7d92c)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7d92c)" * (cast_expression "(int *)(pcVar27 + 0x7d92c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7d92c)" ( (binary_expression "pcVar27 + 0x7d92c" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar32 = *(undefined4 *)(iVar6 + 0x229c);" (assignment_expression "uVar32 = *(undefined4 *)(iVar6 + 0x229c)" identifier = (pointer_expression "*(undefined4 *)(iVar6 + 0x229c)" * (cast_expression "(undefined4 *)(iVar6 + 0x229c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x229c)" ( (binary_expression "iVar6 + 0x229c" identifier + number_literal) ))))) ;) (expression_statement "*puVar19 = *(undefined4 *)(iVar6 + 0x2298);" (assignment_expression "*puVar19 = *(undefined4 *)(iVar6 + 0x2298)" (pointer_expression "*puVar19" * identifier) = (pointer_expression "*(undefined4 *)(iVar6 + 0x2298)" * (cast_expression "(undefined4 *)(iVar6 + 0x2298)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2298)" ( (binary_expression "iVar6 + 0x2298" identifier + number_literal) ))))) ;) (expression_statement "puVar19[1] = uVar32;" (assignment_expression "puVar19[1] = uVar32" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar19 + 2) = 0xff;" (assignment_expression "*(undefined1 *)(puVar19 + 2) = 0xff" (pointer_expression "*(undefined1 *)(puVar19 + 2)" * (cast_expression "(undefined1 *)(puVar19 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 2)" ( (binary_expression "puVar19 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 9) = 0xff;" (assignment_expression "*(undefined1 *)((int)puVar19 + 9) = 0xff" (pointer_expression "*(undefined1 *)((int)puVar19 + 9)" * (cast_expression "(undefined1 *)((int)puVar19 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 9)" ( (binary_expression "(int)puVar19 + 9" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 10) = 0xff;" (assignment_expression "*(undefined1 *)((int)puVar19 + 10) = 0xff" (pointer_expression "*(undefined1 *)((int)puVar19 + 10)" * (cast_expression "(undefined1 *)((int)puVar19 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 10)" ( (binary_expression "(int)puVar19 + 10" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 0xb) = 0xff;" (assignment_expression "*(undefined1 *)((int)puVar19 + 0xb) = 0xff" (pointer_expression "*(undefined1 *)((int)puVar19 + 0xb)" * (cast_expression "(undefined1 *)((int)puVar19 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0xb)" ( (binary_expression "(int)puVar19 + 0xb" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_00077b04:\n  uVar5 = 0;" statement_identifier : (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;)) (expression_statement "(**(code **)(pcVar27 + 0x7dad8))(4,iVar4 + 0x30);" (call_expression "(**(code **)(pcVar27 + 0x7dad8))(4,iVar4 + 0x30)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7dad8))" ( (pointer_expression "**(code **)(pcVar27 + 0x7dad8)" * (pointer_expression "*(code **)(pcVar27 + 0x7dad8)" * (cast_expression "(code **)(pcVar27 + 0x7dad8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7dad8)" ( (binary_expression "pcVar27 + 0x7dad8" identifier + number_literal) ))))) )) (argument_list "(4,iVar4 + 0x30)" ( number_literal , (binary_expression "iVar4 + 0x30" identifier + number_literal) ))) ;) (expression_statement "uVar32 = *(undefined4 *)(iVar4 + 0x30);" (assignment_expression "uVar32 = *(undefined4 *)(iVar4 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x30)" * (cast_expression "(undefined4 *)(iVar4 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x30)" ( (binary_expression "iVar4 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(char *)((int)puVar19 + 0xf) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar19 + 0xf) = (char)uVar32" (pointer_expression "*(char *)((int)puVar19 + 0xf)" * (cast_expression "(char *)((int)puVar19 + 0xf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0xf)" ( (binary_expression "(int)puVar19 + 0xf" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)uVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(puVar19 + 3) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar19 + 3) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar19 + 3)" * (cast_expression "(char *)(puVar19 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 3)" ( (binary_expression "puVar19 + 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)puVar19 + 0xd) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar19 + 0xd) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar19 + 0xd)" * (cast_expression "(char *)((int)puVar19 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0xd)" ( (binary_expression "(int)puVar19 + 0xd" (cast_expression "(int)puVar19" ( (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)puVar19 + 0xe) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar19 + 0xe) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar19 + 0xe)" * (cast_expression "(char *)((int)puVar19 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0xe)" ( (binary_expression "(int)puVar19 + 0xe" (cast_expression "(int)puVar19" ( (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 *)(iVar4 + 0x1c);" (assignment_expression "uVar32 = *(undefined4 *)(iVar4 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "pcVar27 = *(code **)(pcVar27 + 0x7daa8);" (assignment_expression "pcVar27 = *(code **)(pcVar27 + 0x7daa8)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7daa8)" * (cast_expression "(code **)(pcVar27 + 0x7daa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7daa8)" ( (binary_expression "pcVar27 + 0x7daa8" identifier + number_literal) ))))) ;) (expression_statement "*(char *)((int)puVar19 + 0x13) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar19 + 0x13) = (char)uVar32" (pointer_expression "*(char *)((int)puVar19 + 0x13)" * (cast_expression "(char *)((int)puVar19 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0x13)" ( (binary_expression "(int)puVar19 + 0x13" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)uVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(puVar19 + 4) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar19 + 4) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar19 + 4)" * (cast_expression "(char *)(puVar19 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 4)" ( (binary_expression "puVar19 + 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)puVar19 + 0x11) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar19 + 0x11) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar19 + 0x11)" * (cast_expression "(char *)((int)puVar19 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0x11)" ( (binary_expression "(int)puVar19 + 0x11" (cast_expression "(int)puVar19" ( (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)puVar19 + 0x12) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar19 + 0x12) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar19 + 0x12)" * (cast_expression "(char *)((int)puVar19 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0x12)" ( (binary_expression "(int)puVar19 + 0x12" (cast_expression "(int)puVar19" ( (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 *)(iVar4 + 0x94);" (assignment_expression "uVar32 = *(undefined4 *)(iVar4 + 0x94)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x94)" * (cast_expression "(undefined4 *)(iVar4 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x94)" ( (binary_expression "iVar4 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(char *)((int)puVar19 + 0x17) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar19 + 0x17) = (char)uVar32" (pointer_expression "*(char *)((int)puVar19 + 0x17)" * (cast_expression "(char *)((int)puVar19 + 0x17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0x17)" ( (binary_expression "(int)puVar19 + 0x17" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)uVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(puVar19 + 5) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar19 + 5) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar19 + 5)" * (cast_expression "(char *)(puVar19 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 5)" ( (binary_expression "puVar19 + 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)puVar19 + 0x15) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar19 + 0x15) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar19 + 0x15)" * (cast_expression "(char *)((int)puVar19 + 0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0x15)" ( (binary_expression "(int)puVar19 + 0x15" (cast_expression "(int)puVar19" ( (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)puVar19 + 0x16) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar19 + 0x16) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar19 + 0x16)" * (cast_expression "(char *)((int)puVar19 + 0x16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0x16)" ( (binary_expression "(int)puVar19 + 0x16" (cast_expression "(int)puVar19" ( (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 *)(iVar4 + 0x98);" (assignment_expression "uVar32 = *(undefined4 *)(iVar4 + 0x98)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x98)" * (cast_expression "(undefined4 *)(iVar4 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x98)" ( (binary_expression "iVar4 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(char *)((int)puVar19 + 0x1b) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar19 + 0x1b) = (char)uVar32" (pointer_expression "*(char *)((int)puVar19 + 0x1b)" * (cast_expression "(char *)((int)puVar19 + 0x1b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0x1b)" ( (binary_expression "(int)puVar19 + 0x1b" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)uVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(puVar19 + 6) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar19 + 6) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar19 + 6)" * (cast_expression "(char *)(puVar19 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 6)" ( (binary_expression "puVar19 + 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)puVar19 + 0x19) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar19 + 0x19) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar19 + 0x19)" * (cast_expression "(char *)((int)puVar19 + 0x19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0x19)" ( (binary_expression "(int)puVar19 + 0x19" (cast_expression "(int)puVar19" ( (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)puVar19 + 0x1a) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar19 + 0x1a) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar19 + 0x1a)" * (cast_expression "(char *)((int)puVar19 + 0x1a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0x1a)" ( (binary_expression "(int)puVar19 + 0x1a" (cast_expression "(int)puVar19" ( (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 "(*pcVar27)(puVar19 + 7,0,uVar18 - 0x1c);" (call_expression "(*pcVar27)(puVar19 + 7,0,uVar18 - 0x1c)" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(puVar19 + 7,0,uVar18 - 0x1c)" ( (binary_expression "puVar19 + 7" identifier + number_literal) , number_literal , (binary_expression "uVar18 - 0x1c" identifier - number_literal) ))) ;) (do_statement "do {\n    if (*(uint *)(iVar4 + 0x94) <= uVar5) {\n      return 0;\n    }\n    iVar6 = **(int **)(iVar4 + 0x40);\n    uVar5 = uVar5 + uVar18;\n    iVar6 = (**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c));\n    uVar21 = *(uint *)(iVar4 + 0x4c);\n    uVar22 = uVar21 + uVar18;\n    *(uint *)(iVar4 + 0x4c) = uVar22;\n    *(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48);\n  } while (iVar6 == 0);" do (compound_statement "{\n    if (*(uint *)(iVar4 + 0x94) <= uVar5) {\n      return 0;\n    }\n    iVar6 = **(int **)(iVar4 + 0x40);\n    uVar5 = uVar5 + uVar18;\n    iVar6 = (**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c));\n    uVar21 = *(uint *)(iVar4 + 0x4c);\n    uVar22 = uVar21 + uVar18;\n    *(uint *)(iVar4 + 0x4c) = uVar22;\n    *(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48);\n  }" { (if_statement "if (*(uint *)(iVar4 + 0x94) <= uVar5) {\n      return 0;\n    }" if (parenthesized_expression "(*(uint *)(iVar4 + 0x94) <= uVar5)" ( (binary_expression "*(uint *)(iVar4 + 0x94) <= uVar5" (pointer_expression "*(uint *)(iVar4 + 0x94)" * (cast_expression "(uint *)(iVar4 + 0x94)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x94)" ( (binary_expression "iVar4 + 0x94" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = **(int **)(iVar4 + 0x40);" (assignment_expression "iVar6 = **(int **)(iVar4 + 0x40)" identifier = (pointer_expression "**(int **)(iVar4 + 0x40)" * (pointer_expression "*(int **)(iVar4 + 0x40)" * (cast_expression "(int **)(iVar4 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x40)" ( (binary_expression "iVar4 + 0x40" identifier + number_literal) )))))) ;) (expression_statement "uVar5 = uVar5 + uVar18;" (assignment_expression "uVar5 = uVar5 + uVar18" identifier = (binary_expression "uVar5 + uVar18" identifier + identifier)) ;) (expression_statement "iVar6 = (**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c));" (assignment_expression "iVar6 = (**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c))" identifier = (call_expression "(**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c))" (parenthesized_expression "(**(code **)(iVar6 + 0xc))" ( (pointer_expression "**(code **)(iVar6 + 0xc)" * (pointer_expression "*(code **)(iVar6 + 0xc)" * (cast_expression "(code **)(iVar6 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) ))))) )) (argument_list "(*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c))" ( (pointer_expression "*(int **)(iVar4 + 0x40)" * (cast_expression "(int **)(iVar4 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x40)" ( (binary_expression "iVar4 + 0x40" identifier + number_literal) )))) , identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(iVar4 + 0x48)" * (cast_expression "(undefined4 *)(iVar4 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar4 + 0x4c)" * (cast_expression "(undefined4 *)(iVar4 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x4c)" ( (binary_expression "iVar4 + 0x4c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar21 = *(uint *)(iVar4 + 0x4c);" (assignment_expression "uVar21 = *(uint *)(iVar4 + 0x4c)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x4c)" * (cast_expression "(uint *)(iVar4 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x4c)" ( (binary_expression "iVar4 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "uVar22 = uVar21 + uVar18;" (assignment_expression "uVar22 = uVar21 + uVar18" identifier = (binary_expression "uVar21 + uVar18" identifier + identifier)) ;) (expression_statement "*(uint *)(iVar4 + 0x4c) = uVar22;" (assignment_expression "*(uint *)(iVar4 + 0x4c) = uVar22" (pointer_expression "*(uint *)(iVar4 + 0x4c)" * (cast_expression "(uint *)(iVar4 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x4c)" ( (binary_expression "iVar4 + 0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48);" (assignment_expression "*(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48)" (pointer_expression "*(uint *)(iVar4 + 0x48)" * (cast_expression "(uint *)(iVar4 + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) )))) = (binary_expression "(uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48)" (call_expression "(uint)(uVar22 < uVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar22 < uVar21)" ( (binary_expression "uVar22 < uVar21" identifier < identifier) ))) + (pointer_expression "*(int *)(iVar4 + 0x48)" * (cast_expression "(int *)(iVar4 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) )))))) ;) }) while (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) ;) (return_statement "return iVar6;" return identifier ;) })))
(translation_unit "int unixGetTempname(int nBuf,char *zBuf)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  stat *psVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int in_t9;\n  code *pcVar12;\n  u64 r;\n  stat buf;\n  \n  piVar1 = *(int **)(in_t9 + 0x7f0c4);\n  iVar9 = *(int *)(in_t9 + 0x7ee18);\n  iVar6 = *piVar1;\n  piVar7 = *(int **)(in_t9 + 0x7ef94);\n  *zBuf = '\0';\n  iVar10 = *piVar7;\n  if (*(int *)(iVar9 + 0x4fd8) == 0) {\n    uVar4 = (**(code **)(in_t9 + 0x7f02c))(*(int *)(in_t9 + 0x7ee30) + -0x76b0);\n    *(undefined4 *)(iVar9 + 0x4fd8) = uVar4;\n    iVar2 = *(int *)(iVar9 + 0x4fdc);\n  }\n  else {\n    iVar2 = *(int *)(iVar9 + 0x4fdc);\n  }\n  if (iVar2 == 0) {\n    uVar4 = (**(code **)(in_t9 + 0x7f02c))(*(int *)(in_t9 + 0x7ee30) + -0x76a0);\n    *(undefined4 *)(iVar9 + 0x4fdc) = uVar4;\n  }\n  piVar7 = (int *)(iVar9 + 0x4fd8);\n  iVar2 = *(int *)(in_t9 + 0x7ee18);\n  while( true ) {\n    psVar8 = &buf;\n    if ((((iVar10 != 0) && (iVar3 = (**(code **)(iVar2 + 0x5184))(iVar10), iVar3 == 0)) &&\n        (psVar8 = (stat *)0x3, (buf.st_mode & 0xf000) == 0x4000)) &&\n       (iVar3 = (**(code **)(iVar2 + 0x516c))(iVar10), iVar3 == 0)) {\n      iVar3 = *(int *)(in_t9 + 0x7ee30);\n      iVar9 = 0xc;\n      goto LAB_00076640;\n    }\n    iVar11 = 0x190a;\n    if (piVar7 == (int *)(iVar9 + 0x4ff0)) break;\n    iVar10 = *piVar7;\n    piVar7 = piVar7 + 1;\n  }\n  goto LAB_0007658c;\n  while( true ) {\n    iVar9 = iVar9 + -1;\n    psVar8 = (stat *)0x0;\n    if (iVar9 == 0) goto LAB_0007669c;\n    iVar5 = (**(code **)(iVar2 + 0x516c))(zBuf);\n    iVar11 = 0;\n    if (iVar5 != 0) break;\nLAB_00076640:\n    (**(code **)(in_t9 + 0x7efdc))(8,&r);\n    zBuf[nBuf + -2] = '\0';\n    psVar8 = (stat *)zBuf;\n    (**(code **)(in_t9 + 0x7efe8))(nBuf,zBuf,iVar3 + -0x7698,iVar10,r._0_4_,r._4_4_,0);\n    if (zBuf[nBuf + -2] != '\0') {\nLAB_0007669c:\n      iVar11 = 1;\n      break;\n    }\n  }\nLAB_0007658c:\n  if (iVar6 == *piVar1) {\n    return iVar11;\n  }\n  pcVar12 = *(code **)(in_t9 + 0x7f09c);\n  (*pcVar12)();\n  if ((stat *)0x14 < psVar8) {\n    iVar6 = FUN_00076748();\n    return iVar6;\n  }\n                    /* WARNING: Could not recover jumptable at 0x00076718. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  iVar6 = (*(pcVar12 + *(int *)(*(int *)(pcVar12 + 0x7ec24) + -0x2974 + (int)psVar8 * 4) + 0x86bf0))\n                    ();\n  return iVar6;\n}\n\n" (function_definition "int unixGetTempname(int nBuf,char *zBuf)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  stat *psVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int in_t9;\n  code *pcVar12;\n  u64 r;\n  stat buf;\n  \n  piVar1 = *(int **)(in_t9 + 0x7f0c4);\n  iVar9 = *(int *)(in_t9 + 0x7ee18);\n  iVar6 = *piVar1;\n  piVar7 = *(int **)(in_t9 + 0x7ef94);\n  *zBuf = '\0';\n  iVar10 = *piVar7;\n  if (*(int *)(iVar9 + 0x4fd8) == 0) {\n    uVar4 = (**(code **)(in_t9 + 0x7f02c))(*(int *)(in_t9 + 0x7ee30) + -0x76b0);\n    *(undefined4 *)(iVar9 + 0x4fd8) = uVar4;\n    iVar2 = *(int *)(iVar9 + 0x4fdc);\n  }\n  else {\n    iVar2 = *(int *)(iVar9 + 0x4fdc);\n  }\n  if (iVar2 == 0) {\n    uVar4 = (**(code **)(in_t9 + 0x7f02c))(*(int *)(in_t9 + 0x7ee30) + -0x76a0);\n    *(undefined4 *)(iVar9 + 0x4fdc) = uVar4;\n  }\n  piVar7 = (int *)(iVar9 + 0x4fd8);\n  iVar2 = *(int *)(in_t9 + 0x7ee18);\n  while( true ) {\n    psVar8 = &buf;\n    if ((((iVar10 != 0) && (iVar3 = (**(code **)(iVar2 + 0x5184))(iVar10), iVar3 == 0)) &&\n        (psVar8 = (stat *)0x3, (buf.st_mode & 0xf000) == 0x4000)) &&\n       (iVar3 = (**(code **)(iVar2 + 0x516c))(iVar10), iVar3 == 0)) {\n      iVar3 = *(int *)(in_t9 + 0x7ee30);\n      iVar9 = 0xc;\n      goto LAB_00076640;\n    }\n    iVar11 = 0x190a;\n    if (piVar7 == (int *)(iVar9 + 0x4ff0)) break;\n    iVar10 = *piVar7;\n    piVar7 = piVar7 + 1;\n  }\n  goto LAB_0007658c;\n  while( true ) {\n    iVar9 = iVar9 + -1;\n    psVar8 = (stat *)0x0;\n    if (iVar9 == 0) goto LAB_0007669c;\n    iVar5 = (**(code **)(iVar2 + 0x516c))(zBuf);\n    iVar11 = 0;\n    if (iVar5 != 0) break;\nLAB_00076640:\n    (**(code **)(in_t9 + 0x7efdc))(8,&r);\n    zBuf[nBuf + -2] = '\0';\n    psVar8 = (stat *)zBuf;\n    (**(code **)(in_t9 + 0x7efe8))(nBuf,zBuf,iVar3 + -0x7698,iVar10,r._0_4_,r._4_4_,0);\n    if (zBuf[nBuf + -2] != '\0') {\nLAB_0007669c:\n      iVar11 = 1;\n      break;\n    }\n  }\nLAB_0007658c:\n  if (iVar6 == *piVar1) {\n    return iVar11;\n  }\n  pcVar12 = *(code **)(in_t9 + 0x7f09c);\n  (*pcVar12)();\n  if ((stat *)0x14 < psVar8) {\n    iVar6 = FUN_00076748();\n    return iVar6;\n  }\n                    /* WARNING: Could not recover jumptable at 0x00076718. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  iVar6 = (*(pcVar12 + *(int *)(*(int *)(pcVar12 + 0x7ec24) + -0x2974 + (int)psVar8 * 4) + 0x86bf0))\n                    ();\n  return iVar6;\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  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  stat *psVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int in_t9;\n  code *pcVar12;\n  u64 r;\n  stat buf;\n  \n  piVar1 = *(int **)(in_t9 + 0x7f0c4);\n  iVar9 = *(int *)(in_t9 + 0x7ee18);\n  iVar6 = *piVar1;\n  piVar7 = *(int **)(in_t9 + 0x7ef94);\n  *zBuf = '\0';\n  iVar10 = *piVar7;\n  if (*(int *)(iVar9 + 0x4fd8) == 0) {\n    uVar4 = (**(code **)(in_t9 + 0x7f02c))(*(int *)(in_t9 + 0x7ee30) + -0x76b0);\n    *(undefined4 *)(iVar9 + 0x4fd8) = uVar4;\n    iVar2 = *(int *)(iVar9 + 0x4fdc);\n  }\n  else {\n    iVar2 = *(int *)(iVar9 + 0x4fdc);\n  }\n  if (iVar2 == 0) {\n    uVar4 = (**(code **)(in_t9 + 0x7f02c))(*(int *)(in_t9 + 0x7ee30) + -0x76a0);\n    *(undefined4 *)(iVar9 + 0x4fdc) = uVar4;\n  }\n  piVar7 = (int *)(iVar9 + 0x4fd8);\n  iVar2 = *(int *)(in_t9 + 0x7ee18);\n  while( true ) {\n    psVar8 = &buf;\n    if ((((iVar10 != 0) && (iVar3 = (**(code **)(iVar2 + 0x5184))(iVar10), iVar3 == 0)) &&\n        (psVar8 = (stat *)0x3, (buf.st_mode & 0xf000) == 0x4000)) &&\n       (iVar3 = (**(code **)(iVar2 + 0x516c))(iVar10), iVar3 == 0)) {\n      iVar3 = *(int *)(in_t9 + 0x7ee30);\n      iVar9 = 0xc;\n      goto LAB_00076640;\n    }\n    iVar11 = 0x190a;\n    if (piVar7 == (int *)(iVar9 + 0x4ff0)) break;\n    iVar10 = *piVar7;\n    piVar7 = piVar7 + 1;\n  }\n  goto LAB_0007658c;\n  while( true ) {\n    iVar9 = iVar9 + -1;\n    psVar8 = (stat *)0x0;\n    if (iVar9 == 0) goto LAB_0007669c;\n    iVar5 = (**(code **)(iVar2 + 0x516c))(zBuf);\n    iVar11 = 0;\n    if (iVar5 != 0) break;\nLAB_00076640:\n    (**(code **)(in_t9 + 0x7efdc))(8,&r);\n    zBuf[nBuf + -2] = '\0';\n    psVar8 = (stat *)zBuf;\n    (**(code **)(in_t9 + 0x7efe8))(nBuf,zBuf,iVar3 + -0x7698,iVar10,r._0_4_,r._4_4_,0);\n    if (zBuf[nBuf + -2] != '\0') {\nLAB_0007669c:\n      iVar11 = 1;\n      break;\n    }\n  }\nLAB_0007658c:\n  if (iVar6 == *piVar1) {\n    return iVar11;\n  }\n  pcVar12 = *(code **)(in_t9 + 0x7f09c);\n  (*pcVar12)();\n  if ((stat *)0x14 < psVar8) {\n    iVar6 = FUN_00076748();\n    return iVar6;\n  }\n                    /* WARNING: Could not recover jumptable at 0x00076718. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  iVar6 = (*(pcVar12 + *(int *)(*(int *)(pcVar12 + 0x7ec24) + -0x2974 + (int)psVar8 * 4) + 0x86bf0))\n                    ();\n  return iVar6;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "stat *psVar8;" type_identifier (pointer_declarator "*psVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "u64 r;" type_identifier identifier ;) (declaration "stat buf;" type_identifier identifier ;) (expression_statement "piVar1 = *(int **)(in_t9 + 0x7f0c4);" (assignment_expression "piVar1 = *(int **)(in_t9 + 0x7f0c4)" identifier = (pointer_expression "*(int **)(in_t9 + 0x7f0c4)" * (cast_expression "(int **)(in_t9 + 0x7f0c4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7f0c4)" ( (binary_expression "in_t9 + 0x7f0c4" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(in_t9 + 0x7ee18);" (assignment_expression "iVar9 = *(int *)(in_t9 + 0x7ee18)" identifier = (pointer_expression "*(int *)(in_t9 + 0x7ee18)" * (cast_expression "(int *)(in_t9 + 0x7ee18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x7ee18)" ( (binary_expression "in_t9 + 0x7ee18" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *piVar1;" (assignment_expression "iVar6 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "piVar7 = *(int **)(in_t9 + 0x7ef94);" (assignment_expression "piVar7 = *(int **)(in_t9 + 0x7ef94)" identifier = (pointer_expression "*(int **)(in_t9 + 0x7ef94)" * (cast_expression "(int **)(in_t9 + 0x7ef94)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7ef94)" ( (binary_expression "in_t9 + 0x7ef94" identifier + number_literal) ))))) ;) (expression_statement "*zBuf = '\0';" (assignment_expression "*zBuf = '\0'" (pointer_expression "*zBuf" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar10 = *piVar7;" (assignment_expression "iVar10 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (if_statement "if (*(int *)(iVar9 + 0x4fd8) == 0) {\n    uVar4 = (**(code **)(in_t9 + 0x7f02c))(*(int *)(in_t9 + 0x7ee30) + -0x76b0);\n    *(undefined4 *)(iVar9 + 0x4fd8) = uVar4;\n    iVar2 = *(int *)(iVar9 + 0x4fdc);\n  }\n  else {\n    iVar2 = *(int *)(iVar9 + 0x4fdc);\n  }" if (parenthesized_expression "(*(int *)(iVar9 + 0x4fd8) == 0)" ( (binary_expression "*(int *)(iVar9 + 0x4fd8) == 0" (pointer_expression "*(int *)(iVar9 + 0x4fd8)" * (cast_expression "(int *)(iVar9 + 0x4fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4fd8)" ( (binary_expression "iVar9 + 0x4fd8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar4 = (**(code **)(in_t9 + 0x7f02c))(*(int *)(in_t9 + 0x7ee30) + -0x76b0);\n    *(undefined4 *)(iVar9 + 0x4fd8) = uVar4;\n    iVar2 = *(int *)(iVar9 + 0x4fdc);\n  }" { (expression_statement "uVar4 = (**(code **)(in_t9 + 0x7f02c))(*(int *)(in_t9 + 0x7ee30) + -0x76b0);" (assignment_expression "uVar4 = (**(code **)(in_t9 + 0x7f02c))(*(int *)(in_t9 + 0x7ee30) + -0x76b0)" identifier = (call_expression "(**(code **)(in_t9 + 0x7f02c))(*(int *)(in_t9 + 0x7ee30) + -0x76b0)" (parenthesized_expression "(**(code **)(in_t9 + 0x7f02c))" ( (pointer_expression "**(code **)(in_t9 + 0x7f02c)" * (pointer_expression "*(code **)(in_t9 + 0x7f02c)" * (cast_expression "(code **)(in_t9 + 0x7f02c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7f02c)" ( (binary_expression "in_t9 + 0x7f02c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(in_t9 + 0x7ee30) + -0x76b0)" ( (binary_expression "*(int *)(in_t9 + 0x7ee30) + -0x76b0" (pointer_expression "*(int *)(in_t9 + 0x7ee30)" * (cast_expression "(int *)(in_t9 + 0x7ee30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x7ee30)" ( (binary_expression "in_t9 + 0x7ee30" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*(undefined4 *)(iVar9 + 0x4fd8) = uVar4;" (assignment_expression "*(undefined4 *)(iVar9 + 0x4fd8) = uVar4" (pointer_expression "*(undefined4 *)(iVar9 + 0x4fd8)" * (cast_expression "(undefined4 *)(iVar9 + 0x4fd8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4fd8)" ( (binary_expression "iVar9 + 0x4fd8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar2 = *(int *)(iVar9 + 0x4fdc);" (assignment_expression "iVar2 = *(int *)(iVar9 + 0x4fdc)" identifier = (pointer_expression "*(int *)(iVar9 + 0x4fdc)" * (cast_expression "(int *)(iVar9 + 0x4fdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4fdc)" ( (binary_expression "iVar9 + 0x4fdc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    iVar2 = *(int *)(iVar9 + 0x4fdc);\n  }" else (compound_statement "{\n    iVar2 = *(int *)(iVar9 + 0x4fdc);\n  }" { (expression_statement "iVar2 = *(int *)(iVar9 + 0x4fdc);" (assignment_expression "iVar2 = *(int *)(iVar9 + 0x4fdc)" identifier = (pointer_expression "*(int *)(iVar9 + 0x4fdc)" * (cast_expression "(int *)(iVar9 + 0x4fdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4fdc)" ( (binary_expression "iVar9 + 0x4fdc" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar2 == 0) {\n    uVar4 = (**(code **)(in_t9 + 0x7f02c))(*(int *)(in_t9 + 0x7ee30) + -0x76a0);\n    *(undefined4 *)(iVar9 + 0x4fdc) = uVar4;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar4 = (**(code **)(in_t9 + 0x7f02c))(*(int *)(in_t9 + 0x7ee30) + -0x76a0);\n    *(undefined4 *)(iVar9 + 0x4fdc) = uVar4;\n  }" { (expression_statement "uVar4 = (**(code **)(in_t9 + 0x7f02c))(*(int *)(in_t9 + 0x7ee30) + -0x76a0);" (assignment_expression "uVar4 = (**(code **)(in_t9 + 0x7f02c))(*(int *)(in_t9 + 0x7ee30) + -0x76a0)" identifier = (call_expression "(**(code **)(in_t9 + 0x7f02c))(*(int *)(in_t9 + 0x7ee30) + -0x76a0)" (parenthesized_expression "(**(code **)(in_t9 + 0x7f02c))" ( (pointer_expression "**(code **)(in_t9 + 0x7f02c)" * (pointer_expression "*(code **)(in_t9 + 0x7f02c)" * (cast_expression "(code **)(in_t9 + 0x7f02c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7f02c)" ( (binary_expression "in_t9 + 0x7f02c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(in_t9 + 0x7ee30) + -0x76a0)" ( (binary_expression "*(int *)(in_t9 + 0x7ee30) + -0x76a0" (pointer_expression "*(int *)(in_t9 + 0x7ee30)" * (cast_expression "(int *)(in_t9 + 0x7ee30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x7ee30)" ( (binary_expression "in_t9 + 0x7ee30" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*(undefined4 *)(iVar9 + 0x4fdc) = uVar4;" (assignment_expression "*(undefined4 *)(iVar9 + 0x4fdc) = uVar4" (pointer_expression "*(undefined4 *)(iVar9 + 0x4fdc)" * (cast_expression "(undefined4 *)(iVar9 + 0x4fdc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4fdc)" ( (binary_expression "iVar9 + 0x4fdc" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "piVar7 = (int *)(iVar9 + 0x4fd8);" (assignment_expression "piVar7 = (int *)(iVar9 + 0x4fd8)" identifier = (cast_expression "(int *)(iVar9 + 0x4fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4fd8)" ( (binary_expression "iVar9 + 0x4fd8" identifier + number_literal) )))) ;) (expression_statement "iVar2 = *(int *)(in_t9 + 0x7ee18);" (assignment_expression "iVar2 = *(int *)(in_t9 + 0x7ee18)" identifier = (pointer_expression "*(int *)(in_t9 + 0x7ee18)" * (cast_expression "(int *)(in_t9 + 0x7ee18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x7ee18)" ( (binary_expression "in_t9 + 0x7ee18" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n    psVar8 = &buf;\n    if ((((iVar10 != 0) && (iVar3 = (**(code **)(iVar2 + 0x5184))(iVar10), iVar3 == 0)) &&\n        (psVar8 = (stat *)0x3, (buf.st_mode & 0xf000) == 0x4000)) &&\n       (iVar3 = (**(code **)(iVar2 + 0x516c))(iVar10), iVar3 == 0)) {\n      iVar3 = *(int *)(in_t9 + 0x7ee30);\n      iVar9 = 0xc;\n      goto LAB_00076640;\n    }\n    iVar11 = 0x190a;\n    if (piVar7 == (int *)(iVar9 + 0x4ff0)) break;\n    iVar10 = *piVar7;\n    piVar7 = piVar7 + 1;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    psVar8 = &buf;\n    if ((((iVar10 != 0) && (iVar3 = (**(code **)(iVar2 + 0x5184))(iVar10), iVar3 == 0)) &&\n        (psVar8 = (stat *)0x3, (buf.st_mode & 0xf000) == 0x4000)) &&\n       (iVar3 = (**(code **)(iVar2 + 0x516c))(iVar10), iVar3 == 0)) {\n      iVar3 = *(int *)(in_t9 + 0x7ee30);\n      iVar9 = 0xc;\n      goto LAB_00076640;\n    }\n    iVar11 = 0x190a;\n    if (piVar7 == (int *)(iVar9 + 0x4ff0)) break;\n    iVar10 = *piVar7;\n    piVar7 = piVar7 + 1;\n  }" { (expression_statement "psVar8 = &buf;" (assignment_expression "psVar8 = &buf" identifier = (pointer_expression "&buf" & identifier)) ;) (if_statement "if ((((iVar10 != 0) && (iVar3 = (**(code **)(iVar2 + 0x5184))(iVar10), iVar3 == 0)) &&\n        (psVar8 = (stat *)0x3, (buf.st_mode & 0xf000) == 0x4000)) &&\n       (iVar3 = (**(code **)(iVar2 + 0x516c))(iVar10), iVar3 == 0)) {\n      iVar3 = *(int *)(in_t9 + 0x7ee30);\n      iVar9 = 0xc;\n      goto LAB_00076640;\n    }" if (parenthesized_expression "((((iVar10 != 0) && (iVar3 = (**(code **)(iVar2 + 0x5184))(iVar10), iVar3 == 0)) &&\n        (psVar8 = (stat *)0x3, (buf.st_mode & 0xf000) == 0x4000)) &&\n       (iVar3 = (**(code **)(iVar2 + 0x516c))(iVar10), iVar3 == 0))" ( (binary_expression "(((iVar10 != 0) && (iVar3 = (**(code **)(iVar2 + 0x5184))(iVar10), iVar3 == 0)) &&\n        (psVar8 = (stat *)0x3, (buf.st_mode & 0xf000) == 0x4000)) &&\n       (iVar3 = (**(code **)(iVar2 + 0x516c))(iVar10), iVar3 == 0)" (parenthesized_expression "(((iVar10 != 0) && (iVar3 = (**(code **)(iVar2 + 0x5184))(iVar10), iVar3 == 0)) &&\n        (psVar8 = (stat *)0x3, (buf.st_mode & 0xf000) == 0x4000))" ( (binary_expression "((iVar10 != 0) && (iVar3 = (**(code **)(iVar2 + 0x5184))(iVar10), iVar3 == 0)) &&\n        (psVar8 = (stat *)0x3, (buf.st_mode & 0xf000) == 0x4000)" (parenthesized_expression "((iVar10 != 0) && (iVar3 = (**(code **)(iVar2 + 0x5184))(iVar10), iVar3 == 0))" ( (binary_expression "(iVar10 != 0) && (iVar3 = (**(code **)(iVar2 + 0x5184))(iVar10), iVar3 == 0)" (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = (**(code **)(iVar2 + 0x5184))(iVar10), iVar3 == 0)" ( (comma_expression "iVar3 = (**(code **)(iVar2 + 0x5184))(iVar10), iVar3 == 0" (assignment_expression "iVar3 = (**(code **)(iVar2 + 0x5184))(iVar10)" identifier = (call_expression "(**(code **)(iVar2 + 0x5184))(iVar10)" (parenthesized_expression "(**(code **)(iVar2 + 0x5184))" ( (pointer_expression "**(code **)(iVar2 + 0x5184)" * (pointer_expression "*(code **)(iVar2 + 0x5184)" * (cast_expression "(code **)(iVar2 + 0x5184)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x5184)" ( (binary_expression "iVar2 + 0x5184" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(psVar8 = (stat *)0x3, (buf.st_mode & 0xf000) == 0x4000)" ( (comma_expression "psVar8 = (stat *)0x3, (buf.st_mode & 0xf000) == 0x4000" (assignment_expression "psVar8 = (stat *)0x3" identifier = (cast_expression "(stat *)0x3" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (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 **)(iVar2 + 0x516c))(iVar10), iVar3 == 0)" ( (comma_expression "iVar3 = (**(code **)(iVar2 + 0x516c))(iVar10), iVar3 == 0" (assignment_expression "iVar3 = (**(code **)(iVar2 + 0x516c))(iVar10)" identifier = (call_expression "(**(code **)(iVar2 + 0x516c))(iVar10)" (parenthesized_expression "(**(code **)(iVar2 + 0x516c))" ( (pointer_expression "**(code **)(iVar2 + 0x516c)" * (pointer_expression "*(code **)(iVar2 + 0x516c)" * (cast_expression "(code **)(iVar2 + 0x516c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x516c)" ( (binary_expression "iVar2 + 0x516c" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      iVar3 = *(int *)(in_t9 + 0x7ee30);\n      iVar9 = 0xc;\n      goto LAB_00076640;\n    }" { (expression_statement "iVar3 = *(int *)(in_t9 + 0x7ee30);" (assignment_expression "iVar3 = *(int *)(in_t9 + 0x7ee30)" identifier = (pointer_expression "*(int *)(in_t9 + 0x7ee30)" * (cast_expression "(int *)(in_t9 + 0x7ee30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x7ee30)" ( (binary_expression "in_t9 + 0x7ee30" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" identifier = number_literal) ;) (goto_statement "goto LAB_00076640;" goto statement_identifier ;) })) (expression_statement "iVar11 = 0x190a;" (assignment_expression "iVar11 = 0x190a" identifier = number_literal) ;) (if_statement "if (piVar7 == (int *)(iVar9 + 0x4ff0)) break;" if (parenthesized_expression "(piVar7 == (int *)(iVar9 + 0x4ff0))" ( (binary_expression "piVar7 == (int *)(iVar9 + 0x4ff0)" identifier == (cast_expression "(int *)(iVar9 + 0x4ff0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4ff0)" ( (binary_expression "iVar9 + 0x4ff0" identifier + number_literal) )))) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = *piVar7;" (assignment_expression "iVar10 = *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_0007658c;" goto statement_identifier ;) (while_statement "while( true ) {\n    iVar9 = iVar9 + -1;\n    psVar8 = (stat *)0x0;\n    if (iVar9 == 0) goto LAB_0007669c;\n    iVar5 = (**(code **)(iVar2 + 0x516c))(zBuf);\n    iVar11 = 0;\n    if (iVar5 != 0) break;\nLAB_00076640:\n    (**(code **)(in_t9 + 0x7efdc))(8,&r);\n    zBuf[nBuf + -2] = '\0';\n    psVar8 = (stat *)zBuf;\n    (**(code **)(in_t9 + 0x7efe8))(nBuf,zBuf,iVar3 + -0x7698,iVar10,r._0_4_,r._4_4_,0);\n    if (zBuf[nBuf + -2] != '\0') {\nLAB_0007669c:\n      iVar11 = 1;\n      break;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar9 = iVar9 + -1;\n    psVar8 = (stat *)0x0;\n    if (iVar9 == 0) goto LAB_0007669c;\n    iVar5 = (**(code **)(iVar2 + 0x516c))(zBuf);\n    iVar11 = 0;\n    if (iVar5 != 0) break;\nLAB_00076640:\n    (**(code **)(in_t9 + 0x7efdc))(8,&r);\n    zBuf[nBuf + -2] = '\0';\n    psVar8 = (stat *)zBuf;\n    (**(code **)(in_t9 + 0x7efe8))(nBuf,zBuf,iVar3 + -0x7698,iVar10,r._0_4_,r._4_4_,0);\n    if (zBuf[nBuf + -2] != '\0') {\nLAB_0007669c:\n      iVar11 = 1;\n      break;\n    }\n  }" { (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "psVar8 = (stat *)0x0;" (assignment_expression "psVar8 = (stat *)0x0" identifier = (cast_expression "(stat *)0x0" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar9 == 0) goto LAB_0007669c;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0007669c;" goto statement_identifier ;)) (expression_statement "iVar5 = (**(code **)(iVar2 + 0x516c))(zBuf);" (assignment_expression "iVar5 = (**(code **)(iVar2 + 0x516c))(zBuf)" identifier = (call_expression "(**(code **)(iVar2 + 0x516c))(zBuf)" (parenthesized_expression "(**(code **)(iVar2 + 0x516c))" ( (pointer_expression "**(code **)(iVar2 + 0x516c)" * (pointer_expression "*(code **)(iVar2 + 0x516c)" * (cast_expression "(code **)(iVar2 + 0x516c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x516c)" ( (binary_expression "iVar2 + 0x516c" identifier + number_literal) ))))) )) (argument_list "(zBuf)" ( identifier )))) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 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_00076640:\n    (**(code **)(in_t9 + 0x7efdc))(8,&r);" statement_identifier : (expression_statement "(**(code **)(in_t9 + 0x7efdc))(8,&r);" (call_expression "(**(code **)(in_t9 + 0x7efdc))(8,&r)" (parenthesized_expression "(**(code **)(in_t9 + 0x7efdc))" ( (pointer_expression "**(code **)(in_t9 + 0x7efdc)" * (pointer_expression "*(code **)(in_t9 + 0x7efdc)" * (cast_expression "(code **)(in_t9 + 0x7efdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7efdc)" ( (binary_expression "in_t9 + 0x7efdc" identifier + number_literal) ))))) )) (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 "psVar8 = (stat *)zBuf;" (assignment_expression "psVar8 = (stat *)zBuf" identifier = (cast_expression "(stat *)zBuf" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(**(code **)(in_t9 + 0x7efe8))(nBuf,zBuf,iVar3 + -0x7698,iVar10,r._0_4_,r._4_4_,0);" (call_expression "(**(code **)(in_t9 + 0x7efe8))(nBuf,zBuf,iVar3 + -0x7698,iVar10,r._0_4_,r._4_4_,0)" (parenthesized_expression "(**(code **)(in_t9 + 0x7efe8))" ( (pointer_expression "**(code **)(in_t9 + 0x7efe8)" * (pointer_expression "*(code **)(in_t9 + 0x7efe8)" * (cast_expression "(code **)(in_t9 + 0x7efe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7efe8)" ( (binary_expression "in_t9 + 0x7efe8" identifier + number_literal) ))))) )) (argument_list "(nBuf,zBuf,iVar3 + -0x7698,iVar10,r._0_4_,r._4_4_,0)" ( identifier , identifier , (binary_expression "iVar3 + -0x7698" identifier + number_literal) , 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') {\nLAB_0007669c:\n      iVar11 = 1;\n      break;\n    }" if (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 ')) )) (compound_statement "{\nLAB_0007669c:\n      iVar11 = 1;\n      break;\n    }" { (labeled_statement "LAB_0007669c:\n      iVar11 = 1;" statement_identifier : (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;)) (break_statement "break;" break ;) })) })) (labeled_statement "LAB_0007658c:\n  if (iVar6 == *piVar1) {\n    return iVar11;\n  }" statement_identifier : (if_statement "if (iVar6 == *piVar1) {\n    return iVar11;\n  }" if (parenthesized_expression "(iVar6 == *piVar1)" ( (binary_expression "iVar6 == *piVar1" identifier == (pointer_expression "*piVar1" * identifier)) )) (compound_statement "{\n    return iVar11;\n  }" { (return_statement "return iVar11;" return identifier ;) }))) (expression_statement "pcVar12 = *(code **)(in_t9 + 0x7f09c);" (assignment_expression "pcVar12 = *(code **)(in_t9 + 0x7f09c)" identifier = (pointer_expression "*(code **)(in_t9 + 0x7f09c)" * (cast_expression "(code **)(in_t9 + 0x7f09c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7f09c)" ( (binary_expression "in_t9 + 0x7f09c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if ((stat *)0x14 < psVar8) {\n    iVar6 = FUN_00076748();\n    return iVar6;\n  }" if (parenthesized_expression "((stat *)0x14 < psVar8)" ( (binary_expression "(stat *)0x14 < psVar8" (cast_expression "(stat *)0x14" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n    iVar6 = FUN_00076748();\n    return iVar6;\n  }" { (expression_statement "iVar6 = FUN_00076748();" (assignment_expression "iVar6 = FUN_00076748()" identifier = (call_expression "FUN_00076748()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar6;" return identifier ;) })) comment comment (expression_statement "iVar6 = (*(pcVar12 + *(int *)(*(int *)(pcVar12 + 0x7ec24) + -0x2974 + (int)psVar8 * 4) + 0x86bf0))\n                    ();" (assignment_expression "iVar6 = (*(pcVar12 + *(int *)(*(int *)(pcVar12 + 0x7ec24) + -0x2974 + (int)psVar8 * 4) + 0x86bf0))\n                    ()" identifier = (call_expression "(*(pcVar12 + *(int *)(*(int *)(pcVar12 + 0x7ec24) + -0x2974 + (int)psVar8 * 4) + 0x86bf0))\n                    ()" (parenthesized_expression "(*(pcVar12 + *(int *)(*(int *)(pcVar12 + 0x7ec24) + -0x2974 + (int)psVar8 * 4) + 0x86bf0))" ( (pointer_expression "*(pcVar12 + *(int *)(*(int *)(pcVar12 + 0x7ec24) + -0x2974 + (int)psVar8 * 4) + 0x86bf0)" * (parenthesized_expression "(pcVar12 + *(int *)(*(int *)(pcVar12 + 0x7ec24) + -0x2974 + (int)psVar8 * 4) + 0x86bf0)" ( (binary_expression "pcVar12 + *(int *)(*(int *)(pcVar12 + 0x7ec24) + -0x2974 + (int)psVar8 * 4) + 0x86bf0" (binary_expression "pcVar12 + *(int *)(*(int *)(pcVar12 + 0x7ec24) + -0x2974 + (int)psVar8 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(pcVar12 + 0x7ec24) + -0x2974 + (int)psVar8 * 4)" * (cast_expression "(int *)(*(int *)(pcVar12 + 0x7ec24) + -0x2974 + (int)psVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar12 + 0x7ec24) + -0x2974 + (int)psVar8 * 4)" ( (binary_expression "*(int *)(pcVar12 + 0x7ec24) + -0x2974 + (int)psVar8 * 4" (binary_expression "*(int *)(pcVar12 + 0x7ec24) + -0x2974" (pointer_expression "*(int *)(pcVar12 + 0x7ec24)" * (cast_expression "(int *)(pcVar12 + 0x7ec24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x7ec24)" ( (binary_expression "pcVar12 + 0x7ec24" identifier + number_literal) )))) + number_literal) + (binary_expression "(int)psVar8 * 4" (cast_expression "(int)psVar8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) + number_literal) ))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar6;" return identifier ;) })))
(translation_unit "int FUN_000764a4(int param_1,undefined4 *param_2,int *param_3,uint param_4)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  int in_zero;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  char cVar11;\n  int iVar9;\n  int iVar10;\n  int *piVar12;\n  char *pcVar13;\n  undefined4 *puVar14;\n  int *piVar15;\n  undefined4 *puVar16;\n  uint *puVar17;\n  uint uVar18;\n  undefined4 *puVar19;\n  undefined *puVar20;\n  uint uVar21;\n  uint uVar22;\n  int iVar23;\n  int iVar24;\n  uint *puVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  code *pcVar28;\n  int *piVar29;\n  int *piVar30;\n  uint uVar31;\n  undefined4 uVar32;\n  longlong lVar33;\n  undefined4 local_730;\n  uint local_728;\n  undefined4 local_720;\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  int 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  int 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  puVar3 = PTR___stack_chk_guard_000f5568;\n  puVar26 = PTR_sqlite3_temp_directory_000f5438;\n  puVar20 = PTR_DAT_000f52bc;\n  local_2c = *(int *)PTR___stack_chk_guard_000f5568;\n  *(undefined1 *)param_2 = 0;\n  uVar18 = *(uint *)puVar26;\n  if (*(int *)(puVar20 + 0x4fd8) == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0);\n    *(undefined4 *)(puVar20 + 0x4fd8) = uVar32;\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }\n  else {\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }\n  if (iVar4 == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0);\n    *(undefined4 *)(puVar20 + 0x4fdc) = uVar32;\n  }\n  puVar26 = PTR_DAT_000f52bc;\n  puVar17 = (uint *)(puVar20 + 0x4fd8);\n  puVar25 = (uint *)(puVar20 + 0x4ff0);\n  puVar19 = auStack_d0;\n  piVar29 = (int *)0x4000;\n  puVar20 = PTR_DAT_000f52bc + 0x5150;\n  while( true ) {\n    puVar14 = puVar19;\n    if ((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)) {\n      puVar17 = (uint *)0xc;\n      puVar25 = (uint *)((int)param_2 + param_1 + -2);\n      puVar19 = &local_d8;\n      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);\n      goto LAB_00076640;\n    }\n    local_234 = 0x190a;\n    if (puVar17 == puVar25) break;\n    uVar18 = *puVar17;\n    puVar17 = puVar17 + 1;\n  }\n  goto LAB_0007658c;\n  while ((param_4 & 3) != piVar12[1]) {\nLAB_00077354:\n    piVar15 = piVar12;\n    piVar12 = (int *)piVar15[2];\n    if (piVar12 == (int *)0x0) goto LAB_00077360;\n  }\n  piVar15 = piVar15 + 2;\nLAB_000776f8:\n  iVar24 = piVar30[4];\n  pcVar28 = *(code **)(pcVar27 + 0x7e748);\n  *piVar15 = piVar12[2];\n  (*pcVar28)(iVar24);\n  (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\n  iVar6 = *piVar12;\n  param_3[7] = (int)piVar12;\n  goto LAB_00076e20;\nLAB_00077360:\n  (**(code **)(pcVar27 + 0x7e748))(piVar30[4]);\n  (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\n  goto LAB_00077524;\n  while( true ) {\n    puVar17 = (uint *)((int)puVar17 + -1);\n    puVar14 = (undefined4 *)0x0;\n    if (puVar17 == (uint *)0x0) goto LAB_0007669c;\n    iVar4 = (**(code **)(puVar26 + 0x516c))(param_2);\n    local_234 = 0;\n    if (iVar4 != 0) break;\nLAB_00076640:\n    (*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);\n    *(char *)puVar25 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar14 = param_2;\n    param_3 = piVar29;\n    param_4 = uVar18;\n    (*(code *)PTR_sqlite3_snprintf_000f548c)(param_1);\n    if (*(char *)puVar25 != '\0') {\nLAB_0007669c:\n      local_234 = 1;\n      break;\n    }\n  }\nLAB_0007658c:\n  if (local_2c == *(int *)puVar3) {\n    return local_234;\n  }\n  uVar32 = 0x766b0;\n  puVar26 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  local_208 = puVar26 + 0x86bf0;\n  piVar30 = *(int **)(puVar26 + 0x7eeb8);\n  iVar4 = *piVar30;\n  local_134 = iVar4;\n  local_130 = puVar17;\n  local_12c = uVar18;\n  local_128 = puVar20;\n  local_124 = param_2;\n  local_120 = param_1;\n  local_11c = puVar19;\n  local_118 = puVar25;\n  local_114 = local_234;\n  local_110 = piVar29;\n  local_10c = uVar32;\n  if (puVar14 < &DAT_00000015) {\n                    \n                    \n    iVar4 = (*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))();\n    return iVar4;\n  }\n  if (iVar4 == *piVar30) {\n    return 0xc;\n  }\n  pcVar27 = *(code **)(puVar26 + 0x7ee90);\n  uVar32 = 0x76d28;\n  (*pcVar27)();\n  piVar29 = *(int **)(pcVar27 + 0x7e840);\n  local_254 = *piVar29;\n  uVar22 = param_4 & 0xfff00;\n  local_728 = param_4 & 1;\n  uVar5 = param_4 & 2;\n  uVar21 = param_4 & 8;\n  puVar16 = puVar14;\n  local_250 = puVar17;\n  local_24c = uVar18;\n  local_248 = puVar20;\n  local_244 = param_2;\n  local_240 = param_1;\n  local_23c = puVar19;\n  local_238 = puVar25;\n  local_230 = piVar30;\n  local_22c = uVar32;\n  if ((param_4 & 4) == 0) {\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    bVar1 = false;\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (iVar6 != *(int *)(iVar24 + 0x5a1c)) goto LAB_00076ff4;\nLAB_00076df0:\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    if (uVar22 == 0x100) {\n      iVar6 = *(int *)(pcVar27 + 0x7e594);\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));\n      if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }\n      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\nLAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);\n      if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }\n      iVar24 = 7;\n    }\n    else {\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }\n  }\n  else {\n    if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (*(int *)(iVar24 + 0x5a1c) != iVar6) {\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    bVar1 = true;\n    if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;\nLAB_00076e18:\n    iVar6 = -1;\nLAB_00076e20:\n    uVar18 = uVar5;\n    if ((param_4 & 4) != 0) {\n      uVar18 = uVar5 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }\n    else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }\n  }\nLAB_00076f98:\n  if (local_254 == *piVar29) {\n    return iVar24;\n  }\n  pcVar27 = *(code **)(pcVar27 + 0x7e818);\n  iVar4 = local_254;\n  (*pcVar27)();\n  uVar5 = *(uint *)(iVar4 + 0x4c);\n  uVar21 = *(uint *)(iVar4 + 0x94);\n  iVar6 = *(int *)(iVar4 + 0x48);\n  uVar18 = *(uint *)(iVar4 + 0x98);\n  if (uVar21 <= *(uint *)(iVar4 + 0x98)) {\n    uVar18 = uVar21;\n  }\n  puVar19 = *(undefined4 **)(iVar4 + 0xd0);\n  if (0 < *(int *)(iVar4 + 0x60)) {\n    iVar24 = *(int *)(iVar4 + 0x5c);\n    iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24;\n    do {\n      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }\n      iVar24 = iVar24 + 0x30;\n    } while (iVar24 != iVar7);\n  }\n  if (iVar6 != 0 || uVar5 != 0) {\n    lVar33 = (**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21);\n    lVar2 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar5 = (uint)lVar2;\n    iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20);\n  }\n  *(uint *)(iVar4 + 0x4c) = uVar5;\n  *(int *)(iVar4 + 0x48) = iVar6;\n  *(uint *)(iVar4 + 0x54) = uVar5;\n  *(int *)(iVar4 + 0x50) = iVar6;\n  if (*(char *)(iVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n    if (*(char *)(iVar4 + 5) != '\x04') {\n      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));\n      if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }\n      goto LAB_00077ad0;\n    }\n  }\n  else {\nLAB_00077ad0:\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n  }\n  uVar32 = *(undefined4 *)(iVar6 + 0x229c);\n  *puVar19 = *(undefined4 *)(iVar6 + 0x2298);\n  puVar19[1] = uVar32;\n  *(undefined1 *)(puVar19 + 2) = 0xff;\n  *(undefined1 *)((int)puVar19 + 9) = 0xff;\n  *(undefined1 *)((int)puVar19 + 10) = 0xff;\n  *(undefined1 *)((int)puVar19 + 0xb) = 0xff;\nLAB_00077b04:\n  uVar5 = 0;\n  (**(code **)(pcVar27 + 0x7dad8))(4,iVar4 + 0x30);\n  uVar32 = *(undefined4 *)(iVar4 + 0x30);\n  *(char *)((int)puVar19 + 0xf) = (char)uVar32;\n  *(char *)(puVar19 + 3) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0xd) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0xe) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x1c);\n  pcVar27 = *(code **)(pcVar27 + 0x7daa8);\n  *(char *)((int)puVar19 + 0x13) = (char)uVar32;\n  *(char *)(puVar19 + 4) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x11) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x12) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x94);\n  *(char *)((int)puVar19 + 0x17) = (char)uVar32;\n  *(char *)(puVar19 + 5) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x15) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x16) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x98);\n  *(char *)((int)puVar19 + 0x1b) = (char)uVar32;\n  *(char *)(puVar19 + 6) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x19) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x1a) = (char)((uint)uVar32 >> 8);\n  (*pcVar27)(puVar19 + 7,0,uVar18 - 0x1c);\n  do {\n    if (*(uint *)(iVar4 + 0x94) <= uVar5) {\n      return 0;\n    }\n    iVar6 = **(int **)(iVar4 + 0x40);\n    uVar5 = uVar5 + uVar18;\n    iVar6 = (**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c));\n    uVar21 = *(uint *)(iVar4 + 0x4c);\n    uVar22 = uVar21 + uVar18;\n    *(uint *)(iVar4 + 0x4c) = uVar22;\n    *(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48);\n  } while (iVar6 == 0);\n  return iVar6;\n}\n\n" (function_definition "int FUN_000764a4(int param_1,undefined4 *param_2,int *param_3,uint param_4)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  int in_zero;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  char cVar11;\n  int iVar9;\n  int iVar10;\n  int *piVar12;\n  char *pcVar13;\n  undefined4 *puVar14;\n  int *piVar15;\n  undefined4 *puVar16;\n  uint *puVar17;\n  uint uVar18;\n  undefined4 *puVar19;\n  undefined *puVar20;\n  uint uVar21;\n  uint uVar22;\n  int iVar23;\n  int iVar24;\n  uint *puVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  code *pcVar28;\n  int *piVar29;\n  int *piVar30;\n  uint uVar31;\n  undefined4 uVar32;\n  longlong lVar33;\n  undefined4 local_730;\n  uint local_728;\n  undefined4 local_720;\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  int 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  int 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  puVar3 = PTR___stack_chk_guard_000f5568;\n  puVar26 = PTR_sqlite3_temp_directory_000f5438;\n  puVar20 = PTR_DAT_000f52bc;\n  local_2c = *(int *)PTR___stack_chk_guard_000f5568;\n  *(undefined1 *)param_2 = 0;\n  uVar18 = *(uint *)puVar26;\n  if (*(int *)(puVar20 + 0x4fd8) == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0);\n    *(undefined4 *)(puVar20 + 0x4fd8) = uVar32;\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }\n  else {\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }\n  if (iVar4 == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0);\n    *(undefined4 *)(puVar20 + 0x4fdc) = uVar32;\n  }\n  puVar26 = PTR_DAT_000f52bc;\n  puVar17 = (uint *)(puVar20 + 0x4fd8);\n  puVar25 = (uint *)(puVar20 + 0x4ff0);\n  puVar19 = auStack_d0;\n  piVar29 = (int *)0x4000;\n  puVar20 = PTR_DAT_000f52bc + 0x5150;\n  while( true ) {\n    puVar14 = puVar19;\n    if ((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)) {\n      puVar17 = (uint *)0xc;\n      puVar25 = (uint *)((int)param_2 + param_1 + -2);\n      puVar19 = &local_d8;\n      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);\n      goto LAB_00076640;\n    }\n    local_234 = 0x190a;\n    if (puVar17 == puVar25) break;\n    uVar18 = *puVar17;\n    puVar17 = puVar17 + 1;\n  }\n  goto LAB_0007658c;\n  while ((param_4 & 3) != piVar12[1]) {\nLAB_00077354:\n    piVar15 = piVar12;\n    piVar12 = (int *)piVar15[2];\n    if (piVar12 == (int *)0x0) goto LAB_00077360;\n  }\n  piVar15 = piVar15 + 2;\nLAB_000776f8:\n  iVar24 = piVar30[4];\n  pcVar28 = *(code **)(pcVar27 + 0x7e748);\n  *piVar15 = piVar12[2];\n  (*pcVar28)(iVar24);\n  (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\n  iVar6 = *piVar12;\n  param_3[7] = (int)piVar12;\n  goto LAB_00076e20;\nLAB_00077360:\n  (**(code **)(pcVar27 + 0x7e748))(piVar30[4]);\n  (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\n  goto LAB_00077524;\n  while( true ) {\n    puVar17 = (uint *)((int)puVar17 + -1);\n    puVar14 = (undefined4 *)0x0;\n    if (puVar17 == (uint *)0x0) goto LAB_0007669c;\n    iVar4 = (**(code **)(puVar26 + 0x516c))(param_2);\n    local_234 = 0;\n    if (iVar4 != 0) break;\nLAB_00076640:\n    (*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);\n    *(char *)puVar25 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar14 = param_2;\n    param_3 = piVar29;\n    param_4 = uVar18;\n    (*(code *)PTR_sqlite3_snprintf_000f548c)(param_1);\n    if (*(char *)puVar25 != '\0') {\nLAB_0007669c:\n      local_234 = 1;\n      break;\n    }\n  }\nLAB_0007658c:\n  if (local_2c == *(int *)puVar3) {\n    return local_234;\n  }\n  uVar32 = 0x766b0;\n  puVar26 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  local_208 = puVar26 + 0x86bf0;\n  piVar30 = *(int **)(puVar26 + 0x7eeb8);\n  iVar4 = *piVar30;\n  local_134 = iVar4;\n  local_130 = puVar17;\n  local_12c = uVar18;\n  local_128 = puVar20;\n  local_124 = param_2;\n  local_120 = param_1;\n  local_11c = puVar19;\n  local_118 = puVar25;\n  local_114 = local_234;\n  local_110 = piVar29;\n  local_10c = uVar32;\n  if (puVar14 < &DAT_00000015) {\n                    \n                    \n    iVar4 = (*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))();\n    return iVar4;\n  }\n  if (iVar4 == *piVar30) {\n    return 0xc;\n  }\n  pcVar27 = *(code **)(puVar26 + 0x7ee90);\n  uVar32 = 0x76d28;\n  (*pcVar27)();\n  piVar29 = *(int **)(pcVar27 + 0x7e840);\n  local_254 = *piVar29;\n  uVar22 = param_4 & 0xfff00;\n  local_728 = param_4 & 1;\n  uVar5 = param_4 & 2;\n  uVar21 = param_4 & 8;\n  puVar16 = puVar14;\n  local_250 = puVar17;\n  local_24c = uVar18;\n  local_248 = puVar20;\n  local_244 = param_2;\n  local_240 = param_1;\n  local_23c = puVar19;\n  local_238 = puVar25;\n  local_230 = piVar30;\n  local_22c = uVar32;\n  if ((param_4 & 4) == 0) {\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    bVar1 = false;\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (iVar6 != *(int *)(iVar24 + 0x5a1c)) goto LAB_00076ff4;\nLAB_00076df0:\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    if (uVar22 == 0x100) {\n      iVar6 = *(int *)(pcVar27 + 0x7e594);\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));\n      if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }\n      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\nLAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);\n      if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }\n      iVar24 = 7;\n    }\n    else {\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }\n  }\n  else {\n    if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (*(int *)(iVar24 + 0x5a1c) != iVar6) {\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    bVar1 = true;\n    if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;\nLAB_00076e18:\n    iVar6 = -1;\nLAB_00076e20:\n    uVar18 = uVar5;\n    if ((param_4 & 4) != 0) {\n      uVar18 = uVar5 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }\n    else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }\n  }\nLAB_00076f98:\n  if (local_254 == *piVar29) {\n    return iVar24;\n  }\n  pcVar27 = *(code **)(pcVar27 + 0x7e818);\n  iVar4 = local_254;\n  (*pcVar27)();\n  uVar5 = *(uint *)(iVar4 + 0x4c);\n  uVar21 = *(uint *)(iVar4 + 0x94);\n  iVar6 = *(int *)(iVar4 + 0x48);\n  uVar18 = *(uint *)(iVar4 + 0x98);\n  if (uVar21 <= *(uint *)(iVar4 + 0x98)) {\n    uVar18 = uVar21;\n  }\n  puVar19 = *(undefined4 **)(iVar4 + 0xd0);\n  if (0 < *(int *)(iVar4 + 0x60)) {\n    iVar24 = *(int *)(iVar4 + 0x5c);\n    iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24;\n    do {\n      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }\n      iVar24 = iVar24 + 0x30;\n    } while (iVar24 != iVar7);\n  }\n  if (iVar6 != 0 || uVar5 != 0) {\n    lVar33 = (**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21);\n    lVar2 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar5 = (uint)lVar2;\n    iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20);\n  }\n  *(uint *)(iVar4 + 0x4c) = uVar5;\n  *(int *)(iVar4 + 0x48) = iVar6;\n  *(uint *)(iVar4 + 0x54) = uVar5;\n  *(int *)(iVar4 + 0x50) = iVar6;\n  if (*(char *)(iVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n    if (*(char *)(iVar4 + 5) != '\x04') {\n      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));\n      if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }\n      goto LAB_00077ad0;\n    }\n  }\n  else {\nLAB_00077ad0:\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n  }\n  uVar32 = *(undefined4 *)(iVar6 + 0x229c);\n  *puVar19 = *(undefined4 *)(iVar6 + 0x2298);\n  puVar19[1] = uVar32;\n  *(undefined1 *)(puVar19 + 2) = 0xff;\n  *(undefined1 *)((int)puVar19 + 9) = 0xff;\n  *(undefined1 *)((int)puVar19 + 10) = 0xff;\n  *(undefined1 *)((int)puVar19 + 0xb) = 0xff;\nLAB_00077b04:\n  uVar5 = 0;\n  (**(code **)(pcVar27 + 0x7dad8))(4,iVar4 + 0x30);\n  uVar32 = *(undefined4 *)(iVar4 + 0x30);\n  *(char *)((int)puVar19 + 0xf) = (char)uVar32;\n  *(char *)(puVar19 + 3) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0xd) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0xe) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x1c);\n  pcVar27 = *(code **)(pcVar27 + 0x7daa8);\n  *(char *)((int)puVar19 + 0x13) = (char)uVar32;\n  *(char *)(puVar19 + 4) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x11) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x12) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x94);\n  *(char *)((int)puVar19 + 0x17) = (char)uVar32;\n  *(char *)(puVar19 + 5) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x15) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x16) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x98);\n  *(char *)((int)puVar19 + 0x1b) = (char)uVar32;\n  *(char *)(puVar19 + 6) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x19) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x1a) = (char)((uint)uVar32 >> 8);\n  (*pcVar27)(puVar19 + 7,0,uVar18 - 0x1c);\n  do {\n    if (*(uint *)(iVar4 + 0x94) <= uVar5) {\n      return 0;\n    }\n    iVar6 = **(int **)(iVar4 + 0x40);\n    uVar5 = uVar5 + uVar18;\n    iVar6 = (**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c));\n    uVar21 = *(uint *)(iVar4 + 0x4c);\n    uVar22 = uVar21 + uVar18;\n    *(uint *)(iVar4 + 0x4c) = uVar22;\n    *(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48);\n  } while (iVar6 == 0);\n  return iVar6;\n}" primitive_type (function_declarator "FUN_000764a4(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  bool bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  int in_zero;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  char cVar11;\n  int iVar9;\n  int iVar10;\n  int *piVar12;\n  char *pcVar13;\n  undefined4 *puVar14;\n  int *piVar15;\n  undefined4 *puVar16;\n  uint *puVar17;\n  uint uVar18;\n  undefined4 *puVar19;\n  undefined *puVar20;\n  uint uVar21;\n  uint uVar22;\n  int iVar23;\n  int iVar24;\n  uint *puVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  code *pcVar28;\n  int *piVar29;\n  int *piVar30;\n  uint uVar31;\n  undefined4 uVar32;\n  longlong lVar33;\n  undefined4 local_730;\n  uint local_728;\n  undefined4 local_720;\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  int 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  int 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  puVar3 = PTR___stack_chk_guard_000f5568;\n  puVar26 = PTR_sqlite3_temp_directory_000f5438;\n  puVar20 = PTR_DAT_000f52bc;\n  local_2c = *(int *)PTR___stack_chk_guard_000f5568;\n  *(undefined1 *)param_2 = 0;\n  uVar18 = *(uint *)puVar26;\n  if (*(int *)(puVar20 + 0x4fd8) == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0);\n    *(undefined4 *)(puVar20 + 0x4fd8) = uVar32;\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }\n  else {\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }\n  if (iVar4 == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0);\n    *(undefined4 *)(puVar20 + 0x4fdc) = uVar32;\n  }\n  puVar26 = PTR_DAT_000f52bc;\n  puVar17 = (uint *)(puVar20 + 0x4fd8);\n  puVar25 = (uint *)(puVar20 + 0x4ff0);\n  puVar19 = auStack_d0;\n  piVar29 = (int *)0x4000;\n  puVar20 = PTR_DAT_000f52bc + 0x5150;\n  while( true ) {\n    puVar14 = puVar19;\n    if ((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)) {\n      puVar17 = (uint *)0xc;\n      puVar25 = (uint *)((int)param_2 + param_1 + -2);\n      puVar19 = &local_d8;\n      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);\n      goto LAB_00076640;\n    }\n    local_234 = 0x190a;\n    if (puVar17 == puVar25) break;\n    uVar18 = *puVar17;\n    puVar17 = puVar17 + 1;\n  }\n  goto LAB_0007658c;\n  while ((param_4 & 3) != piVar12[1]) {\nLAB_00077354:\n    piVar15 = piVar12;\n    piVar12 = (int *)piVar15[2];\n    if (piVar12 == (int *)0x0) goto LAB_00077360;\n  }\n  piVar15 = piVar15 + 2;\nLAB_000776f8:\n  iVar24 = piVar30[4];\n  pcVar28 = *(code **)(pcVar27 + 0x7e748);\n  *piVar15 = piVar12[2];\n  (*pcVar28)(iVar24);\n  (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\n  iVar6 = *piVar12;\n  param_3[7] = (int)piVar12;\n  goto LAB_00076e20;\nLAB_00077360:\n  (**(code **)(pcVar27 + 0x7e748))(piVar30[4]);\n  (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\n  goto LAB_00077524;\n  while( true ) {\n    puVar17 = (uint *)((int)puVar17 + -1);\n    puVar14 = (undefined4 *)0x0;\n    if (puVar17 == (uint *)0x0) goto LAB_0007669c;\n    iVar4 = (**(code **)(puVar26 + 0x516c))(param_2);\n    local_234 = 0;\n    if (iVar4 != 0) break;\nLAB_00076640:\n    (*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);\n    *(char *)puVar25 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar14 = param_2;\n    param_3 = piVar29;\n    param_4 = uVar18;\n    (*(code *)PTR_sqlite3_snprintf_000f548c)(param_1);\n    if (*(char *)puVar25 != '\0') {\nLAB_0007669c:\n      local_234 = 1;\n      break;\n    }\n  }\nLAB_0007658c:\n  if (local_2c == *(int *)puVar3) {\n    return local_234;\n  }\n  uVar32 = 0x766b0;\n  puVar26 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  local_208 = puVar26 + 0x86bf0;\n  piVar30 = *(int **)(puVar26 + 0x7eeb8);\n  iVar4 = *piVar30;\n  local_134 = iVar4;\n  local_130 = puVar17;\n  local_12c = uVar18;\n  local_128 = puVar20;\n  local_124 = param_2;\n  local_120 = param_1;\n  local_11c = puVar19;\n  local_118 = puVar25;\n  local_114 = local_234;\n  local_110 = piVar29;\n  local_10c = uVar32;\n  if (puVar14 < &DAT_00000015) {\n                    \n                    \n    iVar4 = (*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))();\n    return iVar4;\n  }\n  if (iVar4 == *piVar30) {\n    return 0xc;\n  }\n  pcVar27 = *(code **)(puVar26 + 0x7ee90);\n  uVar32 = 0x76d28;\n  (*pcVar27)();\n  piVar29 = *(int **)(pcVar27 + 0x7e840);\n  local_254 = *piVar29;\n  uVar22 = param_4 & 0xfff00;\n  local_728 = param_4 & 1;\n  uVar5 = param_4 & 2;\n  uVar21 = param_4 & 8;\n  puVar16 = puVar14;\n  local_250 = puVar17;\n  local_24c = uVar18;\n  local_248 = puVar20;\n  local_244 = param_2;\n  local_240 = param_1;\n  local_23c = puVar19;\n  local_238 = puVar25;\n  local_230 = piVar30;\n  local_22c = uVar32;\n  if ((param_4 & 4) == 0) {\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    bVar1 = false;\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (iVar6 != *(int *)(iVar24 + 0x5a1c)) goto LAB_00076ff4;\nLAB_00076df0:\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    if (uVar22 == 0x100) {\n      iVar6 = *(int *)(pcVar27 + 0x7e594);\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));\n      if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }\n      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\nLAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);\n      if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }\n      iVar24 = 7;\n    }\n    else {\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }\n  }\n  else {\n    if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (*(int *)(iVar24 + 0x5a1c) != iVar6) {\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    bVar1 = true;\n    if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;\nLAB_00076e18:\n    iVar6 = -1;\nLAB_00076e20:\n    uVar18 = uVar5;\n    if ((param_4 & 4) != 0) {\n      uVar18 = uVar5 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }\n    else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }\n  }\nLAB_00076f98:\n  if (local_254 == *piVar29) {\n    return iVar24;\n  }\n  pcVar27 = *(code **)(pcVar27 + 0x7e818);\n  iVar4 = local_254;\n  (*pcVar27)();\n  uVar5 = *(uint *)(iVar4 + 0x4c);\n  uVar21 = *(uint *)(iVar4 + 0x94);\n  iVar6 = *(int *)(iVar4 + 0x48);\n  uVar18 = *(uint *)(iVar4 + 0x98);\n  if (uVar21 <= *(uint *)(iVar4 + 0x98)) {\n    uVar18 = uVar21;\n  }\n  puVar19 = *(undefined4 **)(iVar4 + 0xd0);\n  if (0 < *(int *)(iVar4 + 0x60)) {\n    iVar24 = *(int *)(iVar4 + 0x5c);\n    iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24;\n    do {\n      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }\n      iVar24 = iVar24 + 0x30;\n    } while (iVar24 != iVar7);\n  }\n  if (iVar6 != 0 || uVar5 != 0) {\n    lVar33 = (**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21);\n    lVar2 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar5 = (uint)lVar2;\n    iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20);\n  }\n  *(uint *)(iVar4 + 0x4c) = uVar5;\n  *(int *)(iVar4 + 0x48) = iVar6;\n  *(uint *)(iVar4 + 0x54) = uVar5;\n  *(int *)(iVar4 + 0x50) = iVar6;\n  if (*(char *)(iVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n    if (*(char *)(iVar4 + 5) != '\x04') {\n      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));\n      if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }\n      goto LAB_00077ad0;\n    }\n  }\n  else {\nLAB_00077ad0:\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n  }\n  uVar32 = *(undefined4 *)(iVar6 + 0x229c);\n  *puVar19 = *(undefined4 *)(iVar6 + 0x2298);\n  puVar19[1] = uVar32;\n  *(undefined1 *)(puVar19 + 2) = 0xff;\n  *(undefined1 *)((int)puVar19 + 9) = 0xff;\n  *(undefined1 *)((int)puVar19 + 10) = 0xff;\n  *(undefined1 *)((int)puVar19 + 0xb) = 0xff;\nLAB_00077b04:\n  uVar5 = 0;\n  (**(code **)(pcVar27 + 0x7dad8))(4,iVar4 + 0x30);\n  uVar32 = *(undefined4 *)(iVar4 + 0x30);\n  *(char *)((int)puVar19 + 0xf) = (char)uVar32;\n  *(char *)(puVar19 + 3) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0xd) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0xe) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x1c);\n  pcVar27 = *(code **)(pcVar27 + 0x7daa8);\n  *(char *)((int)puVar19 + 0x13) = (char)uVar32;\n  *(char *)(puVar19 + 4) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x11) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x12) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x94);\n  *(char *)((int)puVar19 + 0x17) = (char)uVar32;\n  *(char *)(puVar19 + 5) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x15) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x16) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x98);\n  *(char *)((int)puVar19 + 0x1b) = (char)uVar32;\n  *(char *)(puVar19 + 6) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x19) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x1a) = (char)((uint)uVar32 >> 8);\n  (*pcVar27)(puVar19 + 7,0,uVar18 - 0x1c);\n  do {\n    if (*(uint *)(iVar4 + 0x94) <= uVar5) {\n      return 0;\n    }\n    iVar6 = **(int **)(iVar4 + 0x40);\n    uVar5 = uVar5 + uVar18;\n    iVar6 = (**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c));\n    uVar21 = *(uint *)(iVar4 + 0x4c);\n    uVar22 = uVar21 + uVar18;\n    *(uint *)(iVar4 + 0x4c) = uVar22;\n    *(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48);\n  } while (iVar6 == 0);\n  return iVar6;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int in_zero;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "uint *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "int *piVar29;" primitive_type (pointer_declarator "*piVar29" * identifier) ;) (declaration "int *piVar30;" primitive_type (pointer_declarator "*piVar30" * identifier) ;) (declaration "uint uVar31;" type_identifier identifier ;) (declaration "undefined4 uVar32;" type_identifier identifier ;) (declaration "longlong lVar33;" type_identifier identifier ;) (declaration "undefined4 local_730;" type_identifier identifier ;) (declaration "uint local_728;" type_identifier identifier ;) (declaration "undefined4 local_720;" type_identifier 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 "int local_234;" primitive_type 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 "int local_114;" primitive_type 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 "puVar3 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar3 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "puVar26 = PTR_sqlite3_temp_directory_000f5438;" (assignment_expression "puVar26 = PTR_sqlite3_temp_directory_000f5438" identifier = identifier) ;) (expression_statement "puVar20 = PTR_DAT_000f52bc;" (assignment_expression "puVar20 = PTR_DAT_000f52bc" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000f5568" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000f5568" * (cast_expression "(int *)PTR___stack_chk_guard_000f5568" ( (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 "uVar18 = *(uint *)puVar26;" (assignment_expression "uVar18 = *(uint *)puVar26" identifier = (pointer_expression "*(uint *)puVar26" * (cast_expression "(uint *)puVar26" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)(puVar20 + 0x4fd8) == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0);\n    *(undefined4 *)(puVar20 + 0x4fd8) = uVar32;\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }\n  else {\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }" if (parenthesized_expression "(*(int *)(puVar20 + 0x4fd8) == 0)" ( (binary_expression "*(int *)(puVar20 + 0x4fd8) == 0" (pointer_expression "*(int *)(puVar20 + 0x4fd8)" * (cast_expression "(int *)(puVar20 + 0x4fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x4fd8)" ( (binary_expression "puVar20 + 0x4fd8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0);\n    *(undefined4 *)(puVar20 + 0x4fd8) = uVar32;\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }" { (expression_statement "uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0);" (assignment_expression "uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0)" identifier = (call_expression "(*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0)" (parenthesized_expression "(*(code *)PTR_getenv_000f54d0)" ( (pointer_expression "*(code *)PTR_getenv_000f54d0" * (cast_expression "(code *)PTR_getenv_000f54d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_000f52d4 + -0x76b0)" ( (binary_expression "PTR_DAT_000f52d4 + -0x76b0" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar20 + 0x4fd8) = uVar32;" (assignment_expression "*(undefined4 *)(puVar20 + 0x4fd8) = uVar32" (pointer_expression "*(undefined4 *)(puVar20 + 0x4fd8)" * (cast_expression "(undefined4 *)(puVar20 + 0x4fd8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x4fd8)" ( (binary_expression "puVar20 + 0x4fd8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar4 = *(int *)(puVar20 + 0x4fdc);" (assignment_expression "iVar4 = *(int *)(puVar20 + 0x4fdc)" identifier = (pointer_expression "*(int *)(puVar20 + 0x4fdc)" * (cast_expression "(int *)(puVar20 + 0x4fdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x4fdc)" ( (binary_expression "puVar20 + 0x4fdc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }" else (compound_statement "{\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }" { (expression_statement "iVar4 = *(int *)(puVar20 + 0x4fdc);" (assignment_expression "iVar4 = *(int *)(puVar20 + 0x4fdc)" identifier = (pointer_expression "*(int *)(puVar20 + 0x4fdc)" * (cast_expression "(int *)(puVar20 + 0x4fdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x4fdc)" ( (binary_expression "puVar20 + 0x4fdc" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar4 == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0);\n    *(undefined4 *)(puVar20 + 0x4fdc) = uVar32;\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0);\n    *(undefined4 *)(puVar20 + 0x4fdc) = uVar32;\n  }" { (expression_statement "uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0);" (assignment_expression "uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0)" identifier = (call_expression "(*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0)" (parenthesized_expression "(*(code *)PTR_getenv_000f54d0)" ( (pointer_expression "*(code *)PTR_getenv_000f54d0" * (cast_expression "(code *)PTR_getenv_000f54d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_000f52d4 + -0x76a0)" ( (binary_expression "PTR_DAT_000f52d4 + -0x76a0" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar20 + 0x4fdc) = uVar32;" (assignment_expression "*(undefined4 *)(puVar20 + 0x4fdc) = uVar32" (pointer_expression "*(undefined4 *)(puVar20 + 0x4fdc)" * (cast_expression "(undefined4 *)(puVar20 + 0x4fdc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x4fdc)" ( (binary_expression "puVar20 + 0x4fdc" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "puVar26 = PTR_DAT_000f52bc;" (assignment_expression "puVar26 = PTR_DAT_000f52bc" identifier = identifier) ;) (expression_statement "puVar17 = (uint *)(puVar20 + 0x4fd8);" (assignment_expression "puVar17 = (uint *)(puVar20 + 0x4fd8)" identifier = (cast_expression "(uint *)(puVar20 + 0x4fd8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x4fd8)" ( (binary_expression "puVar20 + 0x4fd8" identifier + number_literal) )))) ;) (expression_statement "puVar25 = (uint *)(puVar20 + 0x4ff0);" (assignment_expression "puVar25 = (uint *)(puVar20 + 0x4ff0)" identifier = (cast_expression "(uint *)(puVar20 + 0x4ff0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x4ff0)" ( (binary_expression "puVar20 + 0x4ff0" identifier + number_literal) )))) ;) (expression_statement "puVar19 = auStack_d0;" (assignment_expression "puVar19 = auStack_d0" identifier = identifier) ;) (expression_statement "piVar29 = (int *)0x4000;" (assignment_expression "piVar29 = (int *)0x4000" identifier = (cast_expression "(int *)0x4000" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar20 = PTR_DAT_000f52bc + 0x5150;" (assignment_expression "puVar20 = PTR_DAT_000f52bc + 0x5150" identifier = (binary_expression "PTR_DAT_000f52bc + 0x5150" identifier + number_literal)) ;) (while_statement "while( true ) {\n    puVar14 = puVar19;\n    if ((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)) {\n      puVar17 = (uint *)0xc;\n      puVar25 = (uint *)((int)param_2 + param_1 + -2);\n      puVar19 = &local_d8;\n      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);\n      goto LAB_00076640;\n    }\n    local_234 = 0x190a;\n    if (puVar17 == puVar25) break;\n    uVar18 = *puVar17;\n    puVar17 = puVar17 + 1;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    puVar14 = puVar19;\n    if ((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)) {\n      puVar17 = (uint *)0xc;\n      puVar25 = (uint *)((int)param_2 + param_1 + -2);\n      puVar19 = &local_d8;\n      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);\n      goto LAB_00076640;\n    }\n    local_234 = 0x190a;\n    if (puVar17 == puVar25) break;\n    uVar18 = *puVar17;\n    puVar17 = puVar17 + 1;\n  }" { (expression_statement "puVar14 = puVar19;" (assignment_expression "puVar14 = puVar19" identifier = identifier) ;) (if_statement "if ((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)) {\n      puVar17 = (uint *)0xc;\n      puVar25 = (uint *)((int)param_2 + param_1 + -2);\n      puVar19 = &local_d8;\n      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);\n      goto LAB_00076640;\n    }" if (parenthesized_expression "((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0))" ( (binary_expression "(((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)" (parenthesized_expression "(((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000))" ( (binary_expression "((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)" (parenthesized_expression "((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0))" ( (binary_expression "(uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)" (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)" ( (comma_expression "iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18)" identifier = (call_expression "(**(code **)(puVar26 + 0x5184))(uVar18)" (parenthesized_expression "(**(code **)(puVar26 + 0x5184))" ( (pointer_expression "**(code **)(puVar26 + 0x5184)" * (pointer_expression "*(code **)(puVar26 + 0x5184)" * (cast_expression "(code **)(puVar26 + 0x5184)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x5184)" ( (binary_expression "puVar26 + 0x5184" identifier + number_literal) ))))) )) (argument_list "(uVar18)" ( identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)" ( (comma_expression "puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000" (assignment_expression "puVar14 = (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 "(iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)" ( (comma_expression "iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18)" identifier = (call_expression "(**(code **)(puVar26 + 0x516c))(uVar18)" (parenthesized_expression "(**(code **)(puVar26 + 0x516c))" ( (pointer_expression "**(code **)(puVar26 + 0x516c)" * (pointer_expression "*(code **)(puVar26 + 0x516c)" * (cast_expression "(code **)(puVar26 + 0x516c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x516c)" ( (binary_expression "puVar26 + 0x516c" identifier + number_literal) ))))) )) (argument_list "(uVar18)" ( identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      puVar17 = (uint *)0xc;\n      puVar25 = (uint *)((int)param_2 + param_1 + -2);\n      puVar19 = &local_d8;\n      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);\n      goto LAB_00076640;\n    }" { (expression_statement "puVar17 = (uint *)0xc;" (assignment_expression "puVar17 = (uint *)0xc" identifier = (cast_expression "(uint *)0xc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar25 = (uint *)((int)param_2 + param_1 + -2);" (assignment_expression "puVar25 = (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 "puVar19 = &local_d8;" (assignment_expression "puVar19 = &local_d8" identifier = (pointer_expression "&local_d8" & identifier)) ;) (expression_statement "piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);" (assignment_expression "piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698)" identifier = (cast_expression "(int *)(PTR_DAT_000f52d4 + -0x7698)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52d4 + -0x7698)" ( (binary_expression "PTR_DAT_000f52d4 + -0x7698" identifier + number_literal) )))) ;) (goto_statement "goto LAB_00076640;" goto statement_identifier ;) })) (expression_statement "local_234 = 0x190a;" (assignment_expression "local_234 = 0x190a" identifier = number_literal) ;) (if_statement "if (puVar17 == puVar25) break;" if (parenthesized_expression "(puVar17 == puVar25)" ( (binary_expression "puVar17 == puVar25" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar18 = *puVar17;" (assignment_expression "uVar18 = *puVar17" identifier = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar17 = puVar17 + 1;" (assignment_expression "puVar17 = puVar17 + 1" identifier = (binary_expression "puVar17 + 1" identifier + number_literal)) ;) })) (goto_statement "goto LAB_0007658c;" goto statement_identifier ;) (while_statement "while ((param_4 & 3) != piVar12[1]) {\nLAB_00077354:\n    piVar15 = piVar12;\n    piVar12 = (int *)piVar15[2];\n    if (piVar12 == (int *)0x0) goto LAB_00077360;\n  }" while (parenthesized_expression "((param_4 & 3) != piVar12[1])" ( (binary_expression "(param_4 & 3) != piVar12[1]" (parenthesized_expression "(param_4 & 3)" ( (binary_expression "param_4 & 3" identifier & number_literal) )) != (subscript_expression "piVar12[1]" identifier [ number_literal ])) )) (compound_statement "{\nLAB_00077354:\n    piVar15 = piVar12;\n    piVar12 = (int *)piVar15[2];\n    if (piVar12 == (int *)0x0) goto LAB_00077360;\n  }" { (labeled_statement "LAB_00077354:\n    piVar15 = piVar12;" statement_identifier : (expression_statement "piVar15 = piVar12;" (assignment_expression "piVar15 = piVar12" identifier = identifier) ;)) (expression_statement "piVar12 = (int *)piVar15[2];" (assignment_expression "piVar12 = (int *)piVar15[2]" identifier = (cast_expression "(int *)piVar15[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar15[2]" identifier [ number_literal ]))) ;) (if_statement "if (piVar12 == (int *)0x0) goto LAB_00077360;" if (parenthesized_expression "(piVar12 == (int *)0x0)" ( (binary_expression "piVar12 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00077360;" goto statement_identifier ;)) })) (expression_statement "piVar15 = piVar15 + 2;" (assignment_expression "piVar15 = piVar15 + 2" identifier = (binary_expression "piVar15 + 2" identifier + number_literal)) ;) (labeled_statement "LAB_000776f8:\n  iVar24 = piVar30[4];" statement_identifier : (expression_statement "iVar24 = piVar30[4];" (assignment_expression "iVar24 = piVar30[4]" identifier = (subscript_expression "piVar30[4]" identifier [ number_literal ])) ;)) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e748);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e748)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7e748)" * (cast_expression "(code **)(pcVar27 + 0x7e748)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e748)" ( (binary_expression "pcVar27 + 0x7e748" identifier + number_literal) ))))) ;) (expression_statement "*piVar15 = piVar12[2];" (assignment_expression "*piVar15 = piVar12[2]" (pointer_expression "*piVar15" * identifier) = (subscript_expression "piVar12[2]" identifier [ number_literal ])) ;) (expression_statement "(*pcVar28)(iVar24);" (call_expression "(*pcVar28)(iVar24)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(iVar24)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e748))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e748)" * (pointer_expression "*(code **)(pcVar27 + 0x7e748)" * (cast_expression "(code **)(pcVar27 + 0x7e748)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e748)" ( (binary_expression "pcVar27 + 0x7e748" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x5a18))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x5a18)" * (cast_expression "(undefined4 *)(iVar6 + 0x5a18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x5a18)" ( (binary_expression "iVar6 + 0x5a18" identifier + number_literal) )))) ))) ;) (expression_statement "iVar6 = *piVar12;" (assignment_expression "iVar6 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "param_3[7] = (int)piVar12;" (assignment_expression "param_3[7] = (int)piVar12" (subscript_expression "param_3[7]" identifier [ number_literal ]) = (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_00076e20;" goto statement_identifier ;) (labeled_statement "LAB_00077360:\n  (**(code **)(pcVar27 + 0x7e748))(piVar30[4]);" statement_identifier : (expression_statement "(**(code **)(pcVar27 + 0x7e748))(piVar30[4]);" (call_expression "(**(code **)(pcVar27 + 0x7e748))(piVar30[4])" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e748))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e748)" * (pointer_expression "*(code **)(pcVar27 + 0x7e748)" * (cast_expression "(code **)(pcVar27 + 0x7e748)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e748)" ( (binary_expression "pcVar27 + 0x7e748" identifier + number_literal) ))))) )) (argument_list "(piVar30[4])" ( (subscript_expression "piVar30[4]" identifier [ number_literal ]) ))) ;)) (expression_statement "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e748))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e748)" * (pointer_expression "*(code **)(pcVar27 + 0x7e748)" * (cast_expression "(code **)(pcVar27 + 0x7e748)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e748)" ( (binary_expression "pcVar27 + 0x7e748" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x5a18))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x5a18)" * (cast_expression "(undefined4 *)(iVar6 + 0x5a18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x5a18)" ( (binary_expression "iVar6 + 0x5a18" identifier + number_literal) )))) ))) ;) (goto_statement "goto LAB_00077524;" goto statement_identifier ;) (while_statement "while( true ) {\n    puVar17 = (uint *)((int)puVar17 + -1);\n    puVar14 = (undefined4 *)0x0;\n    if (puVar17 == (uint *)0x0) goto LAB_0007669c;\n    iVar4 = (**(code **)(puVar26 + 0x516c))(param_2);\n    local_234 = 0;\n    if (iVar4 != 0) break;\nLAB_00076640:\n    (*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);\n    *(char *)puVar25 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar14 = param_2;\n    param_3 = piVar29;\n    param_4 = uVar18;\n    (*(code *)PTR_sqlite3_snprintf_000f548c)(param_1);\n    if (*(char *)puVar25 != '\0') {\nLAB_0007669c:\n      local_234 = 1;\n      break;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    puVar17 = (uint *)((int)puVar17 + -1);\n    puVar14 = (undefined4 *)0x0;\n    if (puVar17 == (uint *)0x0) goto LAB_0007669c;\n    iVar4 = (**(code **)(puVar26 + 0x516c))(param_2);\n    local_234 = 0;\n    if (iVar4 != 0) break;\nLAB_00076640:\n    (*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);\n    *(char *)puVar25 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar14 = param_2;\n    param_3 = piVar29;\n    param_4 = uVar18;\n    (*(code *)PTR_sqlite3_snprintf_000f548c)(param_1);\n    if (*(char *)puVar25 != '\0') {\nLAB_0007669c:\n      local_234 = 1;\n      break;\n    }\n  }" { (expression_statement "puVar17 = (uint *)((int)puVar17 + -1);" (assignment_expression "puVar17 = (uint *)((int)puVar17 + -1)" identifier = (cast_expression "(uint *)((int)puVar17 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + -1)" ( (binary_expression "(int)puVar17 + -1" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar14 = (undefined4 *)0x0;" (assignment_expression "puVar14 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (puVar17 == (uint *)0x0) goto LAB_0007669c;" if (parenthesized_expression "(puVar17 == (uint *)0x0)" ( (binary_expression "puVar17 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007669c;" goto statement_identifier ;)) (expression_statement "iVar4 = (**(code **)(puVar26 + 0x516c))(param_2);" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x516c))(param_2)" identifier = (call_expression "(**(code **)(puVar26 + 0x516c))(param_2)" (parenthesized_expression "(**(code **)(puVar26 + 0x516c))" ( (pointer_expression "**(code **)(puVar26 + 0x516c)" * (pointer_expression "*(code **)(puVar26 + 0x516c)" * (cast_expression "(code **)(puVar26 + 0x516c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x516c)" ( (binary_expression "puVar26 + 0x516c" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "local_234 = 0;" (assignment_expression "local_234 = 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_00076640:\n    (*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);" statement_identifier : (expression_statement "(*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);" (call_expression "(*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19)" (parenthesized_expression "(*(code *)PTR_sqlite3_randomness_000f5480)" ( (pointer_expression "*(code *)PTR_sqlite3_randomness_000f5480" * (cast_expression "(code *)PTR_sqlite3_randomness_000f5480" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8,puVar19)" ( number_literal , identifier ))) ;)) (expression_statement "*(char *)puVar25 = '\0';" (assignment_expression "*(char *)puVar25 = '\0'" (pointer_expression "*(char *)puVar25" * (cast_expression "(char *)puVar25" ( (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 "puVar14 = param_2;" (assignment_expression "puVar14 = param_2" identifier = identifier) ;) (expression_statement "param_3 = piVar29;" (assignment_expression "param_3 = piVar29" identifier = identifier) ;) (expression_statement "param_4 = uVar18;" (assignment_expression "param_4 = uVar18" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sqlite3_snprintf_000f548c)(param_1);" (call_expression "(*(code *)PTR_sqlite3_snprintf_000f548c)(param_1)" (parenthesized_expression "(*(code *)PTR_sqlite3_snprintf_000f548c)" ( (pointer_expression "*(code *)PTR_sqlite3_snprintf_000f548c" * (cast_expression "(code *)PTR_sqlite3_snprintf_000f548c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (if_statement "if (*(char *)puVar25 != '\0') {\nLAB_0007669c:\n      local_234 = 1;\n      break;\n    }" if (parenthesized_expression "(*(char *)puVar25 != '\0')" ( (binary_expression "*(char *)puVar25 != '\0'" (pointer_expression "*(char *)puVar25" * (cast_expression "(char *)puVar25" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0007669c:\n      local_234 = 1;\n      break;\n    }" { (labeled_statement "LAB_0007669c:\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_0007658c:\n  if (local_2c == *(int *)puVar3) {\n    return local_234;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar3) {\n    return local_234;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar3)" ( (binary_expression "local_2c == *(int *)puVar3" identifier == (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (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 = 0x766b0;" (assignment_expression "uVar32 = 0x766b0" identifier = number_literal) ;) (expression_statement "puVar26 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar26 = PTR___stack_chk_fail_000f5540" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" * (cast_expression "(code *)PTR___stack_chk_fail_000f5540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_208 = puVar26 + 0x86bf0;" (assignment_expression "local_208 = puVar26 + 0x86bf0" identifier = (binary_expression "puVar26 + 0x86bf0" identifier + number_literal)) ;) (expression_statement "piVar30 = *(int **)(puVar26 + 0x7eeb8);" (assignment_expression "piVar30 = *(int **)(puVar26 + 0x7eeb8)" identifier = (pointer_expression "*(int **)(puVar26 + 0x7eeb8)" * (cast_expression "(int **)(puVar26 + 0x7eeb8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x7eeb8)" ( (binary_expression "puVar26 + 0x7eeb8" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *piVar30;" (assignment_expression "iVar4 = *piVar30" identifier = (pointer_expression "*piVar30" * identifier)) ;) (expression_statement "local_134 = iVar4;" (assignment_expression "local_134 = iVar4" identifier = identifier) ;) (expression_statement "local_130 = puVar17;" (assignment_expression "local_130 = puVar17" identifier = identifier) ;) (expression_statement "local_12c = uVar18;" (assignment_expression "local_12c = uVar18" identifier = identifier) ;) (expression_statement "local_128 = puVar20;" (assignment_expression "local_128 = puVar20" 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 = puVar19;" (assignment_expression "local_11c = puVar19" identifier = identifier) ;) (expression_statement "local_118 = puVar25;" (assignment_expression "local_118 = puVar25" identifier = identifier) ;) (expression_statement "local_114 = local_234;" (assignment_expression "local_114 = local_234" identifier = identifier) ;) (expression_statement "local_110 = piVar29;" (assignment_expression "local_110 = piVar29" identifier = identifier) ;) (expression_statement "local_10c = uVar32;" (assignment_expression "local_10c = uVar32" identifier = identifier) ;) (if_statement "if (puVar14 < &DAT_00000015) {\n                    \n                    \n    iVar4 = (*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))();\n    return iVar4;\n  }" if (parenthesized_expression "(puVar14 < &DAT_00000015)" ( (binary_expression "puVar14 < &DAT_00000015" identifier < (pointer_expression "&DAT_00000015" & identifier)) )) (compound_statement "{\n                    \n                    \n    iVar4 = (*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))();\n    return iVar4;\n  }" { (expression_statement "iVar4 = (*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))();" (assignment_expression "iVar4 = (*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))()" identifier = (call_expression "(*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))()" (parenthesized_expression "(*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))" ( (pointer_expression "*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4))" * (cast_expression "(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4))" ( (binary_expression "local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)" * (cast_expression "(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)" ( (binary_expression "*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4" (binary_expression "*(int *)(puVar26 + 0x7ec24) + -0x2974" (pointer_expression "*(int *)(puVar26 + 0x7ec24)" * (cast_expression "(int *)(puVar26 + 0x7ec24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x7ec24)" ( (binary_expression "puVar26 + 0x7ec24" identifier + number_literal) )))) + number_literal) + (binary_expression "(int)puVar14 * 4" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar4;" return identifier ;) })) (if_statement "if (iVar4 == *piVar30) {\n    return 0xc;\n  }" if (parenthesized_expression "(iVar4 == *piVar30)" ( (binary_expression "iVar4 == *piVar30" identifier == (pointer_expression "*piVar30" * identifier)) )) (compound_statement "{\n    return 0xc;\n  }" { (return_statement "return 0xc;" return number_literal ;) })) (expression_statement "pcVar27 = *(code **)(puVar26 + 0x7ee90);" (assignment_expression "pcVar27 = *(code **)(puVar26 + 0x7ee90)" identifier = (pointer_expression "*(code **)(puVar26 + 0x7ee90)" * (cast_expression "(code **)(puVar26 + 0x7ee90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x7ee90)" ( (binary_expression "puVar26 + 0x7ee90" identifier + number_literal) ))))) ;) (expression_statement "uVar32 = 0x76d28;" (assignment_expression "uVar32 = 0x76d28" identifier = number_literal) ;) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar29 = *(int **)(pcVar27 + 0x7e840);" (assignment_expression "piVar29 = *(int **)(pcVar27 + 0x7e840)" identifier = (pointer_expression "*(int **)(pcVar27 + 0x7e840)" * (cast_expression "(int **)(pcVar27 + 0x7e840)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e840)" ( (binary_expression "pcVar27 + 0x7e840" identifier + number_literal) ))))) ;) (expression_statement "local_254 = *piVar29;" (assignment_expression "local_254 = *piVar29" identifier = (pointer_expression "*piVar29" * identifier)) ;) (expression_statement "uVar22 = param_4 & 0xfff00;" (assignment_expression "uVar22 = param_4 & 0xfff00" identifier = (binary_expression "param_4 & 0xfff00" identifier & number_literal)) ;) (expression_statement "local_728 = param_4 & 1;" (assignment_expression "local_728 = param_4 & 1" identifier = (binary_expression "param_4 & 1" identifier & number_literal)) ;) (expression_statement "uVar5 = param_4 & 2;" (assignment_expression "uVar5 = param_4 & 2" identifier = (binary_expression "param_4 & 2" identifier & number_literal)) ;) (expression_statement "uVar21 = param_4 & 8;" (assignment_expression "uVar21 = param_4 & 8" identifier = (binary_expression "param_4 & 8" identifier & number_literal)) ;) (expression_statement "puVar16 = puVar14;" (assignment_expression "puVar16 = puVar14" identifier = identifier) ;) (expression_statement "local_250 = puVar17;" (assignment_expression "local_250 = puVar17" identifier = identifier) ;) (expression_statement "local_24c = uVar18;" (assignment_expression "local_24c = uVar18" identifier = identifier) ;) (expression_statement "local_248 = puVar20;" (assignment_expression "local_248 = puVar20" 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 = puVar19;" (assignment_expression "local_23c = puVar19" identifier = identifier) ;) (expression_statement "local_238 = puVar25;" (assignment_expression "local_238 = puVar25" identifier = identifier) ;) (expression_statement "local_230 = piVar30;" (assignment_expression "local_230 = piVar30" identifier = identifier) ;) (expression_statement "local_22c = uVar32;" (assignment_expression "local_22c = uVar32" identifier = identifier) ;) (if_statement "if ((param_4 & 4) == 0) {\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    bVar1 = false;\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (iVar6 != *(int *)(iVar24 + 0x5a1c)) goto LAB_00076ff4;\nLAB_00076df0:\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    if (uVar22 == 0x100) {\n      iVar6 = *(int *)(pcVar27 + 0x7e594);\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));\n      if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }\n      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\nLAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);\n      if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }\n      iVar24 = 7;\n    }\n    else {\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }\n  }\n  else {\n    if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (*(int *)(iVar24 + 0x5a1c) != iVar6) {\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    bVar1 = true;\n    if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;\nLAB_00076e18:\n    iVar6 = -1;\nLAB_00076e20:\n    uVar18 = uVar5;\n    if ((param_4 & 4) != 0) {\n      uVar18 = uVar5 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }\n    else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }\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    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    bVar1 = false;\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (iVar6 != *(int *)(iVar24 + 0x5a1c)) goto LAB_00076ff4;\nLAB_00076df0:\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    if (uVar22 == 0x100) {\n      iVar6 = *(int *)(pcVar27 + 0x7e594);\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));\n      if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }\n      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\nLAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);\n      if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }\n      iVar24 = 7;\n    }\n    else {\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }\n  }" { (expression_statement "iVar24 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();" (assignment_expression "iVar6 = (**(code **)(pcVar27 + 0x7e7c0))()" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e7c0))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e7c0))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e7c0)" * (pointer_expression "*(code **)(pcVar27 + 0x7e7c0)" * (cast_expression "(code **)(pcVar27 + 0x7e7c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e7c0)" ( (binary_expression "pcVar27 + 0x7e7c0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar6 != *(int *)(iVar24 + 0x5a1c)) goto LAB_00076ff4;" if (parenthesized_expression "(iVar6 != *(int *)(iVar24 + 0x5a1c))" ( (binary_expression "iVar6 != *(int *)(iVar24 + 0x5a1c)" identifier != (pointer_expression "*(int *)(iVar24 + 0x5a1c)" * (cast_expression "(int *)(iVar24 + 0x5a1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x5a1c)" ( (binary_expression "iVar24 + 0x5a1c" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00076ff4;" goto statement_identifier ;)) (labeled_statement "LAB_00076df0:\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);" statement_identifier : (expression_statement "(**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);" (call_expression "(**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e728))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e728)" * (pointer_expression "*(code **)(pcVar27 + 0x7e728)" * (cast_expression "(code **)(pcVar27 + 0x7e728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e728)" ( (binary_expression "pcVar27 + 0x7e728" identifier + number_literal) ))))) )) (argument_list "(param_3,0,0x58)" ( identifier , number_literal , number_literal ))) ;)) (if_statement "if (uVar22 == 0x100) {\n      iVar6 = *(int *)(pcVar27 + 0x7e594);\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));\n      if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }\n      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\nLAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);\n      if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }\n      iVar24 = 7;\n    }\n    else {\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }" if (parenthesized_expression "(uVar22 == 0x100)" ( (binary_expression "uVar22 == 0x100" identifier == number_literal) )) (compound_statement "{\n      iVar6 = *(int *)(pcVar27 + 0x7e594);\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));\n      if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }\n      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\nLAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);\n      if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }\n      iVar24 = 7;\n    }" { (expression_statement "iVar6 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar6 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e720))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e720)" * (pointer_expression "*(code **)(pcVar27 + 0x7e720)" * (cast_expression "(code **)(pcVar27 + 0x7e720)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e720)" ( (binary_expression "pcVar27 + 0x7e720" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x5a18))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x5a18)" * (cast_expression "(undefined4 *)(iVar6 + 0x5a18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x5a18)" ( (binary_expression "iVar6 + 0x5a18" identifier + number_literal) )))) ))) ;) (if_statement "if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }" if (parenthesized_expression "((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         ))" ( (binary_expression "(*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )" (parenthesized_expression "(*(int *)(iVar24 + 0x5a14) != 0)" ( (binary_expression "*(int *)(iVar24 + 0x5a14) != 0" (pointer_expression "*(int *)(iVar24 + 0x5a14)" * (cast_expression "(int *)(iVar24 + 0x5a14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x5a14)" ( (binary_expression "iVar24 + 0x5a14" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )" ( (comma_expression "iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700)" identifier = (call_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700)" (parenthesized_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))" ( (pointer_expression "**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184)" * (pointer_expression "*(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184)" * (cast_expression "(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e594) + 0x5184)" ( (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x5184" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar14,local_700)" ( identifier , identifier )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }" { (for_statement "for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }" for ( (assignment_expression "piVar30 = *(int **)(iVar24 + 0x5a14)" identifier = (pointer_expression "*(int **)(iVar24 + 0x5a14)" * (cast_expression "(int **)(iVar24 + 0x5a14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x5a14)" ( (binary_expression "iVar24 + 0x5a14" identifier + number_literal) ))))) ; (binary_expression "piVar30 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar30 = (int *)piVar30[0xb]" identifier = (cast_expression "(int *)piVar30[0xb]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar30[0xb]" identifier [ number_literal ]))) ) (compound_statement "{\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }" { (if_statement "if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }" if (parenthesized_expression "((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec))" ( (binary_expression "(((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)" (parenthesized_expression "(((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0))" ( (binary_expression "((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)" (parenthesized_expression "((*piVar30 == 0) && (piVar30[1] == local_700[0]))" ( (binary_expression "(*piVar30 == 0) && (piVar30[1] == local_700[0])" (parenthesized_expression "(*piVar30 == 0)" ( (binary_expression "*piVar30 == 0" (pointer_expression "*piVar30" * identifier) == number_literal) )) && (parenthesized_expression "(piVar30[1] == local_700[0])" ( (binary_expression "piVar30[1] == local_700[0]" (subscript_expression "piVar30[1]" identifier [ number_literal ]) == (subscript_expression "local_700[0]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "(piVar30[2] == local_6f0)" ( (binary_expression "piVar30[2] == local_6f0" (subscript_expression "piVar30[2]" identifier [ number_literal ]) == identifier) ))) )) && (parenthesized_expression "(piVar30[3] == local_6ec)" ( (binary_expression "piVar30[3] == local_6ec" (subscript_expression "piVar30[3]" identifier [ number_literal ]) == identifier) ))) )) (compound_statement "{\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }" { (expression_statement "(**(code **)(pcVar27 + 0x7e720))(piVar30[4]);" (call_expression "(**(code **)(pcVar27 + 0x7e720))(piVar30[4])" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e720))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e720)" * (pointer_expression "*(code **)(pcVar27 + 0x7e720)" * (cast_expression "(code **)(pcVar27 + 0x7e720)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e720)" ( (binary_expression "pcVar27 + 0x7e720" identifier + number_literal) ))))) )) (argument_list "(piVar30[4])" ( (subscript_expression "piVar30[4]" identifier [ number_literal ]) ))) ;) (expression_statement "piVar12 = (int *)piVar30[8];" (assignment_expression "piVar12 = (int *)piVar30[8]" identifier = (cast_expression "(int *)piVar30[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar30[8]" identifier [ number_literal ]))) ;) (if_statement "if (piVar12 == (int *)0x0) goto LAB_00077360;" if (parenthesized_expression "(piVar12 == (int *)0x0)" ( (binary_expression "piVar12 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00077360;" goto statement_identifier ;)) (if_statement "if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;" if (parenthesized_expression "((param_4 & 3) != piVar12[1])" ( (binary_expression "(param_4 & 3) != piVar12[1]" (parenthesized_expression "(param_4 & 3)" ( (binary_expression "param_4 & 3" identifier & number_literal) )) != (subscript_expression "piVar12[1]" identifier [ number_literal ])) )) (goto_statement "goto LAB_00077354;" goto statement_identifier ;)) (expression_statement "piVar15 = piVar30 + 8;" (assignment_expression "piVar15 = piVar30 + 8" identifier = (binary_expression "piVar30 + 8" identifier + number_literal)) ;) (goto_statement "goto LAB_000776f8;" goto statement_identifier ;) })) })) })) (expression_statement "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e748))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e748)" * (pointer_expression "*(code **)(pcVar27 + 0x7e748)" * (cast_expression "(code **)(pcVar27 + 0x7e748)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e748)" ( (binary_expression "pcVar27 + 0x7e748" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar6 + 0x5a18))" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x5a18)" * (cast_expression "(undefined4 *)(iVar6 + 0x5a18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x5a18)" ( (binary_expression "iVar6 + 0x5a18" identifier + number_literal) )))) ))) ;) (labeled_statement "LAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);" statement_identifier : (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc)" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e7f4))(0,0xc)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e7f4))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e7f4)" * (pointer_expression "*(code **)(pcVar27 + 0x7e7f4)" * (cast_expression "(code **)(pcVar27 + 0x7e7f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e7f4)" ( (binary_expression "pcVar27 + 0x7e7f4" identifier + number_literal) ))))) )) (argument_list "(0,0xc)" ( number_literal , number_literal )))) ;)) (if_statement "if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }" { (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (expression_statement "param_3[7] = iVar24;" (assignment_expression "param_3[7] = iVar24" (subscript_expression "param_3[7]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_00076e20;" goto statement_identifier ;) })) (expression_statement "iVar24 = 7;" (assignment_expression "iVar24 = 7" identifier = number_literal) ;) }) (else_clause "else {\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }" else (compound_statement "{\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }" { (if_statement "if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;" if (parenthesized_expression "(puVar14 != (undefined4 *)0x0)" ( (binary_expression "puVar14 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00076e18;" goto statement_identifier ;)) (labeled_statement "LAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);" statement_identifier : (expression_statement "iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);" (assignment_expression "iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458)" identifier = (call_expression "FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458)" identifier (argument_list "(*(undefined4 *)(iVar4 + 8),auStack_458)" ( (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) , identifier )))) ;)) (if_statement "if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }" { (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (expression_statement "puVar16 = auStack_458;" (assignment_expression "puVar16 = auStack_458" identifier = identifier) ;) (goto_statement "goto LAB_00076e20;" goto statement_identifier ;) })) }))) }) (else_clause "else {\n    if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (*(int *)(iVar24 + 0x5a1c) != iVar6) {\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    bVar1 = true;\n    if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;\nLAB_00076e18:\n    iVar6 = -1;\nLAB_00076e20:\n    uVar18 = uVar5;\n    if ((param_4 & 4) != 0) {\n      uVar18 = uVar5 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }\n    else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }\n  }" else (compound_statement "{\n    if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (*(int *)(iVar24 + 0x5a1c) != iVar6) {\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    bVar1 = true;\n    if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;\nLAB_00076e18:\n    iVar6 = -1;\nLAB_00076e20:\n    uVar18 = uVar5;\n    if ((param_4 & 4) != 0) {\n      uVar18 = uVar5 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }\n    else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }\n  }" { (if_statement "if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }" if (parenthesized_expression "((uVar22 != 0x4000) && (uVar22 != 0x800))" ( (binary_expression "(uVar22 != 0x4000) && (uVar22 != 0x800)" (parenthesized_expression "(uVar22 != 0x4000)" ( (binary_expression "uVar22 != 0x4000" identifier != number_literal) )) && (parenthesized_expression "(uVar22 != 0x800)" ( (binary_expression "uVar22 != 0x800" identifier != number_literal) ))) )) (compound_statement "{\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }" { (expression_statement "iVar24 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = uVar22 == 0x80000;" (assignment_expression "bVar1 = uVar22 == 0x80000" identifier = (binary_expression "uVar22 == 0x80000" identifier == number_literal)) ;) (expression_statement "iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();" (assignment_expression "iVar6 = (**(code **)(pcVar27 + 0x7e7c0))()" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e7c0))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e7c0))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e7c0)" * (pointer_expression "*(code **)(pcVar27 + 0x7e7c0)" * (cast_expression "(code **)(pcVar27 + 0x7e7c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e7c0)" ( (binary_expression "pcVar27 + 0x7e7c0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;" if (parenthesized_expression "(iVar6 == *(int *)(iVar24 + 0x5a1c))" ( (binary_expression "iVar6 == *(int *)(iVar24 + 0x5a1c)" identifier == (pointer_expression "*(int *)(iVar24 + 0x5a1c)" * (cast_expression "(int *)(iVar24 + 0x5a1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x5a1c)" ( (binary_expression "iVar24 + 0x5a1c" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00076df0;" goto statement_identifier ;)) (labeled_statement "LAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();" statement_identifier : (expression_statement "uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();" (assignment_expression "uVar32 = (**(code **)(pcVar27 + 0x7e7c0))()" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e7c0))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e7c0))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e7c0)" * (pointer_expression "*(code **)(pcVar27 + 0x7e7c0)" * (cast_expression "(code **)(pcVar27 + 0x7e7c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e7c0)" ( (binary_expression "pcVar27 + 0x7e7c0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;)) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e758);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e758)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7e758)" * (cast_expression "(code **)(pcVar27 + 0x7e758)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e758)" ( (binary_expression "pcVar27 + 0x7e758" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar24 + 0x5a1c) = uVar32;" (assignment_expression "*(undefined4 *)(iVar24 + 0x5a1c) = uVar32" (pointer_expression "*(undefined4 *)(iVar24 + 0x5a1c)" * (cast_expression "(undefined4 *)(iVar24 + 0x5a1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x5a1c)" ( (binary_expression "iVar24 + 0x5a1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar28)(0,0);" (call_expression "(*pcVar28)(0,0)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(0,0)" ( number_literal , number_literal ))) ;) (goto_statement "goto LAB_00076df0;" goto statement_identifier ;) })) (expression_statement "iVar24 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();" (assignment_expression "iVar6 = (**(code **)(pcVar27 + 0x7e7c0))()" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e7c0))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e7c0))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e7c0)" * (pointer_expression "*(code **)(pcVar27 + 0x7e7c0)" * (cast_expression "(code **)(pcVar27 + 0x7e7c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e7c0)" ( (binary_expression "pcVar27 + 0x7e7c0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (*(int *)(iVar24 + 0x5a1c) != iVar6) {\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }" if (parenthesized_expression "(*(int *)(iVar24 + 0x5a1c) != iVar6)" ( (binary_expression "*(int *)(iVar24 + 0x5a1c) != iVar6" (pointer_expression "*(int *)(iVar24 + 0x5a1c)" * (cast_expression "(int *)(iVar24 + 0x5a1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x5a1c)" ( (binary_expression "iVar24 + 0x5a1c" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_00076ff4;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);" (call_expression "(**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e728))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e728)" * (pointer_expression "*(code **)(pcVar27 + 0x7e728)" * (cast_expression "(code **)(pcVar27 + 0x7e728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e728)" ( (binary_expression "pcVar27 + 0x7e728" identifier + number_literal) ))))) )) (argument_list "(param_3,0,0x58)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (if_statement "if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;" if (parenthesized_expression "(puVar14 == (undefined4 *)0x0)" ( (binary_expression "puVar14 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00077258;" goto statement_identifier ;)) (labeled_statement "LAB_00076e18:\n    iVar6 = -1;" statement_identifier : (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;)) (labeled_statement "LAB_00076e20:\n    uVar18 = uVar5;" statement_identifier : (expression_statement "uVar18 = uVar5;" (assignment_expression "uVar18 = uVar5" identifier = identifier) ;)) (if_statement "if ((param_4 & 4) != 0) {\n      uVar18 = uVar5 | 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      uVar18 = uVar5 | 0x100;\n    }" { (expression_statement "uVar18 = uVar5 | 0x100;" (assignment_expression "uVar18 = uVar5 | 0x100" identifier = (binary_expression "uVar5 | 0x100" identifier | number_literal)) ;) })) (if_statement "if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }\n    else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\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 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }" { (if_statement "if (-1 < iVar6) goto LAB_00076e44;" if (parenthesized_expression "(-1 < iVar6)" ( (binary_expression "-1 < iVar6" number_literal < identifier) )) (goto_statement "goto LAB_00076e44;" goto statement_identifier ;)) (labeled_statement "LAB_00077030:\n      uVar31 = uVar18 | 0x22000;" statement_identifier : (expression_statement "uVar31 = uVar18 | 0x22000;" (assignment_expression "uVar31 = uVar18 | 0x22000" identifier = (binary_expression "uVar18 | 0x22000" identifier | number_literal)) ;)) (if_statement "if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }" if (parenthesized_expression "((param_4 & 0x80800) != 0)" ( (binary_expression "(param_4 & 0x80800) != 0" (parenthesized_expression "(param_4 & 0x80800)" ( (binary_expression "param_4 & 0x80800" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }" { (if_statement "if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }" if (parenthesized_expression "(puVar16 == (undefined4 *)0x0)" ( (binary_expression "puVar16 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }" { (expression_statement "cVar11 = *(char *)(in_zero + -1);" (assignment_expression "cVar11 = *(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 "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (if_statement "if (cVar11 != '-') goto LAB_00077090;" if (parenthesized_expression "(cVar11 != '-')" ( (binary_expression "cVar11 != '-'" identifier != (char_literal "'-'" ' character ')) )) (goto_statement "goto LAB_00077090;" goto statement_identifier ;)) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e790);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e790)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7e790)" * (cast_expression "(code **)(pcVar27 + 0x7e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e790)" ( (binary_expression "pcVar27 + 0x7e790" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }" else (compound_statement "{\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }" { (expression_statement "uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);" (assignment_expression "uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16)" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e760))(puVar16)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e760))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e760)" * (pointer_expression "*(code **)(pcVar27 + 0x7e760)" * (cast_expression "(code **)(pcVar27 + 0x7e760)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e760)" ( (binary_expression "pcVar27 + 0x7e760" identifier + number_literal) ))))) )) (argument_list "(puVar16)" ( identifier )))) ;) (expression_statement "iVar6 = (uVar8 & 0x3fffffff) - 1;" (assignment_expression "iVar6 = (uVar8 & 0x3fffffff) - 1" identifier = (binary_expression "(uVar8 & 0x3fffffff) - 1" (parenthesized_expression "(uVar8 & 0x3fffffff)" ( (binary_expression "uVar8 & 0x3fffffff" identifier & number_literal) )) - number_literal)) ;) (expression_statement "cVar11 = *(char *)((int)puVar16 + iVar6);" (assignment_expression "cVar11 = *(char *)((int)puVar16 + iVar6)" identifier = (pointer_expression "*(char *)((int)puVar16 + iVar6)" * (cast_expression "(char *)((int)puVar16 + iVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar16 + iVar6)" ( (binary_expression "(int)puVar16 + iVar6" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (if_statement "if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }" if (parenthesized_expression "(cVar11 != '-')" ( (binary_expression "cVar11 != '-'" identifier != (char_literal "'-'" ' character ')) )) (compound_statement "{\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }" { (if_statement "if (iVar6 == 0) goto LAB_000773f8;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000773f8;" goto statement_identifier ;)) (labeled_statement "LAB_00077090:\n            iVar6 = iVar6 + -1;" statement_identifier : (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;)) (if_statement "if (cVar11 == '.') goto LAB_000773f8;" if (parenthesized_expression "(cVar11 == '.')" ( (binary_expression "cVar11 == '.'" identifier == (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_000773f8;" goto statement_identifier ;)) (expression_statement "pcVar13 = (char *)((int)puVar16 + iVar6);" (assignment_expression "pcVar13 = (char *)((int)puVar16 + iVar6)" identifier = (cast_expression "(char *)((int)puVar16 + iVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar16 + iVar6)" ( (binary_expression "(int)puVar16 + iVar6" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (while_statement "while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }" while (parenthesized_expression "(cVar11 = *pcVar13, cVar11 != '-')" ( (comma_expression "cVar11 = *pcVar13, cVar11 != '-'" (assignment_expression "cVar11 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) , (binary_expression "cVar11 != '-'" identifier != (char_literal "'-'" ' character '))) )) (compound_statement "{\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }" { (if_statement "if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;" if (parenthesized_expression "((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.'))" ( (binary_expression "(iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')" (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) || (parenthesized_expression "(pcVar13 = pcVar13 + -1, cVar11 == '.')" ( (comma_expression "pcVar13 = pcVar13 + -1, cVar11 == '.'" (assignment_expression "pcVar13 = pcVar13 + -1" identifier = (binary_expression "pcVar13 + -1" identifier + number_literal)) , (binary_expression "cVar11 == '.'" identifier == (char_literal "'.'" ' character '))) ))) )) (goto_statement "goto LAB_000773f8;" goto statement_identifier ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) })) })) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e790);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e790)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7e790)" * (cast_expression "(code **)(pcVar27 + 0x7e790)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e790)" ( (binary_expression "pcVar27 + 0x7e790" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);" (assignment_expression "uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201)" identifier = (call_expression "(*pcVar28)(auStack_65c,puVar16,iVar6,0x201)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(auStack_65c,puVar16,iVar6,0x201)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "iVar24 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) ))))) ;) (expression_statement "auStack_65c[iVar6] = 0;" (assignment_expression "auStack_65c[iVar6] = 0" (subscript_expression "auStack_65c[iVar6]" identifier [ identifier ]) = number_literal) ;) (expression_statement "iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);" (assignment_expression "iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700)" identifier = (call_expression "(**(code **)(iVar24 + 0x5184))(uVar32,local_700)" (parenthesized_expression "(**(code **)(iVar24 + 0x5184))" ( (pointer_expression "**(code **)(iVar24 + 0x5184)" * (pointer_expression "*(code **)(iVar24 + 0x5184)" * (cast_expression "(code **)(iVar24 + 0x5184)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x5184)" ( (binary_expression "iVar24 + 0x5184" identifier + number_literal) ))))) )) (argument_list "(uVar32,local_700)" ( identifier , identifier )))) ;) (if_statement "if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }" { (labeled_statement "LAB_000778c0:\n          iVar24 = 0x70a;" statement_identifier : (expression_statement "iVar24 = 0x70a;" (assignment_expression "iVar24 = 0x70a" identifier = number_literal) ;)) (goto_statement "goto LAB_00076f98;" goto statement_identifier ;) })) (expression_statement "local_730 = local_6e0;" (assignment_expression "local_730 = local_6e0" identifier = identifier) ;) (expression_statement "local_720 = local_6dc;" (assignment_expression "local_720 = local_6dc" identifier = identifier) ;) (labeled_statement "LAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;" statement_identifier : (expression_statement "uVar8 = local_6e8 & 0x1ff;" (assignment_expression "uVar8 = local_6e8 & 0x1ff" identifier = (binary_expression "local_6e8 & 0x1ff" identifier & number_literal)) ;)) (expression_statement "pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);" (assignment_expression "pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" identifier = (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" ( (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x7c30" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" * (cast_expression "(int *)(pcVar27 + 0x7e5c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5c0)" ( (binary_expression "pcVar27 + 0x7e5c0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);" (assignment_expression "iVar6 = (*pcVar28)(puVar16,uVar31,uVar8)" identifier = (call_expression "(*pcVar28)(puVar16,uVar31,uVar8)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(puVar16,uVar31,uVar8)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar6 < 0) goto LAB_0007743c;" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0007743c;" goto statement_identifier ;)) (labeled_statement "LAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }" statement_identifier : (if_statement "if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }" if (parenthesized_expression "(((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0))" ( (binary_expression "((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)" (parenthesized_expression "((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0))" ( (binary_expression "(uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)" (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)" ( (comma_expression "iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) ))))) , (binary_expression "(param_4 & 0x80800) != 0" (parenthesized_expression "(param_4 & 0x80800)" ( (binary_expression "param_4 & 0x80800" identifier & number_literal) )) != number_literal)) ))) )) && (parenthesized_expression "(iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)" ( (comma_expression "iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(iVar24 + 0x5250))()" identifier = (call_expression "(**(code **)(iVar24 + 0x5250))()" (parenthesized_expression "(**(code **)(iVar24 + 0x5250))" ( (pointer_expression "**(code **)(iVar24 + 0x5250)" * (pointer_expression "*(code **)(iVar24 + 0x5250)" * (cast_expression "(code **)(iVar24 + 0x5250)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x5250)" ( (binary_expression "iVar24 + 0x5250" identifier + number_literal) ))))) )) (argument_list "()" ( )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }" { (expression_statement "(**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);" (call_expression "(**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720)" (parenthesized_expression "(**(code **)(iVar24 + 0x5244))" ( (pointer_expression "**(code **)(iVar24 + 0x5244)" * (pointer_expression "*(code **)(iVar24 + 0x5244)" * (cast_expression "(code **)(iVar24 + 0x5244)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x5244)" ( (binary_expression "iVar24 + 0x5244" identifier + number_literal) ))))) )) (argument_list "(iVar6,local_730,local_720)" ( identifier , identifier , identifier ))) ;) }))) (goto_statement "goto LAB_00076e44;" goto statement_identifier ;) })) (if_statement "if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }" { (if_statement "if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }" if (parenthesized_expression "(((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0))" ( (binary_expression "((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 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 "(iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)" ( (comma_expression "iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0" (assignment_expression "iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684)" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e780))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e780)" * (pointer_expression "*(code **)(pcVar27 + 0x7e780)" * (cast_expression "(code **)(pcVar27 + 0x7e780)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e780)" ( (binary_expression "pcVar27 + 0x7e780" identifier + number_literal) ))))) )) (argument_list "(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684)" ( identifier , (binary_expression "*(int *)(pcVar27 + 0x7e5ac) + -0x7684" (pointer_expression "*(int *)(pcVar27 + 0x7e5ac)" * (cast_expression "(int *)(pcVar27 + 0x7e5ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5ac)" ( (binary_expression "pcVar27 + 0x7e5ac" identifier + number_literal) )))) + number_literal) )))) , (binary_expression "iVar6 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }" { (expression_statement "iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);" (assignment_expression "iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700)" identifier = (call_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700)" (parenthesized_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))" ( (pointer_expression "**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184)" * (pointer_expression "*(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184)" * (cast_expression "(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e594) + 0x5184)" ( (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x5184" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar6,local_700)" ( identifier , identifier )))) ;) (if_statement "if (iVar6 != 0) goto LAB_000778c0;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000778c0;" goto statement_identifier ;)) (expression_statement "local_730 = local_6e0;" (assignment_expression "local_730 = local_6e0" identifier = identifier) ;) (expression_statement "local_720 = local_6dc;" (assignment_expression "local_720 = local_6dc" identifier = identifier) ;) (goto_statement "goto LAB_00077140;" goto statement_identifier ;) })) (labeled_statement "LAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);" statement_identifier : (expression_statement "pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);" (assignment_expression "pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" identifier = (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" ( (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x7c30" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" * (cast_expression "(int *)(pcVar27 + 0x7e5c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5c0)" ( (binary_expression "pcVar27 + 0x7e5c0" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "iVar6 = (*pcVar28)(puVar16,uVar31,0);" (assignment_expression "iVar6 = (*pcVar28)(puVar16,uVar31,0)" identifier = (call_expression "(*pcVar28)(puVar16,uVar31,0)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(puVar16,uVar31,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (-1 < iVar6) goto LAB_00076e44;" if (parenthesized_expression "(-1 < iVar6)" ( (binary_expression "-1 < iVar6" number_literal < identifier) )) (goto_statement "goto LAB_00076e44;" goto statement_identifier ;)) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "local_720 = 0;" (assignment_expression "local_720 = 0" identifier = number_literal) ;) (expression_statement "local_730 = 0;" (assignment_expression "local_730 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }" else (compound_statement "{\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }" { (expression_statement "pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);" (assignment_expression "pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" identifier = (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" ( (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x7c30" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" * (cast_expression "(int *)(pcVar27 + 0x7e5c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5c0)" ( (binary_expression "pcVar27 + 0x7e5c0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar6 = (*pcVar28)(puVar16,uVar31,0x180);" (assignment_expression "iVar6 = (*pcVar28)(puVar16,uVar31,0x180)" identifier = (call_expression "(*pcVar28)(puVar16,uVar31,0x180)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(puVar16,uVar31,0x180)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (-1 < iVar6) goto LAB_00076e44;" if (parenthesized_expression "(-1 < iVar6)" ( (binary_expression "-1 < iVar6" number_literal < identifier) )) (goto_statement "goto LAB_00076e44;" goto statement_identifier ;)) (expression_statement "local_720 = 0;" (assignment_expression "local_720 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = 0x180;" (assignment_expression "uVar8 = 0x180" identifier = number_literal) ;) (expression_statement "local_730 = 0;" (assignment_expression "local_730 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();" statement_identifier : (expression_statement "piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();" (assignment_expression "piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))()" identifier = (cast_expression "(int *)(**(code **)(pcVar27 + 0x7e718))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar27 + 0x7e718))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e718))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e718)" * (pointer_expression "*(code **)(pcVar27 + 0x7e718)" * (cast_expression "(code **)(pcVar27 + 0x7e718)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e718)" ( (binary_expression "pcVar27 + 0x7e718" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;)) (expression_statement "iVar6 = *piVar30;" (assignment_expression "iVar6 = *piVar30" identifier = (pointer_expression "*piVar30" * identifier)) ;) (if_statement "if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }" if (parenthesized_expression "((bVar1) && (iVar6 == 0xd))" ( (binary_expression "(bVar1) && (iVar6 == 0xd)" (parenthesized_expression "(bVar1)" ( identifier )) && (parenthesized_expression "(iVar6 == 0xd)" ( (binary_expression "iVar6 == 0xd" identifier == number_literal) ))) )) (compound_statement "{\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }" { (expression_statement "iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);" (assignment_expression "iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0)" identifier = (call_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0)" (parenthesized_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))" ( (pointer_expression "**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c)" * (pointer_expression "*(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c)" * (cast_expression "(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e594) + 0x516c)" ( (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x516c" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar16,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }" { (expression_statement "iVar6 = *piVar30;" (assignment_expression "iVar6 = *piVar30" identifier = (pointer_expression "*piVar30" * identifier)) ;) (goto_statement "goto LAB_000774ac;" goto statement_identifier ;) })) (expression_statement "uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);" (assignment_expression "uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7)" identifier = (call_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))" ( (pointer_expression "*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c)" * (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x489c)" ( (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x489c" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" * (cast_expression "(int *)(pcVar27 + 0x7e5c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5c0)" ( (binary_expression "pcVar27 + 0x7e5c0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(0x9ae7)" ( number_literal )))) ;) (expression_statement "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);" (call_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))" ( (pointer_expression "*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8)" * (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8)" ( (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" * (cast_expression "(int *)(pcVar27 + 0x7e5c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5c0)" ( (binary_expression "pcVar27 + 0x7e5c0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7)" ( identifier , (binary_expression "*(int *)(pcVar27 + 0x7e5ac) + -0x7c98" (pointer_expression "*(int *)(pcVar27 + 0x7e5ac)" * (cast_expression "(int *)(pcVar27 + 0x7e5ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5ac)" ( (binary_expression "pcVar27 + 0x7e5ac" identifier + number_literal) )))) + number_literal) , identifier , number_literal ))) ;) (expression_statement "iVar24 = 0x608;" (assignment_expression "iVar24 = 0x608" identifier = number_literal) ;) (goto_statement "goto LAB_00077570;" goto statement_identifier ;) })) (labeled_statement "LAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }" statement_identifier : (if_statement "if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }" if (parenthesized_expression "((iVar6 != 0x15) && (uVar5 != 0))" ( (binary_expression "(iVar6 != 0x15) && (uVar5 != 0)" (parenthesized_expression "(iVar6 != 0x15)" ( (binary_expression "iVar6 != 0x15" identifier != number_literal) )) && (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) ))) )) (compound_statement "{\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\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 "iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);" (assignment_expression "iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8)" identifier = (call_expression "(*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8)" ( identifier , (binary_expression "uVar18 & 0xfffffefd | 0x22000" (binary_expression "uVar18 & 0xfffffefd" identifier & number_literal) | number_literal) , identifier )))) ;) (if_statement "if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }" if (parenthesized_expression "(-1 < iVar6)" ( (binary_expression "-1 < iVar6" number_literal < identifier) )) (compound_statement "{\n          local_728 = 1;\n          goto LAB_00077180;\n        }" { (expression_statement "local_728 = 1;" (assignment_expression "local_728 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00077180;" goto statement_identifier ;) })) }))) (expression_statement "uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);" (assignment_expression "uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7)" identifier = (call_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))" ( (pointer_expression "*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c)" * (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x489c)" ( (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x489c" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" * (cast_expression "(int *)(pcVar27 + 0x7e5c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5c0)" ( (binary_expression "pcVar27 + 0x7e5c0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(0x9ae7)" ( number_literal )))) ;) (expression_statement "iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);" (assignment_expression "iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7)" identifier = (call_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))" ( (pointer_expression "*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8)" * (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8)" ( (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" * (cast_expression "(int *)(pcVar27 + 0x7e5c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5c0)" ( (binary_expression "pcVar27 + 0x7e5c0" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7)" ( identifier , (binary_expression "*(int *)(pcVar27 + 0x7e5ac) + -0x7c98" (pointer_expression "*(int *)(pcVar27 + 0x7e5ac)" * (cast_expression "(int *)(pcVar27 + 0x7e5ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5ac)" ( (binary_expression "pcVar27 + 0x7e5ac" identifier + number_literal) )))) + number_literal) , identifier , number_literal )))) ;) (if_statement "if (iVar24 == 0) goto LAB_00076f98;" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00076f98;" goto statement_identifier ;)) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e678);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e678)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7e678)" * (cast_expression "(code **)(pcVar27 + 0x7e678)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e678)" ( (binary_expression "pcVar27 + 0x7e678" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00077574:\n      (*pcVar28)(param_3[7]);" statement_identifier : (expression_statement "(*pcVar28)(param_3[7]);" (call_expression "(*pcVar28)(param_3[7])" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(param_3[7])" ( (subscript_expression "param_3[7]" identifier [ number_literal ]) ))) ;)) }) (else_clause "else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }" else (compound_statement "{\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }" { (expression_statement "uVar18 = uVar18 | 0x20400;" (assignment_expression "uVar18 = uVar18 | 0x20400" identifier = (binary_expression "uVar18 | 0x20400" identifier | number_literal)) ;) (if_statement "if (iVar6 < 0) goto LAB_00077030;" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00077030;" goto statement_identifier ;)) (labeled_statement "LAB_00076e44:\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) ;) }))) (expression_statement "piVar30 = (int *)param_3[7];" (assignment_expression "piVar30 = (int *)param_3[7]" identifier = (cast_expression "(int *)param_3[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[7]" identifier [ number_literal ]))) ;) (if_statement "if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }" if (parenthesized_expression "(piVar30 != (int *)0x0)" ( (binary_expression "piVar30 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }" { (expression_statement "*piVar30 = iVar6;" (assignment_expression "*piVar30 = iVar6" (pointer_expression "*piVar30" * identifier) = identifier) ;) (expression_statement "piVar30[1] = param_4 & 3;" (assignment_expression "piVar30[1] = param_4 & 3" (subscript_expression "piVar30[1]" identifier [ number_literal ]) = (binary_expression "param_4 & 3" identifier & number_literal)) ;) })) (if_statement "if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }" if (parenthesized_expression "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }" { (expression_statement "uVar21 = 0x20;" (assignment_expression "uVar21 = 0x20" identifier = number_literal) ;) (expression_statement "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);" (call_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16)" (parenthesized_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))" ( (pointer_expression "**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214)" * (pointer_expression "*(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214)" * (cast_expression "(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e594) + 0x5214)" ( (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x5214" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar16)" ( identifier ))) ;) })) (if_statement "if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }" if (parenthesized_expression "(local_728 != 0)" ( (binary_expression "local_728 != 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 (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }" if (parenthesized_expression "(uVar22 != 0x100)" ( (binary_expression "uVar22 != 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 (bVar1) {\n        uVar21 = uVar21 | 8;\n      }" if (parenthesized_expression "(bVar1)" ( 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 "iVar24 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) ))))) ;) (if_statement "if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\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] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }" { (expression_statement "param_3[3] = iVar6;" (assignment_expression "param_3[3] = iVar6" (subscript_expression "param_3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[1] = iVar4;" (assignment_expression "param_3[1] = iVar4" (subscript_expression "param_3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[8] = (int)puVar14;" (assignment_expression "param_3[8] = (int)puVar14" (subscript_expression "param_3[8]" identifier [ number_literal ]) = (cast_expression "(int)puVar14" ( (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 "iVar7 = *(int *)(iVar24 + 0x4148);" (assignment_expression "iVar7 = *(int *)(iVar24 + 0x4148)" identifier = (pointer_expression "*(int *)(iVar24 + 0x4148)" * (cast_expression "(int *)(iVar24 + 0x4148)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x4148)" ( (binary_expression "iVar24 + 0x4148" identifier + number_literal) ))))) ;) (expression_statement "param_3[0x11] = *(int *)(iVar24 + 0x414c);" (assignment_expression "param_3[0x11] = *(int *)(iVar24 + 0x414c)" (subscript_expression "param_3[0x11]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar24 + 0x414c)" * (cast_expression "(int *)(iVar24 + 0x414c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x414c)" ( (binary_expression "iVar24 + 0x414c" identifier + number_literal) ))))) ;) (expression_statement "param_3[0x10] = iVar7;" (assignment_expression "param_3[0x10] = iVar7" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar19 = (undefined4 *)0x0;" (assignment_expression "puVar19 = (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] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }" else (compound_statement "{\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }" { (expression_statement "uVar21 = uVar21 | 0x40;" (assignment_expression "uVar21 = uVar21 | 0x40" identifier = (binary_expression "uVar21 | 0x40" identifier | number_literal)) ;) (expression_statement "param_3[3] = iVar6;" (assignment_expression "param_3[3] = iVar6" (subscript_expression "param_3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[1] = iVar4;" (assignment_expression "param_3[1] = iVar4" (subscript_expression "param_3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[8] = (int)puVar14;" (assignment_expression "param_3[8] = (int)puVar14" (subscript_expression "param_3[8]" identifier [ number_literal ]) = (cast_expression "(int)puVar14" ( (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 "iVar7 = *(int *)(iVar24 + 0x4148);" (assignment_expression "iVar7 = *(int *)(iVar24 + 0x4148)" identifier = (pointer_expression "*(int *)(iVar24 + 0x4148)" * (cast_expression "(int *)(iVar24 + 0x4148)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x4148)" ( (binary_expression "iVar24 + 0x4148" identifier + number_literal) ))))) ;) (expression_statement "param_3[0x11] = *(int *)(iVar24 + 0x414c);" (assignment_expression "param_3[0x11] = *(int *)(iVar24 + 0x414c)" (subscript_expression "param_3[0x11]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar24 + 0x414c)" * (cast_expression "(int *)(iVar24 + 0x414c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x414c)" ( (binary_expression "iVar24 + 0x414c" identifier + number_literal) ))))) ;) (expression_statement "param_3[0x10] = iVar7;" (assignment_expression "param_3[0x10] = iVar7" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar19 = puVar14;" (assignment_expression "puVar19 = puVar14" identifier = identifier) ;) }))) (expression_statement "iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);" (assignment_expression "iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1)" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e86c))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e86c)" * (pointer_expression "*(code **)(pcVar27 + 0x7e86c)" * (cast_expression "(code **)(pcVar27 + 0x7e86c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e86c)" ( (binary_expression "pcVar27 + 0x7e86c" identifier + number_literal) ))))) )) (argument_list "(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1)" ( identifier , (binary_expression "*(int *)(pcVar27 + 0x7e5ac) + -0x767c" (pointer_expression "*(int *)(pcVar27 + 0x7e5ac)" * (cast_expression "(int *)(pcVar27 + 0x7e5ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5ac)" ( (binary_expression "pcVar27 + 0x7e5ac" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 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 "iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);" (assignment_expression "iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674)" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e890))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e890)" * (pointer_expression "*(code **)(pcVar27 + 0x7e890)" * (cast_expression "(code **)(pcVar27 + 0x7e890)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e890)" ( (binary_expression "pcVar27 + 0x7e890" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" * (cast_expression "(undefined4 *)(iVar4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar27 + 0x7e5ac) + -0x7674" (pointer_expression "*(int *)(pcVar27 + 0x7e5ac)" * (cast_expression "(int *)(pcVar27 + 0x7e5ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5ac)" ( (binary_expression "pcVar27 + 0x7e5ac" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 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        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\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        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }" { (expression_statement "iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);" (assignment_expression "iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3)" identifier = (call_expression "(*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3)" (parenthesized_expression "(*(code *)**(undefined4 **)(iVar4 + 0x14))" ( (pointer_expression "*(code *)**(undefined4 **)(iVar4 + 0x14)" * (cast_expression "(code *)**(undefined4 **)(iVar4 + 0x14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(iVar4 + 0x14)" * (pointer_expression "*(undefined4 **)(iVar4 + 0x14)" * (cast_expression "(undefined4 **)(iVar4 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))))) )) (argument_list "(puVar14,param_3)" ( identifier , identifier )))) ;) (expression_statement "iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;" (assignment_expression "iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24" identifier = (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x3b24" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }" if (parenthesized_expression "(iVar7 != iVar4)" ( (binary_expression "iVar7 != iVar4" identifier != identifier) )) (compound_statement "{\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }" { (expression_statement "iVar4 = iVar7;" (assignment_expression "iVar4 = iVar7" identifier = identifier) ;) (if_statement "if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }" if (parenthesized_expression "(iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84)" ( (binary_expression "iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84" identifier == (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x3a84" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) )))) + number_literal)) )) (compound_statement "{\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }" { (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14)" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e760))(puVar14)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e760))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e760)" * (pointer_expression "*(code **)(pcVar27 + 0x7e760)" * (cast_expression "(code **)(pcVar27 + 0x7e760)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e760)" ( (binary_expression "pcVar27 + 0x7e760" identifier + number_literal) ))))) )) (argument_list "(puVar14)" ( identifier )))) ;) (expression_statement "iVar24 = iVar24 + 6;" (assignment_expression "iVar24 = iVar24 + 6" identifier = (binary_expression "iVar24 + 6" identifier + number_literal)) ;) (expression_statement "iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);" (assignment_expression "iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24)" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e7f4))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e7f4)" * (pointer_expression "*(code **)(pcVar27 + 0x7e7f4)" * (cast_expression "(code **)(pcVar27 + 0x7e7f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e7f4)" ( (binary_expression "pcVar27 + 0x7e7f4" identifier + number_literal) ))))) )) (argument_list "(iVar24 >> 0x1f,iVar24)" ( (binary_expression "iVar24 >> 0x1f" identifier >> number_literal) , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }" { (expression_statement "iVar4 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar4 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" 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 "iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);" (assignment_expression "iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6)" identifier = (call_expression "(**(code **)(iVar4 + 0x5160))(iVar6)" (parenthesized_expression "(**(code **)(iVar4 + 0x5160))" ( (pointer_expression "**(code **)(iVar4 + 0x5160)" * (pointer_expression "*(code **)(iVar4 + 0x5160)" * (cast_expression "(code **)(iVar4 + 0x5160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x5160)" ( (binary_expression "iVar4 + 0x5160" identifier + number_literal) ))))) )) (argument_list "(iVar6)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                iVar24 = 7;\n              }" { (expression_statement "iVar24 = 7;" (assignment_expression "iVar24 = 7" identifier = number_literal) ;) }) (else_clause "else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }" else (compound_statement "{\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }" { (expression_statement "(*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);" (call_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))" ( (pointer_expression "*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c)" * (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c)" ( (binary_expression "*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c" (pointer_expression "*(int *)(pcVar27 + 0x7e5e4)" * (cast_expression "(int *)(pcVar27 + 0x7e5e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5e4)" ( (binary_expression "pcVar27 + 0x7e5e4" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(param_3,0x9949)" ( identifier , number_literal ))) ;) (expression_statement "iVar24 = 7;" (assignment_expression "iVar24 = 7" identifier = number_literal) ;) }))) (goto_statement "goto LAB_00077570;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);" (call_expression "(**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e764))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e764)" * (pointer_expression "*(code **)(pcVar27 + 0x7e764)" * (cast_expression "(code **)(pcVar27 + 0x7e764)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e764)" ( (binary_expression "pcVar27 + 0x7e764" identifier + number_literal) ))))) )) (argument_list "(iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14)" ( identifier , identifier , (binary_expression "*(int *)(pcVar27 + 0x7e5ac) + -0x7668" (pointer_expression "*(int *)(pcVar27 + 0x7e5ac)" * (cast_expression "(int *)(pcVar27 + 0x7e5ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5ac)" ( (binary_expression "pcVar27 + 0x7e5ac" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "param_3[6] = iVar7;" (assignment_expression "param_3[6] = iVar7" (subscript_expression "param_3[6]" identifier [ number_literal ]) = identifier) ;) })) (goto_statement "goto LAB_00076f78;" goto statement_identifier ;) })) (expression_statement "iVar7 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar7 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e720))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e720)" * (pointer_expression "*(code **)(pcVar27 + 0x7e720)" * (cast_expression "(code **)(pcVar27 + 0x7e720)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e720)" ( (binary_expression "pcVar27 + 0x7e720" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar7 + 0x5a18))" ( (pointer_expression "*(undefined4 *)(iVar7 + 0x5a18)" * (cast_expression "(undefined4 *)(iVar7 + 0x5a18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x5a18)" ( (binary_expression "iVar7 + 0x5a18" identifier + number_literal) )))) ))) ;) (expression_statement "iVar23 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar23 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);" (assignment_expression "iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700)" identifier = (call_expression "(**(code **)(iVar23 + 0x5190))(param_3[3],local_700)" (parenthesized_expression "(**(code **)(iVar23 + 0x5190))" ( (pointer_expression "**(code **)(iVar23 + 0x5190)" * (pointer_expression "*(code **)(iVar23 + 0x5190)" * (cast_expression "(code **)(iVar23 + 0x5190)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar23 + 0x5190)" ( (binary_expression "iVar23 + 0x5190" identifier + number_literal) ))))) )) (argument_list "(param_3[3],local_700)" ( (subscript_expression "param_3[3]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }" { (expression_statement "piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();" (assignment_expression "piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))()" identifier = (cast_expression "(int *)(**(code **)(pcVar27 + 0x7e718))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar27 + 0x7e718))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e718))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e718)" * (pointer_expression "*(code **)(pcVar27 + 0x7e718)" * (cast_expression "(code **)(pcVar27 + 0x7e718)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e718)" ( (binary_expression "pcVar27 + 0x7e718" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar24 = 10;" (assignment_expression "iVar24 = 10" identifier = number_literal) ;) (expression_statement "param_3[5] = *piVar30;" (assignment_expression "param_3[5] = *piVar30" (subscript_expression "param_3[5]" identifier [ number_literal ]) = (pointer_expression "*piVar30" * identifier)) ;) (labeled_statement "LAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);" statement_identifier : (expression_statement "iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);" (assignment_expression "iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6)" identifier = (call_expression "(**(code **)(iVar23 + 0x5160))(iVar6)" (parenthesized_expression "(**(code **)(iVar23 + 0x5160))" ( (pointer_expression "**(code **)(iVar23 + 0x5160)" * (pointer_expression "*(code **)(iVar23 + 0x5160)" * (cast_expression "(code **)(iVar23 + 0x5160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar23 + 0x5160)" ( (binary_expression "iVar23 + 0x5160" identifier + number_literal) ))))) )) (argument_list "(iVar6)" ( identifier )))) ;)) (if_statement "if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }" { (expression_statement "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e748))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e748)" * (pointer_expression "*(code **)(pcVar27 + 0x7e748)" * (cast_expression "(code **)(pcVar27 + 0x7e748)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e748)" ( (binary_expression "pcVar27 + 0x7e748" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar7 + 0x5a18))" ( (pointer_expression "*(undefined4 *)(iVar7 + 0x5a18)" * (cast_expression "(undefined4 *)(iVar7 + 0x5a18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x5a18)" ( (binary_expression "iVar7 + 0x5a18" 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 *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }" else (compound_statement "{\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }" { (expression_statement "(*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);" (call_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))" ( (pointer_expression "*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c)" * (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c)" ( (binary_expression "*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c" (pointer_expression "*(int *)(pcVar27 + 0x7e5e4)" * (cast_expression "(int *)(pcVar27 + 0x7e5e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5e4)" ( (binary_expression "pcVar27 + 0x7e5e4" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(param_3,0x98f4)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e748))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e748)" * (pointer_expression "*(code **)(pcVar27 + 0x7e748)" * (cast_expression "(code **)(pcVar27 + 0x7e748)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e748)" ( (binary_expression "pcVar27 + 0x7e748" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar7 + 0x5a18))" ( (pointer_expression "*(undefined4 *)(iVar7 + 0x5a18)" * (cast_expression "(undefined4 *)(iVar7 + 0x5a18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x5a18)" ( (binary_expression "iVar7 + 0x5a18" 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) ;) }))) (labeled_statement "LAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);" statement_identifier : (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e678);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e678)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7e678)" * (cast_expression "(code **)(pcVar27 + 0x7e678)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e678)" ( (binary_expression "pcVar27 + 0x7e678" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_00077574;" goto statement_identifier ;) })) (expression_statement "iVar9 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar9 = *(int *)(pcVar27 + 0x7e594)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" 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 "puVar19 = *(undefined4 **)(iVar9 + 0x5a14);" (assignment_expression "puVar19 = *(undefined4 **)(iVar9 + 0x5a14)" identifier = (pointer_expression "*(undefined4 **)(iVar9 + 0x5a14)" * (cast_expression "(undefined4 **)(iVar9 + 0x5a14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x5a14)" ( (binary_expression "iVar9 + 0x5a14" identifier + number_literal) ))))) ;) (expression_statement "local_708 = local_6f0;" (assignment_expression "local_708 = local_6f0" identifier = identifier) ;) (if_statement "if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }" if (parenthesized_expression "(puVar19 == (undefined4 *)0x0)" ( (binary_expression "puVar19 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }" { (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e7f4);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e7f4)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7e7f4)" * (cast_expression "(code **)(pcVar27 + 0x7e7f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e7f4)" ( (binary_expression "pcVar27 + 0x7e7f4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }" else (compound_statement "{\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }" { (do_statement "do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);" do (compound_statement "{\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          }" { (expression_statement "iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);" (assignment_expression "iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10)" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e82c))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e82c)" * (pointer_expression "*(code **)(pcVar27 + 0x7e82c)" * (cast_expression "(code **)(pcVar27 + 0x7e82c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e82c)" ( (binary_expression "pcVar27 + 0x7e82c" identifier + number_literal) ))))) )) (argument_list "(&local_710,puVar19,0x10)" ( (pointer_expression "&local_710" & identifier) , identifier , number_literal )))) ;) (if_statement "if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }" { (expression_statement "puVar19[9] = puVar19[9] + 1;" (assignment_expression "puVar19[9] = puVar19[9] + 1" (subscript_expression "puVar19[9]" identifier [ number_literal ]) = (binary_expression "puVar19[9] + 1" (subscript_expression "puVar19[9]" identifier [ number_literal ]) + number_literal)) ;) (goto_statement "goto LAB_0007764c;" goto statement_identifier ;) })) (expression_statement "puVar19 = (undefined4 *)puVar19[0xb];" (assignment_expression "puVar19 = (undefined4 *)puVar19[0xb]" identifier = (cast_expression "(undefined4 *)puVar19[0xb]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar19[0xb]" identifier [ number_literal ]))) ;) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e7f4);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e7f4)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7e7f4)" * (cast_expression "(code **)(pcVar27 + 0x7e7f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e7f4)" ( (binary_expression "pcVar27 + 0x7e7f4" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(puVar19 != (undefined4 *)0x0)" ( (binary_expression "puVar19 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (expression_statement "puVar19 = (undefined4 *)(*pcVar28)(0,0x38);" (assignment_expression "puVar19 = (undefined4 *)(*pcVar28)(0,0x38)" identifier = (cast_expression "(undefined4 *)(*pcVar28)(0,0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar28)(0,0x38)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(0,0x38)" ( number_literal , number_literal ))))) ;) (if_statement "if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }" if (parenthesized_expression "(puVar19 == (undefined4 *)0x0)" ( (binary_expression "puVar19 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }" { (expression_statement "iVar24 = 7;" (assignment_expression "iVar24 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_0007782c;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);" (call_expression "(**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e728))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e728)" * (pointer_expression "*(code **)(pcVar27 + 0x7e728)" * (cast_expression "(code **)(pcVar27 + 0x7e728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e728)" ( (binary_expression "pcVar27 + 0x7e728" identifier + number_literal) ))))) )) (argument_list "(puVar19 + 4,0,0x28)" ( (binary_expression "puVar19 + 4" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "*puVar19 = local_710;" (assignment_expression "*puVar19 = local_710" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "puVar19[1] = local_70c;" (assignment_expression "puVar19[1] = local_70c" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar19[2] = local_708;" (assignment_expression "puVar19[2] = local_708" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar19[3] = local_704;" (assignment_expression "puVar19[3] = local_704" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }" if (parenthesized_expression "(*(char *)(iVar24 + 0x40a4) != '\0')" ( (binary_expression "*(char *)(iVar24 + 0x40a4) != '\0'" (pointer_expression "*(char *)(iVar24 + 0x40a4)" * (cast_expression "(char *)(iVar24 + 0x40a4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x40a4)" ( (binary_expression "iVar24 + 0x40a4" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }" { (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x7e824))(0)" identifier = (call_expression "(**(code **)(pcVar27 + 0x7e824))(0)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e824))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e824)" * (pointer_expression "*(code **)(pcVar27 + 0x7e824)" * (cast_expression "(code **)(pcVar27 + 0x7e824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e824)" ( (binary_expression "pcVar27 + 0x7e824" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "puVar19[4] = iVar24;" (assignment_expression "puVar19[4] = iVar24" (subscript_expression "puVar19[4]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }" { (expression_statement "(**(code **)(pcVar27 + 0x7e678))(puVar19);" (call_expression "(**(code **)(pcVar27 + 0x7e678))(puVar19)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e678))" ( (pointer_expression "**(code **)(pcVar27 + 0x7e678)" * (pointer_expression "*(code **)(pcVar27 + 0x7e678)" * (cast_expression "(code **)(pcVar27 + 0x7e678)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e678)" ( (binary_expression "pcVar27 + 0x7e678" identifier + number_literal) ))))) )) (argument_list "(puVar19)" ( identifier ))) ;) (expression_statement "iVar24 = 7;" (assignment_expression "iVar24 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_0007782c;" goto statement_identifier ;) })) })) (expression_statement "iVar6 = *(int *)(iVar9 + 0x5a14);" (assignment_expression "iVar6 = *(int *)(iVar9 + 0x5a14)" identifier = (pointer_expression "*(int *)(iVar9 + 0x5a14)" * (cast_expression "(int *)(iVar9 + 0x5a14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x5a14)" ( (binary_expression "iVar9 + 0x5a14" identifier + number_literal) ))))) ;) (expression_statement "puVar19[0xc] = 0;" (assignment_expression "puVar19[0xc] = 0" (subscript_expression "puVar19[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar19[9] = 1;" (assignment_expression "puVar19[9] = 1" (subscript_expression "puVar19[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar19[0xb] = iVar6;" (assignment_expression "puVar19[0xb] = iVar6" (subscript_expression "puVar19[0xb]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }" { (expression_statement "*(undefined4 **)(iVar6 + 0x30) = puVar19;" (assignment_expression "*(undefined4 **)(iVar6 + 0x30) = puVar19" (pointer_expression "*(undefined4 **)(iVar6 + 0x30)" * (cast_expression "(undefined4 **)(iVar6 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x30)" ( (binary_expression "iVar6 + 0x30" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(undefined4 **)(iVar9 + 0x5a14) = puVar19;" (assignment_expression "*(undefined4 **)(iVar9 + 0x5a14) = puVar19" (pointer_expression "*(undefined4 **)(iVar9 + 0x5a14)" * (cast_expression "(undefined4 **)(iVar9 + 0x5a14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x5a14)" ( (binary_expression "iVar9 + 0x5a14" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);" statement_identifier : (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e748);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e748)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7e748)" * (cast_expression "(code **)(pcVar27 + 0x7e748)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e748)" ( (binary_expression "pcVar27 + 0x7e748" identifier + number_literal) ))))) ;)) (expression_statement "param_3[2] = (int)puVar19;" (assignment_expression "param_3[2] = (int)puVar19" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "(*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));" (call_expression "(*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18))" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(*(undefined4 *)(iVar7 + 0x5a18))" ( (pointer_expression "*(undefined4 *)(iVar7 + 0x5a18)" * (cast_expression "(undefined4 *)(iVar7 + 0x5a18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x5a18)" ( (binary_expression "iVar7 + 0x5a18" 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        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }" else (compound_statement "{\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }" { (expression_statement "iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;" (assignment_expression "iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4" identifier = (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x3ad4" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" * (cast_expression "(int *)(pcVar27 + 0x7e594)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e594)" ( (binary_expression "pcVar27 + 0x7e594" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_00076f78:\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) ;)) }))) (expression_statement "iVar6 = *(int *)(pcVar27 + 0x7e5c0);" (assignment_expression "iVar6 = *(int *)(pcVar27 + 0x7e5c0)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" * (cast_expression "(int *)(pcVar27 + 0x7e5c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7e5c0)" ( (binary_expression "pcVar27 + 0x7e5c0" identifier + number_literal) ))))) ;) (expression_statement "*param_3 = iVar4;" (assignment_expression "*param_3 = iVar4" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "(*(code *)(iVar6 + 0x76f0))(param_3);" (call_expression "(*(code *)(iVar6 + 0x76f0))(param_3)" (parenthesized_expression "(*(code *)(iVar6 + 0x76f0))" ( (pointer_expression "*(code *)(iVar6 + 0x76f0)" * (cast_expression "(code *)(iVar6 + 0x76f0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x76f0)" ( (binary_expression "iVar6 + 0x76f0" identifier + number_literal) )))) )) (argument_list "(param_3)" ( identifier ))) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_00076f98:\n  if (local_254 == *piVar29) {\n    return iVar24;\n  }" statement_identifier : (if_statement "if (local_254 == *piVar29) {\n    return iVar24;\n  }" if (parenthesized_expression "(local_254 == *piVar29)" ( (binary_expression "local_254 == *piVar29" identifier == (pointer_expression "*piVar29" * identifier)) )) (compound_statement "{\n    return iVar24;\n  }" { (return_statement "return iVar24;" return identifier ;) }))) (expression_statement "pcVar27 = *(code **)(pcVar27 + 0x7e818);" (assignment_expression "pcVar27 = *(code **)(pcVar27 + 0x7e818)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7e818)" * (cast_expression "(code **)(pcVar27 + 0x7e818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7e818)" ( (binary_expression "pcVar27 + 0x7e818" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = local_254;" (assignment_expression "iVar4 = local_254" identifier = identifier) ;) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x4c);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x4c)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x4c)" * (cast_expression "(uint *)(iVar4 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x4c)" ( (binary_expression "iVar4 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = *(uint *)(iVar4 + 0x94);" (assignment_expression "uVar21 = *(uint *)(iVar4 + 0x94)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x94)" * (cast_expression "(uint *)(iVar4 + 0x94)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x94)" ( (binary_expression "iVar4 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(iVar4 + 0x48);" (assignment_expression "iVar6 = *(int *)(iVar4 + 0x48)" identifier = (pointer_expression "*(int *)(iVar4 + 0x48)" * (cast_expression "(int *)(iVar4 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = *(uint *)(iVar4 + 0x98);" (assignment_expression "uVar18 = *(uint *)(iVar4 + 0x98)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x98)" * (cast_expression "(uint *)(iVar4 + 0x98)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x98)" ( (binary_expression "iVar4 + 0x98" identifier + number_literal) ))))) ;) (if_statement "if (uVar21 <= *(uint *)(iVar4 + 0x98)) {\n    uVar18 = uVar21;\n  }" if (parenthesized_expression "(uVar21 <= *(uint *)(iVar4 + 0x98))" ( (binary_expression "uVar21 <= *(uint *)(iVar4 + 0x98)" identifier <= (pointer_expression "*(uint *)(iVar4 + 0x98)" * (cast_expression "(uint *)(iVar4 + 0x98)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x98)" ( (binary_expression "iVar4 + 0x98" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar18 = uVar21;\n  }" { (expression_statement "uVar18 = uVar21;" (assignment_expression "uVar18 = uVar21" identifier = identifier) ;) })) (expression_statement "puVar19 = *(undefined4 **)(iVar4 + 0xd0);" (assignment_expression "puVar19 = *(undefined4 **)(iVar4 + 0xd0)" identifier = (pointer_expression "*(undefined4 **)(iVar4 + 0xd0)" * (cast_expression "(undefined4 **)(iVar4 + 0xd0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xd0)" ( (binary_expression "iVar4 + 0xd0" identifier + number_literal) ))))) ;) (if_statement "if (0 < *(int *)(iVar4 + 0x60)) {\n    iVar24 = *(int *)(iVar4 + 0x5c);\n    iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24;\n    do {\n      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }\n      iVar24 = iVar24 + 0x30;\n    } while (iVar24 != iVar7);\n  }" if (parenthesized_expression "(0 < *(int *)(iVar4 + 0x60))" ( (binary_expression "0 < *(int *)(iVar4 + 0x60)" number_literal < (pointer_expression "*(int *)(iVar4 + 0x60)" * (cast_expression "(int *)(iVar4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x60)" ( (binary_expression "iVar4 + 0x60" identifier + number_literal) ))))) )) (compound_statement "{\n    iVar24 = *(int *)(iVar4 + 0x5c);\n    iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24;\n    do {\n      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }\n      iVar24 = iVar24 + 0x30;\n    } while (iVar24 != iVar7);\n  }" { (expression_statement "iVar24 = *(int *)(iVar4 + 0x5c);" (assignment_expression "iVar24 = *(int *)(iVar4 + 0x5c)" identifier = (pointer_expression "*(int *)(iVar4 + 0x5c)" * (cast_expression "(int *)(iVar4 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24;" (assignment_expression "iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24" identifier = (binary_expression "*(int *)(iVar4 + 0x60) * 0x30 + iVar24" (binary_expression "*(int *)(iVar4 + 0x60) * 0x30" (pointer_expression "*(int *)(iVar4 + 0x60)" * (cast_expression "(int *)(iVar4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x60)" ( (binary_expression "iVar4 + 0x60" identifier + number_literal) )))) * number_literal) + identifier)) ;) (do_statement "do {\n      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }\n      iVar24 = iVar24 + 0x30;\n    } while (iVar24 != iVar7);" do (compound_statement "{\n      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }\n      iVar24 = iVar24 + 0x30;\n    }" { (if_statement "if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }" if (parenthesized_expression "(*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0" (binary_expression "*(int *)(iVar24 + 8) == 0" (pointer_expression "*(int *)(iVar24 + 8)" * (cast_expression "(int *)(iVar24 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 8)" ( (binary_expression "iVar24 + 8" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(iVar24 + 0xc) == 0" (pointer_expression "*(int *)(iVar24 + 0xc)" * (cast_expression "(int *)(iVar24 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0xc)" ( (binary_expression "iVar24 + 0xc" identifier + number_literal) )))) == number_literal)) )) (compound_statement "{\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }" { (expression_statement "*(uint *)(iVar24 + 0xc) = uVar5;" (assignment_expression "*(uint *)(iVar24 + 0xc) = uVar5" (pointer_expression "*(uint *)(iVar24 + 0xc)" * (cast_expression "(uint *)(iVar24 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0xc)" ( (binary_expression "iVar24 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar24 + 8) = iVar6;" (assignment_expression "*(int *)(iVar24 + 8) = iVar6" (pointer_expression "*(int *)(iVar24 + 8)" * (cast_expression "(int *)(iVar24 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 8)" ( (binary_expression "iVar24 + 8" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar24 = iVar24 + 0x30;" (assignment_expression "iVar24 = iVar24 + 0x30" identifier = (binary_expression "iVar24 + 0x30" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 != iVar7)" ( (binary_expression "iVar24 != iVar7" identifier != identifier) )) ;) })) (if_statement "if (iVar6 != 0 || uVar5 != 0) {\n    lVar33 = (**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21);\n    lVar2 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar5 = (uint)lVar2;\n    iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20);\n  }" if (parenthesized_expression "(iVar6 != 0 || uVar5 != 0)" ( (binary_expression "iVar6 != 0 || uVar5 != 0" (binary_expression "iVar6 != 0" identifier != number_literal) || (binary_expression "uVar5 != 0" identifier != number_literal)) )) (compound_statement "{\n    lVar33 = (**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21);\n    lVar2 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar5 = (uint)lVar2;\n    iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20);\n  }" { (expression_statement "lVar33 = (**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21);" (assignment_expression "lVar33 = (**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21)" identifier = (call_expression "(**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7d930))" ( (pointer_expression "**(code **)(pcVar27 + 0x7d930)" * (pointer_expression "*(code **)(pcVar27 + 0x7d930)" * (cast_expression "(code **)(pcVar27 + 0x7d930)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7d930)" ( (binary_expression "pcVar27 + 0x7d930" identifier + number_literal) ))))) )) (argument_list "((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21)" ( (binary_expression "(uint)(uVar5 - 1 < uVar5) + iVar6 + -1" (binary_expression "(uint)(uVar5 - 1 < uVar5) + iVar6" (call_expression "(uint)(uVar5 - 1 < uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 - 1 < uVar5)" ( (binary_expression "uVar5 - 1 < uVar5" (binary_expression "uVar5 - 1" identifier - number_literal) < identifier) ))) + identifier) + number_literal) , (binary_expression "uVar5 - 1" identifier - number_literal) , number_literal , identifier )))) ;) (expression_statement "lVar2 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;" (assignment_expression "lVar2 = (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 "uVar5 = (uint)lVar2;" (assignment_expression "uVar5 = (uint)lVar2" identifier = (cast_expression "(uint)lVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20);" (assignment_expression "iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20)" identifier = (binary_expression "(int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 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)lVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar2 >> 0x20)" ( (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))))) ;) })) (expression_statement "*(uint *)(iVar4 + 0x4c) = uVar5;" (assignment_expression "*(uint *)(iVar4 + 0x4c) = uVar5" (pointer_expression "*(uint *)(iVar4 + 0x4c)" * (cast_expression "(uint *)(iVar4 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x4c)" ( (binary_expression "iVar4 + 0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar4 + 0x48) = iVar6;" (assignment_expression "*(int *)(iVar4 + 0x48) = iVar6" (pointer_expression "*(int *)(iVar4 + 0x48)" * (cast_expression "(int *)(iVar4 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar4 + 0x54) = uVar5;" (assignment_expression "*(uint *)(iVar4 + 0x54) = uVar5" (pointer_expression "*(uint *)(iVar4 + 0x54)" * (cast_expression "(uint *)(iVar4 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x54)" ( (binary_expression "iVar4 + 0x54" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar4 + 0x50) = iVar6;" (assignment_expression "*(int *)(iVar4 + 0x50) = iVar6" (pointer_expression "*(int *)(iVar4 + 0x50)" * (cast_expression "(int *)(iVar4 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x50)" ( (binary_expression "iVar4 + 0x50" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(char *)(iVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n    if (*(char *)(iVar4 + 5) != '\x04') {\n      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));\n      if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }\n      goto LAB_00077ad0;\n    }\n  }\n  else {\nLAB_00077ad0:\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n  }" if (parenthesized_expression "(*(char *)(iVar4 + 7) == '\0')" ( (binary_expression "*(char *)(iVar4 + 7) == '\0'" (pointer_expression "*(char *)(iVar4 + 7)" * (cast_expression "(char *)(iVar4 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 7)" ( (binary_expression "iVar4 + 7" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n    if (*(char *)(iVar4 + 5) != '\x04') {\n      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));\n      if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }\n      goto LAB_00077ad0;\n    }\n  }" { (expression_statement "iVar6 = *(int *)(pcVar27 + 0x7d92c);" (assignment_expression "iVar6 = *(int *)(pcVar27 + 0x7d92c)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7d92c)" * (cast_expression "(int *)(pcVar27 + 0x7d92c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7d92c)" ( (binary_expression "pcVar27 + 0x7d92c" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar4 + 5) != '\x04') {\n      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));\n      if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }\n      goto LAB_00077ad0;\n    }" if (parenthesized_expression "(*(char *)(iVar4 + 5) != '\x04')" ( (binary_expression "*(char *)(iVar4 + 5) != '\x04'" (pointer_expression "*(char *)(iVar4 + 5)" * (cast_expression "(char *)(iVar4 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 5)" ( (binary_expression "iVar4 + 5" identifier + number_literal) )))) != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));\n      if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }\n      goto LAB_00077ad0;\n    }" { (expression_statement "uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));" (assignment_expression "uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c))" identifier = (call_expression "(**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c))" (parenthesized_expression "(**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))" ( (pointer_expression "**(code **)(**(int **)(iVar4 + 0x3c) + 0x30)" * (pointer_expression "*(code **)(**(int **)(iVar4 + 0x3c) + 0x30)" * (cast_expression "(code **)(**(int **)(iVar4 + 0x3c) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar4 + 0x3c) + 0x30)" ( (binary_expression "**(int **)(iVar4 + 0x3c) + 0x30" (pointer_expression "**(int **)(iVar4 + 0x3c)" * (pointer_expression "*(int **)(iVar4 + 0x3c)" * (cast_expression "(int **)(iVar4 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x3c)" ( (binary_expression "iVar4 + 0x3c" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar4 + 0x3c))" ( (pointer_expression "*(int **)(iVar4 + 0x3c)" * (cast_expression "(int **)(iVar4 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x3c)" ( (binary_expression "iVar4 + 0x3c" identifier + number_literal) )))) )))) ;) (if_statement "if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }" if (parenthesized_expression "((uVar5 & 0x200) == 0)" ( (binary_expression "(uVar5 & 0x200) == 0" (parenthesized_expression "(uVar5 & 0x200)" ( (binary_expression "uVar5 & 0x200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }" { (expression_statement "*(undefined1 *)puVar19 = 0;" (assignment_expression "*(undefined1 *)puVar19 = 0" (pointer_expression "*(undefined1 *)puVar19" * (cast_expression "(undefined1 *)puVar19" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 1) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 1) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 1)" * (cast_expression "(undefined1 *)((int)puVar19 + 1)" ( (type_descriptor "undefined1 *" 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) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 2) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 2) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 2)" * (cast_expression "(undefined1 *)((int)puVar19 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 2)" ( (binary_expression "(int)puVar19 + 2" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 3) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 3) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 3)" * (cast_expression "(undefined1 *)((int)puVar19 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 3)" ( (binary_expression "(int)puVar19 + 3" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar19 + 1) = 0;" (assignment_expression "*(undefined1 *)(puVar19 + 1) = 0" (pointer_expression "*(undefined1 *)(puVar19 + 1)" * (cast_expression "(undefined1 *)(puVar19 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 1)" ( (binary_expression "puVar19 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 5) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 5) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 5)" * (cast_expression "(undefined1 *)((int)puVar19 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 5)" ( (binary_expression "(int)puVar19 + 5" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 6) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 6) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 6)" * (cast_expression "(undefined1 *)((int)puVar19 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 6)" ( (binary_expression "(int)puVar19 + 6" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 7) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 7)" * (cast_expression "(undefined1 *)((int)puVar19 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 7)" ( (binary_expression "(int)puVar19 + 7" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar19 + 2) = 0;" (assignment_expression "*(undefined1 *)(puVar19 + 2) = 0" (pointer_expression "*(undefined1 *)(puVar19 + 2)" * (cast_expression "(undefined1 *)(puVar19 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 2)" ( (binary_expression "puVar19 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 9) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 9) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 9)" * (cast_expression "(undefined1 *)((int)puVar19 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 9)" ( (binary_expression "(int)puVar19 + 9" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 10) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 10) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 10)" * (cast_expression "(undefined1 *)((int)puVar19 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 10)" ( (binary_expression "(int)puVar19 + 10" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 0xb) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 0xb) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 0xb)" * (cast_expression "(undefined1 *)((int)puVar19 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0xb)" ( (binary_expression "(int)puVar19 + 0xb" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00077b04;" goto statement_identifier ;) })) (goto_statement "goto LAB_00077ad0;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00077ad0:\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n  }" else (compound_statement "{\nLAB_00077ad0:\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n  }" { (labeled_statement "LAB_00077ad0:\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);" statement_identifier : (expression_statement "iVar6 = *(int *)(pcVar27 + 0x7d92c);" (assignment_expression "iVar6 = *(int *)(pcVar27 + 0x7d92c)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x7d92c)" * (cast_expression "(int *)(pcVar27 + 0x7d92c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x7d92c)" ( (binary_expression "pcVar27 + 0x7d92c" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar32 = *(undefined4 *)(iVar6 + 0x229c);" (assignment_expression "uVar32 = *(undefined4 *)(iVar6 + 0x229c)" identifier = (pointer_expression "*(undefined4 *)(iVar6 + 0x229c)" * (cast_expression "(undefined4 *)(iVar6 + 0x229c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x229c)" ( (binary_expression "iVar6 + 0x229c" identifier + number_literal) ))))) ;) (expression_statement "*puVar19 = *(undefined4 *)(iVar6 + 0x2298);" (assignment_expression "*puVar19 = *(undefined4 *)(iVar6 + 0x2298)" (pointer_expression "*puVar19" * identifier) = (pointer_expression "*(undefined4 *)(iVar6 + 0x2298)" * (cast_expression "(undefined4 *)(iVar6 + 0x2298)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2298)" ( (binary_expression "iVar6 + 0x2298" identifier + number_literal) ))))) ;) (expression_statement "puVar19[1] = uVar32;" (assignment_expression "puVar19[1] = uVar32" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar19 + 2) = 0xff;" (assignment_expression "*(undefined1 *)(puVar19 + 2) = 0xff" (pointer_expression "*(undefined1 *)(puVar19 + 2)" * (cast_expression "(undefined1 *)(puVar19 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 2)" ( (binary_expression "puVar19 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 9) = 0xff;" (assignment_expression "*(undefined1 *)((int)puVar19 + 9) = 0xff" (pointer_expression "*(undefined1 *)((int)puVar19 + 9)" * (cast_expression "(undefined1 *)((int)puVar19 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 9)" ( (binary_expression "(int)puVar19 + 9" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 10) = 0xff;" (assignment_expression "*(undefined1 *)((int)puVar19 + 10) = 0xff" (pointer_expression "*(undefined1 *)((int)puVar19 + 10)" * (cast_expression "(undefined1 *)((int)puVar19 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 10)" ( (binary_expression "(int)puVar19 + 10" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar19 + 0xb) = 0xff;" (assignment_expression "*(undefined1 *)((int)puVar19 + 0xb) = 0xff" (pointer_expression "*(undefined1 *)((int)puVar19 + 0xb)" * (cast_expression "(undefined1 *)((int)puVar19 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0xb)" ( (binary_expression "(int)puVar19 + 0xb" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_00077b04:\n  uVar5 = 0;" statement_identifier : (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;)) (expression_statement "(**(code **)(pcVar27 + 0x7dad8))(4,iVar4 + 0x30);" (call_expression "(**(code **)(pcVar27 + 0x7dad8))(4,iVar4 + 0x30)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7dad8))" ( (pointer_expression "**(code **)(pcVar27 + 0x7dad8)" * (pointer_expression "*(code **)(pcVar27 + 0x7dad8)" * (cast_expression "(code **)(pcVar27 + 0x7dad8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7dad8)" ( (binary_expression "pcVar27 + 0x7dad8" identifier + number_literal) ))))) )) (argument_list "(4,iVar4 + 0x30)" ( number_literal , (binary_expression "iVar4 + 0x30" identifier + number_literal) ))) ;) (expression_statement "uVar32 = *(undefined4 *)(iVar4 + 0x30);" (assignment_expression "uVar32 = *(undefined4 *)(iVar4 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x30)" * (cast_expression "(undefined4 *)(iVar4 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x30)" ( (binary_expression "iVar4 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(char *)((int)puVar19 + 0xf) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar19 + 0xf) = (char)uVar32" (pointer_expression "*(char *)((int)puVar19 + 0xf)" * (cast_expression "(char *)((int)puVar19 + 0xf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0xf)" ( (binary_expression "(int)puVar19 + 0xf" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)uVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(puVar19 + 3) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar19 + 3) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar19 + 3)" * (cast_expression "(char *)(puVar19 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 3)" ( (binary_expression "puVar19 + 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)puVar19 + 0xd) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar19 + 0xd) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar19 + 0xd)" * (cast_expression "(char *)((int)puVar19 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0xd)" ( (binary_expression "(int)puVar19 + 0xd" (cast_expression "(int)puVar19" ( (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)puVar19 + 0xe) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar19 + 0xe) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar19 + 0xe)" * (cast_expression "(char *)((int)puVar19 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0xe)" ( (binary_expression "(int)puVar19 + 0xe" (cast_expression "(int)puVar19" ( (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 *)(iVar4 + 0x1c);" (assignment_expression "uVar32 = *(undefined4 *)(iVar4 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "pcVar27 = *(code **)(pcVar27 + 0x7daa8);" (assignment_expression "pcVar27 = *(code **)(pcVar27 + 0x7daa8)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x7daa8)" * (cast_expression "(code **)(pcVar27 + 0x7daa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x7daa8)" ( (binary_expression "pcVar27 + 0x7daa8" identifier + number_literal) ))))) ;) (expression_statement "*(char *)((int)puVar19 + 0x13) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar19 + 0x13) = (char)uVar32" (pointer_expression "*(char *)((int)puVar19 + 0x13)" * (cast_expression "(char *)((int)puVar19 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0x13)" ( (binary_expression "(int)puVar19 + 0x13" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)uVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(puVar19 + 4) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar19 + 4) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar19 + 4)" * (cast_expression "(char *)(puVar19 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 4)" ( (binary_expression "puVar19 + 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)puVar19 + 0x11) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar19 + 0x11) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar19 + 0x11)" * (cast_expression "(char *)((int)puVar19 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0x11)" ( (binary_expression "(int)puVar19 + 0x11" (cast_expression "(int)puVar19" ( (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)puVar19 + 0x12) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar19 + 0x12) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar19 + 0x12)" * (cast_expression "(char *)((int)puVar19 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0x12)" ( (binary_expression "(int)puVar19 + 0x12" (cast_expression "(int)puVar19" ( (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 *)(iVar4 + 0x94);" (assignment_expression "uVar32 = *(undefined4 *)(iVar4 + 0x94)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x94)" * (cast_expression "(undefined4 *)(iVar4 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x94)" ( (binary_expression "iVar4 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(char *)((int)puVar19 + 0x17) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar19 + 0x17) = (char)uVar32" (pointer_expression "*(char *)((int)puVar19 + 0x17)" * (cast_expression "(char *)((int)puVar19 + 0x17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0x17)" ( (binary_expression "(int)puVar19 + 0x17" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)uVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(puVar19 + 5) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar19 + 5) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar19 + 5)" * (cast_expression "(char *)(puVar19 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 5)" ( (binary_expression "puVar19 + 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)puVar19 + 0x15) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar19 + 0x15) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar19 + 0x15)" * (cast_expression "(char *)((int)puVar19 + 0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0x15)" ( (binary_expression "(int)puVar19 + 0x15" (cast_expression "(int)puVar19" ( (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)puVar19 + 0x16) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar19 + 0x16) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar19 + 0x16)" * (cast_expression "(char *)((int)puVar19 + 0x16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0x16)" ( (binary_expression "(int)puVar19 + 0x16" (cast_expression "(int)puVar19" ( (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 *)(iVar4 + 0x98);" (assignment_expression "uVar32 = *(undefined4 *)(iVar4 + 0x98)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x98)" * (cast_expression "(undefined4 *)(iVar4 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x98)" ( (binary_expression "iVar4 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(char *)((int)puVar19 + 0x1b) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar19 + 0x1b) = (char)uVar32" (pointer_expression "*(char *)((int)puVar19 + 0x1b)" * (cast_expression "(char *)((int)puVar19 + 0x1b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0x1b)" ( (binary_expression "(int)puVar19 + 0x1b" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)uVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(puVar19 + 6) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar19 + 6) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar19 + 6)" * (cast_expression "(char *)(puVar19 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 6)" ( (binary_expression "puVar19 + 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)puVar19 + 0x19) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar19 + 0x19) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar19 + 0x19)" * (cast_expression "(char *)((int)puVar19 + 0x19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0x19)" ( (binary_expression "(int)puVar19 + 0x19" (cast_expression "(int)puVar19" ( (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)puVar19 + 0x1a) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar19 + 0x1a) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar19 + 0x1a)" * (cast_expression "(char *)((int)puVar19 + 0x1a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 0x1a)" ( (binary_expression "(int)puVar19 + 0x1a" (cast_expression "(int)puVar19" ( (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 "(*pcVar27)(puVar19 + 7,0,uVar18 - 0x1c);" (call_expression "(*pcVar27)(puVar19 + 7,0,uVar18 - 0x1c)" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(puVar19 + 7,0,uVar18 - 0x1c)" ( (binary_expression "puVar19 + 7" identifier + number_literal) , number_literal , (binary_expression "uVar18 - 0x1c" identifier - number_literal) ))) ;) (do_statement "do {\n    if (*(uint *)(iVar4 + 0x94) <= uVar5) {\n      return 0;\n    }\n    iVar6 = **(int **)(iVar4 + 0x40);\n    uVar5 = uVar5 + uVar18;\n    iVar6 = (**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c));\n    uVar21 = *(uint *)(iVar4 + 0x4c);\n    uVar22 = uVar21 + uVar18;\n    *(uint *)(iVar4 + 0x4c) = uVar22;\n    *(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48);\n  } while (iVar6 == 0);" do (compound_statement "{\n    if (*(uint *)(iVar4 + 0x94) <= uVar5) {\n      return 0;\n    }\n    iVar6 = **(int **)(iVar4 + 0x40);\n    uVar5 = uVar5 + uVar18;\n    iVar6 = (**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c));\n    uVar21 = *(uint *)(iVar4 + 0x4c);\n    uVar22 = uVar21 + uVar18;\n    *(uint *)(iVar4 + 0x4c) = uVar22;\n    *(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48);\n  }" { (if_statement "if (*(uint *)(iVar4 + 0x94) <= uVar5) {\n      return 0;\n    }" if (parenthesized_expression "(*(uint *)(iVar4 + 0x94) <= uVar5)" ( (binary_expression "*(uint *)(iVar4 + 0x94) <= uVar5" (pointer_expression "*(uint *)(iVar4 + 0x94)" * (cast_expression "(uint *)(iVar4 + 0x94)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x94)" ( (binary_expression "iVar4 + 0x94" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = **(int **)(iVar4 + 0x40);" (assignment_expression "iVar6 = **(int **)(iVar4 + 0x40)" identifier = (pointer_expression "**(int **)(iVar4 + 0x40)" * (pointer_expression "*(int **)(iVar4 + 0x40)" * (cast_expression "(int **)(iVar4 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x40)" ( (binary_expression "iVar4 + 0x40" identifier + number_literal) )))))) ;) (expression_statement "uVar5 = uVar5 + uVar18;" (assignment_expression "uVar5 = uVar5 + uVar18" identifier = (binary_expression "uVar5 + uVar18" identifier + identifier)) ;) (expression_statement "iVar6 = (**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c));" (assignment_expression "iVar6 = (**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c))" identifier = (call_expression "(**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c))" (parenthesized_expression "(**(code **)(iVar6 + 0xc))" ( (pointer_expression "**(code **)(iVar6 + 0xc)" * (pointer_expression "*(code **)(iVar6 + 0xc)" * (cast_expression "(code **)(iVar6 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) ))))) )) (argument_list "(*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c))" ( (pointer_expression "*(int **)(iVar4 + 0x40)" * (cast_expression "(int **)(iVar4 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x40)" ( (binary_expression "iVar4 + 0x40" identifier + number_literal) )))) , identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(iVar4 + 0x48)" * (cast_expression "(undefined4 *)(iVar4 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar4 + 0x4c)" * (cast_expression "(undefined4 *)(iVar4 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x4c)" ( (binary_expression "iVar4 + 0x4c" identifier + number_literal) )))) )))) ;) (expression_statement "uVar21 = *(uint *)(iVar4 + 0x4c);" (assignment_expression "uVar21 = *(uint *)(iVar4 + 0x4c)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x4c)" * (cast_expression "(uint *)(iVar4 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x4c)" ( (binary_expression "iVar4 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "uVar22 = uVar21 + uVar18;" (assignment_expression "uVar22 = uVar21 + uVar18" identifier = (binary_expression "uVar21 + uVar18" identifier + identifier)) ;) (expression_statement "*(uint *)(iVar4 + 0x4c) = uVar22;" (assignment_expression "*(uint *)(iVar4 + 0x4c) = uVar22" (pointer_expression "*(uint *)(iVar4 + 0x4c)" * (cast_expression "(uint *)(iVar4 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x4c)" ( (binary_expression "iVar4 + 0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48);" (assignment_expression "*(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48)" (pointer_expression "*(uint *)(iVar4 + 0x48)" * (cast_expression "(uint *)(iVar4 + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) )))) = (binary_expression "(uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48)" (call_expression "(uint)(uVar22 < uVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar22 < uVar21)" ( (binary_expression "uVar22 < uVar21" identifier < identifier) ))) + (pointer_expression "*(int *)(iVar4 + 0x48)" * (cast_expression "(int *)(iVar4 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) )))))) ;) }) while (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) ;) (return_statement "return iVar6;" 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE 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 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 *)) ) LIT)) ;) (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 ;) (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (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 = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (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) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (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 (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 < (pointer_expression & IDENT)) )) (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 = (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 = (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 ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != (subscript_expression IDENT [ LIT ])) )) (goto_statement goto statement_identifier ;)) (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression IDENT != (char_literal ' character '))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (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 * (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT )))) ;) (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 (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 ( )))) , (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 , IDENT ))) ;) }))) (goto_statement goto statement_identifier ;) })) (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 = (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 = IDENT) ;) (goto_statement goto statement_identifier ;) })) (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 , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (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 = (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 , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (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) ;) (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) ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (subscript_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) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT & LIT)) ;) })) (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 (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 = (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 (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 = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 = (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 )))) ;) (expression_statement (assignment_expression IDENT = (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 != IDENT) )) (compound_statement { (expression_statement (assignment_expression 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 = (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 (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) ;) }))) (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 , 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 (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 = (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) ;) }))) (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) ))))) ;)) (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 = 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 (assignment_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 ( (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) )))) != (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 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) ;) }) (else_clause else (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)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * 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) ;) }))) }))) (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 *)) ) (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 IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression 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 = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT) + IDENT)) ;) (do_statement do (compound_statement { (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 = (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 = (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 (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression IDENT + LIT) ))) ;) (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 "int FUN_000764a4(int param_1,undefined4 *param_2,int *param_3,uint param_4)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  int in_zero;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  char cVar11;\n  int iVar9;\n  int iVar10;\n  int *piVar12;\n  char *pcVar13;\n  undefined4 *puVar14;\n  int *piVar15;\n  undefined4 *puVar16;\n  uint *puVar17;\n  uint uVar18;\n  undefined4 *puVar19;\n  undefined *puVar20;\n  uint uVar21;\n  uint uVar22;\n  int iVar23;\n  int iVar24;\n  uint *puVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  code *pcVar28;\n  int *piVar29;\n  int *piVar30;\n  uint uVar31;\n  undefined4 uVar32;\n  longlong lVar33;\n  undefined4 local_730;\n  uint local_728;\n  undefined4 local_720;\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  int 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  int 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  puVar3 = PTR___stack_chk_guard_000f5568;\n  puVar26 = PTR_sqlite3_temp_directory_000f5438;\n  puVar20 = PTR_DAT_000f52bc;\n  local_2c = *(int *)PTR___stack_chk_guard_000f5568;\n  *(undefined1 *)param_2 = 0;\n  uVar18 = *(uint *)puVar26;\n  if (*(int *)(puVar20 + 0x4fd8) == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0);\n    *(undefined4 *)(puVar20 + 0x4fd8) = uVar32;\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }\n  else {\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }\n  if (iVar4 == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0);\n    *(undefined4 *)(puVar20 + 0x4fdc) = uVar32;\n  }\n  puVar26 = PTR_DAT_000f52bc;\n  puVar17 = (uint *)(puVar20 + 0x4fd8);\n  puVar25 = (uint *)(puVar20 + 0x4ff0);\n  puVar19 = auStack_d0;\n  piVar29 = (int *)0x4000;\n  puVar20 = PTR_DAT_000f52bc + 0x5150;\n  while( true ) {\n    puVar14 = puVar19;\n    if ((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)) {\n      puVar17 = (uint *)0xc;\n      puVar25 = (uint *)((int)param_2 + param_1 + -2);\n      puVar19 = &local_d8;\n      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);\n      goto LAB_00076640;\n    }\n    local_234 = 0x190a;\n    if (puVar17 == puVar25) break;\n    uVar18 = *puVar17;\n    puVar17 = puVar17 + 1;\n  }\n  goto LAB_0007658c;\n  while ((param_4 & 3) != piVar12[1]) {\nLAB_00077354:\n    piVar15 = piVar12;\n    piVar12 = (int *)piVar15[2];\n    if (piVar12 == (int *)0x0) goto LAB_00077360;\n  }\n  piVar15 = piVar15 + 2;\nLAB_000776f8:\n  iVar24 = piVar30[4];\n  pcVar28 = *(code **)(pcVar27 + 0x7e748);\n  *piVar15 = piVar12[2];\n  (*pcVar28)(iVar24);\n  (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\n  iVar6 = *piVar12;\n  param_3[7] = (int)piVar12;\n  goto LAB_00076e20;\nLAB_00077360:\n  (**(code **)(pcVar27 + 0x7e748))(piVar30[4]);\n  (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\n  goto LAB_00077524;\n  while( true ) {\n    puVar17 = (uint *)((int)puVar17 + -1);\n    puVar14 = (undefined4 *)0x0;\n    if (puVar17 == (uint *)0x0) goto LAB_0007669c;\n    iVar4 = (**(code **)(puVar26 + 0x516c))(param_2);\n    local_234 = 0;\n    if (iVar4 != 0) break;\nLAB_00076640:\n    (*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);\n    *(char *)puVar25 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar14 = param_2;\n    param_3 = piVar29;\n    param_4 = uVar18;\n    (*(code *)PTR_sqlite3_snprintf_000f548c)(param_1);\n    if (*(char *)puVar25 != '\0') {\nLAB_0007669c:\n      local_234 = 1;\n      break;\n    }\n  }\nLAB_0007658c:\n  if (local_2c == *(int *)puVar3) {\n    return local_234;\n  }\n  uVar32 = 0x766b0;\n  puVar26 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  local_208 = puVar26 + 0x86bf0;\n  piVar30 = *(int **)(puVar26 + 0x7eeb8);\n  iVar4 = *piVar30;\n  local_134 = iVar4;\n  local_130 = puVar17;\n  local_12c = uVar18;\n  local_128 = puVar20;\n  local_124 = param_2;\n  local_120 = param_1;\n  local_11c = puVar19;\n  local_118 = puVar25;\n  local_114 = local_234;\n  local_110 = piVar29;\n  local_10c = uVar32;\n  if (puVar14 < &DAT_00000015) {\n                    \n                    \n    iVar4 = (*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))();\n    return iVar4;\n  }\n  if (iVar4 == *piVar30) {\n    return 0xc;\n  }\n  pcVar27 = *(code **)(puVar26 + 0x7ee90);\n  uVar32 = 0x76d28;\n  (*pcVar27)();\n  piVar29 = *(int **)(pcVar27 + 0x7e840);\n  local_254 = *piVar29;\n  uVar22 = param_4 & 0xfff00;\n  local_728 = param_4 & 1;\n  uVar5 = param_4 & 2;\n  uVar21 = param_4 & 8;\n  puVar16 = puVar14;\n  local_250 = puVar17;\n  local_24c = uVar18;\n  local_248 = puVar20;\n  local_244 = param_2;\n  local_240 = param_1;\n  local_23c = puVar19;\n  local_238 = puVar25;\n  local_230 = piVar30;\n  local_22c = uVar32;\n  if ((param_4 & 4) == 0) {\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    bVar1 = false;\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (iVar6 != *(int *)(iVar24 + 0x5a1c)) goto LAB_00076ff4;\nLAB_00076df0:\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    if (uVar22 == 0x100) {\n      iVar6 = *(int *)(pcVar27 + 0x7e594);\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));\n      if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }\n      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\nLAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);\n      if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }\n      iVar24 = 7;\n    }\n    else {\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }\n  }\n  else {\n    if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (*(int *)(iVar24 + 0x5a1c) != iVar6) {\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    bVar1 = true;\n    if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;\nLAB_00076e18:\n    iVar6 = -1;\nLAB_00076e20:\n    uVar18 = uVar5;\n    if ((param_4 & 4) != 0) {\n      uVar18 = uVar5 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }\n    else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }\n  }\nLAB_00076f98:\n  if (local_254 == *piVar29) {\n    return iVar24;\n  }\n  pcVar27 = *(code **)(pcVar27 + 0x7e818);\n  iVar4 = local_254;\n  (*pcVar27)();\n  uVar5 = *(uint *)(iVar4 + 0x4c);\n  uVar21 = *(uint *)(iVar4 + 0x94);\n  iVar6 = *(int *)(iVar4 + 0x48);\n  uVar18 = *(uint *)(iVar4 + 0x98);\n  if (uVar21 <= *(uint *)(iVar4 + 0x98)) {\n    uVar18 = uVar21;\n  }\n  puVar19 = *(undefined4 **)(iVar4 + 0xd0);\n  if (0 < *(int *)(iVar4 + 0x60)) {\n    iVar24 = *(int *)(iVar4 + 0x5c);\n    iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24;\n    do {\n      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }\n      iVar24 = iVar24 + 0x30;\n    } while (iVar24 != iVar7);\n  }\n  if (iVar6 != 0 || uVar5 != 0) {\n    lVar33 = (**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21);\n    lVar2 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar5 = (uint)lVar2;\n    iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20);\n  }\n  *(uint *)(iVar4 + 0x4c) = uVar5;\n  *(int *)(iVar4 + 0x48) = iVar6;\n  *(uint *)(iVar4 + 0x54) = uVar5;\n  *(int *)(iVar4 + 0x50) = iVar6;\n  if (*(char *)(iVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n    if (*(char *)(iVar4 + 5) != '\x04') {\n      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));\n      if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }\n      goto LAB_00077ad0;\n    }\n  }\n  else {\nLAB_00077ad0:\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n  }\n  uVar32 = *(undefined4 *)(iVar6 + 0x229c);\n  *puVar19 = *(undefined4 *)(iVar6 + 0x2298);\n  puVar19[1] = uVar32;\n  *(undefined1 *)(puVar19 + 2) = 0xff;\n  *(undefined1 *)((int)puVar19 + 9) = 0xff;\n  *(undefined1 *)((int)puVar19 + 10) = 0xff;\n  *(undefined1 *)((int)puVar19 + 0xb) = 0xff;\nLAB_00077b04:\n  uVar5 = 0;\n  (**(code **)(pcVar27 + 0x7dad8))(4,iVar4 + 0x30);\n  uVar32 = *(undefined4 *)(iVar4 + 0x30);\n  *(char *)((int)puVar19 + 0xf) = (char)uVar32;\n  *(char *)(puVar19 + 3) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0xd) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0xe) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x1c);\n  pcVar27 = *(code **)(pcVar27 + 0x7daa8);\n  *(char *)((int)puVar19 + 0x13) = (char)uVar32;\n  *(char *)(puVar19 + 4) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x11) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x12) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x94);\n  *(char *)((int)puVar19 + 0x17) = (char)uVar32;\n  *(char *)(puVar19 + 5) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x15) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x16) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x98);\n  *(char *)((int)puVar19 + 0x1b) = (char)uVar32;\n  *(char *)(puVar19 + 6) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x19) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x1a) = (char)((uint)uVar32 >> 8);\n  (*pcVar27)(puVar19 + 7,0,uVar18 - 0x1c);\n  do {\n    if (*(uint *)(iVar4 + 0x94) <= uVar5) {\n      return 0;\n    }\n    iVar6 = **(int **)(iVar4 + 0x40);\n    uVar5 = uVar5 + uVar18;\n    iVar6 = (**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c));\n    uVar21 = *(uint *)(iVar4 + 0x4c);\n    uVar22 = uVar21 + uVar18;\n    *(uint *)(iVar4 + 0x4c) = uVar22;\n    *(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48);\n  } while (iVar6 == 0);\n  return iVar6;\n}" (primitive_type "int") (function_declarator "FUN_000764a4(int param_1,undefined4 *param_2,int *param_3,uint param_4)" (identifier "FUN_000764a4") (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  bool bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  int in_zero;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  char cVar11;\n  int iVar9;\n  int iVar10;\n  int *piVar12;\n  char *pcVar13;\n  undefined4 *puVar14;\n  int *piVar15;\n  undefined4 *puVar16;\n  uint *puVar17;\n  uint uVar18;\n  undefined4 *puVar19;\n  undefined *puVar20;\n  uint uVar21;\n  uint uVar22;\n  int iVar23;\n  int iVar24;\n  uint *puVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  code *pcVar28;\n  int *piVar29;\n  int *piVar30;\n  uint uVar31;\n  undefined4 uVar32;\n  longlong lVar33;\n  undefined4 local_730;\n  uint local_728;\n  undefined4 local_720;\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  int 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  int 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  puVar3 = PTR___stack_chk_guard_000f5568;\n  puVar26 = PTR_sqlite3_temp_directory_000f5438;\n  puVar20 = PTR_DAT_000f52bc;\n  local_2c = *(int *)PTR___stack_chk_guard_000f5568;\n  *(undefined1 *)param_2 = 0;\n  uVar18 = *(uint *)puVar26;\n  if (*(int *)(puVar20 + 0x4fd8) == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0);\n    *(undefined4 *)(puVar20 + 0x4fd8) = uVar32;\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }\n  else {\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }\n  if (iVar4 == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0);\n    *(undefined4 *)(puVar20 + 0x4fdc) = uVar32;\n  }\n  puVar26 = PTR_DAT_000f52bc;\n  puVar17 = (uint *)(puVar20 + 0x4fd8);\n  puVar25 = (uint *)(puVar20 + 0x4ff0);\n  puVar19 = auStack_d0;\n  piVar29 = (int *)0x4000;\n  puVar20 = PTR_DAT_000f52bc + 0x5150;\n  while( true ) {\n    puVar14 = puVar19;\n    if ((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)) {\n      puVar17 = (uint *)0xc;\n      puVar25 = (uint *)((int)param_2 + param_1 + -2);\n      puVar19 = &local_d8;\n      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);\n      goto LAB_00076640;\n    }\n    local_234 = 0x190a;\n    if (puVar17 == puVar25) break;\n    uVar18 = *puVar17;\n    puVar17 = puVar17 + 1;\n  }\n  goto LAB_0007658c;\n  while ((param_4 & 3) != piVar12[1]) {\nLAB_00077354:\n    piVar15 = piVar12;\n    piVar12 = (int *)piVar15[2];\n    if (piVar12 == (int *)0x0) goto LAB_00077360;\n  }\n  piVar15 = piVar15 + 2;\nLAB_000776f8:\n  iVar24 = piVar30[4];\n  pcVar28 = *(code **)(pcVar27 + 0x7e748);\n  *piVar15 = piVar12[2];\n  (*pcVar28)(iVar24);\n  (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\n  iVar6 = *piVar12;\n  param_3[7] = (int)piVar12;\n  goto LAB_00076e20;\nLAB_00077360:\n  (**(code **)(pcVar27 + 0x7e748))(piVar30[4]);\n  (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\n  goto LAB_00077524;\n  while( true ) {\n    puVar17 = (uint *)((int)puVar17 + -1);\n    puVar14 = (undefined4 *)0x0;\n    if (puVar17 == (uint *)0x0) goto LAB_0007669c;\n    iVar4 = (**(code **)(puVar26 + 0x516c))(param_2);\n    local_234 = 0;\n    if (iVar4 != 0) break;\nLAB_00076640:\n    (*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);\n    *(char *)puVar25 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar14 = param_2;\n    param_3 = piVar29;\n    param_4 = uVar18;\n    (*(code *)PTR_sqlite3_snprintf_000f548c)(param_1);\n    if (*(char *)puVar25 != '\0') {\nLAB_0007669c:\n      local_234 = 1;\n      break;\n    }\n  }\nLAB_0007658c:\n  if (local_2c == *(int *)puVar3) {\n    return local_234;\n  }\n  uVar32 = 0x766b0;\n  puVar26 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  local_208 = puVar26 + 0x86bf0;\n  piVar30 = *(int **)(puVar26 + 0x7eeb8);\n  iVar4 = *piVar30;\n  local_134 = iVar4;\n  local_130 = puVar17;\n  local_12c = uVar18;\n  local_128 = puVar20;\n  local_124 = param_2;\n  local_120 = param_1;\n  local_11c = puVar19;\n  local_118 = puVar25;\n  local_114 = local_234;\n  local_110 = piVar29;\n  local_10c = uVar32;\n  if (puVar14 < &DAT_00000015) {\n                    \n                    \n    iVar4 = (*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))();\n    return iVar4;\n  }\n  if (iVar4 == *piVar30) {\n    return 0xc;\n  }\n  pcVar27 = *(code **)(puVar26 + 0x7ee90);\n  uVar32 = 0x76d28;\n  (*pcVar27)();\n  piVar29 = *(int **)(pcVar27 + 0x7e840);\n  local_254 = *piVar29;\n  uVar22 = param_4 & 0xfff00;\n  local_728 = param_4 & 1;\n  uVar5 = param_4 & 2;\n  uVar21 = param_4 & 8;\n  puVar16 = puVar14;\n  local_250 = puVar17;\n  local_24c = uVar18;\n  local_248 = puVar20;\n  local_244 = param_2;\n  local_240 = param_1;\n  local_23c = puVar19;\n  local_238 = puVar25;\n  local_230 = piVar30;\n  local_22c = uVar32;\n  if ((param_4 & 4) == 0) {\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    bVar1 = false;\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (iVar6 != *(int *)(iVar24 + 0x5a1c)) goto LAB_00076ff4;\nLAB_00076df0:\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    if (uVar22 == 0x100) {\n      iVar6 = *(int *)(pcVar27 + 0x7e594);\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));\n      if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }\n      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\nLAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);\n      if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }\n      iVar24 = 7;\n    }\n    else {\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }\n  }\n  else {\n    if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (*(int *)(iVar24 + 0x5a1c) != iVar6) {\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    bVar1 = true;\n    if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;\nLAB_00076e18:\n    iVar6 = -1;\nLAB_00076e20:\n    uVar18 = uVar5;\n    if ((param_4 & 4) != 0) {\n      uVar18 = uVar5 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }\n    else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }\n  }\nLAB_00076f98:\n  if (local_254 == *piVar29) {\n    return iVar24;\n  }\n  pcVar27 = *(code **)(pcVar27 + 0x7e818);\n  iVar4 = local_254;\n  (*pcVar27)();\n  uVar5 = *(uint *)(iVar4 + 0x4c);\n  uVar21 = *(uint *)(iVar4 + 0x94);\n  iVar6 = *(int *)(iVar4 + 0x48);\n  uVar18 = *(uint *)(iVar4 + 0x98);\n  if (uVar21 <= *(uint *)(iVar4 + 0x98)) {\n    uVar18 = uVar21;\n  }\n  puVar19 = *(undefined4 **)(iVar4 + 0xd0);\n  if (0 < *(int *)(iVar4 + 0x60)) {\n    iVar24 = *(int *)(iVar4 + 0x5c);\n    iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24;\n    do {\n      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }\n      iVar24 = iVar24 + 0x30;\n    } while (iVar24 != iVar7);\n  }\n  if (iVar6 != 0 || uVar5 != 0) {\n    lVar33 = (**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21);\n    lVar2 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar5 = (uint)lVar2;\n    iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20);\n  }\n  *(uint *)(iVar4 + 0x4c) = uVar5;\n  *(int *)(iVar4 + 0x48) = iVar6;\n  *(uint *)(iVar4 + 0x54) = uVar5;\n  *(int *)(iVar4 + 0x50) = iVar6;\n  if (*(char *)(iVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n    if (*(char *)(iVar4 + 5) != '\x04') {\n      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));\n      if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }\n      goto LAB_00077ad0;\n    }\n  }\n  else {\nLAB_00077ad0:\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n  }\n  uVar32 = *(undefined4 *)(iVar6 + 0x229c);\n  *puVar19 = *(undefined4 *)(iVar6 + 0x2298);\n  puVar19[1] = uVar32;\n  *(undefined1 *)(puVar19 + 2) = 0xff;\n  *(undefined1 *)((int)puVar19 + 9) = 0xff;\n  *(undefined1 *)((int)puVar19 + 10) = 0xff;\n  *(undefined1 *)((int)puVar19 + 0xb) = 0xff;\nLAB_00077b04:\n  uVar5 = 0;\n  (**(code **)(pcVar27 + 0x7dad8))(4,iVar4 + 0x30);\n  uVar32 = *(undefined4 *)(iVar4 + 0x30);\n  *(char *)((int)puVar19 + 0xf) = (char)uVar32;\n  *(char *)(puVar19 + 3) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0xd) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0xe) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x1c);\n  pcVar27 = *(code **)(pcVar27 + 0x7daa8);\n  *(char *)((int)puVar19 + 0x13) = (char)uVar32;\n  *(char *)(puVar19 + 4) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x11) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x12) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x94);\n  *(char *)((int)puVar19 + 0x17) = (char)uVar32;\n  *(char *)(puVar19 + 5) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x15) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x16) = (char)((uint)uVar32 >> 8);\n  uVar32 = *(undefined4 *)(iVar4 + 0x98);\n  *(char *)((int)puVar19 + 0x1b) = (char)uVar32;\n  *(char *)(puVar19 + 6) = (char)((uint)uVar32 >> 0x18);\n  *(char *)((int)puVar19 + 0x19) = (char)((uint)uVar32 >> 0x10);\n  *(char *)((int)puVar19 + 0x1a) = (char)((uint)uVar32 >> 8);\n  (*pcVar27)(puVar19 + 7,0,uVar18 - 0x1c);\n  do {\n    if (*(uint *)(iVar4 + 0x94) <= uVar5) {\n      return 0;\n    }\n    iVar6 = **(int **)(iVar4 + 0x40);\n    uVar5 = uVar5 + uVar18;\n    iVar6 = (**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c));\n    uVar21 = *(uint *)(iVar4 + 0x4c);\n    uVar22 = uVar21 + uVar18;\n    *(uint *)(iVar4 + 0x4c) = uVar22;\n    *(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48);\n  } while (iVar6 == 0);\n  return iVar6;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "longlong lVar2;" (type_identifier "longlong") (identifier "lVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int in_zero;" (primitive_type "int") (identifier "in_zero") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "char cVar11;" (primitive_type "char") (identifier "cVar11") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "char *pcVar13;" (primitive_type "char") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "undefined4 *puVar16;" (type_identifier "undefined4") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "uint *puVar17;" (type_identifier "uint") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "undefined4 *puVar19;" (type_identifier "undefined4") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "undefined *puVar20;" (type_identifier "undefined") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (declaration "uint *puVar25;" (type_identifier "uint") (pointer_declarator "*puVar25" (* "*") (identifier "puVar25")) (; ";")) (declaration "undefined *puVar26;" (type_identifier "undefined") (pointer_declarator "*puVar26" (* "*") (identifier "puVar26")) (; ";")) (declaration "code *pcVar27;" (type_identifier "code") (pointer_declarator "*pcVar27" (* "*") (identifier "pcVar27")) (; ";")) (declaration "code *pcVar28;" (type_identifier "code") (pointer_declarator "*pcVar28" (* "*") (identifier "pcVar28")) (; ";")) (declaration "int *piVar29;" (primitive_type "int") (pointer_declarator "*piVar29" (* "*") (identifier "piVar29")) (; ";")) (declaration "int *piVar30;" (primitive_type "int") (pointer_declarator "*piVar30" (* "*") (identifier "piVar30")) (; ";")) (declaration "uint uVar31;" (type_identifier "uint") (identifier "uVar31") (; ";")) (declaration "undefined4 uVar32;" (type_identifier "undefined4") (identifier "uVar32") (; ";")) (declaration "longlong lVar33;" (type_identifier "longlong") (identifier "lVar33") (; ";")) (declaration "undefined4 local_730;" (type_identifier "undefined4") (identifier "local_730") (; ";")) (declaration "uint local_728;" (type_identifier "uint") (identifier "local_728") (; ";")) (declaration "undefined4 local_720;" (type_identifier "undefined4") (identifier "local_720") (; ";")) (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 "int local_234;" (primitive_type "int") (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 "int local_114;" (primitive_type "int") (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 "puVar3 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar3 = PTR___stack_chk_guard_000f5568" (identifier "puVar3") (= "=") (identifier "PTR___stack_chk_guard_000f5568")) (; ";")) (expression_statement "puVar26 = PTR_sqlite3_temp_directory_000f5438;" (assignment_expression "puVar26 = PTR_sqlite3_temp_directory_000f5438" (identifier "puVar26") (= "=") (identifier "PTR_sqlite3_temp_directory_000f5438")) (; ";")) (expression_statement "puVar20 = PTR_DAT_000f52bc;" (assignment_expression "puVar20 = PTR_DAT_000f52bc" (identifier "puVar20") (= "=") (identifier "PTR_DAT_000f52bc")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000f5568" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000f5568" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000f5568" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000f5568")))) (; ";")) (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 "uVar18 = *(uint *)puVar26;" (assignment_expression "uVar18 = *(uint *)puVar26" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)puVar26" (* "*") (cast_expression "(uint *)puVar26" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar26")))) (; ";")) (if_statement "if (*(int *)(puVar20 + 0x4fd8) == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0);\n    *(undefined4 *)(puVar20 + 0x4fd8) = uVar32;\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }\n  else {\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }" (if "if") (parenthesized_expression "(*(int *)(puVar20 + 0x4fd8) == 0)" (( "(") (binary_expression "*(int *)(puVar20 + 0x4fd8) == 0" (pointer_expression "*(int *)(puVar20 + 0x4fd8)" (* "*") (cast_expression "(int *)(puVar20 + 0x4fd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x4fd8)" (( "(") (binary_expression "puVar20 + 0x4fd8" (identifier "puVar20") (+ "+") (number_literal "0x4fd8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0);\n    *(undefined4 *)(puVar20 + 0x4fd8) = uVar32;\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }" ({ "{") (expression_statement "uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0);" (assignment_expression "uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0)" (identifier "uVar32") (= "=") (call_expression "(*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0)" (parenthesized_expression "(*(code *)PTR_getenv_000f54d0)" (( "(") (pointer_expression "*(code *)PTR_getenv_000f54d0" (* "*") (cast_expression "(code *)PTR_getenv_000f54d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_getenv_000f54d0"))) () ")")) (argument_list "(PTR_DAT_000f52d4 + -0x76b0)" (( "(") (binary_expression "PTR_DAT_000f52d4 + -0x76b0" (identifier "PTR_DAT_000f52d4") (+ "+") (number_literal "-0x76b0")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + 0x4fd8) = uVar32;" (assignment_expression "*(undefined4 *)(puVar20 + 0x4fd8) = uVar32" (pointer_expression "*(undefined4 *)(puVar20 + 0x4fd8)" (* "*") (cast_expression "(undefined4 *)(puVar20 + 0x4fd8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x4fd8)" (( "(") (binary_expression "puVar20 + 0x4fd8" (identifier "puVar20") (+ "+") (number_literal "0x4fd8")) () ")")))) (= "=") (identifier "uVar32")) (; ";")) (expression_statement "iVar4 = *(int *)(puVar20 + 0x4fdc);" (assignment_expression "iVar4 = *(int *)(puVar20 + 0x4fdc)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(puVar20 + 0x4fdc)" (* "*") (cast_expression "(int *)(puVar20 + 0x4fdc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x4fdc)" (( "(") (binary_expression "puVar20 + 0x4fdc" (identifier "puVar20") (+ "+") (number_literal "0x4fdc")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }" (else "else") (compound_statement "{\n    iVar4 = *(int *)(puVar20 + 0x4fdc);\n  }" ({ "{") (expression_statement "iVar4 = *(int *)(puVar20 + 0x4fdc);" (assignment_expression "iVar4 = *(int *)(puVar20 + 0x4fdc)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(puVar20 + 0x4fdc)" (* "*") (cast_expression "(int *)(puVar20 + 0x4fdc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x4fdc)" (( "(") (binary_expression "puVar20 + 0x4fdc" (identifier "puVar20") (+ "+") (number_literal "0x4fdc")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (iVar4 == 0) {\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0);\n    *(undefined4 *)(puVar20 + 0x4fdc) = uVar32;\n  }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0);\n    *(undefined4 *)(puVar20 + 0x4fdc) = uVar32;\n  }" ({ "{") (expression_statement "uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0);" (assignment_expression "uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0)" (identifier "uVar32") (= "=") (call_expression "(*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0)" (parenthesized_expression "(*(code *)PTR_getenv_000f54d0)" (( "(") (pointer_expression "*(code *)PTR_getenv_000f54d0" (* "*") (cast_expression "(code *)PTR_getenv_000f54d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_getenv_000f54d0"))) () ")")) (argument_list "(PTR_DAT_000f52d4 + -0x76a0)" (( "(") (binary_expression "PTR_DAT_000f52d4 + -0x76a0" (identifier "PTR_DAT_000f52d4") (+ "+") (number_literal "-0x76a0")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + 0x4fdc) = uVar32;" (assignment_expression "*(undefined4 *)(puVar20 + 0x4fdc) = uVar32" (pointer_expression "*(undefined4 *)(puVar20 + 0x4fdc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + 0x4fdc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x4fdc)" (( "(") (binary_expression "puVar20 + 0x4fdc" (identifier "puVar20") (+ "+") (number_literal "0x4fdc")) () ")")))) (= "=") (identifier "uVar32")) (; ";")) (} "}"))) (expression_statement "puVar26 = PTR_DAT_000f52bc;" (assignment_expression "puVar26 = PTR_DAT_000f52bc" (identifier "puVar26") (= "=") (identifier "PTR_DAT_000f52bc")) (; ";")) (expression_statement "puVar17 = (uint *)(puVar20 + 0x4fd8);" (assignment_expression "puVar17 = (uint *)(puVar20 + 0x4fd8)" (identifier "puVar17") (= "=") (cast_expression "(uint *)(puVar20 + 0x4fd8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x4fd8)" (( "(") (binary_expression "puVar20 + 0x4fd8" (identifier "puVar20") (+ "+") (number_literal "0x4fd8")) () ")")))) (; ";")) (expression_statement "puVar25 = (uint *)(puVar20 + 0x4ff0);" (assignment_expression "puVar25 = (uint *)(puVar20 + 0x4ff0)" (identifier "puVar25") (= "=") (cast_expression "(uint *)(puVar20 + 0x4ff0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x4ff0)" (( "(") (binary_expression "puVar20 + 0x4ff0" (identifier "puVar20") (+ "+") (number_literal "0x4ff0")) () ")")))) (; ";")) (expression_statement "puVar19 = auStack_d0;" (assignment_expression "puVar19 = auStack_d0" (identifier "puVar19") (= "=") (identifier "auStack_d0")) (; ";")) (expression_statement "piVar29 = (int *)0x4000;" (assignment_expression "piVar29 = (int *)0x4000" (identifier "piVar29") (= "=") (cast_expression "(int *)0x4000" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4000"))) (; ";")) (expression_statement "puVar20 = PTR_DAT_000f52bc + 0x5150;" (assignment_expression "puVar20 = PTR_DAT_000f52bc + 0x5150" (identifier "puVar20") (= "=") (binary_expression "PTR_DAT_000f52bc + 0x5150" (identifier "PTR_DAT_000f52bc") (+ "+") (number_literal "0x5150"))) (; ";")) (while_statement "while( true ) {\n    puVar14 = puVar19;\n    if ((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)) {\n      puVar17 = (uint *)0xc;\n      puVar25 = (uint *)((int)param_2 + param_1 + -2);\n      puVar19 = &local_d8;\n      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);\n      goto LAB_00076640;\n    }\n    local_234 = 0x190a;\n    if (puVar17 == puVar25) break;\n    uVar18 = *puVar17;\n    puVar17 = puVar17 + 1;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    puVar14 = puVar19;\n    if ((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)) {\n      puVar17 = (uint *)0xc;\n      puVar25 = (uint *)((int)param_2 + param_1 + -2);\n      puVar19 = &local_d8;\n      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);\n      goto LAB_00076640;\n    }\n    local_234 = 0x190a;\n    if (puVar17 == puVar25) break;\n    uVar18 = *puVar17;\n    puVar17 = puVar17 + 1;\n  }" ({ "{") (expression_statement "puVar14 = puVar19;" (assignment_expression "puVar14 = puVar19" (identifier "puVar14") (= "=") (identifier "puVar19")) (; ";")) (if_statement "if ((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)) {\n      puVar17 = (uint *)0xc;\n      puVar25 = (uint *)((int)param_2 + param_1 + -2);\n      puVar19 = &local_d8;\n      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);\n      goto LAB_00076640;\n    }" (if "if") (parenthesized_expression "((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0))" (( "(") (binary_expression "(((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&\n       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)" (parenthesized_expression "(((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000))" (( "(") (binary_expression "((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&\n        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)" (parenthesized_expression "((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0))" (( "(") (binary_expression "(uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)" (parenthesized_expression "(uVar18 != 0)" (( "(") (binary_expression "uVar18 != 0" (identifier "uVar18") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)" (( "(") (comma_expression "iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar26 + 0x5184))(uVar18)" (parenthesized_expression "(**(code **)(puVar26 + 0x5184))" (( "(") (pointer_expression "**(code **)(puVar26 + 0x5184)" (* "*") (pointer_expression "*(code **)(puVar26 + 0x5184)" (* "*") (cast_expression "(code **)(puVar26 + 0x5184)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x5184)" (( "(") (binary_expression "puVar26 + 0x5184" (identifier "puVar26") (+ "+") (number_literal "0x5184")) () ")"))))) () ")")) (argument_list "(uVar18)" (( "(") (identifier "uVar18") () ")")))) (, ",") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)" (( "(") (comma_expression "puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000" (assignment_expression "puVar14 = (undefined4 *)0x3" (identifier "puVar14") (= "=") (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 "(iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)" (( "(") (comma_expression "iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar26 + 0x516c))(uVar18)" (parenthesized_expression "(**(code **)(puVar26 + 0x516c))" (( "(") (pointer_expression "**(code **)(puVar26 + 0x516c)" (* "*") (pointer_expression "*(code **)(puVar26 + 0x516c)" (* "*") (cast_expression "(code **)(puVar26 + 0x516c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x516c)" (( "(") (binary_expression "puVar26 + 0x516c" (identifier "puVar26") (+ "+") (number_literal "0x516c")) () ")"))))) () ")")) (argument_list "(uVar18)" (( "(") (identifier "uVar18") () ")")))) (, ",") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      puVar17 = (uint *)0xc;\n      puVar25 = (uint *)((int)param_2 + param_1 + -2);\n      puVar19 = &local_d8;\n      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);\n      goto LAB_00076640;\n    }" ({ "{") (expression_statement "puVar17 = (uint *)0xc;" (assignment_expression "puVar17 = (uint *)0xc" (identifier "puVar17") (= "=") (cast_expression "(uint *)0xc" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xc"))) (; ";")) (expression_statement "puVar25 = (uint *)((int)param_2 + param_1 + -2);" (assignment_expression "puVar25 = (uint *)((int)param_2 + param_1 + -2)" (identifier "puVar25") (= "=") (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 "puVar19 = &local_d8;" (assignment_expression "puVar19 = &local_d8" (identifier "puVar19") (= "=") (pointer_expression "&local_d8" (& "&") (identifier "local_d8"))) (; ";")) (expression_statement "piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);" (assignment_expression "piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698)" (identifier "piVar29") (= "=") (cast_expression "(int *)(PTR_DAT_000f52d4 + -0x7698)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000f52d4 + -0x7698)" (( "(") (binary_expression "PTR_DAT_000f52d4 + -0x7698" (identifier "PTR_DAT_000f52d4") (+ "+") (number_literal "-0x7698")) () ")")))) (; ";")) (goto_statement "goto LAB_00076640;" (goto "goto") (statement_identifier "LAB_00076640") (; ";")) (} "}"))) (expression_statement "local_234 = 0x190a;" (assignment_expression "local_234 = 0x190a" (identifier "local_234") (= "=") (number_literal "0x190a")) (; ";")) (if_statement "if (puVar17 == puVar25) break;" (if "if") (parenthesized_expression "(puVar17 == puVar25)" (( "(") (binary_expression "puVar17 == puVar25" (identifier "puVar17") (== "==") (identifier "puVar25")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar18 = *puVar17;" (assignment_expression "uVar18 = *puVar17" (identifier "uVar18") (= "=") (pointer_expression "*puVar17" (* "*") (identifier "puVar17"))) (; ";")) (expression_statement "puVar17 = puVar17 + 1;" (assignment_expression "puVar17 = puVar17 + 1" (identifier "puVar17") (= "=") (binary_expression "puVar17 + 1" (identifier "puVar17") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0007658c;" (goto "goto") (statement_identifier "LAB_0007658c") (; ";")) (while_statement "while ((param_4 & 3) != piVar12[1]) {\nLAB_00077354:\n    piVar15 = piVar12;\n    piVar12 = (int *)piVar15[2];\n    if (piVar12 == (int *)0x0) goto LAB_00077360;\n  }" (while "while") (parenthesized_expression "((param_4 & 3) != piVar12[1])" (( "(") (binary_expression "(param_4 & 3) != piVar12[1]" (parenthesized_expression "(param_4 & 3)" (( "(") (binary_expression "param_4 & 3" (identifier "param_4") (& "&") (number_literal "3")) () ")")) (!= "!=") (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\nLAB_00077354:\n    piVar15 = piVar12;\n    piVar12 = (int *)piVar15[2];\n    if (piVar12 == (int *)0x0) goto LAB_00077360;\n  }" ({ "{") (labeled_statement "LAB_00077354:\n    piVar15 = piVar12;" (statement_identifier "LAB_00077354") (: ":") (expression_statement "piVar15 = piVar12;" (assignment_expression "piVar15 = piVar12" (identifier "piVar15") (= "=") (identifier "piVar12")) (; ";"))) (expression_statement "piVar12 = (int *)piVar15[2];" (assignment_expression "piVar12 = (int *)piVar15[2]" (identifier "piVar12") (= "=") (cast_expression "(int *)piVar15[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar15[2]" (identifier "piVar15") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (piVar12 == (int *)0x0) goto LAB_00077360;" (if "if") (parenthesized_expression "(piVar12 == (int *)0x0)" (( "(") (binary_expression "piVar12 == (int *)0x0" (identifier "piVar12") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00077360;" (goto "goto") (statement_identifier "LAB_00077360") (; ";"))) (} "}"))) (expression_statement "piVar15 = piVar15 + 2;" (assignment_expression "piVar15 = piVar15 + 2" (identifier "piVar15") (= "=") (binary_expression "piVar15 + 2" (identifier "piVar15") (+ "+") (number_literal "2"))) (; ";")) (labeled_statement "LAB_000776f8:\n  iVar24 = piVar30[4];" (statement_identifier "LAB_000776f8") (: ":") (expression_statement "iVar24 = piVar30[4];" (assignment_expression "iVar24 = piVar30[4]" (identifier "iVar24") (= "=") (subscript_expression "piVar30[4]" (identifier "piVar30") ([ "[") (number_literal "4") (] "]"))) (; ";"))) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e748);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e748)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar27 + 0x7e748)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e748)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e748)" (( "(") (binary_expression "pcVar27 + 0x7e748" (identifier "pcVar27") (+ "+") (number_literal "0x7e748")) () ")"))))) (; ";")) (expression_statement "*piVar15 = piVar12[2];" (assignment_expression "*piVar15 = piVar12[2]" (pointer_expression "*piVar15" (* "*") (identifier "piVar15")) (= "=") (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "(*pcVar28)(iVar24);" (call_expression "(*pcVar28)(iVar24)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(iVar24)" (( "(") (identifier "iVar24") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e748))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e748)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e748)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e748)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e748)" (( "(") (binary_expression "pcVar27 + 0x7e748" (identifier "pcVar27") (+ "+") (number_literal "0x7e748")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar6 + 0x5a18))" (( "(") (pointer_expression "*(undefined4 *)(iVar6 + 0x5a18)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x5a18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x5a18)" (( "(") (binary_expression "iVar6 + 0x5a18" (identifier "iVar6") (+ "+") (number_literal "0x5a18")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar6 = *piVar12;" (assignment_expression "iVar6 = *piVar12" (identifier "iVar6") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "param_3[7] = (int)piVar12;" (assignment_expression "param_3[7] = (int)piVar12" (subscript_expression "param_3[7]" (identifier "param_3") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12"))) (; ";")) (goto_statement "goto LAB_00076e20;" (goto "goto") (statement_identifier "LAB_00076e20") (; ";")) (labeled_statement "LAB_00077360:\n  (**(code **)(pcVar27 + 0x7e748))(piVar30[4]);" (statement_identifier "LAB_00077360") (: ":") (expression_statement "(**(code **)(pcVar27 + 0x7e748))(piVar30[4]);" (call_expression "(**(code **)(pcVar27 + 0x7e748))(piVar30[4])" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e748))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e748)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e748)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e748)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e748)" (( "(") (binary_expression "pcVar27 + 0x7e748" (identifier "pcVar27") (+ "+") (number_literal "0x7e748")) () ")"))))) () ")")) (argument_list "(piVar30[4])" (( "(") (subscript_expression "piVar30[4]" (identifier "piVar30") ([ "[") (number_literal "4") (] "]")) () ")"))) (; ";"))) (expression_statement "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e748))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e748)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e748)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e748)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e748)" (( "(") (binary_expression "pcVar27 + 0x7e748" (identifier "pcVar27") (+ "+") (number_literal "0x7e748")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar6 + 0x5a18))" (( "(") (pointer_expression "*(undefined4 *)(iVar6 + 0x5a18)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x5a18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x5a18)" (( "(") (binary_expression "iVar6 + 0x5a18" (identifier "iVar6") (+ "+") (number_literal "0x5a18")) () ")")))) () ")"))) (; ";")) (goto_statement "goto LAB_00077524;" (goto "goto") (statement_identifier "LAB_00077524") (; ";")) (while_statement "while( true ) {\n    puVar17 = (uint *)((int)puVar17 + -1);\n    puVar14 = (undefined4 *)0x0;\n    if (puVar17 == (uint *)0x0) goto LAB_0007669c;\n    iVar4 = (**(code **)(puVar26 + 0x516c))(param_2);\n    local_234 = 0;\n    if (iVar4 != 0) break;\nLAB_00076640:\n    (*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);\n    *(char *)puVar25 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar14 = param_2;\n    param_3 = piVar29;\n    param_4 = uVar18;\n    (*(code *)PTR_sqlite3_snprintf_000f548c)(param_1);\n    if (*(char *)puVar25 != '\0') {\nLAB_0007669c:\n      local_234 = 1;\n      break;\n    }\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    puVar17 = (uint *)((int)puVar17 + -1);\n    puVar14 = (undefined4 *)0x0;\n    if (puVar17 == (uint *)0x0) goto LAB_0007669c;\n    iVar4 = (**(code **)(puVar26 + 0x516c))(param_2);\n    local_234 = 0;\n    if (iVar4 != 0) break;\nLAB_00076640:\n    (*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);\n    *(char *)puVar25 = '\0';\n    local_f0 = 0;\n    local_f4 = local_d4;\n    local_f8 = local_d8;\n    puVar14 = param_2;\n    param_3 = piVar29;\n    param_4 = uVar18;\n    (*(code *)PTR_sqlite3_snprintf_000f548c)(param_1);\n    if (*(char *)puVar25 != '\0') {\nLAB_0007669c:\n      local_234 = 1;\n      break;\n    }\n  }" ({ "{") (expression_statement "puVar17 = (uint *)((int)puVar17 + -1);" (assignment_expression "puVar17 = (uint *)((int)puVar17 + -1)" (identifier "puVar17") (= "=") (cast_expression "(uint *)((int)puVar17 + -1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar17 + -1)" (( "(") (binary_expression "(int)puVar17 + -1" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "puVar14 = (undefined4 *)0x0;" (assignment_expression "puVar14 = (undefined4 *)0x0" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (puVar17 == (uint *)0x0) goto LAB_0007669c;" (if "if") (parenthesized_expression "(puVar17 == (uint *)0x0)" (( "(") (binary_expression "puVar17 == (uint *)0x0" (identifier "puVar17") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0007669c;" (goto "goto") (statement_identifier "LAB_0007669c") (; ";"))) (expression_statement "iVar4 = (**(code **)(puVar26 + 0x516c))(param_2);" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x516c))(param_2)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar26 + 0x516c))(param_2)" (parenthesized_expression "(**(code **)(puVar26 + 0x516c))" (( "(") (pointer_expression "**(code **)(puVar26 + 0x516c)" (* "*") (pointer_expression "*(code **)(puVar26 + 0x516c)" (* "*") (cast_expression "(code **)(puVar26 + 0x516c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x516c)" (( "(") (binary_expression "puVar26 + 0x516c" (identifier "puVar26") (+ "+") (number_literal "0x516c")) () ")"))))) () ")")) (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 (iVar4 != 0) break;" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00076640:\n    (*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);" (statement_identifier "LAB_00076640") (: ":") (expression_statement "(*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);" (call_expression "(*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19)" (parenthesized_expression "(*(code *)PTR_sqlite3_randomness_000f5480)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_randomness_000f5480" (* "*") (cast_expression "(code *)PTR_sqlite3_randomness_000f5480" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_randomness_000f5480"))) () ")")) (argument_list "(8,puVar19)" (( "(") (number_literal "8") (, ",") (identifier "puVar19") () ")"))) (; ";"))) (expression_statement "*(char *)puVar25 = '\0';" (assignment_expression "*(char *)puVar25 = '\0'" (pointer_expression "*(char *)puVar25" (* "*") (cast_expression "(char *)puVar25" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar25"))) (= "=") (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 "puVar14 = param_2;" (assignment_expression "puVar14 = param_2" (identifier "puVar14") (= "=") (identifier "param_2")) (; ";")) (expression_statement "param_3 = piVar29;" (assignment_expression "param_3 = piVar29" (identifier "param_3") (= "=") (identifier "piVar29")) (; ";")) (expression_statement "param_4 = uVar18;" (assignment_expression "param_4 = uVar18" (identifier "param_4") (= "=") (identifier "uVar18")) (; ";")) (expression_statement "(*(code *)PTR_sqlite3_snprintf_000f548c)(param_1);" (call_expression "(*(code *)PTR_sqlite3_snprintf_000f548c)(param_1)" (parenthesized_expression "(*(code *)PTR_sqlite3_snprintf_000f548c)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_snprintf_000f548c" (* "*") (cast_expression "(code *)PTR_sqlite3_snprintf_000f548c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_snprintf_000f548c"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (if_statement "if (*(char *)puVar25 != '\0') {\nLAB_0007669c:\n      local_234 = 1;\n      break;\n    }" (if "if") (parenthesized_expression "(*(char *)puVar25 != '\0')" (( "(") (binary_expression "*(char *)puVar25 != '\0'" (pointer_expression "*(char *)puVar25" (* "*") (cast_expression "(char *)puVar25" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar25"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0007669c:\n      local_234 = 1;\n      break;\n    }" ({ "{") (labeled_statement "LAB_0007669c:\n      local_234 = 1;" (statement_identifier "LAB_0007669c") (: ":") (expression_statement "local_234 = 1;" (assignment_expression "local_234 = 1" (identifier "local_234") (= "=") (number_literal "1")) (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0007658c:\n  if (local_2c == *(int *)puVar3) {\n    return local_234;\n  }" (statement_identifier "LAB_0007658c") (: ":") (if_statement "if (local_2c == *(int *)puVar3) {\n    return local_234;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar3)" (( "(") (binary_expression "local_2c == *(int *)puVar3" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar3" (* "*") (cast_expression "(int *)puVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3")))) () ")")) (compound_statement "{\n    return local_234;\n  }" ({ "{") (return_statement "return local_234;" (return "return") (identifier "local_234") (; ";")) (} "}")))) (expression_statement "uVar32 = 0x766b0;" (assignment_expression "uVar32 = 0x766b0" (identifier "uVar32") (= "=") (number_literal "0x766b0")) (; ";")) (expression_statement "puVar26 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar26 = PTR___stack_chk_fail_000f5540" (identifier "puVar26") (= "=") (identifier "PTR___stack_chk_fail_000f5540")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000f5540" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000f5540"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_208 = puVar26 + 0x86bf0;" (assignment_expression "local_208 = puVar26 + 0x86bf0" (identifier "local_208") (= "=") (binary_expression "puVar26 + 0x86bf0" (identifier "puVar26") (+ "+") (number_literal "0x86bf0"))) (; ";")) (expression_statement "piVar30 = *(int **)(puVar26 + 0x7eeb8);" (assignment_expression "piVar30 = *(int **)(puVar26 + 0x7eeb8)" (identifier "piVar30") (= "=") (pointer_expression "*(int **)(puVar26 + 0x7eeb8)" (* "*") (cast_expression "(int **)(puVar26 + 0x7eeb8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x7eeb8)" (( "(") (binary_expression "puVar26 + 0x7eeb8" (identifier "puVar26") (+ "+") (number_literal "0x7eeb8")) () ")"))))) (; ";")) (expression_statement "iVar4 = *piVar30;" (assignment_expression "iVar4 = *piVar30" (identifier "iVar4") (= "=") (pointer_expression "*piVar30" (* "*") (identifier "piVar30"))) (; ";")) (expression_statement "local_134 = iVar4;" (assignment_expression "local_134 = iVar4" (identifier "local_134") (= "=") (identifier "iVar4")) (; ";")) (expression_statement "local_130 = puVar17;" (assignment_expression "local_130 = puVar17" (identifier "local_130") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "local_12c = uVar18;" (assignment_expression "local_12c = uVar18" (identifier "local_12c") (= "=") (identifier "uVar18")) (; ";")) (expression_statement "local_128 = puVar20;" (assignment_expression "local_128 = puVar20" (identifier "local_128") (= "=") (identifier "puVar20")) (; ";")) (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 = puVar19;" (assignment_expression "local_11c = puVar19" (identifier "local_11c") (= "=") (identifier "puVar19")) (; ";")) (expression_statement "local_118 = puVar25;" (assignment_expression "local_118 = puVar25" (identifier "local_118") (= "=") (identifier "puVar25")) (; ";")) (expression_statement "local_114 = local_234;" (assignment_expression "local_114 = local_234" (identifier "local_114") (= "=") (identifier "local_234")) (; ";")) (expression_statement "local_110 = piVar29;" (assignment_expression "local_110 = piVar29" (identifier "local_110") (= "=") (identifier "piVar29")) (; ";")) (expression_statement "local_10c = uVar32;" (assignment_expression "local_10c = uVar32" (identifier "local_10c") (= "=") (identifier "uVar32")) (; ";")) (if_statement "if (puVar14 < &DAT_00000015) {\n                    \n                    \n    iVar4 = (*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))();\n    return iVar4;\n  }" (if "if") (parenthesized_expression "(puVar14 < &DAT_00000015)" (( "(") (binary_expression "puVar14 < &DAT_00000015" (identifier "puVar14") (< "<") (pointer_expression "&DAT_00000015" (& "&") (identifier "DAT_00000015"))) () ")")) (compound_statement "{\n                    \n                    \n    iVar4 = (*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))();\n    return iVar4;\n  }" ({ "{") (expression_statement "iVar4 = (*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))();" (assignment_expression "iVar4 = (*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))()" (identifier "iVar4") (= "=") (call_expression "(*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))()" (parenthesized_expression "(*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))" (( "(") (pointer_expression "*(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4))" (* "*") (cast_expression "(code *)(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4))" (( "(") (binary_expression "local_208 +\n                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)" (identifier "local_208") (+ "+") (pointer_expression "*(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)" (( "(") (binary_expression "*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4" (binary_expression "*(int *)(puVar26 + 0x7ec24) + -0x2974" (pointer_expression "*(int *)(puVar26 + 0x7ec24)" (* "*") (cast_expression "(int *)(puVar26 + 0x7ec24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0x7ec24)" (( "(") (binary_expression "puVar26 + 0x7ec24" (identifier "puVar26") (+ "+") (number_literal "0x7ec24")) () ")")))) (+ "+") (number_literal "-0x2974")) (+ "+") (binary_expression "(int)puVar14 * 4" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (* "*") (number_literal "4"))) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar4;" (return "return") (identifier "iVar4") (; ";")) (} "}"))) (if_statement "if (iVar4 == *piVar30) {\n    return 0xc;\n  }" (if "if") (parenthesized_expression "(iVar4 == *piVar30)" (( "(") (binary_expression "iVar4 == *piVar30" (identifier "iVar4") (== "==") (pointer_expression "*piVar30" (* "*") (identifier "piVar30"))) () ")")) (compound_statement "{\n    return 0xc;\n  }" ({ "{") (return_statement "return 0xc;" (return "return") (number_literal "0xc") (; ";")) (} "}"))) (expression_statement "pcVar27 = *(code **)(puVar26 + 0x7ee90);" (assignment_expression "pcVar27 = *(code **)(puVar26 + 0x7ee90)" (identifier "pcVar27") (= "=") (pointer_expression "*(code **)(puVar26 + 0x7ee90)" (* "*") (cast_expression "(code **)(puVar26 + 0x7ee90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x7ee90)" (( "(") (binary_expression "puVar26 + 0x7ee90" (identifier "puVar26") (+ "+") (number_literal "0x7ee90")) () ")"))))) (; ";")) (expression_statement "uVar32 = 0x76d28;" (assignment_expression "uVar32 = 0x76d28" (identifier "uVar32") (= "=") (number_literal "0x76d28")) (; ";")) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" (( "(") (pointer_expression "*pcVar27" (* "*") (identifier "pcVar27")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar29 = *(int **)(pcVar27 + 0x7e840);" (assignment_expression "piVar29 = *(int **)(pcVar27 + 0x7e840)" (identifier "piVar29") (= "=") (pointer_expression "*(int **)(pcVar27 + 0x7e840)" (* "*") (cast_expression "(int **)(pcVar27 + 0x7e840)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e840)" (( "(") (binary_expression "pcVar27 + 0x7e840" (identifier "pcVar27") (+ "+") (number_literal "0x7e840")) () ")"))))) (; ";")) (expression_statement "local_254 = *piVar29;" (assignment_expression "local_254 = *piVar29" (identifier "local_254") (= "=") (pointer_expression "*piVar29" (* "*") (identifier "piVar29"))) (; ";")) (expression_statement "uVar22 = param_4 & 0xfff00;" (assignment_expression "uVar22 = param_4 & 0xfff00" (identifier "uVar22") (= "=") (binary_expression "param_4 & 0xfff00" (identifier "param_4") (& "&") (number_literal "0xfff00"))) (; ";")) (expression_statement "local_728 = param_4 & 1;" (assignment_expression "local_728 = param_4 & 1" (identifier "local_728") (= "=") (binary_expression "param_4 & 1" (identifier "param_4") (& "&") (number_literal "1"))) (; ";")) (expression_statement "uVar5 = param_4 & 2;" (assignment_expression "uVar5 = param_4 & 2" (identifier "uVar5") (= "=") (binary_expression "param_4 & 2" (identifier "param_4") (& "&") (number_literal "2"))) (; ";")) (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 "puVar16 = puVar14;" (assignment_expression "puVar16 = puVar14" (identifier "puVar16") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "local_250 = puVar17;" (assignment_expression "local_250 = puVar17" (identifier "local_250") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "local_24c = uVar18;" (assignment_expression "local_24c = uVar18" (identifier "local_24c") (= "=") (identifier "uVar18")) (; ";")) (expression_statement "local_248 = puVar20;" (assignment_expression "local_248 = puVar20" (identifier "local_248") (= "=") (identifier "puVar20")) (; ";")) (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 = puVar19;" (assignment_expression "local_23c = puVar19" (identifier "local_23c") (= "=") (identifier "puVar19")) (; ";")) (expression_statement "local_238 = puVar25;" (assignment_expression "local_238 = puVar25" (identifier "local_238") (= "=") (identifier "puVar25")) (; ";")) (expression_statement "local_230 = piVar30;" (assignment_expression "local_230 = piVar30" (identifier "local_230") (= "=") (identifier "piVar30")) (; ";")) (expression_statement "local_22c = uVar32;" (assignment_expression "local_22c = uVar32" (identifier "local_22c") (= "=") (identifier "uVar32")) (; ";")) (if_statement "if ((param_4 & 4) == 0) {\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    bVar1 = false;\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (iVar6 != *(int *)(iVar24 + 0x5a1c)) goto LAB_00076ff4;\nLAB_00076df0:\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    if (uVar22 == 0x100) {\n      iVar6 = *(int *)(pcVar27 + 0x7e594);\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));\n      if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }\n      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\nLAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);\n      if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }\n      iVar24 = 7;\n    }\n    else {\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }\n  }\n  else {\n    if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (*(int *)(iVar24 + 0x5a1c) != iVar6) {\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    bVar1 = true;\n    if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;\nLAB_00076e18:\n    iVar6 = -1;\nLAB_00076e20:\n    uVar18 = uVar5;\n    if ((param_4 & 4) != 0) {\n      uVar18 = uVar5 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }\n    else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }\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    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    bVar1 = false;\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (iVar6 != *(int *)(iVar24 + 0x5a1c)) goto LAB_00076ff4;\nLAB_00076df0:\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    if (uVar22 == 0x100) {\n      iVar6 = *(int *)(pcVar27 + 0x7e594);\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));\n      if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }\n      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\nLAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);\n      if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }\n      iVar24 = 7;\n    }\n    else {\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }\n  }" ({ "{") (expression_statement "iVar24 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(pcVar27 + 0x7e594)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e594)" (( "(") (binary_expression "pcVar27 + 0x7e594" (identifier "pcVar27") (+ "+") (number_literal "0x7e594")) () ")"))))) (; ";")) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (expression_statement "iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();" (assignment_expression "iVar6 = (**(code **)(pcVar27 + 0x7e7c0))()" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcVar27 + 0x7e7c0))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e7c0))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e7c0)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e7c0)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e7c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e7c0)" (( "(") (binary_expression "pcVar27 + 0x7e7c0" (identifier "pcVar27") (+ "+") (number_literal "0x7e7c0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 != *(int *)(iVar24 + 0x5a1c)) goto LAB_00076ff4;" (if "if") (parenthesized_expression "(iVar6 != *(int *)(iVar24 + 0x5a1c))" (( "(") (binary_expression "iVar6 != *(int *)(iVar24 + 0x5a1c)" (identifier "iVar6") (!= "!=") (pointer_expression "*(int *)(iVar24 + 0x5a1c)" (* "*") (cast_expression "(int *)(iVar24 + 0x5a1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x5a1c)" (( "(") (binary_expression "iVar24 + 0x5a1c" (identifier "iVar24") (+ "+") (number_literal "0x5a1c")) () ")"))))) () ")")) (goto_statement "goto LAB_00076ff4;" (goto "goto") (statement_identifier "LAB_00076ff4") (; ";"))) (labeled_statement "LAB_00076df0:\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);" (statement_identifier "LAB_00076df0") (: ":") (expression_statement "(**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);" (call_expression "(**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e728))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e728)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e728)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e728)" (( "(") (binary_expression "pcVar27 + 0x7e728" (identifier "pcVar27") (+ "+") (number_literal "0x7e728")) () ")"))))) () ")")) (argument_list "(param_3,0,0x58)" (( "(") (identifier "param_3") (, ",") (number_literal "0") (, ",") (number_literal "0x58") () ")"))) (; ";"))) (if_statement "if (uVar22 == 0x100) {\n      iVar6 = *(int *)(pcVar27 + 0x7e594);\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));\n      if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }\n      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\nLAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);\n      if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }\n      iVar24 = 7;\n    }\n    else {\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }" (if "if") (parenthesized_expression "(uVar22 == 0x100)" (( "(") (binary_expression "uVar22 == 0x100" (identifier "uVar22") (== "==") (number_literal "0x100")) () ")")) (compound_statement "{\n      iVar6 = *(int *)(pcVar27 + 0x7e594);\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));\n      if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }\n      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));\nLAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);\n      if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }\n      iVar24 = 7;\n    }" ({ "{") (expression_statement "iVar6 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar6 = *(int *)(pcVar27 + 0x7e594)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcVar27 + 0x7e594)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e594)" (( "(") (binary_expression "pcVar27 + 0x7e594" (identifier "pcVar27") (+ "+") (number_literal "0x7e594")) () ")"))))) (; ";")) (expression_statement "iVar24 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(pcVar27 + 0x7e594)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e594)" (( "(") (binary_expression "pcVar27 + 0x7e594" (identifier "pcVar27") (+ "+") (number_literal "0x7e594")) () ")"))))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e720))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e720)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e720)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e720)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e720)" (( "(") (binary_expression "pcVar27 + 0x7e720" (identifier "pcVar27") (+ "+") (number_literal "0x7e720")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar6 + 0x5a18))" (( "(") (pointer_expression "*(undefined4 *)(iVar6 + 0x5a18)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x5a18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x5a18)" (( "(") (binary_expression "iVar6 + 0x5a18" (identifier "iVar6") (+ "+") (number_literal "0x5a18")) () ")")))) () ")"))) (; ";")) (if_statement "if ((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )) {\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }" (if "if") (parenthesized_expression "((*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         ))" (( "(") (binary_expression "(*(int *)(iVar24 + 0x5a14) != 0) &&\n         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )" (parenthesized_expression "(*(int *)(iVar24 + 0x5a14) != 0)" (( "(") (binary_expression "*(int *)(iVar24 + 0x5a14) != 0" (pointer_expression "*(int *)(iVar24 + 0x5a14)" (* "*") (cast_expression "(int *)(iVar24 + 0x5a14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x5a14)" (( "(") (binary_expression "iVar24 + 0x5a14" (identifier "iVar24") (+ "+") (number_literal "0x5a14")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0\n         )" (( "(") (comma_expression "iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700)" (parenthesized_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))" (( "(") (pointer_expression "**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184)" (* "*") (pointer_expression "*(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184)" (* "*") (cast_expression "(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcVar27 + 0x7e594) + 0x5184)" (( "(") (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x5184" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e594)" (( "(") (binary_expression "pcVar27 + 0x7e594" (identifier "pcVar27") (+ "+") (number_literal "0x7e594")) () ")")))) (+ "+") (number_literal "0x5184")) () ")"))))) () ")")) (argument_list "(puVar14,local_700)" (( "(") (identifier "puVar14") (, ",") (identifier "local_700") () ")")))) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }\n      }" ({ "{") (for_statement "for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;\n            piVar30 = (int *)piVar30[0xb]) {\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }" (for "for") (( "(") (assignment_expression "piVar30 = *(int **)(iVar24 + 0x5a14)" (identifier "piVar30") (= "=") (pointer_expression "*(int **)(iVar24 + 0x5a14)" (* "*") (cast_expression "(int **)(iVar24 + 0x5a14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar24 + 0x5a14)" (( "(") (binary_expression "iVar24 + 0x5a14" (identifier "iVar24") (+ "+") (number_literal "0x5a14")) () ")"))))) (; ";") (binary_expression "piVar30 != (int *)0x0" (identifier "piVar30") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "piVar30 = (int *)piVar30[0xb]" (identifier "piVar30") (= "=") (cast_expression "(int *)piVar30[0xb]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar30[0xb]" (identifier "piVar30") ([ "[") (number_literal "0xb") (] "]")))) () ")") (compound_statement "{\n          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }\n        }" ({ "{") (if_statement "if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)) {\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }" (if "if") (parenthesized_expression "((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec))" (( "(") (binary_expression "(((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&\n             (piVar30[3] == local_6ec)" (parenthesized_expression "(((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0))" (( "(") (binary_expression "((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)" (parenthesized_expression "((*piVar30 == 0) && (piVar30[1] == local_700[0]))" (( "(") (binary_expression "(*piVar30 == 0) && (piVar30[1] == local_700[0])" (parenthesized_expression "(*piVar30 == 0)" (( "(") (binary_expression "*piVar30 == 0" (pointer_expression "*piVar30" (* "*") (identifier "piVar30")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(piVar30[1] == local_700[0])" (( "(") (binary_expression "piVar30[1] == local_700[0]" (subscript_expression "piVar30[1]" (identifier "piVar30") ([ "[") (number_literal "1") (] "]")) (== "==") (subscript_expression "local_700[0]" (identifier "local_700") ([ "[") (number_literal "0") (] "]"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(piVar30[2] == local_6f0)" (( "(") (binary_expression "piVar30[2] == local_6f0" (subscript_expression "piVar30[2]" (identifier "piVar30") ([ "[") (number_literal "2") (] "]")) (== "==") (identifier "local_6f0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(piVar30[3] == local_6ec)" (( "(") (binary_expression "piVar30[3] == local_6ec" (subscript_expression "piVar30[3]" (identifier "piVar30") ([ "[") (number_literal "3") (] "]")) (== "==") (identifier "local_6ec")) () ")"))) () ")")) (compound_statement "{\n            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);\n            piVar12 = (int *)piVar30[8];\n            if (piVar12 == (int *)0x0) goto LAB_00077360;\n            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;\n            piVar15 = piVar30 + 8;\n            goto LAB_000776f8;\n          }" ({ "{") (expression_statement "(**(code **)(pcVar27 + 0x7e720))(piVar30[4]);" (call_expression "(**(code **)(pcVar27 + 0x7e720))(piVar30[4])" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e720))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e720)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e720)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e720)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e720)" (( "(") (binary_expression "pcVar27 + 0x7e720" (identifier "pcVar27") (+ "+") (number_literal "0x7e720")) () ")"))))) () ")")) (argument_list "(piVar30[4])" (( "(") (subscript_expression "piVar30[4]" (identifier "piVar30") ([ "[") (number_literal "4") (] "]")) () ")"))) (; ";")) (expression_statement "piVar12 = (int *)piVar30[8];" (assignment_expression "piVar12 = (int *)piVar30[8]" (identifier "piVar12") (= "=") (cast_expression "(int *)piVar30[8]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar30[8]" (identifier "piVar30") ([ "[") (number_literal "8") (] "]")))) (; ";")) (if_statement "if (piVar12 == (int *)0x0) goto LAB_00077360;" (if "if") (parenthesized_expression "(piVar12 == (int *)0x0)" (( "(") (binary_expression "piVar12 == (int *)0x0" (identifier "piVar12") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00077360;" (goto "goto") (statement_identifier "LAB_00077360") (; ";"))) (if_statement "if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;" (if "if") (parenthesized_expression "((param_4 & 3) != piVar12[1])" (( "(") (binary_expression "(param_4 & 3) != piVar12[1]" (parenthesized_expression "(param_4 & 3)" (( "(") (binary_expression "param_4 & 3" (identifier "param_4") (& "&") (number_literal "3")) () ")")) (!= "!=") (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]"))) () ")")) (goto_statement "goto LAB_00077354;" (goto "goto") (statement_identifier "LAB_00077354") (; ";"))) (expression_statement "piVar15 = piVar30 + 8;" (assignment_expression "piVar15 = piVar30 + 8" (identifier "piVar15") (= "=") (binary_expression "piVar30 + 8" (identifier "piVar30") (+ "+") (number_literal "8"))) (; ";")) (goto_statement "goto LAB_000776f8;" (goto "goto") (statement_identifier "LAB_000776f8") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e748))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e748)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e748)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e748)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e748)" (( "(") (binary_expression "pcVar27 + 0x7e748" (identifier "pcVar27") (+ "+") (number_literal "0x7e748")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar6 + 0x5a18))" (( "(") (pointer_expression "*(undefined4 *)(iVar6 + 0x5a18)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x5a18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x5a18)" (( "(") (binary_expression "iVar6 + 0x5a18" (identifier "iVar6") (+ "+") (number_literal "0x5a18")) () ")")))) () ")"))) (; ";")) (labeled_statement "LAB_00077524:\n      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);" (statement_identifier "LAB_00077524") (: ":") (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc)" (identifier "iVar24") (= "=") (call_expression "(**(code **)(pcVar27 + 0x7e7f4))(0,0xc)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e7f4))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e7f4)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e7f4)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e7f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e7f4)" (( "(") (binary_expression "pcVar27 + 0x7e7f4" (identifier "pcVar27") (+ "+") (number_literal "0x7e7f4")) () ")"))))) () ")")) (argument_list "(0,0xc)" (( "(") (number_literal "0") (, ",") (number_literal "0xc") () ")")))) (; ";"))) (if_statement "if (iVar24 != 0) {\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }" (if "if") (parenthesized_expression "(iVar24 != 0)" (( "(") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar6 = -1;\n        param_3[7] = iVar24;\n        goto LAB_00076e20;\n      }" ({ "{") (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" (identifier "iVar6") (= "=") (number_literal "-1")) (; ";")) (expression_statement "param_3[7] = iVar24;" (assignment_expression "param_3[7] = iVar24" (subscript_expression "param_3[7]" (identifier "param_3") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "iVar24")) (; ";")) (goto_statement "goto LAB_00076e20;" (goto "goto") (statement_identifier "LAB_00076e20") (; ";")) (} "}"))) (expression_statement "iVar24 = 7;" (assignment_expression "iVar24 = 7" (identifier "iVar24") (= "=") (number_literal "7")) (; ";")) (} "}")) (else_clause "else {\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }" (else "else") (compound_statement "{\n      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;\nLAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);\n      if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }\n    }" ({ "{") (if_statement "if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;" (if "if") (parenthesized_expression "(puVar14 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar14 != (undefined4 *)0x0" (identifier "puVar14") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00076e18;" (goto "goto") (statement_identifier "LAB_00076e18") (; ";"))) (labeled_statement "LAB_00077258:\n      iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);" (statement_identifier "LAB_00077258") (: ":") (expression_statement "iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458);" (assignment_expression "iVar24 = FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458)" (identifier "iVar24") (= "=") (call_expression "FUN_000764a4(*(undefined4 *)(iVar4 + 8),auStack_458)" (identifier "FUN_000764a4") (argument_list "(*(undefined4 *)(iVar4 + 8),auStack_458)" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "auStack_458") () ")")))) (; ";"))) (if_statement "if (iVar24 == 0) {\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }" (if "if") (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar6 = -1;\n        puVar16 = auStack_458;\n        goto LAB_00076e20;\n      }" ({ "{") (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" (identifier "iVar6") (= "=") (number_literal "-1")) (; ";")) (expression_statement "puVar16 = auStack_458;" (assignment_expression "puVar16 = auStack_458" (identifier "puVar16") (= "=") (identifier "auStack_458")) (; ";")) (goto_statement "goto LAB_00076e20;" (goto "goto") (statement_identifier "LAB_00076e20") (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n    if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (*(int *)(iVar24 + 0x5a1c) != iVar6) {\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    bVar1 = true;\n    if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;\nLAB_00076e18:\n    iVar6 = -1;\nLAB_00076e20:\n    uVar18 = uVar5;\n    if ((param_4 & 4) != 0) {\n      uVar18 = uVar5 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }\n    else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }\n  }" (else "else") (compound_statement "{\n    if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }\n    iVar24 = *(int *)(pcVar27 + 0x7e594);\n    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n    if (*(int *)(iVar24 + 0x5a1c) != iVar6) {\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }\n    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);\n    bVar1 = true;\n    if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;\nLAB_00076e18:\n    iVar6 = -1;\nLAB_00076e20:\n    uVar18 = uVar5;\n    if ((param_4 & 4) != 0) {\n      uVar18 = uVar5 | 0x100;\n    }\n    if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }\n    else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }\n  }" ({ "{") (if_statement "if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }" (if "if") (parenthesized_expression "((uVar22 != 0x4000) && (uVar22 != 0x800))" (( "(") (binary_expression "(uVar22 != 0x4000) && (uVar22 != 0x800)" (parenthesized_expression "(uVar22 != 0x4000)" (( "(") (binary_expression "uVar22 != 0x4000" (identifier "uVar22") (!= "!=") (number_literal "0x4000")) () ")")) (&& "&&") (parenthesized_expression "(uVar22 != 0x800)" (( "(") (binary_expression "uVar22 != 0x800" (identifier "uVar22") (!= "!=") (number_literal "0x800")) () ")"))) () ")")) (compound_statement "{\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      bVar1 = uVar22 == 0x80000;\n      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();\n      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;\nLAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();\n      pcVar28 = *(code **)(pcVar27 + 0x7e758);\n      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;\n      (*pcVar28)(0,0);\n      goto LAB_00076df0;\n    }" ({ "{") (expression_statement "iVar24 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(pcVar27 + 0x7e594)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e594)" (( "(") (binary_expression "pcVar27 + 0x7e594" (identifier "pcVar27") (+ "+") (number_literal "0x7e594")) () ")"))))) (; ";")) (expression_statement "bVar1 = uVar22 == 0x80000;" (assignment_expression "bVar1 = uVar22 == 0x80000" (identifier "bVar1") (= "=") (binary_expression "uVar22 == 0x80000" (identifier "uVar22") (== "==") (number_literal "0x80000"))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();" (assignment_expression "iVar6 = (**(code **)(pcVar27 + 0x7e7c0))()" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcVar27 + 0x7e7c0))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e7c0))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e7c0)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e7c0)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e7c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e7c0)" (( "(") (binary_expression "pcVar27 + 0x7e7c0" (identifier "pcVar27") (+ "+") (number_literal "0x7e7c0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;" (if "if") (parenthesized_expression "(iVar6 == *(int *)(iVar24 + 0x5a1c))" (( "(") (binary_expression "iVar6 == *(int *)(iVar24 + 0x5a1c)" (identifier "iVar6") (== "==") (pointer_expression "*(int *)(iVar24 + 0x5a1c)" (* "*") (cast_expression "(int *)(iVar24 + 0x5a1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x5a1c)" (( "(") (binary_expression "iVar24 + 0x5a1c" (identifier "iVar24") (+ "+") (number_literal "0x5a1c")) () ")"))))) () ")")) (goto_statement "goto LAB_00076df0;" (goto "goto") (statement_identifier "LAB_00076df0") (; ";"))) (labeled_statement "LAB_00076ff4:\n      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();" (statement_identifier "LAB_00076ff4") (: ":") (expression_statement "uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();" (assignment_expression "uVar32 = (**(code **)(pcVar27 + 0x7e7c0))()" (identifier "uVar32") (= "=") (call_expression "(**(code **)(pcVar27 + 0x7e7c0))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e7c0))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e7c0)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e7c0)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e7c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e7c0)" (( "(") (binary_expression "pcVar27 + 0x7e7c0" (identifier "pcVar27") (+ "+") (number_literal "0x7e7c0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e758);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e758)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar27 + 0x7e758)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e758)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e758)" (( "(") (binary_expression "pcVar27 + 0x7e758" (identifier "pcVar27") (+ "+") (number_literal "0x7e758")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar24 + 0x5a1c) = uVar32;" (assignment_expression "*(undefined4 *)(iVar24 + 0x5a1c) = uVar32" (pointer_expression "*(undefined4 *)(iVar24 + 0x5a1c)" (* "*") (cast_expression "(undefined4 *)(iVar24 + 0x5a1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x5a1c)" (( "(") (binary_expression "iVar24 + 0x5a1c" (identifier "iVar24") (+ "+") (number_literal "0x5a1c")) () ")")))) (= "=") (identifier "uVar32")) (; ";")) (expression_statement "(*pcVar28)(0,0);" (call_expression "(*pcVar28)(0,0)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(0,0)" (( "(") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (goto_statement "goto LAB_00076df0;" (goto "goto") (statement_identifier "LAB_00076df0") (; ";")) (} "}"))) (expression_statement "iVar24 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(pcVar27 + 0x7e594)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e594)" (( "(") (binary_expression "pcVar27 + 0x7e594" (identifier "pcVar27") (+ "+") (number_literal "0x7e594")) () ")"))))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();" (assignment_expression "iVar6 = (**(code **)(pcVar27 + 0x7e7c0))()" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcVar27 + 0x7e7c0))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e7c0))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e7c0)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e7c0)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e7c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e7c0)" (( "(") (binary_expression "pcVar27 + 0x7e7c0" (identifier "pcVar27") (+ "+") (number_literal "0x7e7c0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (*(int *)(iVar24 + 0x5a1c) != iVar6) {\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar24 + 0x5a1c) != iVar6)" (( "(") (binary_expression "*(int *)(iVar24 + 0x5a1c) != iVar6" (pointer_expression "*(int *)(iVar24 + 0x5a1c)" (* "*") (cast_expression "(int *)(iVar24 + 0x5a1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x5a1c)" (( "(") (binary_expression "iVar24 + 0x5a1c" (identifier "iVar24") (+ "+") (number_literal "0x5a1c")) () ")")))) (!= "!=") (identifier "iVar6")) () ")")) (compound_statement "{\n      bVar1 = true;\n      goto LAB_00076ff4;\n    }" ({ "{") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_00076ff4;" (goto "goto") (statement_identifier "LAB_00076ff4") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);" (call_expression "(**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e728))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e728)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e728)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e728)" (( "(") (binary_expression "pcVar27 + 0x7e728" (identifier "pcVar27") (+ "+") (number_literal "0x7e728")) () ")"))))) () ")")) (argument_list "(param_3,0,0x58)" (( "(") (identifier "param_3") (, ",") (number_literal "0") (, ",") (number_literal "0x58") () ")"))) (; ";")) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (if_statement "if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;" (if "if") (parenthesized_expression "(puVar14 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar14 == (undefined4 *)0x0" (identifier "puVar14") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00077258;" (goto "goto") (statement_identifier "LAB_00077258") (; ";"))) (labeled_statement "LAB_00076e18:\n    iVar6 = -1;" (statement_identifier "LAB_00076e18") (: ":") (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" (identifier "iVar6") (= "=") (number_literal "-1")) (; ";"))) (labeled_statement "LAB_00076e20:\n    uVar18 = uVar5;" (statement_identifier "LAB_00076e20") (: ":") (expression_statement "uVar18 = uVar5;" (assignment_expression "uVar18 = uVar5" (identifier "uVar18") (= "=") (identifier "uVar5")) (; ";"))) (if_statement "if ((param_4 & 4) != 0) {\n      uVar18 = uVar5 | 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      uVar18 = uVar5 | 0x100;\n    }" ({ "{") (expression_statement "uVar18 = uVar5 | 0x100;" (assignment_expression "uVar18 = uVar5 | 0x100" (identifier "uVar18") (= "=") (binary_expression "uVar5 | 0x100" (identifier "uVar5") (| "|") (number_literal "0x100"))) (; ";")) (} "}"))) (if_statement "if ((param_4 & 0x10) == 0) {\n      if (-1 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }\n    else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\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 < iVar6) goto LAB_00076e44;\nLAB_00077030:\n      uVar31 = uVar18 | 0x22000;\n      if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }\n      if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }\nLAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n      iVar6 = *piVar30;\n      if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }\nLAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }\n      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n      if (iVar24 == 0) goto LAB_00076f98;\n      pcVar28 = *(code **)(pcVar27 + 0x7e678);\nLAB_00077574:\n      (*pcVar28)(param_3[7]);\n    }" ({ "{") (if_statement "if (-1 < iVar6) goto LAB_00076e44;" (if "if") (parenthesized_expression "(-1 < iVar6)" (( "(") (binary_expression "-1 < iVar6" (number_literal "-1") (< "<") (identifier "iVar6")) () ")")) (goto_statement "goto LAB_00076e44;" (goto "goto") (statement_identifier "LAB_00076e44") (; ";"))) (labeled_statement "LAB_00077030:\n      uVar31 = uVar18 | 0x22000;" (statement_identifier "LAB_00077030") (: ":") (expression_statement "uVar31 = uVar18 | 0x22000;" (assignment_expression "uVar31 = uVar18 | 0x22000" (identifier "uVar31") (= "=") (binary_expression "uVar18 | 0x22000" (identifier "uVar18") (| "|") (number_literal "0x22000"))) (; ";"))) (if_statement "if ((param_4 & 0x80800) != 0) {\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }" (if "if") (parenthesized_expression "((param_4 & 0x80800) != 0)" (( "(") (binary_expression "(param_4 & 0x80800) != 0" (parenthesized_expression "(param_4 & 0x80800)" (( "(") (binary_expression "param_4 & 0x80800" (identifier "param_4") (& "&") (number_literal "0x80800")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);\n        iVar24 = *(int *)(pcVar27 + 0x7e594);\n        auStack_65c[iVar6] = 0;\n        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);\n        if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }\n        local_730 = local_6e0;\n        local_720 = local_6dc;\nLAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);\n        if (iVar6 < 0) goto LAB_0007743c;\nLAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }\n        goto LAB_00076e44;\n      }" ({ "{") (if_statement "if (puVar16 == (undefined4 *)0x0) {\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }\n        else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }" (if "if") (parenthesized_expression "(puVar16 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar16 == (undefined4 *)0x0" (identifier "puVar16") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          cVar11 = *(char *)(in_zero + -1);\n          iVar6 = -1;\n          if (cVar11 != '-') goto LAB_00077090;\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }" ({ "{") (expression_statement "cVar11 = *(char *)(in_zero + -1);" (assignment_expression "cVar11 = *(char *)(in_zero + -1)" (identifier "cVar11") (= "=") (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 "iVar6 = -1;" (assignment_expression "iVar6 = -1" (identifier "iVar6") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (cVar11 != '-') goto LAB_00077090;" (if "if") (parenthesized_expression "(cVar11 != '-')" (( "(") (binary_expression "cVar11 != '-'" (identifier "cVar11") (!= "!=") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (goto_statement "goto LAB_00077090;" (goto "goto") (statement_identifier "LAB_00077090") (; ";"))) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e790);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e790)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar27 + 0x7e790)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e790)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e790)" (( "(") (binary_expression "pcVar27 + 0x7e790" (identifier "pcVar27") (+ "+") (number_literal "0x7e790")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }" (else "else") (compound_statement "{\n          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);\n          iVar6 = (uVar8 & 0x3fffffff) - 1;\n          cVar11 = *(char *)((int)puVar16 + iVar6);\n          if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }\n          pcVar28 = *(code **)(pcVar27 + 0x7e790);\n        }" ({ "{") (expression_statement "uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);" (assignment_expression "uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16)" (identifier "uVar8") (= "=") (call_expression "(**(code **)(pcVar27 + 0x7e760))(puVar16)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e760))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e760)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e760)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e760)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e760)" (( "(") (binary_expression "pcVar27 + 0x7e760" (identifier "pcVar27") (+ "+") (number_literal "0x7e760")) () ")"))))) () ")")) (argument_list "(puVar16)" (( "(") (identifier "puVar16") () ")")))) (; ";")) (expression_statement "iVar6 = (uVar8 & 0x3fffffff) - 1;" (assignment_expression "iVar6 = (uVar8 & 0x3fffffff) - 1" (identifier "iVar6") (= "=") (binary_expression "(uVar8 & 0x3fffffff) - 1" (parenthesized_expression "(uVar8 & 0x3fffffff)" (( "(") (binary_expression "uVar8 & 0x3fffffff" (identifier "uVar8") (& "&") (number_literal "0x3fffffff")) () ")")) (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar11 = *(char *)((int)puVar16 + iVar6);" (assignment_expression "cVar11 = *(char *)((int)puVar16 + iVar6)" (identifier "cVar11") (= "=") (pointer_expression "*(char *)((int)puVar16 + iVar6)" (* "*") (cast_expression "(char *)((int)puVar16 + iVar6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar16 + iVar6)" (( "(") (binary_expression "(int)puVar16 + iVar6" (cast_expression "(int)puVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar16")) (+ "+") (identifier "iVar6")) () ")"))))) (; ";")) (if_statement "if (cVar11 != '-') {\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }" (if "if") (parenthesized_expression "(cVar11 != '-')" (( "(") (binary_expression "cVar11 != '-'" (identifier "cVar11") (!= "!=") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (compound_statement "{\n            if (iVar6 == 0) goto LAB_000773f8;\nLAB_00077090:\n            iVar6 = iVar6 + -1;\n            if (cVar11 == '.') goto LAB_000773f8;\n            pcVar13 = (char *)((int)puVar16 + iVar6);\n            while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }\n          }" ({ "{") (if_statement "if (iVar6 == 0) goto LAB_000773f8;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000773f8;" (goto "goto") (statement_identifier "LAB_000773f8") (; ";"))) (labeled_statement "LAB_00077090:\n            iVar6 = iVar6 + -1;" (statement_identifier "LAB_00077090") (: ":") (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";"))) (if_statement "if (cVar11 == '.') goto LAB_000773f8;" (if "if") (parenthesized_expression "(cVar11 == '.')" (( "(") (binary_expression "cVar11 == '.'" (identifier "cVar11") (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (goto_statement "goto LAB_000773f8;" (goto "goto") (statement_identifier "LAB_000773f8") (; ";"))) (expression_statement "pcVar13 = (char *)((int)puVar16 + iVar6);" (assignment_expression "pcVar13 = (char *)((int)puVar16 + iVar6)" (identifier "pcVar13") (= "=") (cast_expression "(char *)((int)puVar16 + iVar6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar16 + iVar6)" (( "(") (binary_expression "(int)puVar16 + iVar6" (cast_expression "(int)puVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar16")) (+ "+") (identifier "iVar6")) () ")")))) (; ";")) (while_statement "while (cVar11 = *pcVar13, cVar11 != '-') {\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }" (while "while") (parenthesized_expression "(cVar11 = *pcVar13, cVar11 != '-')" (( "(") (comma_expression "cVar11 = *pcVar13, cVar11 != '-'" (assignment_expression "cVar11 = *pcVar13" (identifier "cVar11") (= "=") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13"))) (, ",") (binary_expression "cVar11 != '-'" (identifier "cVar11") (!= "!=") (char_literal "'-'" (' "'") (character "-") (' "'")))) () ")")) (compound_statement "{\n              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;\n              iVar6 = iVar6 + -1;\n            }" ({ "{") (if_statement "if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;" (if "if") (parenthesized_expression "((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.'))" (( "(") (binary_expression "(iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')" (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pcVar13 = pcVar13 + -1, cVar11 == '.')" (( "(") (comma_expression "pcVar13 = pcVar13 + -1, cVar11 == '.'" (assignment_expression "pcVar13 = pcVar13 + -1" (identifier "pcVar13") (= "=") (binary_expression "pcVar13 + -1" (identifier "pcVar13") (+ "+") (number_literal "-1"))) (, ",") (binary_expression "cVar11 == '.'" (identifier "cVar11") (== "==") (char_literal "'.'" (' "'") (character ".") (' "'")))) () ")"))) () ")")) (goto_statement "goto LAB_000773f8;" (goto "goto") (statement_identifier "LAB_000773f8") (; ";"))) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e790);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e790)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar27 + 0x7e790)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e790)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e790)" (( "(") (binary_expression "pcVar27 + 0x7e790" (identifier "pcVar27") (+ "+") (number_literal "0x7e790")) () ")"))))) (; ";")) (} "}")))) (expression_statement "uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);" (assignment_expression "uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201)" (identifier "uVar32") (= "=") (call_expression "(*pcVar28)(auStack_65c,puVar16,iVar6,0x201)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(auStack_65c,puVar16,iVar6,0x201)" (( "(") (identifier "auStack_65c") (, ",") (identifier "puVar16") (, ",") (identifier "iVar6") (, ",") (number_literal "0x201") () ")")))) (; ";")) (expression_statement "iVar24 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(pcVar27 + 0x7e594)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e594)" (( "(") (binary_expression "pcVar27 + 0x7e594" (identifier "pcVar27") (+ "+") (number_literal "0x7e594")) () ")"))))) (; ";")) (expression_statement "auStack_65c[iVar6] = 0;" (assignment_expression "auStack_65c[iVar6] = 0" (subscript_expression "auStack_65c[iVar6]" (identifier "auStack_65c") ([ "[") (identifier "iVar6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);" (assignment_expression "iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(iVar24 + 0x5184))(uVar32,local_700)" (parenthesized_expression "(**(code **)(iVar24 + 0x5184))" (( "(") (pointer_expression "**(code **)(iVar24 + 0x5184)" (* "*") (pointer_expression "*(code **)(iVar24 + 0x5184)" (* "*") (cast_expression "(code **)(iVar24 + 0x5184)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar24 + 0x5184)" (( "(") (binary_expression "iVar24 + 0x5184" (identifier "iVar24") (+ "+") (number_literal "0x5184")) () ")"))))) () ")")) (argument_list "(uVar32,local_700)" (( "(") (identifier "uVar32") (, ",") (identifier "local_700") () ")")))) (; ";")) (if_statement "if (iVar6 != 0) {\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000778c0:\n          iVar24 = 0x70a;\n          goto LAB_00076f98;\n        }" ({ "{") (labeled_statement "LAB_000778c0:\n          iVar24 = 0x70a;" (statement_identifier "LAB_000778c0") (: ":") (expression_statement "iVar24 = 0x70a;" (assignment_expression "iVar24 = 0x70a" (identifier "iVar24") (= "=") (number_literal "0x70a")) (; ";"))) (goto_statement "goto LAB_00076f98;" (goto "goto") (statement_identifier "LAB_00076f98") (; ";")) (} "}"))) (expression_statement "local_730 = local_6e0;" (assignment_expression "local_730 = local_6e0" (identifier "local_730") (= "=") (identifier "local_6e0")) (; ";")) (expression_statement "local_720 = local_6dc;" (assignment_expression "local_720 = local_6dc" (identifier "local_720") (= "=") (identifier "local_6dc")) (; ";")) (labeled_statement "LAB_00077140:\n        uVar8 = local_6e8 & 0x1ff;" (statement_identifier "LAB_00077140") (: ":") (expression_statement "uVar8 = local_6e8 & 0x1ff;" (assignment_expression "uVar8 = local_6e8 & 0x1ff" (identifier "uVar8") (= "=") (binary_expression "local_6e8 & 0x1ff" (identifier "local_6e8") (& "&") (number_literal "0x1ff"))) (; ";"))) (expression_statement "pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);" (assignment_expression "pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" (identifier "pcVar28") (= "=") (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" (( "(") (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x7c30" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e5c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e5c0)" (( "(") (binary_expression "pcVar27 + 0x7e5c0" (identifier "pcVar27") (+ "+") (number_literal "0x7e5c0")) () ")")))) (+ "+") (number_literal "0x7c30")) () ")")))) (; ";")) (expression_statement "iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);" (assignment_expression "iVar6 = (*pcVar28)(puVar16,uVar31,uVar8)" (identifier "iVar6") (= "=") (call_expression "(*pcVar28)(puVar16,uVar31,uVar8)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(puVar16,uVar31,uVar8)" (( "(") (identifier "puVar16") (, ",") (identifier "uVar31") (, ",") (identifier "uVar8") () ")")))) (; ";")) (if_statement "if (iVar6 < 0) goto LAB_0007743c;" (if "if") (parenthesized_expression "(iVar6 < 0)" (( "(") (binary_expression "iVar6 < 0" (identifier "iVar6") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_0007743c;" (goto "goto") (statement_identifier "LAB_0007743c") (; ";"))) (labeled_statement "LAB_00077180:\n        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }" (statement_identifier "LAB_00077180") (: ":") (if_statement "if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }" (if "if") (parenthesized_expression "(((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0))" (( "(") (binary_expression "((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&\n           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)" (parenthesized_expression "((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0))" (( "(") (binary_expression "(uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)" (parenthesized_expression "(uVar8 != 0)" (( "(") (binary_expression "uVar8 != 0" (identifier "uVar8") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)" (( "(") (comma_expression "iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(pcVar27 + 0x7e594)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e594)" (( "(") (binary_expression "pcVar27 + 0x7e594" (identifier "pcVar27") (+ "+") (number_literal "0x7e594")) () ")"))))) (, ",") (binary_expression "(param_4 & 0x80800) != 0" (parenthesized_expression "(param_4 & 0x80800)" (( "(") (binary_expression "param_4 & 0x80800" (identifier "param_4") (& "&") (number_literal "0x80800")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)" (( "(") (comma_expression "iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(iVar24 + 0x5250))()" (identifier "iVar7") (= "=") (call_expression "(**(code **)(iVar24 + 0x5250))()" (parenthesized_expression "(**(code **)(iVar24 + 0x5250))" (( "(") (pointer_expression "**(code **)(iVar24 + 0x5250)" (* "*") (pointer_expression "*(code **)(iVar24 + 0x5250)" (* "*") (cast_expression "(code **)(iVar24 + 0x5250)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar24 + 0x5250)" (( "(") (binary_expression "iVar24 + 0x5250" (identifier "iVar24") (+ "+") (number_literal "0x5250")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);\n        }" ({ "{") (expression_statement "(**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);" (call_expression "(**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720)" (parenthesized_expression "(**(code **)(iVar24 + 0x5244))" (( "(") (pointer_expression "**(code **)(iVar24 + 0x5244)" (* "*") (pointer_expression "*(code **)(iVar24 + 0x5244)" (* "*") (cast_expression "(code **)(iVar24 + 0x5244)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar24 + 0x5244)" (( "(") (binary_expression "iVar24 + 0x5244" (identifier "iVar24") (+ "+") (number_literal "0x5244")) () ")"))))) () ")")) (argument_list "(iVar6,local_730,local_720)" (( "(") (identifier "iVar6") (, ",") (identifier "local_730") (, ",") (identifier "local_720") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_00076e44;" (goto "goto") (statement_identifier "LAB_00076e44") (; ";")) (} "}"))) (if_statement "if (uVar21 == 0) {\n        if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }\n      else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 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           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }\nLAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0);\n        if (-1 < iVar6) goto LAB_00076e44;\n        uVar8 = 0;\n        local_720 = 0;\n        local_730 = 0;\n      }" ({ "{") (if_statement "if (((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)) {\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }" (if "if") (parenthesized_expression "(((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0))" (( "(") (binary_expression "((param_4 & 0x40) != 0) &&\n           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 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 "(iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0)" (( "(") (comma_expression "iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),\n           iVar6 != 0" (assignment_expression "iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e780))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e780)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e780)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e780)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e780)" (( "(") (binary_expression "pcVar27 + 0x7e780" (identifier "pcVar27") (+ "+") (number_literal "0x7e780")) () ")"))))) () ")")) (argument_list "(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684)" (( "(") (identifier "puVar16") (, ",") (binary_expression "*(int *)(pcVar27 + 0x7e5ac) + -0x7684" (pointer_expression "*(int *)(pcVar27 + 0x7e5ac)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e5ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e5ac)" (( "(") (binary_expression "pcVar27 + 0x7e5ac" (identifier "pcVar27") (+ "+") (number_literal "0x7e5ac")) () ")")))) (+ "+") (number_literal "-0x7684")) () ")")))) (, ",") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);\n          if (iVar6 != 0) goto LAB_000778c0;\n          local_730 = local_6e0;\n          local_720 = local_6dc;\n          goto LAB_00077140;\n        }" ({ "{") (expression_statement "iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);" (assignment_expression "iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700)" (parenthesized_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))" (( "(") (pointer_expression "**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184)" (* "*") (pointer_expression "*(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184)" (* "*") (cast_expression "(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcVar27 + 0x7e594) + 0x5184)" (( "(") (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x5184" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e594)" (( "(") (binary_expression "pcVar27 + 0x7e594" (identifier "pcVar27") (+ "+") (number_literal "0x7e594")) () ")")))) (+ "+") (number_literal "0x5184")) () ")"))))) () ")")) (argument_list "(iVar6,local_700)" (( "(") (identifier "iVar6") (, ",") (identifier "local_700") () ")")))) (; ";")) (if_statement "if (iVar6 != 0) goto LAB_000778c0;" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000778c0;" (goto "goto") (statement_identifier "LAB_000778c0") (; ";"))) (expression_statement "local_730 = local_6e0;" (assignment_expression "local_730 = local_6e0" (identifier "local_730") (= "=") (identifier "local_6e0")) (; ";")) (expression_statement "local_720 = local_6dc;" (assignment_expression "local_720 = local_6dc" (identifier "local_720") (= "=") (identifier "local_6dc")) (; ";")) (goto_statement "goto LAB_00077140;" (goto "goto") (statement_identifier "LAB_00077140") (; ";")) (} "}"))) (labeled_statement "LAB_000773f8:\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);" (statement_identifier "LAB_000773f8") (: ":") (expression_statement "pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);" (assignment_expression "pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" (identifier "pcVar28") (= "=") (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" (( "(") (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x7c30" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e5c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e5c0)" (( "(") (binary_expression "pcVar27 + 0x7e5c0" (identifier "pcVar27") (+ "+") (number_literal "0x7e5c0")) () ")")))) (+ "+") (number_literal "0x7c30")) () ")")))) (; ";"))) (expression_statement "iVar6 = (*pcVar28)(puVar16,uVar31,0);" (assignment_expression "iVar6 = (*pcVar28)(puVar16,uVar31,0)" (identifier "iVar6") (= "=") (call_expression "(*pcVar28)(puVar16,uVar31,0)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(puVar16,uVar31,0)" (( "(") (identifier "puVar16") (, ",") (identifier "uVar31") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (-1 < iVar6) goto LAB_00076e44;" (if "if") (parenthesized_expression "(-1 < iVar6)" (( "(") (binary_expression "-1 < iVar6" (number_literal "-1") (< "<") (identifier "iVar6")) () ")")) (goto_statement "goto LAB_00076e44;" (goto "goto") (statement_identifier "LAB_00076e44") (; ";"))) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_720 = 0;" (assignment_expression "local_720 = 0" (identifier "local_720") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_730 = 0;" (assignment_expression "local_730 = 0" (identifier "local_730") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }" (else "else") (compound_statement "{\n        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);\n        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);\n        if (-1 < iVar6) goto LAB_00076e44;\n        local_720 = 0;\n        uVar8 = 0x180;\n        local_730 = 0;\n      }" ({ "{") (expression_statement "pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);" (assignment_expression "pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" (identifier "pcVar28") (= "=") (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30)" (( "(") (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x7c30" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e5c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e5c0)" (( "(") (binary_expression "pcVar27 + 0x7e5c0" (identifier "pcVar27") (+ "+") (number_literal "0x7e5c0")) () ")")))) (+ "+") (number_literal "0x7c30")) () ")")))) (; ";")) (expression_statement "iVar6 = (*pcVar28)(puVar16,uVar31,0x180);" (assignment_expression "iVar6 = (*pcVar28)(puVar16,uVar31,0x180)" (identifier "iVar6") (= "=") (call_expression "(*pcVar28)(puVar16,uVar31,0x180)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(puVar16,uVar31,0x180)" (( "(") (identifier "puVar16") (, ",") (identifier "uVar31") (, ",") (number_literal "0x180") () ")")))) (; ";")) (if_statement "if (-1 < iVar6) goto LAB_00076e44;" (if "if") (parenthesized_expression "(-1 < iVar6)" (( "(") (binary_expression "-1 < iVar6" (number_literal "-1") (< "<") (identifier "iVar6")) () ")")) (goto_statement "goto LAB_00076e44;" (goto "goto") (statement_identifier "LAB_00076e44") (; ";"))) (expression_statement "local_720 = 0;" (assignment_expression "local_720 = 0" (identifier "local_720") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = 0x180;" (assignment_expression "uVar8 = 0x180" (identifier "uVar8") (= "=") (number_literal "0x180")) (; ";")) (expression_statement "local_730 = 0;" (assignment_expression "local_730 = 0" (identifier "local_730") (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_0007743c:\n      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();" (statement_identifier "LAB_0007743c") (: ":") (expression_statement "piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();" (assignment_expression "piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))()" (identifier "piVar30") (= "=") (cast_expression "(int *)(**(code **)(pcVar27 + 0x7e718))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar27 + 0x7e718))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e718))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e718)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e718)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e718)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e718)" (( "(") (binary_expression "pcVar27 + 0x7e718" (identifier "pcVar27") (+ "+") (number_literal "0x7e718")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "iVar6 = *piVar30;" (assignment_expression "iVar6 = *piVar30" (identifier "iVar6") (= "=") (pointer_expression "*piVar30" (* "*") (identifier "piVar30"))) (; ";")) (if_statement "if ((bVar1) && (iVar6 == 0xd)) {\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }" (if "if") (parenthesized_expression "((bVar1) && (iVar6 == 0xd))" (( "(") (binary_expression "(bVar1) && (iVar6 == 0xd)" (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (&& "&&") (parenthesized_expression "(iVar6 == 0xd)" (( "(") (binary_expression "iVar6 == 0xd" (identifier "iVar6") (== "==") (number_literal "0xd")) () ")"))) () ")")) (compound_statement "{\n        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);\n        if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }\n        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);\n        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);\n        iVar24 = 0x608;\n        goto LAB_00077570;\n      }" ({ "{") (expression_statement "iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);" (assignment_expression "iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0)" (parenthesized_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))" (( "(") (pointer_expression "**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c)" (* "*") (pointer_expression "*(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c)" (* "*") (cast_expression "(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcVar27 + 0x7e594) + 0x516c)" (( "(") (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x516c" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e594)" (( "(") (binary_expression "pcVar27 + 0x7e594" (identifier "pcVar27") (+ "+") (number_literal "0x7e594")) () ")")))) (+ "+") (number_literal "0x516c")) () ")"))))) () ")")) (argument_list "(puVar16,0)" (( "(") (identifier "puVar16") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar6 = *piVar30;\n          goto LAB_000774ac;\n        }" ({ "{") (expression_statement "iVar6 = *piVar30;" (assignment_expression "iVar6 = *piVar30" (identifier "iVar6") (= "=") (pointer_expression "*piVar30" (* "*") (identifier "piVar30"))) (; ";")) (goto_statement "goto LAB_000774ac;" (goto "goto") (statement_identifier "LAB_000774ac") (; ";")) (} "}"))) (expression_statement "uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);" (assignment_expression "uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7)" (identifier "uVar32") (= "=") (call_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c)" (* "*") (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x489c)" (( "(") (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x489c" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e5c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e5c0)" (( "(") (binary_expression "pcVar27 + 0x7e5c0" (identifier "pcVar27") (+ "+") (number_literal "0x7e5c0")) () ")")))) (+ "+") (number_literal "0x489c")) () ")")))) () ")")) (argument_list "(0x9ae7)" (( "(") (number_literal "0x9ae7") () ")")))) (; ";")) (expression_statement "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);" (call_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8)" (* "*") (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8)" (( "(") (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e5c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e5c0)" (( "(") (binary_expression "pcVar27 + 0x7e5c0" (identifier "pcVar27") (+ "+") (number_literal "0x7e5c0")) () ")")))) (+ "+") (number_literal "0x7dd8")) () ")")))) () ")")) (argument_list "(uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7)" (( "(") (identifier "uVar32") (, ",") (binary_expression "*(int *)(pcVar27 + 0x7e5ac) + -0x7c98" (pointer_expression "*(int *)(pcVar27 + 0x7e5ac)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e5ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e5ac)" (( "(") (binary_expression "pcVar27 + 0x7e5ac" (identifier "pcVar27") (+ "+") (number_literal "0x7e5ac")) () ")")))) (+ "+") (number_literal "-0x7c98")) (, ",") (identifier "puVar16") (, ",") (number_literal "0x9ae7") () ")"))) (; ";")) (expression_statement "iVar24 = 0x608;" (assignment_expression "iVar24 = 0x608" (identifier "iVar24") (= "=") (number_literal "0x608")) (; ";")) (goto_statement "goto LAB_00077570;" (goto "goto") (statement_identifier "LAB_00077570") (; ";")) (} "}"))) (labeled_statement "LAB_000774ac:\n      if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }" (statement_identifier "LAB_000774ac") (: ":") (if_statement "if ((iVar6 != 0x15) && (uVar5 != 0)) {\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }\n      }" (if "if") (parenthesized_expression "((iVar6 != 0x15) && (uVar5 != 0))" (( "(") (binary_expression "(iVar6 != 0x15) && (uVar5 != 0)" (parenthesized_expression "(iVar6 != 0x15)" (( "(") (binary_expression "iVar6 != 0x15" (identifier "iVar6") (!= "!=") (number_literal "0x15")) () ")")) (&& "&&") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        param_4 = param_4 & 0xfffffff9 | 1;\n        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);\n        if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\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 "iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);" (assignment_expression "iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8)" (identifier "iVar6") (= "=") (call_expression "(*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8)" (( "(") (identifier "puVar16") (, ",") (binary_expression "uVar18 & 0xfffffefd | 0x22000" (binary_expression "uVar18 & 0xfffffefd" (identifier "uVar18") (& "&") (number_literal "0xfffffefd")) (| "|") (number_literal "0x22000")) (, ",") (identifier "uVar8") () ")")))) (; ";")) (if_statement "if (-1 < iVar6) {\n          local_728 = 1;\n          goto LAB_00077180;\n        }" (if "if") (parenthesized_expression "(-1 < iVar6)" (( "(") (binary_expression "-1 < iVar6" (number_literal "-1") (< "<") (identifier "iVar6")) () ")")) (compound_statement "{\n          local_728 = 1;\n          goto LAB_00077180;\n        }" ({ "{") (expression_statement "local_728 = 1;" (assignment_expression "local_728 = 1" (identifier "local_728") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00077180;" (goto "goto") (statement_identifier "LAB_00077180") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);" (assignment_expression "uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7)" (identifier "uVar32") (= "=") (call_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c)" (* "*") (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x489c)" (( "(") (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x489c" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e5c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e5c0)" (( "(") (binary_expression "pcVar27 + 0x7e5c0" (identifier "pcVar27") (+ "+") (number_literal "0x7e5c0")) () ")")))) (+ "+") (number_literal "0x489c")) () ")")))) () ")")) (argument_list "(0x9ae7)" (( "(") (number_literal "0x9ae7") () ")")))) (; ";")) (expression_statement "iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);" (assignment_expression "iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7)" (identifier "iVar24") (= "=") (call_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))\n                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8)" (* "*") (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8)" (( "(") (binary_expression "*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8" (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e5c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e5c0)" (( "(") (binary_expression "pcVar27 + 0x7e5c0" (identifier "pcVar27") (+ "+") (number_literal "0x7e5c0")) () ")")))) (+ "+") (number_literal "0x7dd8")) () ")")))) () ")")) (argument_list "(uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7)" (( "(") (identifier "uVar32") (, ",") (binary_expression "*(int *)(pcVar27 + 0x7e5ac) + -0x7c98" (pointer_expression "*(int *)(pcVar27 + 0x7e5ac)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e5ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e5ac)" (( "(") (binary_expression "pcVar27 + 0x7e5ac" (identifier "pcVar27") (+ "+") (number_literal "0x7e5ac")) () ")")))) (+ "+") (number_literal "-0x7c98")) (, ",") (identifier "puVar16") (, ",") (number_literal "0x9ae7") () ")")))) (; ";")) (if_statement "if (iVar24 == 0) goto LAB_00076f98;" (if "if") (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00076f98;" (goto "goto") (statement_identifier "LAB_00076f98") (; ";"))) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e678);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e678)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar27 + 0x7e678)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e678)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e678)" (( "(") (binary_expression "pcVar27 + 0x7e678" (identifier "pcVar27") (+ "+") (number_literal "0x7e678")) () ")"))))) (; ";")) (labeled_statement "LAB_00077574:\n      (*pcVar28)(param_3[7]);" (statement_identifier "LAB_00077574") (: ":") (expression_statement "(*pcVar28)(param_3[7]);" (call_expression "(*pcVar28)(param_3[7])" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(param_3[7])" (( "(") (subscript_expression "param_3[7]" (identifier "param_3") ([ "[") (number_literal "7") (] "]")) () ")"))) (; ";"))) (} "}")) (else_clause "else {\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }" (else "else") (compound_statement "{\n      uVar18 = uVar18 | 0x20400;\n      if (iVar6 < 0) goto LAB_00077030;\nLAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }\n      piVar30 = (int *)param_3[7];\n      if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }\n      if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }\n      if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }\n      if (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }\n      if (bVar1) {\n        uVar21 = uVar21 | 8;\n      }\n      iVar24 = *(int *)(pcVar27 + 0x7e594);\n      if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);\n      if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }\n      iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);\n      if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }\n      if ((uVar21 & 0x80) == 0) {\n        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }\n      iVar6 = *(int *)(pcVar27 + 0x7e5c0);\n      *param_3 = iVar4;\n      (*(code *)(iVar6 + 0x76f0))(param_3);\n      iVar24 = 0;\n    }" ({ "{") (expression_statement "uVar18 = uVar18 | 0x20400;" (assignment_expression "uVar18 = uVar18 | 0x20400" (identifier "uVar18") (= "=") (binary_expression "uVar18 | 0x20400" (identifier "uVar18") (| "|") (number_literal "0x20400"))) (; ";")) (if_statement "if (iVar6 < 0) goto LAB_00077030;" (if "if") (parenthesized_expression "(iVar6 < 0)" (( "(") (binary_expression "iVar6 < 0" (identifier "iVar6") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00077030;" (goto "goto") (statement_identifier "LAB_00077030") (; ";"))) (labeled_statement "LAB_00076e44:\n      if (local_218 != (uint *)0x0) {\n        *local_218 = param_4;\n      }" (statement_identifier "LAB_00076e44") (: ":") (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")) (; ";")) (} "}")))) (expression_statement "piVar30 = (int *)param_3[7];" (assignment_expression "piVar30 = (int *)param_3[7]" (identifier "piVar30") (= "=") (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") (] "]")))) (; ";")) (if_statement "if (piVar30 != (int *)0x0) {\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }" (if "if") (parenthesized_expression "(piVar30 != (int *)0x0)" (( "(") (binary_expression "piVar30 != (int *)0x0" (identifier "piVar30") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *piVar30 = iVar6;\n        piVar30[1] = param_4 & 3;\n      }" ({ "{") (expression_statement "*piVar30 = iVar6;" (assignment_expression "*piVar30 = iVar6" (pointer_expression "*piVar30" (* "*") (identifier "piVar30")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "piVar30[1] = param_4 & 3;" (assignment_expression "piVar30[1] = param_4 & 3" (subscript_expression "piVar30[1]" (identifier "piVar30") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "param_4 & 3" (identifier "param_4") (& "&") (number_literal "3"))) (; ";")) (} "}"))) (if_statement "if (uVar21 != 0) {\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }" (if "if") (parenthesized_expression "(uVar21 != 0)" (( "(") (binary_expression "uVar21 != 0" (identifier "uVar21") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar21 = 0x20;\n        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);\n      }" ({ "{") (expression_statement "uVar21 = 0x20;" (assignment_expression "uVar21 = 0x20" (identifier "uVar21") (= "=") (number_literal "0x20")) (; ";")) (expression_statement "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);" (call_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16)" (parenthesized_expression "(**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))" (( "(") (pointer_expression "**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214)" (* "*") (pointer_expression "*(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214)" (* "*") (cast_expression "(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcVar27 + 0x7e594) + 0x5214)" (( "(") (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x5214" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e594)" (( "(") (binary_expression "pcVar27 + 0x7e594" (identifier "pcVar27") (+ "+") (number_literal "0x7e594")) () ")")))) (+ "+") (number_literal "0x5214")) () ")"))))) () ")")) (argument_list "(puVar16)" (( "(") (identifier "puVar16") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_728 != 0) {\n        uVar21 = uVar21 | 2;\n      }" (if "if") (parenthesized_expression "(local_728 != 0)" (( "(") (binary_expression "local_728 != 0" (identifier "local_728") (!= "!=") (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 (uVar22 != 0x100) {\n        uVar21 = uVar21 | 0x80;\n      }" (if "if") (parenthesized_expression "(uVar22 != 0x100)" (( "(") (binary_expression "uVar22 != 0x100" (identifier "uVar22") (!= "!=") (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 (bVar1) {\n        uVar21 = uVar21 | 8;\n      }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (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 "iVar24 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar24 = *(int *)(pcVar27 + 0x7e594)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(pcVar27 + 0x7e594)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e594)" (( "(") (binary_expression "pcVar27 + 0x7e594" (identifier "pcVar27") (+ "+") (number_literal "0x7e594")) () ")"))))) (; ";")) (if_statement "if ((param_4 & 0x40) == 0) {\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }\n      else {\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\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] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = (undefined4 *)0x0;\n      }" ({ "{") (expression_statement "param_3[3] = iVar6;" (assignment_expression "param_3[3] = iVar6" (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "param_3[1] = iVar4;" (assignment_expression "param_3[1] = iVar4" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "param_3[8] = (int)puVar14;" (assignment_expression "param_3[8] = (int)puVar14" (subscript_expression "param_3[8]" (identifier "param_3") ([ "[") (number_literal "8") (] "]")) (= "=") (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14"))) (; ";")) (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 "iVar7 = *(int *)(iVar24 + 0x4148);" (assignment_expression "iVar7 = *(int *)(iVar24 + 0x4148)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar24 + 0x4148)" (* "*") (cast_expression "(int *)(iVar24 + 0x4148)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x4148)" (( "(") (binary_expression "iVar24 + 0x4148" (identifier "iVar24") (+ "+") (number_literal "0x4148")) () ")"))))) (; ";")) (expression_statement "param_3[0x11] = *(int *)(iVar24 + 0x414c);" (assignment_expression "param_3[0x11] = *(int *)(iVar24 + 0x414c)" (subscript_expression "param_3[0x11]" (identifier "param_3") ([ "[") (number_literal "0x11") (] "]")) (= "=") (pointer_expression "*(int *)(iVar24 + 0x414c)" (* "*") (cast_expression "(int *)(iVar24 + 0x414c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x414c)" (( "(") (binary_expression "iVar24 + 0x414c" (identifier "iVar24") (+ "+") (number_literal "0x414c")) () ")"))))) (; ";")) (expression_statement "param_3[0x10] = iVar7;" (assignment_expression "param_3[0x10] = iVar7" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "puVar19 = (undefined4 *)0x0;" (assignment_expression "puVar19 = (undefined4 *)0x0" (identifier "puVar19") (= "=") (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] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\n      }" (else "else") (compound_statement "{\n        uVar21 = uVar21 | 0x40;\n        param_3[3] = iVar6;\n        param_3[1] = iVar4;\n        param_3[8] = (int)puVar14;\n        *(short *)((int)param_3 + 0x12) = (short)uVar21;\n        iVar7 = *(int *)(iVar24 + 0x4148);\n        param_3[0x11] = *(int *)(iVar24 + 0x414c);\n        param_3[0x10] = iVar7;\n        puVar19 = puVar14;\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] = iVar6;" (assignment_expression "param_3[3] = iVar6" (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "param_3[1] = iVar4;" (assignment_expression "param_3[1] = iVar4" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "param_3[8] = (int)puVar14;" (assignment_expression "param_3[8] = (int)puVar14" (subscript_expression "param_3[8]" (identifier "param_3") ([ "[") (number_literal "8") (] "]")) (= "=") (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14"))) (; ";")) (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 "iVar7 = *(int *)(iVar24 + 0x4148);" (assignment_expression "iVar7 = *(int *)(iVar24 + 0x4148)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar24 + 0x4148)" (* "*") (cast_expression "(int *)(iVar24 + 0x4148)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x4148)" (( "(") (binary_expression "iVar24 + 0x4148" (identifier "iVar24") (+ "+") (number_literal "0x4148")) () ")"))))) (; ";")) (expression_statement "param_3[0x11] = *(int *)(iVar24 + 0x414c);" (assignment_expression "param_3[0x11] = *(int *)(iVar24 + 0x414c)" (subscript_expression "param_3[0x11]" (identifier "param_3") ([ "[") (number_literal "0x11") (] "]")) (= "=") (pointer_expression "*(int *)(iVar24 + 0x414c)" (* "*") (cast_expression "(int *)(iVar24 + 0x414c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x414c)" (( "(") (binary_expression "iVar24 + 0x414c" (identifier "iVar24") (+ "+") (number_literal "0x414c")) () ")"))))) (; ";")) (expression_statement "param_3[0x10] = iVar7;" (assignment_expression "param_3[0x10] = iVar7" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "puVar19 = puVar14;" (assignment_expression "puVar19 = puVar14" (identifier "puVar19") (= "=") (identifier "puVar14")) (; ";")) (} "}")))) (expression_statement "iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);" (assignment_expression "iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e86c))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e86c)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e86c)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e86c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e86c)" (( "(") (binary_expression "pcVar27 + 0x7e86c" (identifier "pcVar27") (+ "+") (number_literal "0x7e86c")) () ")"))))) () ")")) (argument_list "(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1)" (( "(") (identifier "puVar19") (, ",") (binary_expression "*(int *)(pcVar27 + 0x7e5ac) + -0x767c" (pointer_expression "*(int *)(pcVar27 + 0x7e5ac)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e5ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e5ac)" (( "(") (binary_expression "pcVar27 + 0x7e5ac" (identifier "pcVar27") (+ "+") (number_literal "0x7e5ac")) () ")")))) (+ "+") (number_literal "-0x767c")) (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;\n      }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (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 "iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);" (assignment_expression "iVar7 = (**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar27 + 0x7e890))\n                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e890))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e890)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e890)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e890)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e890)" (( "(") (binary_expression "pcVar27 + 0x7e890" (identifier "pcVar27") (+ "+") (number_literal "0x7e890")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674)" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (binary_expression "*(int *)(pcVar27 + 0x7e5ac) + -0x7674" (pointer_expression "*(int *)(pcVar27 + 0x7e5ac)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e5ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e5ac)" (( "(") (binary_expression "pcVar27 + 0x7e5ac" (identifier "pcVar27") (+ "+") (number_literal "0x7e5ac")) () ")")))) (+ "+") (number_literal "-0x7674")) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;\n      }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (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        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }\n      else {\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\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        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;\n        if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }\n        iVar7 = *(int *)(pcVar27 + 0x7e594);\n        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));\n        iVar23 = *(int *)(pcVar27 + 0x7e594);\n        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);\n        if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }\n        iVar9 = *(int *)(pcVar27 + 0x7e594);\n        local_710 = 0;\n        local_70c = local_700[0];\n        local_704 = local_6ec;\n        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);\n        local_708 = local_6f0;\n        if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }\n        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);\n        if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }\n        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);\n        *puVar19 = local_710;\n        puVar19[1] = local_70c;\n        puVar19[2] = local_708;\n        puVar19[3] = local_704;\n        if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }\n        iVar6 = *(int *)(iVar9 + 0x5a14);\n        puVar19[0xc] = 0;\n        puVar19[9] = 1;\n        puVar19[0xb] = iVar6;\n        if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }\n        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;\nLAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);\n        param_3[2] = (int)puVar19;\n        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));\n        param_3[5] = 0;\n      }" ({ "{") (expression_statement "iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);" (assignment_expression "iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3)" (identifier "iVar7") (= "=") (call_expression "(*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3)" (parenthesized_expression "(*(code *)**(undefined4 **)(iVar4 + 0x14))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(iVar4 + 0x14)" (* "*") (cast_expression "(code *)**(undefined4 **)(iVar4 + 0x14)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(iVar4 + 0x14)" (* "*") (pointer_expression "*(undefined4 **)(iVar4 + 0x14)" (* "*") (cast_expression "(undefined4 **)(iVar4 + 0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")"))))))) () ")")) (argument_list "(puVar14,param_3)" (( "(") (identifier "puVar14") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;" (assignment_expression "iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24" (identifier "iVar4") (= "=") (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x3b24" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e594)" (( "(") (binary_expression "pcVar27 + 0x7e594" (identifier "pcVar27") (+ "+") (number_literal "0x7e594")) () ")")))) (+ "+") (number_literal "0x3b24"))) (; ";")) (if_statement "if (iVar7 != iVar4) {\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }" (if "if") (parenthesized_expression "(iVar7 != iVar4)" (( "(") (binary_expression "iVar7 != iVar4" (identifier "iVar7") (!= "!=") (identifier "iVar4")) () ")")) (compound_statement "{\n          iVar4 = iVar7;\n          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }\n          goto LAB_00076f78;\n        }" ({ "{") (expression_statement "iVar4 = iVar7;" (assignment_expression "iVar4 = iVar7" (identifier "iVar4") (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }" (if "if") (parenthesized_expression "(iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84)" (( "(") (binary_expression "iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84" (identifier "iVar7") (== "==") (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x3a84" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e594)" (( "(") (binary_expression "pcVar27 + 0x7e594" (identifier "pcVar27") (+ "+") (number_literal "0x7e594")) () ")")))) (+ "+") (number_literal "0x3a84"))) () ")")) (compound_statement "{\n            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);\n            iVar24 = iVar24 + 6;\n            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);\n            if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }\n            (**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);\n            param_3[6] = iVar7;\n          }" ({ "{") (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14)" (identifier "iVar24") (= "=") (call_expression "(**(code **)(pcVar27 + 0x7e760))(puVar14)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e760))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e760)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e760)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e760)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e760)" (( "(") (binary_expression "pcVar27 + 0x7e760" (identifier "pcVar27") (+ "+") (number_literal "0x7e760")) () ")"))))) () ")")) (argument_list "(puVar14)" (( "(") (identifier "puVar14") () ")")))) (; ";")) (expression_statement "iVar24 = iVar24 + 6;" (assignment_expression "iVar24 = iVar24 + 6" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 6" (identifier "iVar24") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);" (assignment_expression "iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e7f4))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e7f4)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e7f4)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e7f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e7f4)" (( "(") (binary_expression "pcVar27 + 0x7e7f4" (identifier "pcVar27") (+ "+") (number_literal "0x7e7f4")) () ")"))))) () ")")) (argument_list "(iVar24 >> 0x1f,iVar24)" (( "(") (binary_expression "iVar24 >> 0x1f" (identifier "iVar24") (>> ">>") (number_literal "0x1f")) (, ",") (identifier "iVar24") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar4 = *(int *)(pcVar27 + 0x7e594);\n              param_3[6] = 0;\n              param_3[5] = 0;\n              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);\n              if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }\n              goto LAB_00077570;\n            }" ({ "{") (expression_statement "iVar4 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar4 = *(int *)(pcVar27 + 0x7e594)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(pcVar27 + 0x7e594)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e594)" (( "(") (binary_expression "pcVar27 + 0x7e594" (identifier "pcVar27") (+ "+") (number_literal "0x7e594")) () ")"))))) (; ";")) (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 "iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);" (assignment_expression "iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(iVar4 + 0x5160))(iVar6)" (parenthesized_expression "(**(code **)(iVar4 + 0x5160))" (( "(") (pointer_expression "**(code **)(iVar4 + 0x5160)" (* "*") (pointer_expression "*(code **)(iVar4 + 0x5160)" (* "*") (cast_expression "(code **)(iVar4 + 0x5160)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x5160)" (( "(") (binary_expression "iVar4 + 0x5160" (identifier "iVar4") (+ "+") (number_literal "0x5160")) () ")"))))) () ")")) (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n                iVar24 = 7;\n              }\n              else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                iVar24 = 7;\n              }" ({ "{") (expression_statement "iVar24 = 7;" (assignment_expression "iVar24 = 7" (identifier "iVar24") (= "=") (number_literal "7")) (; ";")) (} "}")) (else_clause "else {\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }" (else "else") (compound_statement "{\n                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);\n                iVar24 = 7;\n              }" ({ "{") (expression_statement "(*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);" (call_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c)" (* "*") (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c)" (( "(") (binary_expression "*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c" (pointer_expression "*(int *)(pcVar27 + 0x7e5e4)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e5e4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e5e4)" (( "(") (binary_expression "pcVar27 + 0x7e5e4" (identifier "pcVar27") (+ "+") (number_literal "0x7e5e4")) () ")")))) (+ "+") (number_literal "-0x7c9c")) () ")")))) () ")")) (argument_list "(param_3,0x9949)" (( "(") (identifier "param_3") (, ",") (number_literal "0x9949") () ")"))) (; ";")) (expression_statement "iVar24 = 7;" (assignment_expression "iVar24 = 7" (identifier "iVar24") (= "=") (number_literal "7")) (; ";")) (} "}")))) (goto_statement "goto LAB_00077570;" (goto "goto") (statement_identifier "LAB_00077570") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);" (call_expression "(**(code **)(pcVar27 + 0x7e764))\n                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e764))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e764)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e764)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e764)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e764)" (( "(") (binary_expression "pcVar27 + 0x7e764" (identifier "pcVar27") (+ "+") (number_literal "0x7e764")) () ")"))))) () ")")) (argument_list "(iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14)" (( "(") (identifier "iVar24") (, ",") (identifier "iVar7") (, ",") (binary_expression "*(int *)(pcVar27 + 0x7e5ac) + -0x7668" (pointer_expression "*(int *)(pcVar27 + 0x7e5ac)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e5ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e5ac)" (( "(") (binary_expression "pcVar27 + 0x7e5ac" (identifier "pcVar27") (+ "+") (number_literal "0x7e5ac")) () ")")))) (+ "+") (number_literal "-0x7668")) (, ",") (identifier "puVar14") () ")"))) (; ";")) (expression_statement "param_3[6] = iVar7;" (assignment_expression "param_3[6] = iVar7" (subscript_expression "param_3[6]" (identifier "param_3") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (} "}"))) (goto_statement "goto LAB_00076f78;" (goto "goto") (statement_identifier "LAB_00076f78") (; ";")) (} "}"))) (expression_statement "iVar7 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar7 = *(int *)(pcVar27 + 0x7e594)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(pcVar27 + 0x7e594)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e594)" (( "(") (binary_expression "pcVar27 + 0x7e594" (identifier "pcVar27") (+ "+") (number_literal "0x7e594")) () ")"))))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e720))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e720)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e720)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e720)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e720)" (( "(") (binary_expression "pcVar27 + 0x7e720" (identifier "pcVar27") (+ "+") (number_literal "0x7e720")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar7 + 0x5a18))" (( "(") (pointer_expression "*(undefined4 *)(iVar7 + 0x5a18)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x5a18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x5a18)" (( "(") (binary_expression "iVar7 + 0x5a18" (identifier "iVar7") (+ "+") (number_literal "0x5a18")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar23 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar23 = *(int *)(pcVar27 + 0x7e594)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(pcVar27 + 0x7e594)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e594)" (( "(") (binary_expression "pcVar27 + 0x7e594" (identifier "pcVar27") (+ "+") (number_literal "0x7e594")) () ")"))))) (; ";")) (expression_statement "iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);" (assignment_expression "iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(iVar23 + 0x5190))(param_3[3],local_700)" (parenthesized_expression "(**(code **)(iVar23 + 0x5190))" (( "(") (pointer_expression "**(code **)(iVar23 + 0x5190)" (* "*") (pointer_expression "*(code **)(iVar23 + 0x5190)" (* "*") (cast_expression "(code **)(iVar23 + 0x5190)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar23 + 0x5190)" (( "(") (binary_expression "iVar23 + 0x5190" (identifier "iVar23") (+ "+") (number_literal "0x5190")) () ")"))))) () ")")) (argument_list "(param_3[3],local_700)" (( "(") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")) (, ",") (identifier "local_700") () ")")))) (; ";")) (if_statement "if (iVar9 != 0) {\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();\n          iVar24 = 10;\n          param_3[5] = *piVar30;\nLAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);\n          if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\nLAB_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);\n          goto LAB_00077574;\n        }" ({ "{") (expression_statement "piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();" (assignment_expression "piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))()" (identifier "piVar30") (= "=") (cast_expression "(int *)(**(code **)(pcVar27 + 0x7e718))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar27 + 0x7e718))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e718))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e718)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e718)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e718)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e718)" (( "(") (binary_expression "pcVar27 + 0x7e718" (identifier "pcVar27") (+ "+") (number_literal "0x7e718")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar24 = 10;" (assignment_expression "iVar24 = 10" (identifier "iVar24") (= "=") (number_literal "10")) (; ";")) (expression_statement "param_3[5] = *piVar30;" (assignment_expression "param_3[5] = *piVar30" (subscript_expression "param_3[5]" (identifier "param_3") ([ "[") (number_literal "5") (] "]")) (= "=") (pointer_expression "*piVar30" (* "*") (identifier "piVar30"))) (; ";")) (labeled_statement "LAB_0007782c:\n          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);" (statement_identifier "LAB_0007782c") (: ":") (expression_statement "iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);" (assignment_expression "iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(iVar23 + 0x5160))(iVar6)" (parenthesized_expression "(**(code **)(iVar23 + 0x5160))" (( "(") (pointer_expression "**(code **)(iVar23 + 0x5160)" (* "*") (pointer_expression "*(code **)(iVar23 + 0x5160)" (* "*") (cast_expression "(code **)(iVar23 + 0x5160)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar23 + 0x5160)" (( "(") (binary_expression "iVar23 + 0x5160" (identifier "iVar23") (+ "+") (number_literal "0x5160")) () ")"))))) () ")")) (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";"))) (if_statement "if (iVar4 == 0) {\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }\n          else {\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }" ({ "{") (expression_statement "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e748))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e748)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e748)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e748)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e748)" (( "(") (binary_expression "pcVar27 + 0x7e748" (identifier "pcVar27") (+ "+") (number_literal "0x7e748")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar7 + 0x5a18))" (( "(") (pointer_expression "*(undefined4 *)(iVar7 + 0x5a18)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x5a18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x5a18)" (( "(") (binary_expression "iVar7 + 0x5a18" (identifier "iVar7") (+ "+") (number_literal "0x5a18")) () ")")))) () ")"))) (; ";")) (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 *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }" (else "else") (compound_statement "{\n            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);\n            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));\n            param_3[5] = 0;\n          }" ({ "{") (expression_statement "(*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);" (call_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c)" (* "*") (cast_expression "(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c)" (( "(") (binary_expression "*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c" (pointer_expression "*(int *)(pcVar27 + 0x7e5e4)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e5e4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e5e4)" (( "(") (binary_expression "pcVar27 + 0x7e5e4" (identifier "pcVar27") (+ "+") (number_literal "0x7e5e4")) () ")")))) (+ "+") (number_literal "-0x7c9c")) () ")")))) () ")")) (argument_list "(param_3,0x98f4)" (( "(") (identifier "param_3") (, ",") (number_literal "0x98f4") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));" (call_expression "(**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18))" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e748))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e748)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e748)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e748)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e748)" (( "(") (binary_expression "pcVar27 + 0x7e748" (identifier "pcVar27") (+ "+") (number_literal "0x7e748")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar7 + 0x5a18))" (( "(") (pointer_expression "*(undefined4 *)(iVar7 + 0x5a18)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x5a18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x5a18)" (( "(") (binary_expression "iVar7 + 0x5a18" (identifier "iVar7") (+ "+") (number_literal "0x5a18")) () ")")))) () ")"))) (; ";")) (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_00077570:\n          pcVar28 = *(code **)(pcVar27 + 0x7e678);" (statement_identifier "LAB_00077570") (: ":") (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e678);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e678)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar27 + 0x7e678)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e678)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e678)" (( "(") (binary_expression "pcVar27 + 0x7e678" (identifier "pcVar27") (+ "+") (number_literal "0x7e678")) () ")"))))) (; ";"))) (goto_statement "goto LAB_00077574;" (goto "goto") (statement_identifier "LAB_00077574") (; ";")) (} "}"))) (expression_statement "iVar9 = *(int *)(pcVar27 + 0x7e594);" (assignment_expression "iVar9 = *(int *)(pcVar27 + 0x7e594)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(pcVar27 + 0x7e594)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e594)" (( "(") (binary_expression "pcVar27 + 0x7e594" (identifier "pcVar27") (+ "+") (number_literal "0x7e594")) () ")"))))) (; ";")) (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 "puVar19 = *(undefined4 **)(iVar9 + 0x5a14);" (assignment_expression "puVar19 = *(undefined4 **)(iVar9 + 0x5a14)" (identifier "puVar19") (= "=") (pointer_expression "*(undefined4 **)(iVar9 + 0x5a14)" (* "*") (cast_expression "(undefined4 **)(iVar9 + 0x5a14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x5a14)" (( "(") (binary_expression "iVar9 + 0x5a14" (identifier "iVar9") (+ "+") (number_literal "0x5a14")) () ")"))))) (; ";")) (expression_statement "local_708 = local_6f0;" (assignment_expression "local_708 = local_6f0" (identifier "local_708") (= "=") (identifier "local_6f0")) (; ";")) (if_statement "if (puVar19 == (undefined4 *)0x0) {\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }\n        else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }" (if "if") (parenthesized_expression "(puVar19 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar19 == (undefined4 *)0x0" (identifier "puVar19") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n        }" ({ "{") (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e7f4);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e7f4)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar27 + 0x7e7f4)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e7f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e7f4)" (( "(") (binary_expression "pcVar27 + 0x7e7f4" (identifier "pcVar27") (+ "+") (number_literal "0x7e7f4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }" (else "else") (compound_statement "{\n          do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);\n        }" ({ "{") (do_statement "do {\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          } while (puVar19 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);\n            if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }\n            puVar19 = (undefined4 *)puVar19[0xb];\n            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);\n          }" ({ "{") (expression_statement "iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);" (assignment_expression "iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e82c))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e82c)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e82c)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e82c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e82c)" (( "(") (binary_expression "pcVar27 + 0x7e82c" (identifier "pcVar27") (+ "+") (number_literal "0x7e82c")) () ")"))))) () ")")) (argument_list "(&local_710,puVar19,0x10)" (( "(") (pointer_expression "&local_710" (& "&") (identifier "local_710")) (, ",") (identifier "puVar19") (, ",") (number_literal "0x10") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              puVar19[9] = puVar19[9] + 1;\n              goto LAB_0007764c;\n            }" ({ "{") (expression_statement "puVar19[9] = puVar19[9] + 1;" (assignment_expression "puVar19[9] = puVar19[9] + 1" (subscript_expression "puVar19[9]" (identifier "puVar19") ([ "[") (number_literal "9") (] "]")) (= "=") (binary_expression "puVar19[9] + 1" (subscript_expression "puVar19[9]" (identifier "puVar19") ([ "[") (number_literal "9") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_0007764c;" (goto "goto") (statement_identifier "LAB_0007764c") (; ";")) (} "}"))) (expression_statement "puVar19 = (undefined4 *)puVar19[0xb];" (assignment_expression "puVar19 = (undefined4 *)puVar19[0xb]" (identifier "puVar19") (= "=") (cast_expression "(undefined4 *)puVar19[0xb]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar19[0xb]" (identifier "puVar19") ([ "[") (number_literal "0xb") (] "]")))) (; ";")) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e7f4);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e7f4)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar27 + 0x7e7f4)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e7f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e7f4)" (( "(") (binary_expression "pcVar27 + 0x7e7f4" (identifier "pcVar27") (+ "+") (number_literal "0x7e7f4")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar19 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar19 != (undefined4 *)0x0" (identifier "puVar19") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}")))) (expression_statement "puVar19 = (undefined4 *)(*pcVar28)(0,0x38);" (assignment_expression "puVar19 = (undefined4 *)(*pcVar28)(0,0x38)" (identifier "puVar19") (= "=") (cast_expression "(undefined4 *)(*pcVar28)(0,0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar28)(0,0x38)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(0,0x38)" (( "(") (number_literal "0") (, ",") (number_literal "0x38") () ")"))))) (; ";")) (if_statement "if (puVar19 == (undefined4 *)0x0) {\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }" (if "if") (parenthesized_expression "(puVar19 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar19 == (undefined4 *)0x0" (identifier "puVar19") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          iVar24 = 7;\n          goto LAB_0007782c;\n        }" ({ "{") (expression_statement "iVar24 = 7;" (assignment_expression "iVar24 = 7" (identifier "iVar24") (= "=") (number_literal "7")) (; ";")) (goto_statement "goto LAB_0007782c;" (goto "goto") (statement_identifier "LAB_0007782c") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);" (call_expression "(**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e728))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e728)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e728)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e728)" (( "(") (binary_expression "pcVar27 + 0x7e728" (identifier "pcVar27") (+ "+") (number_literal "0x7e728")) () ")"))))) () ")")) (argument_list "(puVar19 + 4,0,0x28)" (( "(") (binary_expression "puVar19 + 4" (identifier "puVar19") (+ "+") (number_literal "4")) (, ",") (number_literal "0") (, ",") (number_literal "0x28") () ")"))) (; ";")) (expression_statement "*puVar19 = local_710;" (assignment_expression "*puVar19 = local_710" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (identifier "local_710")) (; ";")) (expression_statement "puVar19[1] = local_70c;" (assignment_expression "puVar19[1] = local_70c" (subscript_expression "puVar19[1]" (identifier "puVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_70c")) (; ";")) (expression_statement "puVar19[2] = local_708;" (assignment_expression "puVar19[2] = local_708" (subscript_expression "puVar19[2]" (identifier "puVar19") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_708")) (; ";")) (expression_statement "puVar19[3] = local_704;" (assignment_expression "puVar19[3] = local_704" (subscript_expression "puVar19[3]" (identifier "puVar19") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_704")) (; ";")) (if_statement "if (*(char *)(iVar24 + 0x40a4) != '\0') {\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }" (if "if") (parenthesized_expression "(*(char *)(iVar24 + 0x40a4) != '\0')" (( "(") (binary_expression "*(char *)(iVar24 + 0x40a4) != '\0'" (pointer_expression "*(char *)(iVar24 + 0x40a4)" (* "*") (cast_expression "(char *)(iVar24 + 0x40a4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x40a4)" (( "(") (binary_expression "iVar24 + 0x40a4" (identifier "iVar24") (+ "+") (number_literal "0x40a4")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);\n          puVar19[4] = iVar24;\n          if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }\n        }" ({ "{") (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x7e824))(0)" (identifier "iVar24") (= "=") (call_expression "(**(code **)(pcVar27 + 0x7e824))(0)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e824))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e824)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e824)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e824)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e824)" (( "(") (binary_expression "pcVar27 + 0x7e824" (identifier "pcVar27") (+ "+") (number_literal "0x7e824")) () ")"))))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "puVar19[4] = iVar24;" (assignment_expression "puVar19[4] = iVar24" (subscript_expression "puVar19[4]" (identifier "puVar19") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iVar24")) (; ";")) (if_statement "if (iVar24 == 0) {\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }" (if "if") (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            (**(code **)(pcVar27 + 0x7e678))(puVar19);\n            iVar24 = 7;\n            goto LAB_0007782c;\n          }" ({ "{") (expression_statement "(**(code **)(pcVar27 + 0x7e678))(puVar19);" (call_expression "(**(code **)(pcVar27 + 0x7e678))(puVar19)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7e678))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7e678)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7e678)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e678)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e678)" (( "(") (binary_expression "pcVar27 + 0x7e678" (identifier "pcVar27") (+ "+") (number_literal "0x7e678")) () ")"))))) () ")")) (argument_list "(puVar19)" (( "(") (identifier "puVar19") () ")"))) (; ";")) (expression_statement "iVar24 = 7;" (assignment_expression "iVar24 = 7" (identifier "iVar24") (= "=") (number_literal "7")) (; ";")) (goto_statement "goto LAB_0007782c;" (goto "goto") (statement_identifier "LAB_0007782c") (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar6 = *(int *)(iVar9 + 0x5a14);" (assignment_expression "iVar6 = *(int *)(iVar9 + 0x5a14)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar9 + 0x5a14)" (* "*") (cast_expression "(int *)(iVar9 + 0x5a14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x5a14)" (( "(") (binary_expression "iVar9 + 0x5a14" (identifier "iVar9") (+ "+") (number_literal "0x5a14")) () ")"))))) (; ";")) (expression_statement "puVar19[0xc] = 0;" (assignment_expression "puVar19[0xc] = 0" (subscript_expression "puVar19[0xc]" (identifier "puVar19") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar19[9] = 1;" (assignment_expression "puVar19[9] = 1" (subscript_expression "puVar19[9]" (identifier "puVar19") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar19[0xb] = iVar6;" (assignment_expression "puVar19[0xb] = iVar6" (subscript_expression "puVar19[0xb]" (identifier "puVar19") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (if_statement "if (iVar6 != 0) {\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined4 **)(iVar6 + 0x30) = puVar19;\n        }" ({ "{") (expression_statement "*(undefined4 **)(iVar6 + 0x30) = puVar19;" (assignment_expression "*(undefined4 **)(iVar6 + 0x30) = puVar19" (pointer_expression "*(undefined4 **)(iVar6 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar6 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x30)" (( "(") (binary_expression "iVar6 + 0x30" (identifier "iVar6") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "puVar19")) (; ";")) (} "}"))) (expression_statement "*(undefined4 **)(iVar9 + 0x5a14) = puVar19;" (assignment_expression "*(undefined4 **)(iVar9 + 0x5a14) = puVar19" (pointer_expression "*(undefined4 **)(iVar9 + 0x5a14)" (* "*") (cast_expression "(undefined4 **)(iVar9 + 0x5a14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x5a14)" (( "(") (binary_expression "iVar9 + 0x5a14" (identifier "iVar9") (+ "+") (number_literal "0x5a14")) () ")")))) (= "=") (identifier "puVar19")) (; ";")) (labeled_statement "LAB_0007764c:\n        pcVar28 = *(code **)(pcVar27 + 0x7e748);" (statement_identifier "LAB_0007764c") (: ":") (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x7e748);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x7e748)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar27 + 0x7e748)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e748)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e748)" (( "(") (binary_expression "pcVar27 + 0x7e748" (identifier "pcVar27") (+ "+") (number_literal "0x7e748")) () ")"))))) (; ";"))) (expression_statement "param_3[2] = (int)puVar19;" (assignment_expression "param_3[2] = (int)puVar19" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19"))) (; ";")) (expression_statement "(*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));" (call_expression "(*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18))" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(*(undefined4 *)(iVar7 + 0x5a18))" (( "(") (pointer_expression "*(undefined4 *)(iVar7 + 0x5a18)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x5a18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x5a18)" (( "(") (binary_expression "iVar7 + 0x5a18" (identifier "iVar7") (+ "+") (number_literal "0x5a18")) () ")")))) () ")"))) (; ";")) (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        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }" (else "else") (compound_statement "{\n        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;\nLAB_00076f78:\n        param_3[5] = 0;\n      }" ({ "{") (expression_statement "iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;" (assignment_expression "iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4" (identifier "iVar4") (= "=") (binary_expression "*(int *)(pcVar27 + 0x7e594) + 0x3ad4" (pointer_expression "*(int *)(pcVar27 + 0x7e594)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e594)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e594)" (( "(") (binary_expression "pcVar27 + 0x7e594" (identifier "pcVar27") (+ "+") (number_literal "0x7e594")) () ")")))) (+ "+") (number_literal "0x3ad4"))) (; ";")) (labeled_statement "LAB_00076f78:\n        param_3[5] = 0;" (statement_identifier "LAB_00076f78") (: ":") (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 "iVar6 = *(int *)(pcVar27 + 0x7e5c0);" (assignment_expression "iVar6 = *(int *)(pcVar27 + 0x7e5c0)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcVar27 + 0x7e5c0)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7e5c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7e5c0)" (( "(") (binary_expression "pcVar27 + 0x7e5c0" (identifier "pcVar27") (+ "+") (number_literal "0x7e5c0")) () ")"))))) (; ";")) (expression_statement "*param_3 = iVar4;" (assignment_expression "*param_3 = iVar4" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "(*(code *)(iVar6 + 0x76f0))(param_3);" (call_expression "(*(code *)(iVar6 + 0x76f0))(param_3)" (parenthesized_expression "(*(code *)(iVar6 + 0x76f0))" (( "(") (pointer_expression "*(code *)(iVar6 + 0x76f0)" (* "*") (cast_expression "(code *)(iVar6 + 0x76f0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x76f0)" (( "(") (binary_expression "iVar6 + 0x76f0" (identifier "iVar6") (+ "+") (number_literal "0x76f0")) () ")")))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))) (; ";")) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" (identifier "iVar24") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_00076f98:\n  if (local_254 == *piVar29) {\n    return iVar24;\n  }" (statement_identifier "LAB_00076f98") (: ":") (if_statement "if (local_254 == *piVar29) {\n    return iVar24;\n  }" (if "if") (parenthesized_expression "(local_254 == *piVar29)" (( "(") (binary_expression "local_254 == *piVar29" (identifier "local_254") (== "==") (pointer_expression "*piVar29" (* "*") (identifier "piVar29"))) () ")")) (compound_statement "{\n    return iVar24;\n  }" ({ "{") (return_statement "return iVar24;" (return "return") (identifier "iVar24") (; ";")) (} "}")))) (expression_statement "pcVar27 = *(code **)(pcVar27 + 0x7e818);" (assignment_expression "pcVar27 = *(code **)(pcVar27 + 0x7e818)" (identifier "pcVar27") (= "=") (pointer_expression "*(code **)(pcVar27 + 0x7e818)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7e818)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7e818)" (( "(") (binary_expression "pcVar27 + 0x7e818" (identifier "pcVar27") (+ "+") (number_literal "0x7e818")) () ")"))))) (; ";")) (expression_statement "iVar4 = local_254;" (assignment_expression "iVar4 = local_254" (identifier "iVar4") (= "=") (identifier "local_254")) (; ";")) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" (( "(") (pointer_expression "*pcVar27" (* "*") (identifier "pcVar27")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x4c);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x4c)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(iVar4 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar4 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x4c)" (( "(") (binary_expression "iVar4 + 0x4c" (identifier "iVar4") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "uVar21 = *(uint *)(iVar4 + 0x94);" (assignment_expression "uVar21 = *(uint *)(iVar4 + 0x94)" (identifier "uVar21") (= "=") (pointer_expression "*(uint *)(iVar4 + 0x94)" (* "*") (cast_expression "(uint *)(iVar4 + 0x94)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x94)" (( "(") (binary_expression "iVar4 + 0x94" (identifier "iVar4") (+ "+") (number_literal "0x94")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(iVar4 + 0x48);" (assignment_expression "iVar6 = *(int *)(iVar4 + 0x48)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar4 + 0x48)" (* "*") (cast_expression "(int *)(iVar4 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x48)" (( "(") (binary_expression "iVar4 + 0x48" (identifier "iVar4") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "uVar18 = *(uint *)(iVar4 + 0x98);" (assignment_expression "uVar18 = *(uint *)(iVar4 + 0x98)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(iVar4 + 0x98)" (* "*") (cast_expression "(uint *)(iVar4 + 0x98)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x98)" (( "(") (binary_expression "iVar4 + 0x98" (identifier "iVar4") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (if_statement "if (uVar21 <= *(uint *)(iVar4 + 0x98)) {\n    uVar18 = uVar21;\n  }" (if "if") (parenthesized_expression "(uVar21 <= *(uint *)(iVar4 + 0x98))" (( "(") (binary_expression "uVar21 <= *(uint *)(iVar4 + 0x98)" (identifier "uVar21") (<= "<=") (pointer_expression "*(uint *)(iVar4 + 0x98)" (* "*") (cast_expression "(uint *)(iVar4 + 0x98)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x98)" (( "(") (binary_expression "iVar4 + 0x98" (identifier "iVar4") (+ "+") (number_literal "0x98")) () ")"))))) () ")")) (compound_statement "{\n    uVar18 = uVar21;\n  }" ({ "{") (expression_statement "uVar18 = uVar21;" (assignment_expression "uVar18 = uVar21" (identifier "uVar18") (= "=") (identifier "uVar21")) (; ";")) (} "}"))) (expression_statement "puVar19 = *(undefined4 **)(iVar4 + 0xd0);" (assignment_expression "puVar19 = *(undefined4 **)(iVar4 + 0xd0)" (identifier "puVar19") (= "=") (pointer_expression "*(undefined4 **)(iVar4 + 0xd0)" (* "*") (cast_expression "(undefined4 **)(iVar4 + 0xd0)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xd0)" (( "(") (binary_expression "iVar4 + 0xd0" (identifier "iVar4") (+ "+") (number_literal "0xd0")) () ")"))))) (; ";")) (if_statement "if (0 < *(int *)(iVar4 + 0x60)) {\n    iVar24 = *(int *)(iVar4 + 0x5c);\n    iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24;\n    do {\n      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }\n      iVar24 = iVar24 + 0x30;\n    } while (iVar24 != iVar7);\n  }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar4 + 0x60))" (( "(") (binary_expression "0 < *(int *)(iVar4 + 0x60)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar4 + 0x60)" (* "*") (cast_expression "(int *)(iVar4 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x60)" (( "(") (binary_expression "iVar4 + 0x60" (identifier "iVar4") (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (compound_statement "{\n    iVar24 = *(int *)(iVar4 + 0x5c);\n    iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24;\n    do {\n      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }\n      iVar24 = iVar24 + 0x30;\n    } while (iVar24 != iVar7);\n  }" ({ "{") (expression_statement "iVar24 = *(int *)(iVar4 + 0x5c);" (assignment_expression "iVar24 = *(int *)(iVar4 + 0x5c)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(iVar4 + 0x5c)" (* "*") (cast_expression "(int *)(iVar4 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x5c)" (( "(") (binary_expression "iVar4 + 0x5c" (identifier "iVar4") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24;" (assignment_expression "iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24" (identifier "iVar7") (= "=") (binary_expression "*(int *)(iVar4 + 0x60) * 0x30 + iVar24" (binary_expression "*(int *)(iVar4 + 0x60) * 0x30" (pointer_expression "*(int *)(iVar4 + 0x60)" (* "*") (cast_expression "(int *)(iVar4 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x60)" (( "(") (binary_expression "iVar4 + 0x60" (identifier "iVar4") (+ "+") (number_literal "0x60")) () ")")))) (* "*") (number_literal "0x30")) (+ "+") (identifier "iVar24"))) (; ";")) (do_statement "do {\n      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }\n      iVar24 = iVar24 + 0x30;\n    } while (iVar24 != iVar7);" (do "do") (compound_statement "{\n      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }\n      iVar24 = iVar24 + 0x30;\n    }" ({ "{") (if_statement "if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0" (binary_expression "*(int *)(iVar24 + 8) == 0" (pointer_expression "*(int *)(iVar24 + 8)" (* "*") (cast_expression "(int *)(iVar24 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 8)" (( "(") (binary_expression "iVar24 + 8" (identifier "iVar24") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (binary_expression "*(int *)(iVar24 + 0xc) == 0" (pointer_expression "*(int *)(iVar24 + 0xc)" (* "*") (cast_expression "(int *)(iVar24 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0xc)" (( "(") (binary_expression "iVar24 + 0xc" (identifier "iVar24") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n        *(uint *)(iVar24 + 0xc) = uVar5;\n        *(int *)(iVar24 + 8) = iVar6;\n      }" ({ "{") (expression_statement "*(uint *)(iVar24 + 0xc) = uVar5;" (assignment_expression "*(uint *)(iVar24 + 0xc) = uVar5" (pointer_expression "*(uint *)(iVar24 + 0xc)" (* "*") (cast_expression "(uint *)(iVar24 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0xc)" (( "(") (binary_expression "iVar24 + 0xc" (identifier "iVar24") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "*(int *)(iVar24 + 8) = iVar6;" (assignment_expression "*(int *)(iVar24 + 8) = iVar6" (pointer_expression "*(int *)(iVar24 + 8)" (* "*") (cast_expression "(int *)(iVar24 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 8)" (( "(") (binary_expression "iVar24 + 8" (identifier "iVar24") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (} "}"))) (expression_statement "iVar24 = iVar24 + 0x30;" (assignment_expression "iVar24 = iVar24 + 0x30" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 0x30" (identifier "iVar24") (+ "+") (number_literal "0x30"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar24 != iVar7)" (( "(") (binary_expression "iVar24 != iVar7" (identifier "iVar24") (!= "!=") (identifier "iVar7")) () ")")) (; ";")) (} "}"))) (if_statement "if (iVar6 != 0 || uVar5 != 0) {\n    lVar33 = (**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21);\n    lVar2 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar5 = (uint)lVar2;\n    iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20);\n  }" (if "if") (parenthesized_expression "(iVar6 != 0 || uVar5 != 0)" (( "(") (binary_expression "iVar6 != 0 || uVar5 != 0" (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n    lVar33 = (**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21);\n    lVar2 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;\n    uVar5 = (uint)lVar2;\n    iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20);\n  }" ({ "{") (expression_statement "lVar33 = (**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21);" (assignment_expression "lVar33 = (**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21)" (identifier "lVar33") (= "=") (call_expression "(**(code **)(pcVar27 + 0x7d930))\n                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7d930))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7d930)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7d930)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7d930)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7d930)" (( "(") (binary_expression "pcVar27 + 0x7d930" (identifier "pcVar27") (+ "+") (number_literal "0x7d930")) () ")"))))) () ")")) (argument_list "((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21)" (( "(") (binary_expression "(uint)(uVar5 - 1 < uVar5) + iVar6 + -1" (binary_expression "(uint)(uVar5 - 1 < uVar5) + iVar6" (call_expression "(uint)(uVar5 - 1 < uVar5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar5 - 1 < uVar5)" (( "(") (binary_expression "uVar5 - 1 < uVar5" (binary_expression "uVar5 - 1" (identifier "uVar5") (- "-") (number_literal "1")) (< "<") (identifier "uVar5")) () ")"))) (+ "+") (identifier "iVar6")) (+ "+") (number_literal "-1")) (, ",") (binary_expression "uVar5 - 1" (identifier "uVar5") (- "-") (number_literal "1")) (, ",") (number_literal "0") (, ",") (identifier "uVar21") () ")")))) (; ";")) (expression_statement "lVar2 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;" (assignment_expression "lVar2 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21" (identifier "lVar2") (= "=") (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 "uVar5 = (uint)lVar2;" (assignment_expression "uVar5 = (uint)lVar2" (identifier "uVar5") (= "=") (cast_expression "(uint)lVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar2"))) (; ";")) (expression_statement "iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20);" (assignment_expression "iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20)" (identifier "iVar6") (= "=") (binary_expression "(int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 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)lVar2 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar2 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar2")) (>> ">>") (number_literal "0x20")) () ")"))))) (; ";")) (} "}"))) (expression_statement "*(uint *)(iVar4 + 0x4c) = uVar5;" (assignment_expression "*(uint *)(iVar4 + 0x4c) = uVar5" (pointer_expression "*(uint *)(iVar4 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar4 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x4c)" (( "(") (binary_expression "iVar4 + 0x4c" (identifier "iVar4") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "*(int *)(iVar4 + 0x48) = iVar6;" (assignment_expression "*(int *)(iVar4 + 0x48) = iVar6" (pointer_expression "*(int *)(iVar4 + 0x48)" (* "*") (cast_expression "(int *)(iVar4 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x48)" (( "(") (binary_expression "iVar4 + 0x48" (identifier "iVar4") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(uint *)(iVar4 + 0x54) = uVar5;" (assignment_expression "*(uint *)(iVar4 + 0x54) = uVar5" (pointer_expression "*(uint *)(iVar4 + 0x54)" (* "*") (cast_expression "(uint *)(iVar4 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x54)" (( "(") (binary_expression "iVar4 + 0x54" (identifier "iVar4") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "*(int *)(iVar4 + 0x50) = iVar6;" (assignment_expression "*(int *)(iVar4 + 0x50) = iVar6" (pointer_expression "*(int *)(iVar4 + 0x50)" (* "*") (cast_expression "(int *)(iVar4 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x50)" (( "(") (binary_expression "iVar4 + 0x50" (identifier "iVar4") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (if_statement "if (*(char *)(iVar4 + 7) == '\0') {\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n    if (*(char *)(iVar4 + 5) != '\x04') {\n      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));\n      if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }\n      goto LAB_00077ad0;\n    }\n  }\n  else {\nLAB_00077ad0:\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n  }" (if "if") (parenthesized_expression "(*(char *)(iVar4 + 7) == '\0')" (( "(") (binary_expression "*(char *)(iVar4 + 7) == '\0'" (pointer_expression "*(char *)(iVar4 + 7)" (* "*") (cast_expression "(char *)(iVar4 + 7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 7)" (( "(") (binary_expression "iVar4 + 7" (identifier "iVar4") (+ "+") (number_literal "7")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n    if (*(char *)(iVar4 + 5) != '\x04') {\n      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));\n      if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }\n      goto LAB_00077ad0;\n    }\n  }" ({ "{") (expression_statement "iVar6 = *(int *)(pcVar27 + 0x7d92c);" (assignment_expression "iVar6 = *(int *)(pcVar27 + 0x7d92c)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcVar27 + 0x7d92c)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7d92c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7d92c)" (( "(") (binary_expression "pcVar27 + 0x7d92c" (identifier "pcVar27") (+ "+") (number_literal "0x7d92c")) () ")"))))) (; ";")) (if_statement "if (*(char *)(iVar4 + 5) != '\x04') {\n      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));\n      if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }\n      goto LAB_00077ad0;\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar4 + 5) != '\x04')" (( "(") (binary_expression "*(char *)(iVar4 + 5) != '\x04'" (pointer_expression "*(char *)(iVar4 + 5)" (* "*") (cast_expression "(char *)(iVar4 + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 5)" (( "(") (binary_expression "iVar4 + 5" (identifier "iVar4") (+ "+") (number_literal "5")) () ")")))) (!= "!=") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) () ")")) (compound_statement "{\n      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));\n      if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }\n      goto LAB_00077ad0;\n    }" ({ "{") (expression_statement "uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));" (assignment_expression "uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c))" (identifier "uVar5") (= "=") (call_expression "(**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c))" (parenthesized_expression "(**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar4 + 0x3c) + 0x30)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar4 + 0x3c) + 0x30)" (* "*") (cast_expression "(code **)(**(int **)(iVar4 + 0x3c) + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar4 + 0x3c) + 0x30)" (( "(") (binary_expression "**(int **)(iVar4 + 0x3c) + 0x30" (pointer_expression "**(int **)(iVar4 + 0x3c)" (* "*") (pointer_expression "*(int **)(iVar4 + 0x3c)" (* "*") (cast_expression "(int **)(iVar4 + 0x3c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x3c)" (( "(") (binary_expression "iVar4 + 0x3c" (identifier "iVar4") (+ "+") (number_literal "0x3c")) () ")"))))) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(*(int **)(iVar4 + 0x3c))" (( "(") (pointer_expression "*(int **)(iVar4 + 0x3c)" (* "*") (cast_expression "(int **)(iVar4 + 0x3c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x3c)" (( "(") (binary_expression "iVar4 + 0x3c" (identifier "iVar4") (+ "+") (number_literal "0x3c")) () ")")))) () ")")))) (; ";")) (if_statement "if ((uVar5 & 0x200) == 0) {\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }" (if "if") (parenthesized_expression "((uVar5 & 0x200) == 0)" (( "(") (binary_expression "(uVar5 & 0x200) == 0" (parenthesized_expression "(uVar5 & 0x200)" (( "(") (binary_expression "uVar5 & 0x200" (identifier "uVar5") (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined1 *)puVar19 = 0;\n        *(undefined1 *)((int)puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 3) = 0;\n        *(undefined1 *)(puVar19 + 1) = 0;\n        *(undefined1 *)((int)puVar19 + 5) = 0;\n        *(undefined1 *)((int)puVar19 + 6) = 0;\n        *(undefined1 *)((int)puVar19 + 7) = 0;\n        *(undefined1 *)(puVar19 + 2) = 0;\n        *(undefined1 *)((int)puVar19 + 9) = 0;\n        *(undefined1 *)((int)puVar19 + 10) = 0;\n        *(undefined1 *)((int)puVar19 + 0xb) = 0;\n        goto LAB_00077b04;\n      }" ({ "{") (expression_statement "*(undefined1 *)puVar19 = 0;" (assignment_expression "*(undefined1 *)puVar19 = 0" (pointer_expression "*(undefined1 *)puVar19" (* "*") (cast_expression "(undefined1 *)puVar19" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar19"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar19 + 1) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 1) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 1)" (* "*") (cast_expression "(undefined1 *)((int)puVar19 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (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")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar19 + 2) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 2) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 2)" (* "*") (cast_expression "(undefined1 *)((int)puVar19 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 2)" (( "(") (binary_expression "(int)puVar19 + 2" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar19 + 3) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 3) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 3)" (* "*") (cast_expression "(undefined1 *)((int)puVar19 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 3)" (( "(") (binary_expression "(int)puVar19 + 3" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar19 + 1) = 0;" (assignment_expression "*(undefined1 *)(puVar19 + 1) = 0" (pointer_expression "*(undefined1 *)(puVar19 + 1)" (* "*") (cast_expression "(undefined1 *)(puVar19 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 1)" (( "(") (binary_expression "puVar19 + 1" (identifier "puVar19") (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar19 + 5) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 5) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 5)" (* "*") (cast_expression "(undefined1 *)((int)puVar19 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 5)" (( "(") (binary_expression "(int)puVar19 + 5" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar19 + 6) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 6) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 6)" (* "*") (cast_expression "(undefined1 *)((int)puVar19 + 6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 6)" (( "(") (binary_expression "(int)puVar19 + 6" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (number_literal "6")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar19 + 7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 7) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 7)" (* "*") (cast_expression "(undefined1 *)((int)puVar19 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 7)" (( "(") (binary_expression "(int)puVar19 + 7" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (number_literal "7")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar19 + 2) = 0;" (assignment_expression "*(undefined1 *)(puVar19 + 2) = 0" (pointer_expression "*(undefined1 *)(puVar19 + 2)" (* "*") (cast_expression "(undefined1 *)(puVar19 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 2)" (( "(") (binary_expression "puVar19 + 2" (identifier "puVar19") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar19 + 9) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 9) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 9)" (* "*") (cast_expression "(undefined1 *)((int)puVar19 + 9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 9)" (( "(") (binary_expression "(int)puVar19 + 9" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (number_literal "9")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar19 + 10) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 10) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 10)" (* "*") (cast_expression "(undefined1 *)((int)puVar19 + 10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 10)" (( "(") (binary_expression "(int)puVar19 + 10" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (number_literal "10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar19 + 0xb) = 0;" (assignment_expression "*(undefined1 *)((int)puVar19 + 0xb) = 0" (pointer_expression "*(undefined1 *)((int)puVar19 + 0xb)" (* "*") (cast_expression "(undefined1 *)((int)puVar19 + 0xb)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 0xb)" (( "(") (binary_expression "(int)puVar19 + 0xb" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (number_literal "0xb")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00077b04;" (goto "goto") (statement_identifier "LAB_00077b04") (; ";")) (} "}"))) (goto_statement "goto LAB_00077ad0;" (goto "goto") (statement_identifier "LAB_00077ad0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_00077ad0:\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n  }" (else "else") (compound_statement "{\nLAB_00077ad0:\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);\n  }" ({ "{") (labeled_statement "LAB_00077ad0:\n    iVar6 = *(int *)(pcVar27 + 0x7d92c);" (statement_identifier "LAB_00077ad0") (: ":") (expression_statement "iVar6 = *(int *)(pcVar27 + 0x7d92c);" (assignment_expression "iVar6 = *(int *)(pcVar27 + 0x7d92c)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcVar27 + 0x7d92c)" (* "*") (cast_expression "(int *)(pcVar27 + 0x7d92c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x7d92c)" (( "(") (binary_expression "pcVar27 + 0x7d92c" (identifier "pcVar27") (+ "+") (number_literal "0x7d92c")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "uVar32 = *(undefined4 *)(iVar6 + 0x229c);" (assignment_expression "uVar32 = *(undefined4 *)(iVar6 + 0x229c)" (identifier "uVar32") (= "=") (pointer_expression "*(undefined4 *)(iVar6 + 0x229c)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x229c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x229c)" (( "(") (binary_expression "iVar6 + 0x229c" (identifier "iVar6") (+ "+") (number_literal "0x229c")) () ")"))))) (; ";")) (expression_statement "*puVar19 = *(undefined4 *)(iVar6 + 0x2298);" (assignment_expression "*puVar19 = *(undefined4 *)(iVar6 + 0x2298)" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (pointer_expression "*(undefined4 *)(iVar6 + 0x2298)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x2298)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2298)" (( "(") (binary_expression "iVar6 + 0x2298" (identifier "iVar6") (+ "+") (number_literal "0x2298")) () ")"))))) (; ";")) (expression_statement "puVar19[1] = uVar32;" (assignment_expression "puVar19[1] = uVar32" (subscript_expression "puVar19[1]" (identifier "puVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar32")) (; ";")) (expression_statement "*(undefined1 *)(puVar19 + 2) = 0xff;" (assignment_expression "*(undefined1 *)(puVar19 + 2) = 0xff" (pointer_expression "*(undefined1 *)(puVar19 + 2)" (* "*") (cast_expression "(undefined1 *)(puVar19 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 2)" (( "(") (binary_expression "puVar19 + 2" (identifier "puVar19") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0xff")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar19 + 9) = 0xff;" (assignment_expression "*(undefined1 *)((int)puVar19 + 9) = 0xff" (pointer_expression "*(undefined1 *)((int)puVar19 + 9)" (* "*") (cast_expression "(undefined1 *)((int)puVar19 + 9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 9)" (( "(") (binary_expression "(int)puVar19 + 9" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (number_literal "9")) () ")")))) (= "=") (number_literal "0xff")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar19 + 10) = 0xff;" (assignment_expression "*(undefined1 *)((int)puVar19 + 10) = 0xff" (pointer_expression "*(undefined1 *)((int)puVar19 + 10)" (* "*") (cast_expression "(undefined1 *)((int)puVar19 + 10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 10)" (( "(") (binary_expression "(int)puVar19 + 10" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (number_literal "10")) () ")")))) (= "=") (number_literal "0xff")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar19 + 0xb) = 0xff;" (assignment_expression "*(undefined1 *)((int)puVar19 + 0xb) = 0xff" (pointer_expression "*(undefined1 *)((int)puVar19 + 0xb)" (* "*") (cast_expression "(undefined1 *)((int)puVar19 + 0xb)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 0xb)" (( "(") (binary_expression "(int)puVar19 + 0xb" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (number_literal "0xb")) () ")")))) (= "=") (number_literal "0xff")) (; ";")) (labeled_statement "LAB_00077b04:\n  uVar5 = 0;" (statement_identifier "LAB_00077b04") (: ":") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";"))) (expression_statement "(**(code **)(pcVar27 + 0x7dad8))(4,iVar4 + 0x30);" (call_expression "(**(code **)(pcVar27 + 0x7dad8))(4,iVar4 + 0x30)" (parenthesized_expression "(**(code **)(pcVar27 + 0x7dad8))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x7dad8)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x7dad8)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7dad8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7dad8)" (( "(") (binary_expression "pcVar27 + 0x7dad8" (identifier "pcVar27") (+ "+") (number_literal "0x7dad8")) () ")"))))) () ")")) (argument_list "(4,iVar4 + 0x30)" (( "(") (number_literal "4") (, ",") (binary_expression "iVar4 + 0x30" (identifier "iVar4") (+ "+") (number_literal "0x30")) () ")"))) (; ";")) (expression_statement "uVar32 = *(undefined4 *)(iVar4 + 0x30);" (assignment_expression "uVar32 = *(undefined4 *)(iVar4 + 0x30)" (identifier "uVar32") (= "=") (pointer_expression "*(undefined4 *)(iVar4 + 0x30)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x30)" (( "(") (binary_expression "iVar4 + 0x30" (identifier "iVar4") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "*(char *)((int)puVar19 + 0xf) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar19 + 0xf) = (char)uVar32" (pointer_expression "*(char *)((int)puVar19 + 0xf)" (* "*") (cast_expression "(char *)((int)puVar19 + 0xf)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 0xf)" (( "(") (binary_expression "(int)puVar19 + 0xf" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (number_literal "0xf")) () ")")))) (= "=") (cast_expression "(char)uVar32" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar32"))) (; ";")) (expression_statement "*(char *)(puVar19 + 3) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar19 + 3) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar19 + 3)" (* "*") (cast_expression "(char *)(puVar19 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 3)" (( "(") (binary_expression "puVar19 + 3" (identifier "puVar19") (+ "+") (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)puVar19 + 0xd) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar19 + 0xd) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar19 + 0xd)" (* "*") (cast_expression "(char *)((int)puVar19 + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 0xd)" (( "(") (binary_expression "(int)puVar19 + 0xd" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (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)puVar19 + 0xe) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar19 + 0xe) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar19 + 0xe)" (* "*") (cast_expression "(char *)((int)puVar19 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 0xe)" (( "(") (binary_expression "(int)puVar19 + 0xe" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (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 *)(iVar4 + 0x1c);" (assignment_expression "uVar32 = *(undefined4 *)(iVar4 + 0x1c)" (identifier "uVar32") (= "=") (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1c)" (( "(") (binary_expression "iVar4 + 0x1c" (identifier "iVar4") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "pcVar27 = *(code **)(pcVar27 + 0x7daa8);" (assignment_expression "pcVar27 = *(code **)(pcVar27 + 0x7daa8)" (identifier "pcVar27") (= "=") (pointer_expression "*(code **)(pcVar27 + 0x7daa8)" (* "*") (cast_expression "(code **)(pcVar27 + 0x7daa8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x7daa8)" (( "(") (binary_expression "pcVar27 + 0x7daa8" (identifier "pcVar27") (+ "+") (number_literal "0x7daa8")) () ")"))))) (; ";")) (expression_statement "*(char *)((int)puVar19 + 0x13) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar19 + 0x13) = (char)uVar32" (pointer_expression "*(char *)((int)puVar19 + 0x13)" (* "*") (cast_expression "(char *)((int)puVar19 + 0x13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 0x13)" (( "(") (binary_expression "(int)puVar19 + 0x13" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (number_literal "0x13")) () ")")))) (= "=") (cast_expression "(char)uVar32" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar32"))) (; ";")) (expression_statement "*(char *)(puVar19 + 4) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar19 + 4) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar19 + 4)" (* "*") (cast_expression "(char *)(puVar19 + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 4)" (( "(") (binary_expression "puVar19 + 4" (identifier "puVar19") (+ "+") (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)puVar19 + 0x11) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar19 + 0x11) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar19 + 0x11)" (* "*") (cast_expression "(char *)((int)puVar19 + 0x11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 0x11)" (( "(") (binary_expression "(int)puVar19 + 0x11" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (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)puVar19 + 0x12) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar19 + 0x12) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar19 + 0x12)" (* "*") (cast_expression "(char *)((int)puVar19 + 0x12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 0x12)" (( "(") (binary_expression "(int)puVar19 + 0x12" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (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 *)(iVar4 + 0x94);" (assignment_expression "uVar32 = *(undefined4 *)(iVar4 + 0x94)" (identifier "uVar32") (= "=") (pointer_expression "*(undefined4 *)(iVar4 + 0x94)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x94)" (( "(") (binary_expression "iVar4 + 0x94" (identifier "iVar4") (+ "+") (number_literal "0x94")) () ")"))))) (; ";")) (expression_statement "*(char *)((int)puVar19 + 0x17) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar19 + 0x17) = (char)uVar32" (pointer_expression "*(char *)((int)puVar19 + 0x17)" (* "*") (cast_expression "(char *)((int)puVar19 + 0x17)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 0x17)" (( "(") (binary_expression "(int)puVar19 + 0x17" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (number_literal "0x17")) () ")")))) (= "=") (cast_expression "(char)uVar32" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar32"))) (; ";")) (expression_statement "*(char *)(puVar19 + 5) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar19 + 5) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar19 + 5)" (* "*") (cast_expression "(char *)(puVar19 + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 5)" (( "(") (binary_expression "puVar19 + 5" (identifier "puVar19") (+ "+") (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)puVar19 + 0x15) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar19 + 0x15) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar19 + 0x15)" (* "*") (cast_expression "(char *)((int)puVar19 + 0x15)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 0x15)" (( "(") (binary_expression "(int)puVar19 + 0x15" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (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)puVar19 + 0x16) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar19 + 0x16) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar19 + 0x16)" (* "*") (cast_expression "(char *)((int)puVar19 + 0x16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 0x16)" (( "(") (binary_expression "(int)puVar19 + 0x16" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (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 *)(iVar4 + 0x98);" (assignment_expression "uVar32 = *(undefined4 *)(iVar4 + 0x98)" (identifier "uVar32") (= "=") (pointer_expression "*(undefined4 *)(iVar4 + 0x98)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x98)" (( "(") (binary_expression "iVar4 + 0x98" (identifier "iVar4") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "*(char *)((int)puVar19 + 0x1b) = (char)uVar32;" (assignment_expression "*(char *)((int)puVar19 + 0x1b) = (char)uVar32" (pointer_expression "*(char *)((int)puVar19 + 0x1b)" (* "*") (cast_expression "(char *)((int)puVar19 + 0x1b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 0x1b)" (( "(") (binary_expression "(int)puVar19 + 0x1b" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (number_literal "0x1b")) () ")")))) (= "=") (cast_expression "(char)uVar32" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar32"))) (; ";")) (expression_statement "*(char *)(puVar19 + 6) = (char)((uint)uVar32 >> 0x18);" (assignment_expression "*(char *)(puVar19 + 6) = (char)((uint)uVar32 >> 0x18)" (pointer_expression "*(char *)(puVar19 + 6)" (* "*") (cast_expression "(char *)(puVar19 + 6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 6)" (( "(") (binary_expression "puVar19 + 6" (identifier "puVar19") (+ "+") (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)puVar19 + 0x19) = (char)((uint)uVar32 >> 0x10);" (assignment_expression "*(char *)((int)puVar19 + 0x19) = (char)((uint)uVar32 >> 0x10)" (pointer_expression "*(char *)((int)puVar19 + 0x19)" (* "*") (cast_expression "(char *)((int)puVar19 + 0x19)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 0x19)" (( "(") (binary_expression "(int)puVar19 + 0x19" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (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)puVar19 + 0x1a) = (char)((uint)uVar32 >> 8);" (assignment_expression "*(char *)((int)puVar19 + 0x1a) = (char)((uint)uVar32 >> 8)" (pointer_expression "*(char *)((int)puVar19 + 0x1a)" (* "*") (cast_expression "(char *)((int)puVar19 + 0x1a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 0x1a)" (( "(") (binary_expression "(int)puVar19 + 0x1a" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (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 "(*pcVar27)(puVar19 + 7,0,uVar18 - 0x1c);" (call_expression "(*pcVar27)(puVar19 + 7,0,uVar18 - 0x1c)" (parenthesized_expression "(*pcVar27)" (( "(") (pointer_expression "*pcVar27" (* "*") (identifier "pcVar27")) () ")")) (argument_list "(puVar19 + 7,0,uVar18 - 0x1c)" (( "(") (binary_expression "puVar19 + 7" (identifier "puVar19") (+ "+") (number_literal "7")) (, ",") (number_literal "0") (, ",") (binary_expression "uVar18 - 0x1c" (identifier "uVar18") (- "-") (number_literal "0x1c")) () ")"))) (; ";")) (do_statement "do {\n    if (*(uint *)(iVar4 + 0x94) <= uVar5) {\n      return 0;\n    }\n    iVar6 = **(int **)(iVar4 + 0x40);\n    uVar5 = uVar5 + uVar18;\n    iVar6 = (**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c));\n    uVar21 = *(uint *)(iVar4 + 0x4c);\n    uVar22 = uVar21 + uVar18;\n    *(uint *)(iVar4 + 0x4c) = uVar22;\n    *(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48);\n  } while (iVar6 == 0);" (do "do") (compound_statement "{\n    if (*(uint *)(iVar4 + 0x94) <= uVar5) {\n      return 0;\n    }\n    iVar6 = **(int **)(iVar4 + 0x40);\n    uVar5 = uVar5 + uVar18;\n    iVar6 = (**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c));\n    uVar21 = *(uint *)(iVar4 + 0x4c);\n    uVar22 = uVar21 + uVar18;\n    *(uint *)(iVar4 + 0x4c) = uVar22;\n    *(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48);\n  }" ({ "{") (if_statement "if (*(uint *)(iVar4 + 0x94) <= uVar5) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(*(uint *)(iVar4 + 0x94) <= uVar5)" (( "(") (binary_expression "*(uint *)(iVar4 + 0x94) <= uVar5" (pointer_expression "*(uint *)(iVar4 + 0x94)" (* "*") (cast_expression "(uint *)(iVar4 + 0x94)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x94)" (( "(") (binary_expression "iVar4 + 0x94" (identifier "iVar4") (+ "+") (number_literal "0x94")) () ")")))) (<= "<=") (identifier "uVar5")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar6 = **(int **)(iVar4 + 0x40);" (assignment_expression "iVar6 = **(int **)(iVar4 + 0x40)" (identifier "iVar6") (= "=") (pointer_expression "**(int **)(iVar4 + 0x40)" (* "*") (pointer_expression "*(int **)(iVar4 + 0x40)" (* "*") (cast_expression "(int **)(iVar4 + 0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x40)" (( "(") (binary_expression "iVar4 + 0x40" (identifier "iVar4") (+ "+") (number_literal "0x40")) () ")")))))) (; ";")) (expression_statement "uVar5 = uVar5 + uVar18;" (assignment_expression "uVar5 = uVar5 + uVar18" (identifier "uVar5") (= "=") (binary_expression "uVar5 + uVar18" (identifier "uVar5") (+ "+") (identifier "uVar18"))) (; ";")) (expression_statement "iVar6 = (**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c));" (assignment_expression "iVar6 = (**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c))" (identifier "iVar6") (= "=") (call_expression "(**(code **)(iVar6 + 0xc))\n                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c))" (parenthesized_expression "(**(code **)(iVar6 + 0xc))" (( "(") (pointer_expression "**(code **)(iVar6 + 0xc)" (* "*") (pointer_expression "*(code **)(iVar6 + 0xc)" (* "*") (cast_expression "(code **)(iVar6 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0xc)" (( "(") (binary_expression "iVar6 + 0xc" (identifier "iVar6") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "(*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),\n                       *(undefined4 *)(iVar4 + 0x4c))" (( "(") (pointer_expression "*(int **)(iVar4 + 0x40)" (* "*") (cast_expression "(int **)(iVar4 + 0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x40)" (( "(") (binary_expression "iVar4 + 0x40" (identifier "iVar4") (+ "+") (number_literal "0x40")) () ")")))) (, ",") (identifier "puVar19") (, ",") (identifier "uVar18") (, ",") (identifier "iVar6") (, ",") (pointer_expression "*(undefined4 *)(iVar4 + 0x48)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x48)" (( "(") (binary_expression "iVar4 + 0x48" (identifier "iVar4") (+ "+") (number_literal "0x48")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar4 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x4c)" (( "(") (binary_expression "iVar4 + 0x4c" (identifier "iVar4") (+ "+") (number_literal "0x4c")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar21 = *(uint *)(iVar4 + 0x4c);" (assignment_expression "uVar21 = *(uint *)(iVar4 + 0x4c)" (identifier "uVar21") (= "=") (pointer_expression "*(uint *)(iVar4 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar4 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x4c)" (( "(") (binary_expression "iVar4 + 0x4c" (identifier "iVar4") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "uVar22 = uVar21 + uVar18;" (assignment_expression "uVar22 = uVar21 + uVar18" (identifier "uVar22") (= "=") (binary_expression "uVar21 + uVar18" (identifier "uVar21") (+ "+") (identifier "uVar18"))) (; ";")) (expression_statement "*(uint *)(iVar4 + 0x4c) = uVar22;" (assignment_expression "*(uint *)(iVar4 + 0x4c) = uVar22" (pointer_expression "*(uint *)(iVar4 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar4 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x4c)" (( "(") (binary_expression "iVar4 + 0x4c" (identifier "iVar4") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (identifier "uVar22")) (; ";")) (expression_statement "*(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48);" (assignment_expression "*(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48)" (pointer_expression "*(uint *)(iVar4 + 0x48)" (* "*") (cast_expression "(uint *)(iVar4 + 0x48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x48)" (( "(") (binary_expression "iVar4 + 0x48" (identifier "iVar4") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (binary_expression "(uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48)" (call_expression "(uint)(uVar22 < uVar21)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar22 < uVar21)" (( "(") (binary_expression "uVar22 < uVar21" (identifier "uVar22") (< "<") (identifier "uVar21")) () ")"))) (+ "+") (pointer_expression "*(int *)(iVar4 + 0x48)" (* "*") (cast_expression "(int *)(iVar4 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x48)" (( "(") (binary_expression "iVar4 + 0x48" (identifier "iVar4") (+ "+") (number_literal "0x48")) () ")")))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (; ";")) (return_statement "return iVar6;" (return "return") (identifier "iVar6") (; ";")) (} "}")))

int function_1(int var_8,char *zBuf)

{
  int *piVar1;
  int var_3;
  int var_5;
  type_1 uVar4;
  int var_7;
  int var_9;
  int *var_6;
  type_2 *var_10;
  int var_2;
  int var_4;
  int iVar11;
  int var_1;
  type_3 *var_12;
  type_4 r;
  type_2 buf;
  
  piVar1 = *(int **)(var_1 + 0x7f0c4);
  var_2 = *(int *)(var_1 + 0x7ee18);
  var_9 = *piVar1;
  var_6 = *(int **)(var_1 + 0x7ef94);
  *zBuf = '\0';
  var_4 = *var_6;
  if (*(int *)(var_2 + 0x4fd8) == 0) {
    uVar4 = (**(type_3 **)(var_1 + 0x7f02c))(*(int *)(var_1 + 0x7ee30) + -0x76b0);
    *(type_1 *)(var_2 + 0x4fd8) = uVar4;
    var_3 = *(int *)(var_2 + 0x4fdc);
  }
  else {
    var_3 = *(int *)(var_2 + 0x4fdc);
  }
  if (var_3 == 0) {
    uVar4 = (**(type_3 **)(var_1 + 0x7f02c))(*(int *)(var_1 + 0x7ee30) + -0x76a0);
    *(type_1 *)(var_2 + 0x4fdc) = uVar4;
  }
  var_6 = (int *)(var_2 + 0x4fd8);
  var_3 = *(int *)(var_1 + 0x7ee18);
  while( true ) {
    var_10 = &buf;
    if ((((var_4 != 0) && (var_5 = (**(type_3 **)(var_3 + 0x5184))(var_4), var_5 == 0)) &&
        (var_10 = (type_2 *)0x3, (buf.st_mode & 0xf000) == 0x4000)) &&
       (var_5 = (**(type_3 **)(var_3 + 0x516c))(var_4), var_5 == 0)) {
      var_5 = *(int *)(var_1 + 0x7ee30);
      var_2 = 0xc;
      goto LAB_00076640;
    }
    iVar11 = 0x190a;
    if (var_6 == (int *)(var_2 + 0x4ff0)) break;
    var_4 = *var_6;
    var_6 = var_6 + 1;
  }
  goto LAB_0007658c;
  while( true ) {
    var_2 = var_2 + -1;
    var_10 = (type_2 *)0x0;
    if (var_2 == 0) goto LAB_0007669c;
    var_7 = (**(type_3 **)(var_3 + 0x516c))(zBuf);
    iVar11 = 0;
    if (var_7 != 0) break;
LAB_00076640:
    (**(type_3 **)(var_1 + 0x7efdc))(8,&r);
    zBuf[var_8 + -2] = '\0';
    var_10 = (type_2 *)zBuf;
    (**(type_3 **)(var_1 + 0x7efe8))(var_8,zBuf,var_5 + -0x7698,var_4,r._0_4_,r._4_4_,0);
    if (zBuf[var_8 + -2] != '\0') {
LAB_0007669c:
      iVar11 = 1;
      break;
    }
  }
LAB_0007658c:
  if (var_9 == *piVar1) {
    return iVar11;
  }
  var_12 = *(type_3 **)(var_1 + 0x7f09c);
  (*var_12)();
  if ((type_2 *)0x14 < var_10) {
    var_9 = var_11();
    return var_9;
  }
                    /* WARNING: Could not recover jumptable at 0x00076718. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  var_9 = (*(var_12 + *(int *)(*(int *)(var_12 + 0x7ec24) + -0x2974 + (int)var_10 * 4) + 0x86bf0))
                    ();
  return var_9;
}


(translation_unit (function_definition type: (primitive_type) 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: (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: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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: (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: (primitive_type) 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: (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: (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: (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: (primitive_type) 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: (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: (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)) (while_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (subscript_expression argument: (identifier) index: (number_literal)))) body: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (binary_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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 (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)))))))) (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (identifier))))) (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: (pointer_expression argument: (identifier)))) 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: (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: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (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 (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (binary_expression left: (identifier) right: (char_literal (character))))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (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: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_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: (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) (identifier) (identifier))))) (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (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))) right: (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) (identifier))))))) (goto_statement label: (statement_identifier)))) (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: (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: (identifier))) (goto_statement label: (statement_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) (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_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)))) alternative: (else_clause (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: (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) (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_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)))))) (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))) (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (subscript_expression argument: (identifier) index: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (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: (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: (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: (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: (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) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal))))) (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: (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))))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (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 (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)))))) (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) (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 (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: (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)))))) (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)))))))) (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: (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 (assignment_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 (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: (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: (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)))) alternative: (else_clause (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)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (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))))))))) (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: (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: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (identifier)))) (do_statement body: (compound_statement (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: (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: (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: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (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)))))

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

{
  bool bVar1;
  longlong lVar2;
  undefined *puVar3;
  int in_zero;
  int iVar4;
  uint uVar5;
  int iVar6;
  int iVar7;
  uint uVar8;
  char cVar11;
  int iVar9;
  int iVar10;
  int *piVar12;
  char *pcVar13;
  undefined4 *puVar14;
  int *piVar15;
  undefined4 *puVar16;
  uint *puVar17;
  uint uVar18;
  undefined4 *puVar19;
  undefined *puVar20;
  uint uVar21;
  uint uVar22;
  int iVar23;
  int iVar24;
  uint *puVar25;
  undefined *puVar26;
  code *pcVar27;
  code *pcVar28;
  int *piVar29;
  int *piVar30;
  uint uVar31;
  undefined4 uVar32;
  longlong lVar33;
  undefined4 local_730;
  uint local_728;
  undefined4 local_720;
  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;
  int 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;
  int 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;
  
  puVar3 = PTR___stack_chk_guard_000f5568;
  puVar26 = PTR_sqlite3_temp_directory_000f5438;
  puVar20 = PTR_DAT_000f52bc;
  local_2c = *(int *)PTR___stack_chk_guard_000f5568;
  *(undefined1 *)param_2 = 0;
  uVar18 = *(uint *)puVar26;
  if (*(int *)(puVar20 + 0x4fd8) == 0) {
    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76b0);
    *(undefined4 *)(puVar20 + 0x4fd8) = uVar32;
    iVar4 = *(int *)(puVar20 + 0x4fdc);
  }
  else {
    iVar4 = *(int *)(puVar20 + 0x4fdc);
  }
  if (iVar4 == 0) {
    uVar32 = (*(code *)PTR_getenv_000f54d0)(PTR_DAT_000f52d4 + -0x76a0);
    *(undefined4 *)(puVar20 + 0x4fdc) = uVar32;
  }
  puVar26 = PTR_DAT_000f52bc;
  puVar17 = (uint *)(puVar20 + 0x4fd8);
  puVar25 = (uint *)(puVar20 + 0x4ff0);
  puVar19 = auStack_d0;
  piVar29 = (int *)0x4000;
  puVar20 = PTR_DAT_000f52bc + 0x5150;
  while( true ) {
    puVar14 = puVar19;
    if ((((uVar18 != 0) && (iVar4 = (**(code **)(puVar26 + 0x5184))(uVar18), iVar4 == 0)) &&
        (puVar14 = (undefined4 *)0x3, (local_b8 & 0xf000) == 0x4000)) &&
       (iVar4 = (**(code **)(puVar26 + 0x516c))(uVar18), iVar4 == 0)) {
      puVar17 = (uint *)0xc;
      puVar25 = (uint *)((int)param_2 + param_1 + -2);
      puVar19 = &local_d8;
      piVar29 = (int *)(PTR_DAT_000f52d4 + -0x7698);
      goto LAB_00076640;
    }
    local_234 = 0x190a;
    if (puVar17 == puVar25) break;
    uVar18 = *puVar17;
    puVar17 = puVar17 + 1;
  }
  goto LAB_0007658c;
  while ((param_4 & 3) != piVar12[1]) {
LAB_00077354:
    piVar15 = piVar12;
    piVar12 = (int *)piVar15[2];
    if (piVar12 == (int *)0x0) goto LAB_00077360;
  }
  piVar15 = piVar15 + 2;
LAB_000776f8:
  iVar24 = piVar30[4];
  pcVar28 = *(code **)(pcVar27 + 0x7e748);
  *piVar15 = piVar12[2];
  (*pcVar28)(iVar24);
  (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));
  iVar6 = *piVar12;
  param_3[7] = (int)piVar12;
  goto LAB_00076e20;
LAB_00077360:
  (**(code **)(pcVar27 + 0x7e748))(piVar30[4]);
  (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));
  goto LAB_00077524;
  while( true ) {
    puVar17 = (uint *)((int)puVar17 + -1);
    puVar14 = (undefined4 *)0x0;
    if (puVar17 == (uint *)0x0) goto LAB_0007669c;
    iVar4 = (**(code **)(puVar26 + 0x516c))(param_2);
    local_234 = 0;
    if (iVar4 != 0) break;
LAB_00076640:
    (*(code *)PTR_sqlite3_randomness_000f5480)(8,puVar19);
    *(char *)puVar25 = '\0';
    local_f0 = 0;
    local_f4 = local_d4;
    local_f8 = local_d8;
    puVar14 = param_2;
    param_3 = piVar29;
    param_4 = uVar18;
    (*(code *)PTR_sqlite3_snprintf_000f548c)(param_1);
    if (*(char *)puVar25 != '\0') {
LAB_0007669c:
      local_234 = 1;
      break;
    }
  }
LAB_0007658c:
  if (local_2c == *(int *)puVar3) {
    return local_234;
  }
  uVar32 = 0x766b0;
  puVar26 = PTR___stack_chk_fail_000f5540;
  (*(code *)PTR___stack_chk_fail_000f5540)();
  local_208 = puVar26 + 0x86bf0;
  piVar30 = *(int **)(puVar26 + 0x7eeb8);
  iVar4 = *piVar30;
  local_134 = iVar4;
  local_130 = puVar17;
  local_12c = uVar18;
  local_128 = puVar20;
  local_124 = param_2;
  local_120 = param_1;
  local_11c = puVar19;
  local_118 = puVar25;
  local_114 = local_234;
  local_110 = piVar29;
  local_10c = uVar32;
  if (puVar14 < &DAT_00000015) {
                    /* WARNING: Could not recover jumptable at 0x00076718. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    iVar4 = (*(code *)(local_208 +
                      *(int *)(*(int *)(puVar26 + 0x7ec24) + -0x2974 + (int)puVar14 * 4)))();
    return iVar4;
  }
  if (iVar4 == *piVar30) {
    return 0xc;
  }
  pcVar27 = *(code **)(puVar26 + 0x7ee90);
  uVar32 = 0x76d28;
  (*pcVar27)();
  piVar29 = *(int **)(pcVar27 + 0x7e840);
  local_254 = *piVar29;
  uVar22 = param_4 & 0xfff00;
  local_728 = param_4 & 1;
  uVar5 = param_4 & 2;
  uVar21 = param_4 & 8;
  puVar16 = puVar14;
  local_250 = puVar17;
  local_24c = uVar18;
  local_248 = puVar20;
  local_244 = param_2;
  local_240 = param_1;
  local_23c = puVar19;
  local_238 = puVar25;
  local_230 = piVar30;
  local_22c = uVar32;
  if ((param_4 & 4) == 0) {
    iVar24 = *(int *)(pcVar27 + 0x7e594);
    bVar1 = false;
    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();
    if (iVar6 != *(int *)(iVar24 + 0x5a1c)) goto LAB_00076ff4;
LAB_00076df0:
    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);
    if (uVar22 == 0x100) {
      iVar6 = *(int *)(pcVar27 + 0x7e594);
      iVar24 = *(int *)(pcVar27 + 0x7e594);
      (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar6 + 0x5a18));
      if ((*(int *)(iVar24 + 0x5a14) != 0) &&
         (iVar7 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(puVar14,local_700), iVar7 == 0
         )) {
        for (piVar30 = *(int **)(iVar24 + 0x5a14); piVar30 != (int *)0x0;
            piVar30 = (int *)piVar30[0xb]) {
          if ((((*piVar30 == 0) && (piVar30[1] == local_700[0])) && (piVar30[2] == local_6f0)) &&
             (piVar30[3] == local_6ec)) {
            (**(code **)(pcVar27 + 0x7e720))(piVar30[4]);
            piVar12 = (int *)piVar30[8];
            if (piVar12 == (int *)0x0) goto LAB_00077360;
            if ((param_4 & 3) != piVar12[1]) goto LAB_00077354;
            piVar15 = piVar30 + 8;
            goto LAB_000776f8;
          }
        }
      }
      (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar6 + 0x5a18));
LAB_00077524:
      iVar24 = (**(code **)(pcVar27 + 0x7e7f4))(0,0xc);
      if (iVar24 != 0) {
        iVar6 = -1;
        param_3[7] = iVar24;
        goto LAB_00076e20;
      }
      iVar24 = 7;
    }
    else {
      if (puVar14 != (undefined4 *)0x0) goto LAB_00076e18;
LAB_00077258:
      iVar24 = MASKED(*(undefined4 *)(iVar4 + 8),auStack_458);
      if (iVar24 == 0) {
        iVar6 = -1;
        puVar16 = auStack_458;
        goto LAB_00076e20;
      }
    }
  }
  else {
    if ((uVar22 != 0x4000) && (uVar22 != 0x800)) {
      iVar24 = *(int *)(pcVar27 + 0x7e594);
      bVar1 = uVar22 == 0x80000;
      iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();
      if (iVar6 == *(int *)(iVar24 + 0x5a1c)) goto LAB_00076df0;
LAB_00076ff4:
      uVar32 = (**(code **)(pcVar27 + 0x7e7c0))();
      pcVar28 = *(code **)(pcVar27 + 0x7e758);
      *(undefined4 *)(iVar24 + 0x5a1c) = uVar32;
      (*pcVar28)(0,0);
      goto LAB_00076df0;
    }
    iVar24 = *(int *)(pcVar27 + 0x7e594);
    iVar6 = (**(code **)(pcVar27 + 0x7e7c0))();
    if (*(int *)(iVar24 + 0x5a1c) != iVar6) {
      bVar1 = true;
      goto LAB_00076ff4;
    }
    (**(code **)(pcVar27 + 0x7e728))(param_3,0,0x58);
    bVar1 = true;
    if (puVar14 == (undefined4 *)0x0) goto LAB_00077258;
LAB_00076e18:
    iVar6 = -1;
LAB_00076e20:
    uVar18 = uVar5;
    if ((param_4 & 4) != 0) {
      uVar18 = uVar5 | 0x100;
    }
    if ((param_4 & 0x10) == 0) {
      if (-1 < iVar6) goto LAB_00076e44;
LAB_00077030:
      uVar31 = uVar18 | 0x22000;
      if ((param_4 & 0x80800) != 0) {
        if (puVar16 == (undefined4 *)0x0) {
          cVar11 = *(char *)(in_zero + -1);
          iVar6 = -1;
          if (cVar11 != '-') goto LAB_00077090;
          pcVar28 = *(code **)(pcVar27 + 0x7e790);
        }
        else {
          uVar8 = (**(code **)(pcVar27 + 0x7e760))(puVar16);
          iVar6 = (uVar8 & 0x3fffffff) - 1;
          cVar11 = *(char *)((int)puVar16 + iVar6);
          if (cVar11 != '-') {
            if (iVar6 == 0) goto LAB_000773f8;
LAB_00077090:
            iVar6 = iVar6 + -1;
            if (cVar11 == '.') goto LAB_000773f8;
            pcVar13 = (char *)((int)puVar16 + iVar6);
            while (cVar11 = *pcVar13, cVar11 != '-') {
              if ((iVar6 == 0) || (pcVar13 = pcVar13 + -1, cVar11 == '.')) goto LAB_000773f8;
              iVar6 = iVar6 + -1;
            }
          }
          pcVar28 = *(code **)(pcVar27 + 0x7e790);
        }
        uVar32 = (*pcVar28)(auStack_65c,puVar16,iVar6,0x201);
        iVar24 = *(int *)(pcVar27 + 0x7e594);
        auStack_65c[iVar6] = 0;
        iVar6 = (**(code **)(iVar24 + 0x5184))(uVar32,local_700);
        if (iVar6 != 0) {
LAB_000778c0:
          iVar24 = 0x70a;
          goto LAB_00076f98;
        }
        local_730 = local_6e0;
        local_720 = local_6dc;
LAB_00077140:
        uVar8 = local_6e8 & 0x1ff;
        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);
        iVar6 = (*pcVar28)(puVar16,uVar31,uVar8);
        if (iVar6 < 0) goto LAB_0007743c;
LAB_00077180:
        if (((uVar8 != 0) && (iVar24 = *(int *)(pcVar27 + 0x7e594), (param_4 & 0x80800) != 0)) &&
           (iVar7 = (**(code **)(iVar24 + 0x5250))(), iVar7 == 0)) {
          (**(code **)(iVar24 + 0x5244))(iVar6,local_730,local_720);
        }
        goto LAB_00076e44;
      }
      if (uVar21 == 0) {
        if (((param_4 & 0x40) != 0) &&
           (iVar6 = (**(code **)(pcVar27 + 0x7e780))(puVar16,*(int *)(pcVar27 + 0x7e5ac) + -0x7684),
           iVar6 != 0)) {
          iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5184))(iVar6,local_700);
          if (iVar6 != 0) goto LAB_000778c0;
          local_730 = local_6e0;
          local_720 = local_6dc;
          goto LAB_00077140;
        }
LAB_000773f8:
        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);
        iVar6 = (*pcVar28)(puVar16,uVar31,0);
        if (-1 < iVar6) goto LAB_00076e44;
        uVar8 = 0;
        local_720 = 0;
        local_730 = 0;
      }
      else {
        pcVar28 = (code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7c30);
        iVar6 = (*pcVar28)(puVar16,uVar31,0x180);
        if (-1 < iVar6) goto LAB_00076e44;
        local_720 = 0;
        uVar8 = 0x180;
        local_730 = 0;
      }
LAB_0007743c:
      piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();
      iVar6 = *piVar30;
      if ((bVar1) && (iVar6 == 0xd)) {
        iVar6 = (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x516c))(puVar16,0);
        if (iVar6 == 0) {
          iVar6 = *piVar30;
          goto LAB_000774ac;
        }
        uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);
        (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))
                  (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);
        iVar24 = 0x608;
        goto LAB_00077570;
      }
LAB_000774ac:
      if ((iVar6 != 0x15) && (uVar5 != 0)) {
        param_4 = param_4 & 0xfffffff9 | 1;
        iVar6 = (*pcVar28)(puVar16,uVar18 & 0xfffffefd | 0x22000,uVar8);
        if (-1 < iVar6) {
          local_728 = 1;
          goto LAB_00077180;
        }
      }
      uVar32 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x489c))(0x9ae7);
      iVar24 = (*(code *)(*(int *)(pcVar27 + 0x7e5c0) + 0x7dd8))
                         (uVar32,*(int *)(pcVar27 + 0x7e5ac) + -0x7c98,puVar16,0x9ae7);
      if (iVar24 == 0) goto LAB_00076f98;
      pcVar28 = *(code **)(pcVar27 + 0x7e678);
LAB_00077574:
      (*pcVar28)(param_3[7]);
    }
    else {
      uVar18 = uVar18 | 0x20400;
      if (iVar6 < 0) goto LAB_00077030;
LAB_00076e44:
      if (local_218 != (uint *)0x0) {
        *local_218 = param_4;
      }
      piVar30 = (int *)param_3[7];
      if (piVar30 != (int *)0x0) {
        *piVar30 = iVar6;
        piVar30[1] = param_4 & 3;
      }
      if (uVar21 != 0) {
        uVar21 = 0x20;
        (**(code **)(*(int *)(pcVar27 + 0x7e594) + 0x5214))(puVar16);
      }
      if (local_728 != 0) {
        uVar21 = uVar21 | 2;
      }
      if (uVar22 != 0x100) {
        uVar21 = uVar21 | 0x80;
      }
      if (bVar1) {
        uVar21 = uVar21 | 8;
      }
      iVar24 = *(int *)(pcVar27 + 0x7e594);
      if ((param_4 & 0x40) == 0) {
        param_3[3] = iVar6;
        param_3[1] = iVar4;
        param_3[8] = (int)puVar14;
        *(short *)((int)param_3 + 0x12) = (short)uVar21;
        iVar7 = *(int *)(iVar24 + 0x4148);
        param_3[0x11] = *(int *)(iVar24 + 0x414c);
        param_3[0x10] = iVar7;
        puVar19 = (undefined4 *)0x0;
      }
      else {
        uVar21 = uVar21 | 0x40;
        param_3[3] = iVar6;
        param_3[1] = iVar4;
        param_3[8] = (int)puVar14;
        *(short *)((int)param_3 + 0x12) = (short)uVar21;
        iVar7 = *(int *)(iVar24 + 0x4148);
        param_3[0x11] = *(int *)(iVar24 + 0x414c);
        param_3[0x10] = iVar7;
        puVar19 = puVar14;
      }
      iVar7 = (**(code **)(pcVar27 + 0x7e86c))(puVar19,*(int *)(pcVar27 + 0x7e5ac) + -0x767c,1);
      if (iVar7 != 0) {
        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 0x10;
      }
      iVar7 = (**(code **)(pcVar27 + 0x7e890))
                        (*(undefined4 *)(iVar4 + 0x10),*(int *)(pcVar27 + 0x7e5ac) + -0x7674);
      if (iVar7 == 0) {
        *(ushort *)((int)param_3 + 0x12) = *(ushort *)((int)param_3 + 0x12) | 1;
      }
      if ((uVar21 & 0x80) == 0) {
        iVar7 = (*(code *)**(undefined4 **)(iVar4 + 0x14))(puVar14,param_3);
        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3b24;
        if (iVar7 != iVar4) {
          iVar4 = iVar7;
          if (iVar7 == *(int *)(pcVar27 + 0x7e594) + 0x3a84) {
            iVar24 = (**(code **)(pcVar27 + 0x7e760))(puVar14);
            iVar24 = iVar24 + 6;
            iVar7 = (**(code **)(pcVar27 + 0x7e7f4))(iVar24 >> 0x1f,iVar24);
            if (iVar7 == 0) {
              iVar4 = *(int *)(pcVar27 + 0x7e594);
              param_3[6] = 0;
              param_3[5] = 0;
              iVar4 = (**(code **)(iVar4 + 0x5160))(iVar6);
              if (iVar4 == 0) {
                iVar24 = 7;
              }
              else {
                (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x9949);
                iVar24 = 7;
              }
              goto LAB_00077570;
            }
            (**(code **)(pcVar27 + 0x7e764))
                      (iVar24,iVar7,*(int *)(pcVar27 + 0x7e5ac) + -0x7668,puVar14);
            param_3[6] = iVar7;
          }
          goto LAB_00076f78;
        }
        iVar7 = *(int *)(pcVar27 + 0x7e594);
        (**(code **)(pcVar27 + 0x7e720))(*(undefined4 *)(iVar7 + 0x5a18));
        iVar23 = *(int *)(pcVar27 + 0x7e594);
        iVar9 = (**(code **)(iVar23 + 0x5190))(param_3[3],local_700);
        if (iVar9 != 0) {
          piVar30 = (int *)(**(code **)(pcVar27 + 0x7e718))();
          iVar24 = 10;
          param_3[5] = *piVar30;
LAB_0007782c:
          iVar4 = (**(code **)(iVar23 + 0x5160))(iVar6);
          if (iVar4 == 0) {
            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));
            param_3[5] = 0;
          }
          else {
            (*(code *)(*(int *)(pcVar27 + 0x7e5e4) + -0x7c9c))(param_3,0x98f4);
            (**(code **)(pcVar27 + 0x7e748))(*(undefined4 *)(iVar7 + 0x5a18));
            param_3[5] = 0;
          }
LAB_00077570:
          pcVar28 = *(code **)(pcVar27 + 0x7e678);
          goto LAB_00077574;
        }
        iVar9 = *(int *)(pcVar27 + 0x7e594);
        local_710 = 0;
        local_70c = local_700[0];
        local_704 = local_6ec;
        puVar19 = *(undefined4 **)(iVar9 + 0x5a14);
        local_708 = local_6f0;
        if (puVar19 == (undefined4 *)0x0) {
          pcVar28 = *(code **)(pcVar27 + 0x7e7f4);
        }
        else {
          do {
            iVar10 = (**(code **)(pcVar27 + 0x7e82c))(&local_710,puVar19,0x10);
            if (iVar10 == 0) {
              puVar19[9] = puVar19[9] + 1;
              goto LAB_0007764c;
            }
            puVar19 = (undefined4 *)puVar19[0xb];
            pcVar28 = *(code **)(pcVar27 + 0x7e7f4);
          } while (puVar19 != (undefined4 *)0x0);
        }
        puVar19 = (undefined4 *)(*pcVar28)(0,0x38);
        if (puVar19 == (undefined4 *)0x0) {
          iVar24 = 7;
          goto LAB_0007782c;
        }
        (**(code **)(pcVar27 + 0x7e728))(puVar19 + 4,0,0x28);
        *puVar19 = local_710;
        puVar19[1] = local_70c;
        puVar19[2] = local_708;
        puVar19[3] = local_704;
        if (*(char *)(iVar24 + 0x40a4) != '\0') {
          iVar24 = (**(code **)(pcVar27 + 0x7e824))(0);
          puVar19[4] = iVar24;
          if (iVar24 == 0) {
            (**(code **)(pcVar27 + 0x7e678))(puVar19);
            iVar24 = 7;
            goto LAB_0007782c;
          }
        }
        iVar6 = *(int *)(iVar9 + 0x5a14);
        puVar19[0xc] = 0;
        puVar19[9] = 1;
        puVar19[0xb] = iVar6;
        if (iVar6 != 0) {
          *(undefined4 **)(iVar6 + 0x30) = puVar19;
        }
        *(undefined4 **)(iVar9 + 0x5a14) = puVar19;
LAB_0007764c:
        pcVar28 = *(code **)(pcVar27 + 0x7e748);
        param_3[2] = (int)puVar19;
        (*pcVar28)(*(undefined4 *)(iVar7 + 0x5a18));
        param_3[5] = 0;
      }
      else {
        iVar4 = *(int *)(pcVar27 + 0x7e594) + 0x3ad4;
LAB_00076f78:
        param_3[5] = 0;
      }
      iVar6 = *(int *)(pcVar27 + 0x7e5c0);
      *param_3 = iVar4;
      (*(code *)(iVar6 + 0x76f0))(param_3);
      iVar24 = 0;
    }
  }
LAB_00076f98:
  if (local_254 == *piVar29) {
    return iVar24;
  }
  pcVar27 = *(code **)(pcVar27 + 0x7e818);
  iVar4 = local_254;
  (*pcVar27)();
  uVar5 = *(uint *)(iVar4 + 0x4c);
  uVar21 = *(uint *)(iVar4 + 0x94);
  iVar6 = *(int *)(iVar4 + 0x48);
  uVar18 = *(uint *)(iVar4 + 0x98);
  if (uVar21 <= *(uint *)(iVar4 + 0x98)) {
    uVar18 = uVar21;
  }
  puVar19 = *(undefined4 **)(iVar4 + 0xd0);
  if (0 < *(int *)(iVar4 + 0x60)) {
    iVar24 = *(int *)(iVar4 + 0x5c);
    iVar7 = *(int *)(iVar4 + 0x60) * 0x30 + iVar24;
    do {
      if (*(int *)(iVar24 + 8) == 0 && *(int *)(iVar24 + 0xc) == 0) {
        *(uint *)(iVar24 + 0xc) = uVar5;
        *(int *)(iVar24 + 8) = iVar6;
      }
      iVar24 = iVar24 + 0x30;
    } while (iVar24 != iVar7);
  }
  if (iVar6 != 0 || uVar5 != 0) {
    lVar33 = (**(code **)(pcVar27 + 0x7d930))
                       ((uint)(uVar5 - 1 < uVar5) + iVar6 + -1,uVar5 - 1,0,uVar21);
    lVar2 = (lVar33 + 1U & 0xffffffff) * (ulonglong)uVar21;
    uVar5 = (uint)lVar2;
    iVar6 = (int)(lVar33 + 1U >> 0x20) * uVar21 + (int)((ulonglong)lVar2 >> 0x20);
  }
  *(uint *)(iVar4 + 0x4c) = uVar5;
  *(int *)(iVar4 + 0x48) = iVar6;
  *(uint *)(iVar4 + 0x54) = uVar5;
  *(int *)(iVar4 + 0x50) = iVar6;
  if (*(char *)(iVar4 + 7) == '\0') {
    iVar6 = *(int *)(pcVar27 + 0x7d92c);
    if (*(char *)(iVar4 + 5) != '\x04') {
      uVar5 = (**(code **)(**(int **)(iVar4 + 0x3c) + 0x30))(*(int **)(iVar4 + 0x3c));
      if ((uVar5 & 0x200) == 0) {
        *(undefined1 *)puVar19 = 0;
        *(undefined1 *)((int)puVar19 + 1) = 0;
        *(undefined1 *)((int)puVar19 + 2) = 0;
        *(undefined1 *)((int)puVar19 + 3) = 0;
        *(undefined1 *)(puVar19 + 1) = 0;
        *(undefined1 *)((int)puVar19 + 5) = 0;
        *(undefined1 *)((int)puVar19 + 6) = 0;
        *(undefined1 *)((int)puVar19 + 7) = 0;
        *(undefined1 *)(puVar19 + 2) = 0;
        *(undefined1 *)((int)puVar19 + 9) = 0;
        *(undefined1 *)((int)puVar19 + 10) = 0;
        *(undefined1 *)((int)puVar19 + 0xb) = 0;
        goto LAB_00077b04;
      }
      goto LAB_00077ad0;
    }
  }
  else {
LAB_00077ad0:
    iVar6 = *(int *)(pcVar27 + 0x7d92c);
  }
  uVar32 = *(undefined4 *)(iVar6 + 0x229c);
  *puVar19 = *(undefined4 *)(iVar6 + 0x2298);
  puVar19[1] = uVar32;
  *(undefined1 *)(puVar19 + 2) = 0xff;
  *(undefined1 *)((int)puVar19 + 9) = 0xff;
  *(undefined1 *)((int)puVar19 + 10) = 0xff;
  *(undefined1 *)((int)puVar19 + 0xb) = 0xff;
LAB_00077b04:
  uVar5 = 0;
  (**(code **)(pcVar27 + 0x7dad8))(4,iVar4 + 0x30);
  uVar32 = *(undefined4 *)(iVar4 + 0x30);
  *(char *)((int)puVar19 + 0xf) = (char)uVar32;
  *(char *)(puVar19 + 3) = (char)((uint)uVar32 >> 0x18);
  *(char *)((int)puVar19 + 0xd) = (char)((uint)uVar32 >> 0x10);
  *(char *)((int)puVar19 + 0xe) = (char)((uint)uVar32 >> 8);
  uVar32 = *(undefined4 *)(iVar4 + 0x1c);
  pcVar27 = *(code **)(pcVar27 + 0x7daa8);
  *(char *)((int)puVar19 + 0x13) = (char)uVar32;
  *(char *)(puVar19 + 4) = (char)((uint)uVar32 >> 0x18);
  *(char *)((int)puVar19 + 0x11) = (char)((uint)uVar32 >> 0x10);
  *(char *)((int)puVar19 + 0x12) = (char)((uint)uVar32 >> 8);
  uVar32 = *(undefined4 *)(iVar4 + 0x94);
  *(char *)((int)puVar19 + 0x17) = (char)uVar32;
  *(char *)(puVar19 + 5) = (char)((uint)uVar32 >> 0x18);
  *(char *)((int)puVar19 + 0x15) = (char)((uint)uVar32 >> 0x10);
  *(char *)((int)puVar19 + 0x16) = (char)((uint)uVar32 >> 8);
  uVar32 = *(undefined4 *)(iVar4 + 0x98);
  *(char *)((int)puVar19 + 0x1b) = (char)uVar32;
  *(char *)(puVar19 + 6) = (char)((uint)uVar32 >> 0x18);
  *(char *)((int)puVar19 + 0x19) = (char)((uint)uVar32 >> 0x10);
  *(char *)((int)puVar19 + 0x1a) = (char)((uint)uVar32 >> 8);
  (*pcVar27)(puVar19 + 7,0,uVar18 - 0x1c);
  do {
    if (*(uint *)(iVar4 + 0x94) <= uVar5) {
      return 0;
    }
    iVar6 = **(int **)(iVar4 + 0x40);
    uVar5 = uVar5 + uVar18;
    iVar6 = (**(code **)(iVar6 + 0xc))
                      (*(int **)(iVar4 + 0x40),puVar19,uVar18,iVar6,*(undefined4 *)(iVar4 + 0x48),
                       *(undefined4 *)(iVar4 + 0x4c));
    uVar21 = *(uint *)(iVar4 + 0x4c);
    uVar22 = uVar21 + uVar18;
    *(uint *)(iVar4 + 0x4c) = uVar22;
    *(uint *)(iVar4 + 0x48) = (uint)(uVar22 < uVar21) + *(int *)(iVar4 + 0x48);
  } while (iVar6 == 0);
  return iVar6;
}

